avr/t03: more tests.

This commit is contained in:
Martin Preuss
2025-03-22 13:00:35 +01:00
parent 0f598a5552
commit 8586269033

View File

@@ -171,9 +171,11 @@ main_loop:
rcall BaseTimer_Run rcall BaseTimer_Run
rcall TtyOnUart1_Run rcall TtyOnUart1_Run
rcall ComOnUart0_Run
; check incoming msg ; check incoming msg
rcall checkRecvdMsg rcall checkRecvdMsg
; rcall freeRecvdMsg
rjmp main_loop rjmp main_loop
@@ -205,11 +207,12 @@ onSystemTimerTick:
rcall LedSimple_Every100ms rcall LedSimple_Every100ms
#endif #endif
rcall TtyOnUart1_Periodically rcall TtyOnUart1_Periodically
rcall sendDebug rcall ComOnUart0_Periodically
rcall maybeSendDeviceMsg ; rcall sendDebug
; rcall maybeSendDeviceMsg
rcall maybeSendTStatsMsg rcall maybeSendTStatsMsg
rcall maybeSendRStatsMsg rcall maybeSendRStatsMsg
rcall maybeSendMStatsMsg ; rcall maybeSendMStatsMsg
ret ret
@@ -386,23 +389,10 @@ maybeSendRStatsMsg:
lds r25, sendRStatsCounter+1 lds r25, sendRStatsCounter+1
sbiw r25:r24, 1 sbiw r25:r24, 1
brne maybeSendRStatsMsg_storeCounter brne maybeSendRStatsMsg_storeCounter
; send device msg
rcall NET_Buffer_Alloc ; (R16, R17, X) rcall sendRStatsForUart0ToUart1
; brcc maybeSendTStatsMsg_resetCounter rcall sendRStatsForUart1ToUart1
brcc maybeSendRStatsMsg_end
push r16
push yl
push yh
ldi yl, LOW(comOnUart0_iface)
ldi yh, HIGH(comOnUart0_iface)
adiw xh:xl, 1
rcall NETMSG_RecvStats_Write ; (R16, R17, R18, R19, R20, R21, Z)
sbiw xh:xl, 1
pop yh
pop yl
pop r16
rcall NET_Interface_AddOrReleaseOutMsg ; (R16, R17, R18, X)
brcc maybeSendRStatsMsg_end
; reset counter ; reset counter
maybeSendRStatsMsg_resetCounter: maybeSendRStatsMsg_resetCounter:
ldi r24, LOW(SEND_STATS_EVERY) ldi r24, LOW(SEND_STATS_EVERY)
@@ -415,6 +405,50 @@ maybeSendRStatsMsg_end:
sendRStatsForUart0ToUart1:
push yl
push yh
; send device msg
rcall NET_Buffer_Alloc ; (R16, R17, X)
brcc sendRStatsForUart0ToUart1_end
push r16
ldi yl, LOW(comOnUart0_iface)
ldi yh, HIGH(comOnUart0_iface)
adiw xh:xl, 1
rcall NETMSG_RecvStats_Write ; (R16, R17, R18, R19, R20, R21, Z)
sbiw xh:xl, 1
pop r16
ldi yl, LOW(ttyOnUart1_iface)
ldi yh, HIGH(ttyOnUart1_iface)
rcall NET_Interface_AddOrReleaseOutMsg ; (R16, R17, R18, X)
sendRStatsForUart0ToUart1_end:
pop yh
pop yl
ret
sendRStatsForUart1ToUart1:
push yl
push yh
ldi yl, LOW(ttyOnUart1_iface)
ldi yh, HIGH(ttyOnUart1_iface)
; send device msg
rcall NET_Buffer_Alloc ; (R16, R17, X)
brcc sendRStatsForUart1ToUart1_end
push r16
adiw xh:xl, 1
rcall NETMSG_RecvStats_Write ; (R16, R17, R18, R19, R20, R21, Z)
sbiw xh:xl, 1
pop r16
rcall NET_Interface_AddOrReleaseOutMsg ; (R16, R17, R18, X)
sendRStatsForUart1ToUart1_end:
pop yh
pop yl
ret
maybeSendMStatsMsg: maybeSendMStatsMsg:
ldi yl, LOW(ttyOnUart1_iface) ldi yl, LOW(ttyOnUart1_iface)
ldi yh, HIGH(ttyOnUart1_iface) ldi yh, HIGH(ttyOnUart1_iface)
@@ -464,7 +498,8 @@ checkRecvdMsg_sendMsg:
sbiw xh:xl, 1 sbiw xh:xl, 1
ld r17, X ld r17, X
andi r17, (NET_IFACE_BUFFER_IFACENUM1_BIT | NET_IFACE_BUFFER_IFACENUM0_BIT) andi r17, (NET_IFACE_BUFFER_IFACENUM1_BIT | NET_IFACE_BUFFER_IFACENUM0_BIT)
rcall reverseInterfaceNum ; rcall reverseInterfaceNum
ldi r17, TTYONUART1_IFACENUM ; DEBUG: send everything to uart1 to test that code first
rcall addMsgToInterface rcall addMsgToInterface
brcc checkRecvdMsg_end ; could not add, jmp brcc checkRecvdMsg_end ; could not add, jmp
rcall NET_GetNextIncomingMsgNum ; take off the queue rcall NET_GetNextIncomingMsgNum ; take off the queue
@@ -474,6 +509,15 @@ checkRecvdMsg_end:
freeRecvdMsg:
rcall NET_GetNextIncomingMsgNum ; take off the queue
brcc freeRecvdMsg_end
rcall NET_Buffer_ReleaseByNum ; delete
freeRecvdMsg_end:
ret
; @return r17 reversed interface number ; @return r17 reversed interface number
; @param r17 buffer num ; @param r17 buffer num
; @clobbers r17 ; @clobbers r17