Le 23/05/2013 09:14, Gilles Chanteperdrix a écrit : > On 05/23/2013 12:10 AM, CF wrote: > >> Hello, >> >> Despite my munerous reading, i'm locked in how to perform a basic RTDM >> for a simple ppc board. >> >> This is a simple pin level setting. The linux kernel module i developped >> follow theses steps: >> -reading DTS for IOCTL et GPIOCTL base adress registers >> - out_be32(addr, value) at theses register to set line as an output and >> then set the logical level with setbits32(addr, bit) or clrbits32(addr,bit) >> >> Basically, it works but in NRT ops modes, so i'm unable (or at least i >> lack indication) to do this in RT ops mode (i don't think it is >> important, but i use ioctl to make my changes). I based my work on >> tut01/tut02 drivers, except i end up in using ioctl instead or >> read/write in the RTDM driver. >> >> I guess i still could read the DTS in nrt mode (because it is done at >> rtdm_dev_register() time and won't interfere with RT task), but how can >> i drive the hardware directly in RT op mode ? > > Hi, > > I am not sure I understand the problem you have. If the board you use > uses gpiolib (I do not know if gpiolib is customary on ppc), you simply > have to check that the gpiolib callbacks do not use any Linux services > which can not be called from RT mode (if it uses a spinlock, the usual > method is to turn the spinlock into an I-pipe spinlock, see: > http://www.xenomai.org/index.php/I-pipe-core:ArmPorting#GPIOs_in_real-time_drivers) > > If you are accessing directly the GPIO controller registers, and need a > "read-modify-write" operation, which what you posted seem to suggest, > you probably want to put a spinlock around these operations, but apart > from that, you can do this from an RT driver ioctl callback. > > Regards. >
Thank you Gilles, very much. Precisely, my main concern is how to know if i use linux services (in others words, how can i say a function - in my case in_beX() or out_beX() - is RT compatible ?). If you have some documentations about this, thank you :) CF _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
