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
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.
|
|
|
|
[bss]: https://en.wikipedia.org/wiki/.bss
|
|
|
|
## Diff to previous
|