Michael Egli
ff448e3485
Fix some UB cases. Closes #546
...
There are two cases of UB that are fixed in this commit.
1. In ethercatmain.c, there are two left shifts of 31:
(1 << 31)
Because 1 is a signed int by default, the result cannot be represented
in an int. The fix is to explicitly make the 1 unsigned.
2. In ethercatconfig.c, for slaves that have no inputs, the code would
apply an offset to a NULL pointer. The fix is to test that the slave
has inputs available before applying the offset.
Both cases were found by clang with the help of UBSan.
2021-08-31 13:02:10 +02:00
Wanga
9fef1fc23c
Add group checking for slave input offset calculation
...
Some slaves can be at different group and do not use overlap PDO map,
Let ec_config_overlap_map_group only change the input offset for current group.
2021-08-04 20:43:50 +08:00
ArthurKetels
6982a7648f
Add missing PO2SOconfigx() hook to ecx_reconfig_slave()
2021-08-02 20:52:22 +02:00
andreas karlsson
9de0889802
Adjust size of ec_EOE_t to max mailbox size
...
fix #514
2021-06-02 20:18:25 +02:00
Alex Brinkman
bb303a645f
add userdata initialization to default ecx_contextt
2021-02-18 09:30:33 -08:00
Alex Brinkman
59821cb410
add userdata to ec_context
2021-02-13 12:26:38 -08:00
Jorrit Olthuis
5550c445d8
Change include in ethercateoe.h ( #470 )
2021-01-02 11:15:08 +01:00
Andreas Karlsson
447d184d7e
Fix llvm compiler implicit-int-conversion warnings
...
* use uint8 for idx
* make config Isize/Osize uint32
* generally, align sizes in functions to HW objects
* Fix non-standard [0] size data array in EoE struct
2020-10-12 16:24:42 +02:00
ArthurKetels
cbc8f36e87
Fix bug in ecx_readIDNmap(), Osize and Isize
...
Osize and Isize where reset to 16 at every new drive number, thus loosing all lower drive mapping data. Changed to add 16 to Osize and Isize.
2020-10-01 23:00:01 +02:00
Andreas Karlsson
101ac54a7d
Don't always include optional IP parameter lengths
...
Obvious fix, the optional IP parameters length should
only be included in total length if they are included.
fixes #421
2020-08-18 15:47:36 +02:00
nakarlsson
bb82fc33d7
Revert "EoE and Distributed clock fixes"
2020-08-18 14:56:16 +02:00
Andreas Karlsson
33aa7a3c57
Correct unit for dc mastertime calulcation to (ns)
...
The correct factor for seconds should be 1000000000
fixes #432
2020-08-16 11:25:13 +02:00
Andreas Karlsson
bae37b9028
Don't always include optional IP parameter lengths
...
Obvious fix, the optional IP parameters length should
only be included in total length if they are included.
fixes #421
2020-08-16 11:20:10 +02:00
Andreas Karlsson
093311561c
Limit expected working counter per ESC
...
Add one to the expected working counter per
ESC/Slave, not for every syncmanager/fmmu.
Use case, if the slave define more input/output
syncmanager/fmmus it still only generate maximum
working counter of 3 for a RW command.
fixes 374
2020-03-03 11:30:55 +01:00
Arthur Ketels
92ff466357
Fix ecx_pushindex, remove DCtO and DCl from ecx_context
2019-11-13 21:03:56 +01:00
Arthur Ketels
9ec8635943
Fix tx/rx processdata functions
2019-11-12 17:03:48 +01:00
nakarlsson
abbf0d42e3
Fix doxygen build warnings for SOEM 1.4.0 ( #312 )
...
Trvial non-code changes
2019-06-13 08:06:41 +02:00
Andreas Karlsson
817435066f
Add support to choose if manual or automatic state change is done by config functions, fixes #189
2019-06-10 11:48:41 +02:00
Andreas Karlsson
cc417d4c0c
Add PO2SO hook including context, fixes #230
2019-06-10 09:23:02 +02:00
Andreas Karlsson
8c1e83ee8e
Add extra ERROR on mailbox receive timeout to improv diagnostics possibilities
2019-05-24 14:28:29 +02:00
Andreas Karlsson
9c921d8d4e
Make ERROR slave count exceeded unique
2019-05-24 14:05:53 +02:00
Andreas Karlsson
7b1ea32343
Make it possible to set EC_VER from osal layer
2019-05-24 14:02:46 +02:00
Andreas Karlsson
c892921d7e
Add ec_error to string print function, fixes #227 and fixes #232
2019-05-24 14:01:40 +02:00
Schlumpf
787cf82d7d
Add possibiliy to set endian target by hardware layer
...
Now it is possible to set a EC_LITTLE_ENDIAN or EC_BIG_ENDIAN in the
osal_defs.h file or by compile option. If no endian is defined, the default
EC_LITTLE_ENDIAN is used.
2019-05-10 10:19:25 +02:00
jopado1
537145f6bf
Fixes for big-endian hosts
2019-05-10 10:17:46 +02:00
andreas karlsson
a37a8c733e
Fix to enable building the SOEM library VER 2 with -werror
2019-04-08 10:02:03 +02:00
Andreas Karlsson
930d6e07c8
improve groups, make memory usage more efficient, fix erroneous byte calculations and dc frame handling
2019-03-11 10:34:21 +01:00
Claudio Scordino
e0d880d7bd
Avoid OSAL_THREAD usage when EC_MAX_MAPT=1
...
Rationale : allow SOEM to be used in a OS that does not support threads.
2019-02-14 10:56:50 +01:00
Claudio Scordino
7beba91c62
Fix typos in comments.
...
No functional changes.
2019-02-04 13:56:11 +01:00
Claudio Scordino
26cde1dc94
Introduce platform-specific EC_PRINT
...
Rationale: not all operating systems use function printf for printing
console messages. This commits allows to define platform-specific
functions.
2019-02-04 13:56:00 +01:00
nakarlsson
037a629839
Fixed un-used parameter and variable warnings for EoE ( #248 )
...
Trivial fix, no review
2019-02-01 10:42:18 +01:00
nakarlsson
86a2584e47
Impelmented EoE filter function in mailbox receive ( #244 )
2019-01-31 14:57:16 +01:00
ArthurKetels
4427684cc5
ethercatconfig : Set SM enable flag if SM length > 0
2019-01-31 10:07:18 +01:00
Schlumpf
8f2b233837
Endian fixes ( #222 )
...
This patch fixes some bugs on big-endian systems.
- Use temp variables for etohs() and etohl() at function calls to avoid
multiple function calls for one value.
- Fix and add use of etohs(), etohl(), htoes() and htoel().
- Fix use of 32bit values in 64bit variables.
2018-11-14 11:56:57 +01:00
Zihan Chen
462464ee37
Fixed windows x64 warning C4267 conversion from size_t to uint16
2018-02-22 15:01:44 -08:00
rtlaka
2b339a135b
When broadcast read the state,it is OK if the WKC is higher
2018-02-02 08:27:19 +01:00
rtlaka
28d82fa8fd
Add functions to configure and send an overlapping IOmap
2018-02-01 13:01:35 +01:00
rtlaka
f329d2fc3a
Add check that all slaves are present
2018-01-31 10:18:56 +01:00
Nick Tsiogkas
3cc1e9739e
Integrate SOEM with RTEMS
2018-01-23 17:07:59 +01:00
mizoguch-ken
1903d1ff54
fix warnings and fix error ( #128 )
2017-09-18 08:06:12 +02:00
Hans-Erik Floryd
3daefaea61
Normalize line endings ( #126 )
...
* add .gitattributes
* normalize line-endings
2017-08-16 20:07:39 +02:00
Hans-Erik Floryd
0ece3165a0
name all exported structs ( #125 )
2017-08-15 19:02:00 +02:00
Hans-Erik Floryd
59a87a36c1
Merge pull request #112 from nakarlsson/master
...
Use only one config thread default, multiple threads is an advanced feature for people who know their system
2017-07-14 17:10:40 +02:00
nakarlsson
db5d3eb769
Use only one config thread default, multiple threads is an advanced feature for people who know their system
2017-06-01 06:42:13 +02:00
Mikael Heden
15e7748198
Move license information to LICENSE file ( #95 )
...
OK
2017-03-29 07:16:44 +02:00
Albert Hofkamp
6c37e949e0
Improve tutorial and documentation
2017-02-09 12:19:58 +01:00
Apollo3zehn
d7a3b608b3
- reset activation register in ecx_set_slaves_to_default
2016-12-19 12:05:55 +01:00
MagnaboscoL
c97e92e4ec
revert ecx_statecheck() to original
2016-10-25 20:25:10 +02:00
MagnaboscoAndrea
298397bcc3
improve both ecx_statecheck and ecx_readstate
...
- in ecx_statecheck only one iteration is done through the slave list if needed
- in ecx_readstate only one datagram is used if possible
2016-10-23 13:18:34 +02:00
Luca
3be652a0e0
Bug fix
2016-10-20 15:21:29 +02:00