8000 tests/ports/rp2: Update DMA test to work on RP2350. · holdenweb/micropython@fda7ae8 · GitHub
[go: up one dir, main page]

Skip to content

Commit fda7ae8

Browse files
committed
tests/ports/rp2: Update DMA test to work on RP2350.
Signed-off-by: Damien George <damien@micropython.org>
1 parent f9cebe6 commit fda7ae8

File tree

2 files changed

+36
-5
lines changed

2 files changed

+36
-5
lines changed

tests/ports/rp2/rp2_dma.py

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,36 @@
11
# Test rp2.DMA functionality.
22

3+
import sys
34
import time
45
import machine
56
import rp2
67

8+
is_rp2350 = "RP2350" in sys.implementation._machine
9+
710
src = bytes(i & 0xFF for i in range(16 * 1024))
811

912
print("# test basic usage")
1013

1114
dma = rp2.DMA()
15+
16+
# Test printing.
1217
print(dma)
13-
print(rp2.DMA.unpack_ctrl(dma.pack_ctrl()))
18+
19+
# Test pack_ctrl/unpack_ctrl.
20+
ctrl_dict = rp2.DMA.unpack_ctrl(dma.pack_ctrl())
21+
if is_rp2350:
22+
for entry in ("inc_read_rev", "inc_write_rev"):
23+
assert entry in ctrl_dict
24+
del ctrl_dict[entry]
25+
for key, value in sorted(ctrl_dict.items()):
26+
print(key, value)
27+
28+
# Test register access.
1429
dma.read = 0
1530
dma.write = 0
1631
dma.count = 0
1732
dma.ctrl = dma.pack_ctrl()
18-
print(dma.read, dma.write, dma.count, dma.ctrl & 0x01FFFFFF, dma.channel, dma.registers)
33+
print(dma.read, dma.write, dma.count, dma.ctrl & 0x01F, dma.channel, dma.registers)
1934
dma.close()
2035

2136
# Test closing when already closed.
@@ -62,7 +77,8 @@ def run_and_time_dma(dma):
6277
dma.count = len(dest) // 4
6378
dma.ctrl = dma.pack_ctrl()
6479
dt = run_and_time_dma(dma)
65-
print(70 <= dt <= 110)
80+
expected_dt_range = range(40, 70) if is_rp2350 else range(70, 125)
81+
print(dt in expected_dt_range)
6682
print(dest[:8], dest[-8:])
6783
dma.close()
6884

tests/ports/rp2/rp2_dma.py.exp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
11
# test basic usage
22
DMA(0)
3-
{'inc_read': 1, 'high_pri': 0, 'write_err': 0, 'ring_sel': 0, 'enable': 1, 'treq_sel': 63, 'sniff_en': 0, 'irq_quiet': 1, 'read_err': 0, 'chain_to': 0, 'busy': 0, 'inc_write': 1, 'ring_size': 0, 'bswap': 0, 'size': 2, 'ahb_err': 0}
4-
0 0 0 4161593 0 <memoryview>
3+
ahb_err 0
4+
bswap 0
5+
busy 0
6+
chain_to 0
7+
enable 1
8+
high_pri 0
9+
inc_read 1
10+
inc_write 1
11+
irq_quiet 1
12+
read_err 0
13+
ring_sel 0
14+
ring_size 0
15+
size 2
16+
sniff_en 0
17+
treq_sel 63
18+
write_err 0
19+
0 0 0 25 0 <memoryview>
520
ValueError
621
# test memory copy
722
True

0 commit comments

Comments
 (0)
0