21 lines
503 B
ArmAsm
21 lines
503 B
ArmAsm
.cpu arm1176jzf-s
|
|
.section ".text.boot"
|
|
|
|
.global _start
|
|
|
|
_start:
|
|
// 1. Set up the stack pointer
|
|
// The Pi 1 has 512MB RAM (usually), stack grows down from a safe high address.
|
|
// We'll set it to 0x8000 (where the kernel starts) and let it grow down.
|
|
mov sp, #0x8000
|
|
|
|
// 2. Clear BSS (Uninitialized variables) - Skipped for minimal "Stupid" version
|
|
// but good practice usually.
|
|
|
|
// 3. Jump to C code
|
|
bl kernel_main
|
|
|
|
// 4. Halt if main returns
|
|
halt:
|
|
wfe
|
|
b halt |