logo       

problem when changing the attribute of the serial port: msg#00009

Subject: problem when changing the attribute of the serial port
help:How to change the attribute of the serial port in embedded linux?

    When I tried to change the attibute of the serial port in embedded linux 
with the function tcgetattr() and tcsetattr(), I found that they didn't work, 
although the return of these two functions were both '0', i.e. success.
    Another problem. In the linux on PC, I can read all the message in the 
buffer of serial port with the function read() only once, and it returns the 
number of the characters in the buffer. But when I read the message in embedded 
linux, it always stops when it encounters <enter> or <space>, and I can just 
get part of the message, and don't know exactly the number of characters in the 
buffer.
    For example, suppose the string in the buffer is 
"abcd<enter>efgh<space>ijk". When on PC , after using the function read(), I 
can get the whole string and the number 13 (11 letters and a <enter> and a 
<space>). But in embedded linux, I can only get the string "abcd" and the 
number 4 with one read(). Read() again, I can get "efgh" and the number 4. 
Again and again, I can get "ijk" and number 3. Again and again and again, I 
will get "abcd" and number 4 again. Then it repeats. 
    What I want is that the serial port in embedded linux can perform as the 
one in the linux on PC, i.e., I can read all the message and get the exact 
number with one read().
    Can you tell me how to do?
    I use PXA250, linux kernel 2.4.18,patch-2.4.18-rmk6 patches by Russell King 
and diff-2.4.18-rmk6-pxa2 by Nicolas Pitre

        

Regards,
==================================

Zheng Hao
hallosky@xxxxxxxxxxx
2003-12-02



-------------------------------------------------------------------
Subscription options: http://lists.arm.linux.org.uk/mailman/listinfo/linux-arm
FAQ/Etiquette:       http://www.arm.linux.org.uk/armlinux/mailinglists.php



<Prev in Thread] Current Thread [Next in Thread>