How fast shows atmel_serial a char to application

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everybody,

I am working on an embedded system doing serial communication on an sama5. The timing constraines, we have to fullfill are quite tough.

My problem: If I receive a long packet (800...1000 char), our application runs into a timeout. We have approx 5ms time to receive the first char and with a bus analyzer, I can see the first char is physically transmitted after 200us. But our application frequently tells me about no char available within the specified 5ms.
The transmission of the 800...1000 chars at our baudrate takes something like 10ms. So I guess, the lower levels gather the chars and present them to application after the complete (or rather complete) telegram was received. With short telegrams, we do not have any problems.
So I set the VMIN in termios C_CC to 1, to force the driver to submit chars, even if just one is available - no change. 

Now I started reading the driver code and observed the ring-buffer in arm_serial.c. Since I don't get which function my user-space read() is actually calling, I am not sure, whether I really get a single char if a single char is available or whether the driver waits for the buffer to be filled to a certain level.

I also tried to switch off the DMA - again no change.

Can somone help me?

Thanks,

Marcus Wolf
Wolf-Entwicklungen for EFR GmbH, München



[Index of Archives]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux PPP]     [Linux FS]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Linmodem]     [Device Mapper]     [Linux Kernel for ARM]

  Powered by Linux