This is an automated email from the ASF dual-hosted git repository.

xiaoxiang781216 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/nuttx.git

commit dc39a4518b05dc3081ebd112766d40c78889cfa3
Author: Kerogit <[email protected]>
AuthorDate: Tue Oct 13 00:49:39 2026 +0200

    Documentation/platforms/avr/avrdx: make a note about achievable USART speed
    
    Patch series that includes commits 6e0d32571e and b32712d0a2 fixed multiple
    problems with preemptive scheduling combined with tickless configuration.
    AVR DA/DB family uses tickless system by default and was affected by these
    bugs too.
    
    The patches, however, add more work to preemption code and that work
    is done with interrupts disabled. This has noticeable impact on USART
    communication using higher speeds, causing receive buffer overruns
    and dropped bytes.
    
    This patch adds a note about (not) achievable USART baud rate
    to the documentation.
    
    Signed-off-by: Kerogit <[email protected]>
---
 Documentation/platforms/avr/avrdx/index.rst | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/Documentation/platforms/avr/avrdx/index.rst 
b/Documentation/platforms/avr/avrdx/index.rst
index 96b528b17e9..85ca4cb7174 100644
--- a/Documentation/platforms/avr/avrdx/index.rst
+++ b/Documentation/platforms/avr/avrdx/index.rst
@@ -85,6 +85,17 @@ highest speed. With baud rate 57600, performance was 
dependent
 on read/write buffer size. With buffer size of 8 there were still
 some missed bytes.
 
+Since NuttX version 13.1, this was observed to be even worse when
+the system is under load and uses round-robin preemptive scheduling.
+This version fixed multiple scheduling bugs on a tickless system
+but the fixes unfortunately add more accounting work that needs
+to be performed during preemption.
+
+Because the preemption code runs with interrupts disabled, the UART driver
+may be unable to retrieve received bytes for almost a millisecond
+of time with the chip running at 24MHz (maximum) clock. That causes
+an overrun of the 2-byte receive buffer even with 38400 baud rate.
+
 To be able to use standard serial driver, it is needed to enable
 the peripheral in MCU-specific configuration in
 :menuselection:`System Type --> AVR DA/DB Peripheral Selections`

Reply via email to