Files
aqhomecontrol/avr/modules/uart_hw/lowlevel.asm
2025-01-15 00:13:02 +01:00

52 lines
1.5 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. *
; ***************************************************************************
.cseg
; ---------------------------------------------------------------------------
; @routine UART_HW_InitInterface @global
;
; @param Y pointer to interface data in SRAM (see @ref UART_HW_IFACE_OFFS_STATE)
; @param Z pointer to IFACE jump table for the given interface
; @clobbers R16, R17, X
UART_HW_InitInterface:
mov xl, yl
mov xh, yh
ldi r17, UART_HW_IFACE_SIZE
clr r16
rcall Utils_FillSram ; (R17, X)
m_ringbuffer_y_reset UART_HW_IFACE_READBUF_SIZE, \
UART_HW_IFACE_OFFS_RINGBUF_USED, \
UART_HW_IFACE_OFFS_RINGBUF_RDPOS, \
UART_HW_IFACE_OFFS_RINGBUF_WRPOS, \
UART_HW_IFACE_OFFS_RINGBUF_DATA
m_ringbuffer_y_reset UART_HW_IFACE_MSGIDBUF_SIZE, \
UART_HW_IFACE_OFFS_MSGIDBUF_USED, \
UART_HW_IFACE_OFFS_MSGIDBUF_RDPOS, \
UART_HW_IFACE_OFFS_MSGIDBUF_WRPOS, \
UART_HW_IFACE_OFFS_MSGIDBUF_DATA
ldi r16, 0xff
std Y+UART_HW_IFACE_OFFS_READBUFFERNUM, r16
ret
; @end