-
Notifications
You must be signed in to change notification settings - Fork 9
Home
Jan Niehusmann edited this page Feb 13, 2021
·
11 revisions
- check if built firmware actually works
- update startup code with rp2040 specific functions:
- point VTOR to vector table in flash (instead of the one stored in ROM) (done by stage2 boot loader)
- or even better: copy vector table to RAM, for guaranteed low-latency access
- handle second core in reset code
- check if SDK crt0 / runtime_init contain other important or interesting stuff
- install stack guard (MPU)
- build uf2 firmware package, probably using uf2conv
- check if integration with cortex-m-rt is correct (eg. just providing a different link.x script)
- wrap peripherals with safe abstractions from embedded-hal
- if possible, provide compatibility with probe-rs
- provide easy access to the programmable input/output blocks (PIO)
- document how the second core can be used safely
- cortex_m::interrupt::Mutex is not sufficient on multi-core systems
- RTIC seems to have experimental multi-core support
- maybe use the optimized functions provided in ROM?
- also, the hardware integer divider, https://github.com/raspberrypi/pico-sdk/blob/master/src/rp2_common/hardware_divider/include/hardware/divider.h. Would need replacing intrinsics like __aeabi_idiv
- replace stage-2 boot loader from SDK with a version written in rust
- add picotool compatible binary information