docs and changelog #27

Merged
muellerr merged 1 commits from docs-and-changelog into main 2025-11-28 16:00:58 +01:00
2 changed files with 17 additions and 6 deletions

View File

@@ -10,6 +10,17 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
Bugfixes in startup assembler code.
## Changed
- `.data` initialization is skipped if it is already in place, which is usually the default
case because it is flashed to RAM.
## Fixed
- Stack initialization was bugged and stack was not properly initialized for some of the
processor modes (all modes except system mode and IRQ mode).
- MMU is enabled after the MMU table was copied (which is done in the `.data` coping step).
# [v0.1.1] 2025-10-10
Documentation fixes.

View File

@@ -96,42 +96,42 @@ initialize:
// Set up stacks first.
ldr r3, =_stack_top
// IRQ mode
// Set stack pointer (right after) and mask interrupts for IRQ mode (Mode 0x12)
muellerr marked this conversation as resolved Outdated
Outdated
Review

"for for"

"for for"
msr cpsr_c, {irq_mode}
// IRQ stack pointer
mov sp, r3
ldr r1, =_irq_stack_size
sub r3, r3, r1
// Supervisor mode
// Set stack pointer (right after) and mask interrupts for Supervisor/SVC mode (Mode 0x13)
msr cpsr_c, {svc_mode}
// Supervisor stack pointer
mov sp, r3
ldr r1, =_svc_stack_size
sub r3, r3, r1
// Abort mode
// Set stack pointer (right after) and mask interrupts for Abort/ABT mode (Mode 0x17)
msr cpsr_c, {abt_mode}
// Abort stack pointer
mov sp, r3
ldr r1, =_abt_stack_size
sub r3, r3, r1
// FIQ mode
// Set stack pointer (right after) and mask interrupts for FIQ mode (Mode 0x11)
msr cpsr_c, {fiq_mode}
// FIQ stack pointer
mov sp, r3
ldr r1, =_fiq_stack_size
sub r3, r3, r1
// Undefined mode
// Set stack pointer (right after) and mask interrupts for Undefined/UND mode (Mode 0x1B)
msr cpsr_c, {und_mode}
// Undefined stack pointer
mov sp, r3
ldr r1, =_und_stack_size
sub r3, r3, r1
// System mode
// Set stack pointer (right after) and mask interrupts for System/SYS mode (Mode 0x1F)
msr cpsr_c, {sys_mode}
// System stack pointer (main stack)
mov sp, r3