Hi Stefan, On Wed, Nov 11, 2009 at 06:07:16PM +0100, Stefan Schramm wrote: > 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.
I'm just wondering if it would be possible to solve this by aligning the process data in memory. Usually, slaves do not use 'non-alignable' variables, at least they maintain the possibility to use aligned PDOs. Wouldn't this be a better solution? -- Best regards, Florian Pose http://etherlab.org _______________________________________________ etherlab-dev mailing list [email protected] http://lists.etherlab.org/mailman/listinfo/etherlab-dev
