On 2013-03-15 10:09, Jerome Poncin wrote: > Le 13/03/2013 12:08, Jerome Poncin a écrit : >> Le 12/03/2013 20:38, Gilles Chanteperdrix a écrit : >>> On 03/12/2013 04:27 PM, Jerome Poncin wrote: >>> >>>> Le 12/03/2013 13:21, Gilles Chanteperdrix a écrit : >>>>> On 03/12/2013 10:10 AM, Jerome Poncin wrote: >>>>> >>>>>> Le 08/03/2013 13:22, Gilles Chanteperdrix a écrit : >>>>>>> On 03/08/2013 11:17 AM, Jerome Poncin wrote: >>>>>>> >>>>>>>> Le 07/03/2013 16:33, Jerome Poncin a écrit : >>>>>>>>> Le 06/03/2013 22:05, Gilles Chanteperdrix a écrit : >>>>>>>>>> On 03/06/2013 04:28 PM, Jan Kiszka wrote: >>>>>>>>>> >>>>>>>>>>> Also here: Do not misuse write(), define an IOCTL that contains >>>>>>>>>>> something like "MMAP" and another one with MUNMAP in its name >>>>>>>>>>> - that's >>>>>>>>>>> the purpose of this service, no? >>>>>>>>>> A lot of drivers probably have to reinvent a way to pass all the >>>>>>>>>> parameters for an mmap, why not adding an "mmap" method to >>>>>>>>>> RTDM drivers? >>>>>>>>>> >>>>>>>>>> >>>>>>>>> Hello, >>>>>>>>> >>>>>>>>> I re factored my code with all your remarks (I think and I hope). >>>>>>>>> >>>>>>>>> Could you say me if it's correct now ? >>>>>>>>> >>>>>>>>> Jan, you're right, It's possible to use Xenomai with UIO >>>>>>>>> driver, but I >>>>>>>>> would like to use more real time possibilities of Xenomai in >>>>>>>>> future >>>>>>>>> (like IRQ). >>>>>>>>> My first goal is to have a code compliant. >>>>>>>>> I added IRQ, and my next step will be to understand why the kernel >>>>>>>>> crash after IRQ registration. >>>>>>>>> >>>>>>>>> Thank you for your help, >>>>>>>>> >>>>>>>>> Jerome >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> Hello, >>>>>>>> >>>>>>>> I have good news because, I arrived to validated driver with IRQ >>>>>>>> support. I changed position of cifx on my motherboard in my PC >>>>>>>> and the >>>>>>>> IRQ affected is not shared ;-) ! >>>>>>>> >>>>>>>> I have now a question about IRQ. What is the good method to >>>>>>>> signal to >>>>>>>> user-land that there is an IRQ. Is there an example ? >>>>>>> Almost every "read" call is an example... ;-) >>>>>>> >>>>>> Hello, >>>>>> >>>>>> I'm finishing my driver with IRQ. I saw that there is two mode, Real >>>>>> time and Non real time for RTDM driver function. >>>>>> My driver should run in the two mode. When I compile my User Space >>>>>> Shared library that call Xenomai Kernel driver, >>>>>> I saw that library call every time Non real time function and no real >>>>>> time function... >>>>>> I use a shared library with posix skin with makefile in attached >>>>>> file. I >>>>>> read explanation for static library with posix skin : >>>>>> >>>>>> http://www.xenomai.org/index.php/Porting_POSIX_applications_to_Xenomai >>>>>> >>>>>> >>>>>> What must I do with shared library for using rt mode ? >>>>> Use the LDLIBS variable when linking the library? >>>>> >>>> Gilles, >>>> >>>> you're right ;-), I didn't use LDLIBS for linking the library, >>>> therefore >>>> I corrected this. >>>> >>>> Now I have this as link line for my library : >>>> >>>> gcc -shared -Xlinker -rpath -Xlinker /usr/xenomai/lib >>>> -I/usr/xenomai/include/include/xenomai >>>> -I/usr/xenomai/include/include/xenomai/compat >>>> -I/usr/xenomai/include/include/xenomai/posix -I./ -I.//Toolkit >>>> -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt >>>> -lxenomai -lpthread -lrt -o libcifx.so .//cifXDownload.o >>>> .//cifXEndianess.o .//cifXFunctions.o .//cifXHWFunctions.o >>>> .//cifXInit.o >>>> .//cifXInterrupt.o .//md5.o .//cifx_xenomai.o .//OS_xenomai.o >>>> .//USER_xenomai.o >>>> >>>> and this for the application : >>>> >>>> gcc -DCONSUMER -I/usr/xenomai/include -D_GNU_SOURCE -D_REENTRANT >>>> -D__XENO__ -I/usr/xenomai/include/posix -I../libcifx >>>> -I../libcifx/Toolkit -O2 -lcifx -lpciaccess -lrtdm -Xlinker -rpath >>>> -Xlinker /usr/xenomai/lib cifx_xenomai_sample.c >>>> -Wl,@/usr/xenomai/lib/posix.wrappers -L/usr/xenomai/lib -lpthread_rt >>>> -lxenomai -lpthread -lrt -lcifx -lpciaccess -lrtdm -o >>>> cifx_xenomai_sample >>>> >>>> with >>>> >>>> mlockall(MCL_CURRENT | MCL_FUTURE); >>>> >>>> >>>> first line in main >>>> >>>> I have a new log : >>>> >>>> [ 4700.073616] cifx 0000:04:01.0: PCI INT A -> GSI 16 (level, low) >>>> -> IRQ 16 >>>> [ 4700.073643] cifx 0000:04:01.0: DPM at FEBF0000 >>>> [ 4700.073654] cifx 0000:04:01.0: registered CifX card >>>> [ 4734.146888] NRT mode >>>> [ 4751.104009] rt >>>> [ 4751.388002] Xenomai: Posix: destroying mutex f8419600. >>>> >>>> But as you see It seems I'm always in Non Real Time mode... >>> I do not see anything, as I do not see the sources for either your >>> driver or application. >>> >>>> Do you have an idea about my problem ? >>>> >>>> The log "rt" and " Xenomai: Posix: destroying mutex f8419600." is >>>> normal ? >>> It depends if you consider normal leaving an application with a mutex >>> created but not destroyed. >> Hello Gilles, >> >> First, I checked mutex Creation and Destroy and all is correct all >> created are destroyed... I will continue to investigate, it's very >> strange ! >> Secondly, I read that if a program use file or stdio library "causes >> switches to secondary mode". >> In my shared library, I have read file and fprintf at start >> (initialization), therefore I think that's why the library run in NRT >> mode. >> But is possible to switch in RT mode after, or must I do two thread ? >> >> thank you for your help, >> >> Jerome > Hello, > > I found why I have the log : > > Xenomai: Posix: destroying mutex f8419600. > > My application seems stop by the watchdog : > > Temps UCT limite expiré (core dumped) > > I tried to disable Xenomai watchdog without success, and I try to > increase "ulimit" without success too. > > How to disable CPU time watchdog for real time mode ?
The problem is not the watchdog but some bug in your application or driver. It causes a real-time task to run for multiple seconds without sleeping. That is what the watchdog triggers. Check what is causing this endless loop and resolve it. Jan -- Siemens AG, Corporate Technology, CT RTC ITP SDP-DE Corporate Competence Center Embedded Linux _______________________________________________ Xenomai mailing list [email protected] http://www.xenomai.org/mailman/listinfo/xenomai
