861fbf6ab5
These files all use decorators (@asm_thumb, @asm_pio) that add names to the function scope, that the linter cannot see. It's useful to clear them in the file not in pyproject.toml as example code will be copied and adapted elsewhere, and those developers may also use Ruff (we hope!) Signed-off-by: Angus Gratton <angus@redyak.com.au>
61 lines
901 B
Python
61 lines
901 B
Python
# ruff: noqa: F821 - @asm_thumb decorator adds names to function scope
|
|
|
|
|
|
@micropython.asm_thumb
|
|
def asm_sum_words(r0, r1):
|
|
# r0 = len
|
|
# r1 = ptr
|
|
# r2 = sum
|
|
# r3 = dummy
|
|
mov(r2, 0)
|
|
|
|
b(loop_entry)
|
|
|
|
label(loop1)
|
|
ldr(r3, [r1, 0])
|
|
add(r2, r2, r3)
|
|
|
|
add(r1, r1, 4)
|
|
sub(r0, r0, 1)
|
|
|
|
label(loop_entry)
|
|
cmp(r0, 0)
|
|
bgt(loop1)
|
|
|
|
mov(r0, r2)
|
|
|
|
|
|
@micropython.asm_thumb
|
|
def asm_sum_bytes(r0, r1):
|
|
# r0 = len
|
|
# r1 = ptr
|
|
# r2 = sum
|
|
# r3 = dummy
|
|
mov(r2, 0)
|
|
|
|
b(loop_entry)
|
|
|
|
label(loop1)
|
|
ldrb(r3, [r1, 0])
|
|
add(r2, r2, r3)
|
|
|
|
add(r1, r1, 1)
|
|
sub(r0, r0, 1)
|
|
|
|
label(loop_entry)
|
|
cmp(r0, 0)
|
|
bgt(loop1)
|
|
|
|
mov(r0, r2)
|
|
|
|
|
|
import array
|
|
|
|
b = array.array("l", (100, 200, 300, 400))
|
|
n = asm_sum_words(len(b), b)
|
|
print(b, n)
|
|
|
|
b = array.array("b", (10, 20, 30, 40, 50, 60, 70, 80))
|
|
n = asm_sum_bytes(len(b), b)
|
|
print(b, n)
|