avr: bootloader partially works now but stops after 3 messages...

This commit is contained in:
Martin Preuss
2025-01-20 23:47:13 +01:00
parent 0d7aca0060
commit 0a10d136d5
23 changed files with 398 additions and 1260 deletions

View File

@@ -8,10 +8,6 @@
; ***************************************************************************
.dseg
; uartHw_TtyOn1Interface: .byte UART_HW_IFACE_SIZE
.cseg

View File

@@ -92,8 +92,8 @@ UART_HW_Uart1_RawSendPacket_loop:
UART_HW_Uart1_EnableRawRecv:
lds r16, UCSR1B
cbr r16, (1<<RXCIE1) ; disable RX complete interrupt
sbr r16, (1<<RXEN1) ; enable receive
; cbr r16, (1<<RXCIE1) ; disable RX complete interrupt
ori r16, (1<<RXEN1) ; enable receive
sts UCSR1B, r16
ret
; @end
@@ -109,8 +109,8 @@ UART_HW_Uart1_EnableRawRecv:
UART_HW_Uart1_DisableRawRecv:
lds r16, UCSR1B
cbr r16, (1<<RXCIE1) ; disable RX complete interrupt
cbr r16, (1<<RXEN1) ; disable receive
; cbr r16, (1<<RXCIE1) ; disable RX complete interrupt
andi r16, ~(1<<RXEN1) ; disable receive
sts UCSR1B, r16
ret
; @end
@@ -144,6 +144,7 @@ UART_HW_Uart1_RawRecvPacket:
rcall uartHwUart1RawRecvByte ; (R16, R18, R22)
pop r17 ; pop acceptable COM address from R16 to R17
brcc UART_HW_Uart1_RawRecvPacket_error
#ifndef COM_ACCEPT_ALL_DEST ; accept every destination address
; compare destination address (accept "FF" and own address)
cp r16, r17
@@ -242,7 +243,7 @@ uartHwUart1RawWaitForByte1s_loop:
rcall uartHwUart1RawWaitForByte100ms ; (r18, r22)
pop r18
brcs uartHwUart1RawWaitForByte1s_haveByte
; sbi LED_SIMPLE_PORTIN, LED_SIMPLE_PINNUM ; toggle
sbi LED_SIMPLE_PORTIN, LED_SIMPLE_PINNUM ; toggle
dec r18
brne uartHwUart1RawWaitForByte1s_loop
clc
@@ -306,10 +307,3 @@ uartHwUart1RawWaitForByte1ms_haveByte:
.equ COMIO_DisableRawRecv = UART_HW_Uart1_DisableRawRecv