Closed robyoung closed 3 years ago
One thing not addressed is the memory.x
file. I'm not sure how that works.
One thing not addressed is the
memory.x
file. I'm not sure how that works.
Don't worry about this for now. Only some numbers change.
Build succeeded:
Relates to #27 and #41
Add support for micro:bit v2
This change is a major rewrite. The crate is split into a multi-crate workspace organised in a similar way to nrf-rs/nrf-hal.
microbit-common
almost all the code, feature flagged for the different major board versions (V1 and V2).microbit
the V1 board support cratemicrobit-v2
the V2 board support cratextask
cargo xtask crate for running CI accross the different versions.examples/*
the examples now need to be crates as they may support both versionsCode changes to support micro:bit V2
Add features
v1
andv2
. Originally they weremicrobit-v1
andmicrobit-v2
, however having the feature name the same as the crate name requires the namespaced-features cargo feature which basically restricts us to nightly.Add micro:bit v2 support to display module
This was hard and I am not super happy with the solution. It is much more bit twiddling than I am comfortable with.
The issue that made it so difficult is that on the microbit v2 the column pins are on the P0 and P1 ports so all the row wise writes have to be split across the two ports.
Get microbit v2 led examples working
The code for the nonblocking display is a nightmare. The columns are split between the two GPIO ports so the cols argument to
display_row_leds
needs to be split between the two ports. This is a bit painful but doable. The bit that is really confusing me is that columns 2 and 3 seem to be swapped.CI changes
I have mostly copied CI from nrf-rs/nrf-hal with some minor differences. I didn't like having to list all the examples in the CI so it derives the features and targets required for each example from the cargo manifest. Copying nrf-hal also meant getting the doc tests building as well which is nice. For the docs I've favoured complexity in the source for the sake of docs that are clearer.
Examples changes
The microbit-v2 crate does not yet support serial so I have chosen to favour probe-run and defmt for all the examples except those that are specifically about serial communication (those now just run on the v1 crate). I have not ported over the examples that I could not get working (receivedcf77 and the magnetometer ones). I plan on implementing the magnetometer for both versions in the near future so examples for that will hopefully come back soon.