Clarify that print_something needs to be called from _start

This commit is contained in:
Philipp Oppermann
2019-05-26 15:58:08 +02:00
parent a8908acecc
commit bd95ade626

View File

@@ -255,7 +255,20 @@ It first creates a new Writer that points to the VGA buffer at `0xb8000`. The sy
[raw pointer]: https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#dereferencing-a-raw-pointer [raw pointer]: https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html#dereferencing-a-raw-pointer
[`unsafe` block]: https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html [`unsafe` block]: https://doc.rust-lang.org/book/ch19-01-unsafe-rust.html
Then it writes the byte `b'H'` to it. The `b` prefix creates a [byte literal], which represents an ASCII character. By writing the strings `"ello "'` and `"Wörld!"`, we test our `write_string` method and the handling of unprintable characters. When we call `vga_buffer::print_something` in our `_start` function (in `src/main.rs`), a `Hello W■■rld!` should be printed in the _lower_ left corner of the screen in yellow: Then it writes the byte `b'H'` to it. The `b` prefix creates a [byte literal], which represents an ASCII character. By writing the strings `"ello "'` and `"Wörld!"`, we test our `write_string` method and the handling of unprintable characters. To see the output, we need to call the `printt_something` function from our `_start` function:
```rust
// in src/main.rs
#[no_mangle]
pub extern "C" fn _start() -> ! {
vga_buffer::print_something();
loop {}
}
```
When we run our project now, a `Hello W■■rld!` should be printed in the _lower_ left corner of the screen in yellow:
[byte literal]: https://doc.rust-lang.org/reference/tokens.html#byte-literals [byte literal]: https://doc.rust-lang.org/reference/tokens.html#byte-literals