avr/uart_hw: tty1 works in send and receive direction.

This commit is contained in:
Martin Preuss
2025-03-22 13:00:20 +01:00
parent 236f6832a3
commit 0f598a5552
5 changed files with 206 additions and 141 deletions

View File

@@ -81,3 +81,32 @@ UART_HW_Interface_SetWriteBuffer:
; ---------------------------------------------------------------------------
; @routine UART_HW_Interface_EnsureReadBuffer
;
; @clobbers R16 (R17, R24, R25, X)
UART_HW_Interface_EnsureReadBuffer:
ldd r16, Y+UART_HW_IFACE_OFFS_READBUFNUM
cpi r16, 0xff
breq UART_HW_Interface_EnsureReadBuffer_alloc
UART_HW_Interface_EnsureReadBuffer_secRet:
sec
UART_HW_Interface_EnsureReadBuffer_ret:
ret
UART_HW_Interface_EnsureReadBuffer_alloc:
rcall NET_Buffer_Alloc ; (R16, R17, X)
brcc UART_HW_Interface_EnsureReadBuffer_ret
rcall UART_HW_Interface_SetReadBuffer ; (R17)
rcall NET_Interface_SetIfaceNumInBuffer ; (R16, R17)
rjmp UART_HW_Interface_EnsureReadBuffer_secRet
UART_HW_Interface_EnsureReadBuffer_noBuf:
ldi r16, NET_IFACE_OFFS_ERR_MISSED_LOW
rcall NET_Interface_IncCounter16 ; (R24, R25)
clc
ret
; @end