Good to her Micka, I had an idea that this was the problem ( thread was getting interrupted, and state not save properly etc ), but I'm a complete Linux programming newb so . . .
Glad to hear you got it resolved. On Mon, Jan 6, 2014 at 10:24 AM, Micka <mickamus...@gmail.com> wrote: > 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 <mickamus...@gmail.com> 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 <dhyla...@gmail.com> wrote: >> >>> Hi, >>> >>> >>> On Fri, Jan 3, 2014 at 4:08 PM, Micka <mickamus...@gmail.com> 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 beagleboard+unsubscr...@googlegroups.com. >>> 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 beagleboard+unsubscr...@googlegroups.com. > 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 beagleboard+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.