75 lines
2.0 KiB
NASM
75 lines
2.0 KiB
NASM
; ***************************************************************************
|
|
; copyright : (C) 2025 by Martin Preuss
|
|
; email : martin@libchipcard.de
|
|
;
|
|
; ***************************************************************************
|
|
; * This file is part of the project "AqHome". *
|
|
; * Please see toplevel file COPYING of that project for license details. *
|
|
; ***************************************************************************
|
|
|
|
|
|
; ***************************************************************************
|
|
; code
|
|
|
|
|
|
.cseg
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine flashInitIo
|
|
; Send a message
|
|
;
|
|
; @clobbers r16, r17
|
|
|
|
flashInitIo:
|
|
rjmp UART_HW_Uart1_RawInit ; (R16, R17)
|
|
;@end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine flashRawSendMsg
|
|
; Send a message
|
|
;
|
|
; @clobbers r16, r17, X
|
|
|
|
flashRawSendMsg:
|
|
ldi xl, LOW(flashSendBuffer)
|
|
ldi xh, HIGH(flashSendBuffer)
|
|
rjmp UART_HW_Uart1_RawSendPacket ; (r16, r17, X)
|
|
; @end
|
|
|
|
|
|
|
|
; ---------------------------------------------------------------------------
|
|
; @routine flashRawWaitForValidMsg
|
|
; Wait for valid incoming msg
|
|
;
|
|
; @return CFLAG set if okay (packet received), cleared on error
|
|
; @clobbers: r16, r17, r18 (r19, r22, X)
|
|
|
|
flashRawWaitForValidMsg:
|
|
rcall UART_HW_Uart1_EnableRawRecv ; (R16)
|
|
flashRawWaitForValidMsg_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
|
|
rcall com2CheckMessageInBuffer ; (R16, R17, R18, R19, R20, X)
|
|
brcc flashRawWaitForValidMsg_loop ; invalid msg, try next
|
|
rcall UART_HW_Uart1_DisableRawRecv ; (R16)
|
|
sec
|
|
ret
|
|
flashRawWaitForValidMsg_error:
|
|
rcall UART_HW_Uart1_DisableRawRecv ; (R16)
|
|
clc
|
|
ret
|
|
; @end
|
|
|
|
|
|
|