reduce size of net buffers from 32 to 28.

allows us to use 10 buffers in R05.
This commit is contained in:
Martin Preuss
2025-07-12 00:21:47 +02:00
parent 003f53b0b7
commit 3cd23d5f60
6 changed files with 38 additions and 12 deletions

View File

@@ -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

View File

@@ -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)