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.

Reply via email to