You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
685 B
Markdown

# Tutorial 02 - Runtime Init
## tl;dr
We extend `cpu.S` to call into Rust code for the first time. There,we zero the [bss] section before
execution is halted with a call to `panic()`. Check out `make qemu` again to see the additional code
run.
## Notable additions
- More sections in linker script:
- `.rodata`, `.data`
- `.bss`
- `_start()`:
- Halt core if core != `core0`.
- `core0` jumps to the `runtime_init()` Rust function.
- `runtime_init()` in `runtime_init.rs`
- Zeros the `.bss` section.
- Calls `kernel_init()`, which calls `panic!()`, which eventually halts `core0` as well.
5 years ago
[bss]: https://en.wikipedia.org/wiki/.bss
## Diff to previous