What I really want is fast digital i/o (on a Seeeduino Wio Terminal, ATSAMD51); the 9 usec it takes standard Circuitpython code is far too slow for my application. So it would be great to have a ptr32 kind of function out of the box. That doesn't appear to be the case (I can't find it in any documentation, though someone seemed to be working on memory access about a year ago), so I'd like to see what I can do in the Circuitpython source to enable existing Micropython code or to write my own limited functions.
I've followed the directions on https://learn.adafruit.com/building-cir ... cuitpython to set up an environment on Ubuntu 20.04LTS (upgraded from 19.04LTS--https://xkcd.com/349/), and have gotten as far as building Circuitypython. However, the two boards I've tried to make (Wio Terminal and Circuit Playground Express) have both failed during the make at the same point:
parallels@parallels-Parallels-Virtual-Platform:~/circuitpython/ports/atmel-samd$ make BOARD=circuitplayground_express V=1
GEN build-circuitplayground_express/genhdr/mpversion.h
GEN build-circuitplayground_express/genhdr/moduledefs.h
GEN autogen_usb_descriptor.intermediate
GEN build-circuitplayground_express/genhdr/qstr.split
GEN build-circuitplayground_express/genhdr/qstrdefs.collected.h
QSTR updated
GEN build-circuitplayground_express/genhdr/qstrdefs.preprocessed.h
GEN build-circuitplayground_express/genhdr/qstrdefs.enum.h
CC ../../py/mpstate.c
CC ../../py/nlr.c
CC ../../py/nlrx86.c
CC ../../py/nlrx64.c
CC ../../py/nlrthumb.c
CC ../../py/nlrxtensa.c
CC ../../py/nlrsetjmp.c
CC ../../py/malloc.c
CC ../../py/gc.c
CC ../../py/gc_long_lived.c
CC ../../py/pystack.c
GEN build-circuitplayground_express/genhdr/qstrdefs.generated.h
CC ../../py/qstr.c
CC ../../py/vstr.c
CC ../../py/mpprint.c
CC ../../py/unicode.c
CC ../../py/mpz.c
CC ../../py/reader.c
CC ../../py/lexer.c
CC ../../py/parse.c
CC ../../py/scope.c
CC ../../py/compile.c
CC ../../py/emitcommon.c
CC ../../py/emitbc.c
CC ../../py/asmbase.c
CC ../../py/asmx64.c
CC ../../py/emitnx64.c
CC ../../py/asmx86.c
CC ../../py/emitnx86.c
CC ../../py/asmthumb.c
CC ../../py/emitnthumb.c
CC ../../py/emitinlinethumb.c
CC ../../py/asmarm.c
CC ../../py/emitnarm.c
CC ../../py/asmxtensa.c
CC ../../py/emitnxtensa.c
CC ../../py/emitinlinextensa.c
CC ../../py/formatfloat.c
CC ../../py/parsenumbase.c
CC ../../py/parsenum.c
CC ../../py/emitglue.c
CC ../../py/persistentcode.c
CC ../../py/runtime.c
CC ../../py/runtime_utils.c
CC ../../py/scheduler.c
CC ../../py/nativeglue.c
CC ../../py/stackctrl.c
CC ../../py/argcheck.c
CC ../../py/warning.c
CC ../../py/map.c
CC ../../py/enum.c
CC ../../py/obj.c
CC ../../py/objarray.c
CC ../../py/objattrtuple.c
CC ../../py/objbool.c
CC ../../py/objboundmeth.c
CC ../../py/objcell.c
CC ../../py/objclosure.c
CC ../../py/objcomplex.c
CC ../../py/objdeque.c
CC ../../py/objdict.c
CC ../../py/objenumerate.c
CC ../../py/objexcept.c
CC ../../py/objfilter.c
CC ../../py/objfloat.c
CC ../../py/objfun.c
CC ../../py/objgenerator.c
CC ../../py/objgetitemiter.c
CC ../../py/objint.c
CC ../../py/objint_longlong.c
CC ../../py/objint_mpz.c
CC ../../py/objlist.c
CC ../../py/objmap.c
CC ../../py/objmodule.c
CC ../../py/objobject.c
CC ../../py/objpolyiter.c
CC ../../py/objproperty.c
CC ../../py/objnone.c
CC ../../py/objnamedtuple.c
CC ../../py/objrange.c
CC ../../py/objreversed.c
CC ../../py/objset.c
CC ../../py/objsingleton.c
CC ../../py/objslice.c
CC ../../py/objstr.c
CC ../../py/objstrunicode.c
CC ../../py/objstringio.c
CC ../../py/objtuple.c
CC ../../py/objtype.c
CC ../../py/objzip.c
CC ../../py/opmethods.c
CC ../../py/proto.c
CC ../../py/reload.c
CC ../../py/sequence.c
CC ../../py/stream.c
CC ../../py/binary.c
CC ../../py/builtinimport.c
CC ../../py/builtinevex.c
CC ../../py/builtinhelp.c
CC ../../py/modarray.c
CC ../../py/modbuiltins.c
CC ../../py/modcollections.c
CC ../../py/modgc.c
CC ../../py/modio.c
CC ../../py/modmath.c
CC ../../py/modcmath.c
CC ../../py/modmicropython.c
CC ../../py/modstruct.c
CC ../../py/modsys.c
CC ../../py/moduerrno.c
CC ../../py/modthread.c
CC ../../py/vm.c
CC ../../py/bc.c
CC ../../py/showbc.c
CC ../../py/repl.c
CC ../../py/smallint.c
CC ../../py/frozenmod.c
CC ../../py/ringbuf.c
CC ../../extmod/moductypes.c
CC ../../extmod/modujson.c
CC ../../extmod/modure.c
CC ../../extmod/moduzlib.c
CC ../../extmod/moduheapq.c
CC ../../extmod/modutimeq.c
CC ../../extmod/moduhashlib.c
CC ../../extmod/modubinascii.c
CC ../../extmod/virtpin.c
CC ../../extmod/modussl_axtls.c
CC ../../extmod/modussl_mbedtls.c
CC ../../extmod/modurandom.c
CC ../../extmod/moduselect.c
CC ../../extmod/modwebsocket.c
CC ../../extmod/modwebrepl.c
CC ../../extmod/modframebuf.c
CC ../../extmod/vfs.c
CC ../../extmod/vfs_reader.c
CC ../../extmod/vfs_posix.c
CC ../../extmod/vfs_posix_file.c
CC ../../extmod/vfs_fat.c
CC ../../extmod/vfs_fat_diskio.c
CC ../../extmod/vfs_fat_file.c
CC ../../extmod/utime_mphal.c
CC ../../extmod/uos_dupterm.c
CC ../../lib/embed/abort_.c
CC ../../lib/utils/printf.c
FREEZE ../../frozen/Adafruit_CircuitPython_CircuitPlayground ../../frozen/Adafruit_CircuitPython_HID ../../frozen/Adafruit_CircuitPython_LIS3DH ../../frozen/Adafruit_CircuitPython_NeoPixel ../../frozen/Adafruit_CircuitPython_Thermistor
Creating build-circuitplayground_express/frozen_mpy.c
CC build-circuitplayground_express/frozen_mpy.c
CC ../../main.c
CC supervisor/port.c
CC ../../supervisor/shared/autoreload.c
CC ../../supervisor/shared/background_callback.c
CC ../../supervisor/shared/board.c
CC ../../supervisor/shared/filesystem.c
CC ../../supervisor/shared/flash.c
CC ../../supervisor/shared/micropython.c
CC ../../supervisor/shared/rgb_led_status.c
CC ../../supervisor/shared/safe_mode.c
CC ../../supervisor/shared/stack.c
CC ../../supervisor/shared/status_leds.c
CC ../../supervisor/shared/tick.c
CC ../../supervisor/shared/translate.c
GEN build-circuitplayground_express/genhdr/devices.h
Traceback (most recent call last):
File "../../tools/gen_nvm_devices.py", line 23, in <module>
typer.run(main)
File "/home/parallels/.local/lib/python3.8/site-packages/typer/main.py", line 859, in run
app()
File "/home/parallels/.local/lib/python3.8/site-packages/typer/main.py", line 214, in __call__
return get_command(self)(*args, **kwargs)
File "/home/parallels/.local/lib/python3.8/site-packages/typer/main.py", line 239, in get_command
click_command = get_command_from_info(typer_instance.registered_commands[0])
File "/home/parallels/.local/lib/python3.8/site-packages/typer/main.py", line 425, in get_command_from_info
command = cls( # type: ignore
TypeError: __init__() got an unexpected keyword argument 'no_args_is_help'
make: *** [../../supervisor/supervisor.mk:55: build-circuitplayground_express/genhdr/devices.h] Error 1
"which arm..." gives the right results, and I did manually add ~/.local/bin to the PATH.
Also did a clean and make again, with same results.
Are there any good next steps? (Is this the right forum to ask?)
Thanks!