From 4a6ac015d22473ea930168fc7f4e3754de638925 Mon Sep 17 00:00:00 2001 From: Graeme Winter Date: Fri, 6 Jan 2023 17:55:02 +0000 Subject: [PATCH] Alias registers with sensible names --- interp/interp.py | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/interp/interp.py b/interp/interp.py index 26e2004..6de5877 100644 --- a/interp/interp.py +++ b/interp/interp.py @@ -1,12 +1,26 @@ +# demonstrate driving low level rp2040 functions from Python by +# direct register access - see datasheet at +# https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf +# for details + from machine import mem32 +# base address of SIO +SIO_BASE = 0xD0000000 + +# INTERP0 registers +INTERP0_ACCUM0 = 0xD0000000 + 0x80 +INTERP0_BASE0 = 0xD0000000 + 0x88 +INTERP0_POP_LANE0 = 0xD0000000 + 0x94 +INTERP0_CTRL_LANE0 = 0xD0000000 + 0xAC + # initialise lane 0 on interp: set that we are using all 32 bits -mem32[0xD0000000 | 0xAC] = 0x1F << 10 +mem32[INTERP0_CTRL_LANE0] = 0x1F << 10 # set up 9 x table example - write to accum[0] and base[0] registers -mem32[0xD0000000 | 0x80] = 0 -mem32[0xD0000000 | 0x88] = 9 +mem32[INTERP0_ACCUM0] = 0 +mem32[INTERP0_BASE0] = 9 # read pop register 10 times for j in range(10): - print(mem32[0xD0000000 | 0x94]) \ No newline at end of file + print(mem32[INTERP0_POP_LANE0]) \ No newline at end of file