097477035d
GCC9 introduced an address-of-packed-member warning that triggers in esc_coe.c. The issue is that a packed struct has an overall alignment of 1, and taking the address of a member in a packed struct is not guaranteed to have any particular alignment. However, in esc_coe these structs are always overlayed on aligned memory so in practice there is no problem. Fix the problem by explicitly setting the minimum alignment for the structs used in this manner. Also fix an instance where an unaligned pointer was used but never dereferenced (by changing the type of the pointer from uint32_t* to void*). |
||
---|---|---|
.github | ||
applications | ||
cmake | ||
drivers/linux/lan9252 | ||
soes | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
LICENSE | ||
README.md | ||
version.h.in |
README.md
Simple Open Source EtherCAT Slave
SOES (Simple OpenSource EtherCAT Slave Stack) is an opensource slave stack that is very easy to use and provides a small footprint. It is a good alternative to more complex stacks on the market.
Overview
SOES is an EtherCAT slave stack written in c. Its purpose is to learn and to use. All users are invited to study the source to get an understanding how an EtherCAT slave functions.
Feature list:
- Address offset based HAL for easy ESC read/write access via any interface
- Mailbox with data link layer
- CoE
- Object dictionary
- SDO read and write for all sizes including segmented transfers
- Easy portable C-code suited for embedded applications
- Fixed and/or dynamic PDO mapping
- FoE with bootstrap template
- Support for Little and Big endian targets
- Run polling, mixed polling/interrupt or interrupt
- Support for SM Synchronization
- Support DC sync0 and DC Synchronization
- Add stack configuration via new configuration parameter to/or from "stack"_init
- EoE
TODO
- Update documentation
- Add EoE sample application