diff options
| -rw-r--r-- | tests/ports/rp2/rp2_dma.py | 22 | ||||
| -rw-r--r-- | tests/ports/rp2/rp2_dma.py.exp | 19 |
2 files changed, 36 insertions, 5 deletions
diff --git a/tests/ports/rp2/rp2_dma.py b/tests/ports/rp2/rp2_dma.py index 2459213f4..62ec1dcf2 100644 --- a/tests/ports/rp2/rp2_dma.py +++ b/tests/ports/rp2/rp2_dma.py @@ -1,21 +1,36 @@ # Test rp2.DMA functionality. +import sys import time import machine import rp2 +is_rp2350 = "RP2350" in sys.implementation._machine + src = bytes(i & 0xFF for i in range(16 * 1024)) print("# test basic usage") dma = rp2.DMA() + +# Test printing. print(dma) -print(rp2.DMA.unpack_ctrl(dma.pack_ctrl())) + +# Test pack_ctrl/unpack_ctrl. +ctrl_dict = rp2.DMA.unpack_ctrl(dma.pack_ctrl()) +if is_rp2350: + for entry in ("inc_read_rev", "inc_write_rev"): + assert entry in ctrl_dict + del ctrl_dict[entry] +for key, value in sorted(ctrl_dict.items()): + print(key, value) + +# Test register access. dma.read = 0 dma.write = 0 dma.count = 0 dma.ctrl = dma.pack_ctrl() -print(dma.read, dma.write, dma.count, dma.ctrl & 0x01FFFFFF, dma.channel, dma.registers) +print(dma.read, dma.write, dma.count, dma.ctrl & 0x01F, dma.channel, dma.registers) dma.close() # Test closing when already closed. @@ -62,7 +77,8 @@ dma.write = dest dma.count = len(dest) // 4 dma.ctrl = dma.pack_ctrl() dt = run_and_time_dma(dma) -print(70 <= dt <= 110) +expected_dt_range = range(40, 70) if is_rp2350 else range(70, 125) +print(dt in expected_dt_range) print(dest[:8], dest[-8:]) dma.close() diff --git a/tests/ports/rp2/rp2_dma.py.exp b/tests/ports/rp2/rp2_dma.py.exp index 79f17626a..6fad5429b 100644 --- a/tests/ports/rp2/rp2_dma.py.exp +++ b/tests/ports/rp2/rp2_dma.py.exp @@ -1,7 +1,22 @@ # test basic usage DMA(0) -{'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} -0 0 0 4161593 0 <memoryview> +ahb_err 0 +bswap 0 +busy 0 +chain_to 0 +enable 1 +high_pri 0 +inc_read 1 +inc_write 1 +irq_quiet 1 +read_err 0 +ring_sel 0 +ring_size 0 +size 2 +sniff_en 0 +treq_sel 63 +write_err 0 +0 0 0 25 0 <memoryview> ValueError # test memory copy True |
