Problem Solved ! By disabling the preempt mode in the kernel config .... I have some fopen call in my program which is not a good idea in real time application ....
Thx everyone for the help ! On Mon, Jan 6, 2014 at 12:58 PM, Micka <[email protected]> wrote: > Hi, > > Thanks for your answer, > > Well, it's just 16 octets or less .... most of the time it works, but > somehow the driver decide to interrupt the transfer ...... > > yes it's a single call to write .... > > > Do you know if there is a configuration to solve this bug ? I'm also > wondering if it's because my linux ( 3.8 ) is not a real time kernel .... > maybe i should apply the kernel PREEMPT_RT ? > > I'm really lost .... > > > Micka, > > > On Sat, Jan 4, 2014 at 9:10 AM, Dave Hylands <[email protected]> wrote: > >> Hi, >> >> >> On Fri, Jan 3, 2014 at 4:08 PM, Micka <[email protected]> wrote: >> > >> > Ok, >> > >> > Well, the baudrate is at 38400, the distribution is the Ubuntu from >> Robert C Nelson ( 3.8.13 bone 30 ), the driver is the omap . I've modified >> a little bit the driver to add RS485 support ( see the patch attached ) , >> the only major modification that I've done is to add : >> > >> > + wait_for_xmitr(up); >> > + if (up->rs485.flags & SER_RS485_ENABLED) { >> > + if(up->rs485.delay_rts_after_send>0){ >> > + udelay(up->rs485.delay_rts_after_send); >> > + } >> > + /* Disable RS485 TX EN */ >> > + val = (up->rs485.flags & SER_RS485_RTS_AFTER_SEND) ? 1 >> : 0; >> > + gpio_set_value(up->rs485.gpio_pin, val); >> > + } >> > >> > >> > in the function serial_omap_stop_tx . >> > >> > >> > It works most of the time, but for an unknown reason there is this >> weird behavior ..... >> > >> > >> > Any tips ? lead to follow ? >> >> How much data are you writing? >> >> Are you doing it with a single call to write? >> >> If you're doing multipe calls to write then its quite possible that a >> context switch is allowing another task to run and delaying your second >> write. >> >> -- >> Dave Hylands >> Shuswap, BC, Canada >> http://www.davehylands.com >> >> -- >> For more options, visit http://beagleboard.org/discuss >> --- >> You received this message because you are subscribed to the Google Groups >> "BeagleBoard" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> > > -- For more options, visit http://beagleboard.org/discuss --- You received this message because you are subscribed to the Google Groups "BeagleBoard" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
