Gilles Chanteperdrix wrote: > Wolfgang Grandegger wrote: >> Gilles Chanteperdrix wrote: >>> Wolfgang Grandegger wrote: >>>> Hello, >>>> >>>> I realized that accessing memory allocated with rt_heap_alloc() causes >>>> mode switches on ARM i.mx31. The attached patch provides a demo program >>>> to demonstrate the problem, which actually does *not* show up on my >>>> PowerPC TQM5200 board. >>> Ok. I ran your test on an ARMv5 using an old version of Xenomai, and I >>> only get a fault on first write to the heap, being either cached or non >>> cached. >>> >>> I will now run the tests on AT91RM9200 with a more recent version of >>> xenomai to confirm that we get the same effect, but if we do, this means >>> that we are facing an armv6 specific issue and that for a workaround, we >>> need to understand armv6 memory management. >> The problem seems to be more general. I have now use the TLSF allocator >> from Xenomai-solo for dynamic memory allocation and I still see the mode >> switch counter increasing. Again, no problems on my TQM5200 PowerPC >> board. I have the impression that the problems are related to armv6. > > That is because you do unaligned accesses, on ARM they generate faults.
Good catch. That also explains why a mode switch does not always happen. I will do more tests tomorrow. Thanks, Wolfgang. _______________________________________________ Xenomai-help mailing list Xenomai-help@gna.org https://mail.gna.org/listinfo/xenomai-help