mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-03-29 09:00:45 +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
|
# Bare Metal Rust: Afternoon
|
||||||
|
|
||||||
- [Application processors]()
|
- [Application processors](bare-metal/aps.md)
|
||||||
- [MMIO](bare-metal/aps/mmio.md)
|
- [MMIO](bare-metal/aps/mmio.md)
|
||||||
- [Let's write a UART driver]()
|
- [Let's write a UART driver]()
|
||||||
- [Logging]()
|
- [Logging]()
|
||||||
|
- [Other projects](bare-metal/aps/other-projects.md)
|
||||||
- [Useful crates]()
|
- [Useful crates]()
|
||||||
- [zerocopy]()
|
- [zerocopy]()
|
||||||
- [aarch64_paging]()
|
- [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