src/bare-metal/aps/entry-point.md
Before we can start running Rust code, we need to do some initialization.
{{#include examples/src/entry.S:entry}}
This code is in src/bare-metal/aps/examples/src/entry.S. It's not necessary to
understand this in detail -- the takeaway is that some low-level setup is needed
to meet Rust's expectations of the system.
aarch64-unknown-none target that sets +strict-align to prevent the
compiler from generating unaligned accesses, so it should be fine in this
case, but this is not necessarily the case in general.idmap.S) that
identity maps the first 1 GiB of address space for devices, the next 1 GiB for
DRAM, and another 1 GiB higher up for more devices. This matches the memory
layout that QEMU uses.vbar_el1), which we'll see more about
later.entry.S accordingly.