guard some changes on network data with CLI.
This commit is contained in:
@@ -205,16 +205,21 @@ NET_Interface_SetIfaceNumInBuffer:
|
|||||||
; @clobbers R16
|
; @clobbers R16
|
||||||
|
|
||||||
NET_Interface_Periodically:
|
NET_Interface_Periodically:
|
||||||
ldd r16, Y+NET_IFACE_OFFS_READTIMER
|
push r15
|
||||||
inc r16
|
in r15, SREG
|
||||||
breq NET_Interface_Periodically_l1
|
cli
|
||||||
std Y+NET_IFACE_OFFS_READTIMER, r16
|
ldd r16, Y+NET_IFACE_OFFS_READTIMER
|
||||||
|
inc r16
|
||||||
|
breq NET_Interface_Periodically_l1
|
||||||
|
std Y+NET_IFACE_OFFS_READTIMER, r16
|
||||||
NET_Interface_Periodically_l1:
|
NET_Interface_Periodically_l1:
|
||||||
ldd r16, Y+NET_IFACE_OFFS_WRITETIMER
|
ldd r16, Y+NET_IFACE_OFFS_WRITETIMER
|
||||||
inc r16
|
inc r16
|
||||||
breq NET_Interface_Periodically_l2
|
breq NET_Interface_Periodically_l2
|
||||||
std Y+NET_IFACE_OFFS_WRITETIMER, r16
|
std Y+NET_IFACE_OFFS_WRITETIMER, r16
|
||||||
NET_Interface_Periodically_l2:
|
NET_Interface_Periodically_l2:
|
||||||
|
out SREG, r15
|
||||||
|
pop r15
|
||||||
ret
|
ret
|
||||||
; @end
|
; @end
|
||||||
|
|
||||||
@@ -227,15 +232,21 @@ NET_Interface_Periodically_l2:
|
|||||||
; @clobbers R16, R17, X
|
; @clobbers R16, R17, X
|
||||||
|
|
||||||
NET_Interface_ResetStats:
|
NET_Interface_ResetStats:
|
||||||
clr r16
|
push r15
|
||||||
std Y+NET_IFACE_OFFS_PACKETSIN_LOW, r16
|
in r15, SREG
|
||||||
|
cli
|
||||||
mov xl, yl
|
clr r16
|
||||||
mov xh, yh
|
std Y+NET_IFACE_OFFS_PACKETSIN_LOW, r16
|
||||||
adiw xh:xl, NET_IFACE_OFFS_PACKETSIN_LOW
|
|
||||||
ldi r17, ((NET_IFACE_OFFS_ERR_BUSY_HIGH+1)-NET_IFACE_OFFS_PACKETSIN_LOW)
|
mov xl, yl
|
||||||
clr r16
|
mov xh, yh
|
||||||
rjmp Utils_FillSram ; (R17, X)
|
adiw xh:xl, NET_IFACE_OFFS_PACKETSIN_LOW
|
||||||
|
ldi r17, ((NET_IFACE_OFFS_ERR_BUSY_HIGH+1)-NET_IFACE_OFFS_PACKETSIN_LOW)
|
||||||
|
clr r16
|
||||||
|
rcall Utils_FillSram ; (R17, X)
|
||||||
|
out SREG, r15
|
||||||
|
pop r15
|
||||||
|
ret
|
||||||
; @end
|
; @end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user