reduce size of net buffers from 32 to 28.
allows us to use 10 buffers in R05.
This commit is contained in:
@@ -75,10 +75,7 @@
|
||||
#define APPS_ROUTER
|
||||
|
||||
|
||||
.equ NET_BUFFERS_NUM = 8
|
||||
|
||||
.equ UART_HW_MSGNUMINBUF_SIZE = 8
|
||||
.equ UART_HW_MSGNUMOUTBUF_SIZE = 8
|
||||
.equ NET_BUFFERS_NUM = 10
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -124,6 +124,8 @@ NET_Buffer_ReleaseByNum_end:
|
||||
NET_Buffer_Locate:
|
||||
cpi r16, NET_BUFFERS_NUM
|
||||
brcc NET_Buffer_Locate_end ; out of range
|
||||
|
||||
.if NET_BUFFERS_SIZE == 32
|
||||
mov xh, r16 ; * 256
|
||||
clr xl
|
||||
lsr xh ; *128
|
||||
@@ -132,10 +134,31 @@ NET_Buffer_Locate:
|
||||
ror xl
|
||||
lsr xh ; *32
|
||||
ror xl
|
||||
.elif NET_BUFFERS_SIZE == 28
|
||||
clr r17
|
||||
mov xl, r16 ; * 256
|
||||
clr xh
|
||||
lsl xl ; * 2
|
||||
rol xh
|
||||
add xl, r16 ; * 3
|
||||
adc xh, r17
|
||||
lsl xl ; * 6
|
||||
rol xh
|
||||
add xl, r16 ; * 7
|
||||
adc xh, r17
|
||||
lsl xl ; * 14
|
||||
rol xh
|
||||
lsl xl ; * 28
|
||||
rol xh
|
||||
.else
|
||||
.error "Unhandled buffer size"
|
||||
.endif
|
||||
|
||||
ldi r17, LOW(netBuffers)
|
||||
add xl, r17
|
||||
ldi r17, HIGH(netBuffers)
|
||||
adc xh, r17
|
||||
|
||||
sec
|
||||
NET_Buffer_Locate_end:
|
||||
ret
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
|
||||
; defs
|
||||
|
||||
.equ NET_BUFFERS_SIZE = 32 ; CAVE: need to adapt routine NET_Buffer_Locate when changing this value!!
|
||||
.equ NET_BUFFERS_SIZE = 28 ; CAVE: need to adapt routine NET_Buffer_Locate when changing this value!!
|
||||
|
||||
.equ NET_MSGNUMINBUF_SIZE = 6 ; max buffer nums in ringbuffer (global incoming)
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ comOnUart0StartReading:
|
||||
adiw xh:xl, UART_HW2_IFACE_OFFS_BUFFER
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFPOS_LOW, xl
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFPOS_HIGH, xh
|
||||
ldi r16, UART_HW2_BUFFER_SIZE-1
|
||||
ldi r16, UART_HW2_BUFFER_SIZE
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFLEFT, r16
|
||||
clr r16
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFUSED, r16
|
||||
@@ -650,8 +650,11 @@ comOnUart0RxCharIsr:
|
||||
brne comOnUart0RxCharIsr_end
|
||||
; determine msg size
|
||||
inc r16 ; last byte was payload length, add byte for crc
|
||||
cp r16, r17 ; compare remaining length against remaining space
|
||||
brcc comOnUart0RxCharIsr_emsgsize ; msg too long
|
||||
; cp r16, r17 ; compare remaining length against remaining space
|
||||
; brcc comOnUart0RxCharIsr_emsgsize ; msg too long
|
||||
cp r17, r16 ; compare remaining length against remaining space
|
||||
brcs comOnUart0RxCharIsr_emsgsize ; msg too long
|
||||
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFLEFT, r16 ; set new number of bytes left
|
||||
tst r16
|
||||
brne comOnUart0RxCharIsr_end ; jmp if still bytes left to receive
|
||||
|
||||
@@ -132,7 +132,7 @@ comOnUart1StartReading:
|
||||
adiw xh:xl, UART_HW2_IFACE_OFFS_BUFFER
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFPOS_LOW, xl
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFPOS_HIGH, xh
|
||||
ldi r16, UART_HW2_BUFFER_SIZE-1
|
||||
ldi r16, UART_HW2_BUFFER_SIZE
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFLEFT, r16
|
||||
clr r16
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFUSED, r16
|
||||
@@ -650,8 +650,10 @@ comOnUart1RxCharIsr:
|
||||
brne comOnUart1RxCharIsr_end
|
||||
; determine msg size
|
||||
inc r16 ; last byte was payload length, add byte for crc
|
||||
cp r16, r17 ; compare remaining length against remaining space
|
||||
brcc comOnUart1RxCharIsr_emsgsize ; msg too long
|
||||
; cp r16, r17 ; compare remaining length against remaining space
|
||||
; brcc comOnUart1RxCharIsr_emsgsize ; msg too long
|
||||
cp r17, r16 ; compare remaining length against remaining space
|
||||
brcs comOnUart1RxCharIsr_emsgsize ; msg too long
|
||||
std Y+UART_HW2_IFACE_OFFS_BUFLEFT, r16 ; set new number of bytes left
|
||||
tst r16
|
||||
brne comOnUart1RxCharIsr_end ; jmp if still bytes left to receive
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
#define AVR_MODULES_UART_HW2_DEFS_H
|
||||
|
||||
|
||||
.equ UART_HW2_BUFFER_SIZE = NET_BUFFERS_SIZE
|
||||
;.equ UART_HW2_BUFFER_SIZE = NET_BUFFERS_SIZE
|
||||
.equ UART_HW2_BUFFER_SIZE = NET_BUFFERS_SIZE-1
|
||||
|
||||
|
||||
.equ UART_HW2_MODE_IDLE = 0
|
||||
|
||||
Reference in New Issue
Block a user