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.
Andre Richter c6e6ccd2a4
Add code for global println lesson
5 years ago
..
.cargo Add code for global println lesson 5 years ago
raspi3_boot Add code for global println lesson 5 years ago
src Add code for global println lesson 5 years ago
Cargo.lock Add code for global println lesson 5 years ago
Cargo.toml Add code for global println lesson 5 years ago
Makefile Add code for global println lesson 5 years ago
README.md Add code for global println lesson 5 years ago
kernel8 Add code for global println lesson 5 years ago
kernel8.img Add code for global println lesson 5 years ago
link.ld Add code for global println lesson 5 years ago

README.md

Tutorial 0E - Global println!

Coming soon!

This lesson will teach about:

  • Restructuring the current codebase.
  • Realizing global println! and print! macros by reusing macros from the Rust standard library.
  • The NullLock, a wrapper that allows using global static variables without explicit need for unsafe {} code. It is a teaching concept that is only valid in single-threaded IRQ-disabled environments. However, it already lays the groundwork for the introduction of proper locking mechanisms, e.g. real Spinlocks.
ferris@box:~$ make raspboot

[0] UART is live!
[1] Press a key to continue booting... Greetings fellow Rustacean!
[2] Switching MMU on now... MMU online.
[i] Memory layout:
      0x00000000 - 0x0007FFFF |  512 KiB | Kernel stack
      0x00080000 - 0x00082FFF |   12 KiB | Kernel code and RO data
      0x00083000 - 0x00085007 |    8 KiB | Kernel data and BSS
      0x3F000000 - 0x3FFFFFFF |   16 MiB | Device MMIO

$>