Expand description
§Rust bare metal run-time support for the AMD Zynq 7000 SoCs
Startup code and minimal runtime for the AMD Zynq7000 SoC to write bare metal Rust code. This run-time crate is strongly based on the startup code provided by AMD.
It mostly builds on aarch32-rt.
It activates the fpu-d32 feature on that crate and overrides the _default_start method
to add necessary setup code for the Zynq7000. It re-exports the aarch32-rt crate, including
the attributes macros. The documentation specifies
these in detail.
Some major differences to the startup code provided by AMD:
- No L2 cache initialization is performed.
- MMU table is specified as Rust code.
- Modification to the stack setup code, because a different linker script is used.
Modules§
- mmu
- The overview of translation table memory attributes is described below.
- rt
rtandarm_profile=a - Start-up code for Zynq 7000
- sections
rtandarm_profile=a - Code to get the memory regions from the linker script
- stacks
rtandarm_profile=a - Code for examining linker allocated stacks
Macros§
- restore_
fpu_ context rtandarm_profile=aand (target_abi=eabihforeabi-fpu) andfpu-d32 - This macro expands to code for restoring context on exit from an exception handler. It restores FPU state, assuming 32 DP registers (a ‘D32’ FPU configuration).
- save_
fpu_ context rtandarm_profile=aand (target_abi=eabihforeabi-fpu) andfpu-d32 - This macro expands to code for saving FPU context on entry to an exception handler. It pushes a multiple of eight bytes to preserve AAPCS alignment. It may damage R0-R3.
Structs§
- Frame
rtandarm_profile=a - Arguments stacked on interrupt
Functions§
- _default_
handler rtandarm_profile=a - Our default exception handler.
- mmu_
l1_ table_ mut rtandarm_profile=a - Retrieves a mutable reference to the MMU L1 page table.