Hi,

I tried running the master on an AT91 CPU using RTAI or Xenomai. The system freezes after the RT task was started. If I used the normal Linux timers it worked. The reason is that the macros for reading an writing the EC datagrams defined in ecrt.h (e.g. EC_WRITE_U16) may result to unaligned memory access. On ARM CPUs this causes an exception, which normally is catched by the Linux kernel. This does not work with RTAI or Xenomai.

I attached a patch which solves the problem. If the master is running on an ARM CPU I changed the macros. 16, 32 and 64 bit operations are splitted in multiple 8 bit accesses.

I tested it with kernel 2.6.20.21 and RTAI 3.7. and with kernel 2.6.30.9 using Xenomai 2.4.9.1.

Best regards

Stefan

Attachment: ethercat-devel-dbc617badc33-arm.patch.gz
Description: GNU Zip compressed data

_______________________________________________
etherlab-dev mailing list
[email protected]
http://lists.etherlab.org/mailman/listinfo/etherlab-dev

Reply via email to