mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-03-23 07:06:19 +02:00
Add first AP slide and mention other projects.
This commit is contained in:
parent
dee3e64442
commit
76ad4b2939
@ -255,10 +255,11 @@
|
||||
|
||||
# Bare Metal Rust: Afternoon
|
||||
|
||||
- [Application processors]()
|
||||
- [Application processors](bare-metal/aps.md)
|
||||
- [MMIO](bare-metal/aps/mmio.md)
|
||||
- [Let's write a UART driver]()
|
||||
- [Logging]()
|
||||
- [Other projects](bare-metal/aps/other-projects.md)
|
||||
- [Useful crates]()
|
||||
- [zerocopy]()
|
||||
- [aarch64_paging]()
|
||||
|
15
src/bare-metal/aps.md
Normal file
15
src/bare-metal/aps.md
Normal file
@ -0,0 +1,15 @@
|
||||
# Application processors
|
||||
|
||||
So far we've talked about microcontrollers, such as the Arm Cortex-M series. Now let's try writing
|
||||
something for Cortex-A. For simplicity we'll just work with QEMU's aarch64
|
||||
['virt'](https://qemu-project.gitlab.io/qemu/system/arm/virt.html) board.
|
||||
|
||||
<details>
|
||||
|
||||
* Broadly speaking, microcontrollers don't have an MMU or multiple levels of privilege (exception
|
||||
levels on Arm CPUs, rings on x86), while application processors do.
|
||||
* QEMU supports emulating various different machines or board models for each architecture. The
|
||||
'virt' board doesn't correspond to any particular real hardware, but is designed purely for
|
||||
virtual machines.
|
||||
|
||||
</details>
|
11
src/bare-metal/aps/other-projects.md
Normal file
11
src/bare-metal/aps/other-projects.md
Normal file
@ -0,0 +1,11 @@
|
||||
# Other projects
|
||||
|
||||
* [oreboot](https://github.com/oreboot/oreboot)
|
||||
* "coreboot without the C"
|
||||
* Supports x86, aarch64 and RISC-V.
|
||||
* Relies on LinuxBoot rather than having many drivers itself.
|
||||
* [Rust RaspberryPi OS tutorial](https://github.com/rust-embedded/rust-raspberrypi-OS-tutorials)
|
||||
* Initialisation, UART driver, simple bootloader, JTAG, exception levels, exception handling, page tables
|
||||
* Not all very well written, so beware.
|
||||
* [`cargo-call-stack`](https://crates.io/crates/cargo-call-stack)
|
||||
* Static analysis to determine maximum stack usage.
|
Loading…
x
Reference in New Issue
Block a user