avr: use common code.

This commit is contained in:
Martin Preuss
2024-09-05 03:18:22 +02:00
parent ea2cd6e58e
commit 817ff958b9
3 changed files with 46 additions and 74 deletions

View File

@@ -27,35 +27,19 @@
; REGS: R3, R4, R16, R17, R18, X (R19, R20, R21)
CPRO_WriteComRecvStats:
ldi r17, COM2_PAYLOAD_FLAGS_UID | (12<<COM2_PAYLOAD_FLAGS_SHIFT_NUM) ; seconds + 12 bytes payload
ldi r17, COM2_PAYLOAD_FLAGS_UID | ((com2RecvStatsEnd-com2RecvStatsBegin)<<COM2_PAYLOAD_FLAGS_SHIFT_NUM) ; uid + payload
ldi r18, CPRO_CMD_COMRECVSTATS
push xh
push xl
rcall COM2_BeginMsgWithVariablePayload ; (R3, R4, R16, R17, R18, R19, R20, R21, X)
lds r16, com2StatsPacketsIn ; packets in
st X+, r16
lds r16, com2StatsPacketsIn+1
st X+, r16
lds r16, com2StatsContentError ; CRC errors
st X+, r16
lds r16, com2StatsContentError+1
st X+, r16
lds r16, com2StatsIoError ; IO errors
st X+, r16
lds r16, com2StatsIoError+1
st X+, r16
lds r16, com2StatsNoBufferError ; no buffer
st X+, r16
lds r16, com2StatsNoBufferError+1
st X+, r16
lds r16, com2StatsHandled
st X+, r16
lds r16, com2StatsHandled+1
st X+, r16
lds r16, com2StatsMissed
st X+, r16
lds r16, com2StatsMissed+1
st X+, r16
rcall COM2_BeginMsgWithVariablePayload ; (R3, R4, R16, R17, R18, R19, R20, R21, X)
push yh
push yl
ldi yh, HIGH(com2RecvStatsBegin)
ldi yl, LOW(com2RecvStatsBegin)
ldi r18, com2RecvStatsEnd-com2RecvStatsBegin
rcall Utils_Copy_SDRAM ; (R17, R18, X, Y)
pop yl
pop yh
pop xl
pop xh
rcall com2CalcAndAddChecksumByte ; (R16, R17, R18, R19, X)