avr: t03 now at least writes tty message once!

This commit is contained in:
Martin Preuss
2025-02-11 01:13:00 +01:00
parent 0790ac0dea
commit 351ab57d62
7 changed files with 202 additions and 563 deletions

View File

@@ -17,18 +17,16 @@
.equ UART_HW_BUFFER_IFACENUM0_BIT = 0
.equ UART_HW_MODE_READMASK = 0x0f
.equ UART_HW_MODE_WRITEMASK = 0xf0
.equ UART_HW_READMODE_OFF = 0
.equ UART_HW_READMODE_IDLE = 1
.equ UART_HW_READMODE_READING = 2
.equ UART_HW_READMODE_SKIPPING = 3
.equ UART_HW_MODE_OFF = 0
.equ UART_HW_MODE_IDLE = 1
.equ UART_HW_MODE_READING = 2
.equ UART_HW_MODE_SKIPPING = 3
.equ UART_HW_MODE_W_IDLE = 0
.equ UART_HW_MODE_WRITING = 16
.equ UART_HW_MODE_WAITBUFFEREMPTY = 17
.equ UART_HW_MODE_WRITEBUFFEREMPTY = 18
.equ UART_HW_WRITEMODE_OFF = 0
.equ UART_HW_WRITEMODE_IDLE = 1
.equ UART_HW_WRITEMODE_WRITING = 2
.equ UART_HW_WRITEMODE_WAITBUFFEREMPTY = 3
.equ UART_HW_WRITEMODE_WRITEBUFFEREMPTY = 4
.equ UART_HW_STATUS_UNDERRUN_BIT = 0
@@ -39,51 +37,28 @@
.equ UART_HW_IFACE_OFFS_IFACENUM = 0 ; interface number (put into received messages)
.equ UART_HW_IFACE_OFFS_MODE = 1
.equ UART_HW_IFACE_OFFS_STATUS = 2
.equ UART_HW_IFACE_OFFS_READTIMER = 3
.equ UART_HW_IFACE_OFFS_WRITETIMER = 4
.equ UART_HW_IFACE_OFFS_ERR_OVR = 5
.equ UART_HW_IFACE_OFFS_ERR_CONTENT = 6
.equ UART_HW_IFACE_OFFS_STATUS = 1
.equ UART_HW_IFACE_OFFS_READTIMER = 2
.equ UART_HW_IFACE_OFFS_WRITETIMER = 3
.equ UART_HW_IFACE_OFFS_ERR_OVRLOW = 4
.equ UART_HW_IFACE_OFFS_ERR_OVRHIGH = 5
.equ UART_HW_IFACE_OFFS_ERR_CONTENTLOW = 6
.equ UART_HW_IFACE_OFFS_ERR_CONTENTHIGH = 7
; ringbuffer for incoming chars
.equ UART_HW_IFACE_OFFS_READBUF = 7
.equ UART_HW_IFACE_OFFS_READBUF_MAX = UART_HW_IFACE_OFFS_READBUF
.equ UART_HW_IFACE_OFFS_READBUF_USED = UART_HW_IFACE_OFFS_READBUF+1
.equ UART_HW_IFACE_OFFS_READBUF_RDPOS = UART_HW_IFACE_OFFS_READBUF+2
.equ UART_HW_IFACE_OFFS_READBUF_WRPOS = UART_HW_IFACE_OFFS_READBUF+3
.equ UART_HW_IFACE_OFFS_READBUF_DATA = UART_HW_IFACE_OFFS_READBUF+4 ; UART_HW_IFACE_READBUF_SIZE bytes
.equ UART_HW_IFACE_OFFS_READMODE = 8
.equ UART_HW_IFACE_OFFS_READBUFNUM = 9
.equ UART_HW_IFACE_OFFS_READBUFPOSLOW = 10
.equ UART_HW_IFACE_OFFS_READBUFPOSHIGH = 11
.equ UART_HW_IFACE_OFFS_READBUFUSED = 12
.equ UART_HW_IFACE_OFFS_READBUFLEFT = 13
; ringbuffer for outgoing chars
.equ UART_HW_IFACE_OFFS_WRITEBUF = UART_HW_IFACE_OFFS_READBUF_DATA+UART_HW_IFACE_READBUF_SIZE
.equ UART_HW_IFACE_OFFS_WRITEBUF_MAX = UART_HW_IFACE_OFFS_WRITEBUF
.equ UART_HW_IFACE_OFFS_WRITEBUF_USED = UART_HW_IFACE_OFFS_WRITEBUF+1
.equ UART_HW_IFACE_OFFS_WRITEBUF_RDPOS = UART_HW_IFACE_OFFS_WRITEBUF+2
.equ UART_HW_IFACE_OFFS_WRITEBUF_WRPOS = UART_HW_IFACE_OFFS_WRITEBUF+3
.equ UART_HW_IFACE_OFFS_WRITEBUF_DATA = UART_HW_IFACE_OFFS_WRITEBUF+4
.equ UART_HW_IFACE_OFFS_WRITEMODE = 14
.equ UART_HW_IFACE_OFFS_WRITEBUFNUM = 15
.equ UART_HW_IFACE_OFFS_WRITEBUFPOSLOW = 16
.equ UART_HW_IFACE_OFFS_WRITEBUFPOSHIGH = 17
.equ UART_HW_IFACE_OFFS_WRITEBUFUSED = 18
.equ UART_HW_IFACE_OFFS_WRITEBUFLEFT = 19
; ringbuffer for outgoing messages
.equ UART_HW_IFACE_OFFS_OUTMSGBUF = UART_HW_IFACE_OFFS_WRITEBUF_DATA+UART_HW_IFACE_WRITEBUF_SIZE
.equ UART_HW_IFACE_OFFS_OUTMSGBUF_MAX = UART_HW_IFACE_OFFS_OUTMSGBUF
.equ UART_HW_IFACE_OFFS_OUTMSGBUF_USED = UART_HW_IFACE_OFFS_OUTMSGBUF+1
.equ UART_HW_IFACE_OFFS_OUTMSGBUF_RDPOS = UART_HW_IFACE_OFFS_OUTMSGBUF+2
.equ UART_HW_IFACE_OFFS_OUTMSGBUF_WRPOS = UART_HW_IFACE_OFFS_OUTMSGBUF+3
.equ UART_HW_IFACE_OFFS_OUTMSGBUF_DATA = UART_HW_IFACE_OFFS_OUTMSGBUF+4
; ref to recv buffer
.equ UART_HW_IFACE_OFFS_READMSG = UART_HW_IFACE_OFFS_OUTMSGBUF_DATA+UART_HW_IFACE_OUTMSGBUF_SIZE
.equ UART_HW_IFACE_OFFS_READMSG_BUFNUM = UART_HW_IFACE_OFFS_READMSG ; 1 byte
.equ UART_HW_IFACE_OFFS_READMSG_PTR = UART_HW_IFACE_OFFS_READMSG+1 ; 2 bytes
.equ UART_HW_IFACE_OFFS_READMSG_USED = UART_HW_IFACE_OFFS_READMSG+3 ; 1 byte
.equ UART_HW_IFACE_OFFS_READMSG_LEFT = UART_HW_IFACE_OFFS_READMSG+4 ; 1 byte
; ref to transmit buffer
.equ UART_HW_IFACE_OFFS_WRITEMSG = UART_HW_IFACE_OFFS_READMSG_LEFT+1
.equ UART_HW_IFACE_OFFS_WRITEMSG_BUFNUM = UART_HW_IFACE_OFFS_WRITEMSG ; 1 byte
.equ UART_HW_IFACE_OFFS_WRITEMSG_PTR = UART_HW_IFACE_OFFS_WRITEMSG+1 ; 2 bytes
.equ UART_HW_IFACE_OFFS_WRITEMSG_USED = UART_HW_IFACE_OFFS_WRITEMSG+3 ; 1 byte
.equ UART_HW_IFACE_OFFS_WRITEMSG_LEFT = UART_HW_IFACE_OFFS_WRITEMSG+4 ; 1 byte
.equ UART_HW_IFACE_SIZE = UART_HW_IFACE_OFFS_WRITEMSG_LEFT+1
.equ UART_HW_IFACE_SIZE = UART_HW_IFACE_OFFS_WRITEBUFLEFT+1