This commit is contained in:
Pascal Engélibert 2023-10-07 13:33:14 +02:00
commit 865599e059
64 changed files with 6448 additions and 1221 deletions

View file

@ -22,7 +22,11 @@ GSM will be shutting down in France in a few years so if you have an old cellpho
## Install tools
```bash
# Choose one line depending on your distro
sudo pacman -S arm-none-eabi-gcc
sudo apt install gcc-arm-none-eabi
# Install Rust target
rustup target add thumbv6m-none-eabi
```
@ -38,6 +42,12 @@ cargo run --features simulator
cargo build --release --target thumbv6m-none-eabi
```
Read usb:
```bash
cat /dev/serial/by-id/usb-2222_3333-if00
```
## Pins
* D2
@ -102,3 +112,25 @@ ncb1 upz2 tdk3
eow4 lqh5 age6
sfx7 rmj8 ivy9
```
## OS
In case we switch to some more powerful MCU like ESP32.
Using an RTOS would be better than creating a monolithical horror. It would also make it easier to split the software into modular programs and store some programs in different memories (e.g. store kernel in internal flash and user programs in SPI flash).
Rusty embedded RTOS's:
* https://bern-rtos.org/
* does not support Xtensa
* supports Cortex-M
* does not seem to support dynamic programs
* https://www.drone-os.com/
* does not support Xtensa
* supports Cortex-M
* explicitly does not support dynamic programs
Needs:
* Kernel writes user programs to SPI flash (can it be done via chip programming or has it do be done by kernel? then USB, SD, debug probe, UART??)
* Handle hardware-specific work (provide high level interfaces for GPIO, SD, screen, modem, wifi, bluetooth...)
* Dynamic threads