avr: bootloader partially works now but stops after 3 messages...
This commit is contained in:
@@ -17,24 +17,24 @@
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine flashInitIo
|
||||
; @routine ioRawInit
|
||||
; Send a message
|
||||
;
|
||||
; @clobbers r16, r17
|
||||
|
||||
flashInitIo:
|
||||
ioRawInit:
|
||||
rjmp UART_HW_Uart1_RawInit ; (R16, R17)
|
||||
;@end
|
||||
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine flashRawSendMsg
|
||||
; @routine ioRawSendMsg
|
||||
; Send a message
|
||||
;
|
||||
; @clobbers r16, r17, X
|
||||
|
||||
flashRawSendMsg:
|
||||
ioRawSendMsg:
|
||||
ldi xl, LOW(flashSendBuffer)
|
||||
ldi xh, HIGH(flashSendBuffer)
|
||||
rjmp UART_HW_Uart1_RawSendPacket ; (r16, r17, X)
|
||||
@@ -43,28 +43,30 @@ flashRawSendMsg:
|
||||
|
||||
|
||||
; ---------------------------------------------------------------------------
|
||||
; @routine flashRawWaitForValidMsg
|
||||
; @routine ioRawWaitForValidMsg
|
||||
; Wait for valid incoming msg
|
||||
;
|
||||
; @return CFLAG set if okay (packet received), cleared on error
|
||||
; @clobbers: r16, r17, r18 (r19, r22, X)
|
||||
|
||||
flashRawWaitForValidMsg:
|
||||
ioRawWaitForValidMsg:
|
||||
rcall UART_HW_Uart1_EnableRawRecv ; (R16)
|
||||
flashRawWaitForValidMsg_loop:
|
||||
ioRawWaitForValidMsg_loop:
|
||||
ldi xl, LOW(flashRecvBuffer)
|
||||
ldi xh, HIGH(flashRecvBuffer)
|
||||
ldi r16, COM2_MAINTENANCE_ADDR
|
||||
ldi r17, FLASH_RECVBUFFER_MAXLEN-3
|
||||
ldi r18, 10 ; 10s
|
||||
rcall UART_HW_Uart1_RawRecvPacket ; (r16, r17, r18, r19, r22, X)
|
||||
brcc flashRawWaitForValidMsg_error
|
||||
brcc ioRawWaitForValidMsg_error
|
||||
ldi xl, LOW(flashRecvBuffer)
|
||||
ldi xh, HIGH(flashRecvBuffer)
|
||||
rcall com2CheckMessageInBuffer ; (R16, R17, R18, R19, R20, X)
|
||||
brcc flashRawWaitForValidMsg_loop ; invalid msg, try next
|
||||
brcc ioRawWaitForValidMsg_loop ; invalid msg, try next
|
||||
rcall UART_HW_Uart1_DisableRawRecv ; (R16)
|
||||
sec
|
||||
ret
|
||||
flashRawWaitForValidMsg_error:
|
||||
ioRawWaitForValidMsg_error:
|
||||
rcall UART_HW_Uart1_DisableRawRecv ; (R16)
|
||||
clc
|
||||
ret
|
||||
|
||||
Reference in New Issue
Block a user