ARM7 Registers: Difference between revisions

Riley (talk | contribs)
mNo edit summary
No edit summary
Line 68: Line 68:


===ARM7_CODE===
===ARM7_CODE===
This is the first code that will be run after execution begins. <code>TwlProcess9</code> uses this to put ARM7 in a loop (TWL), and to set the <code>POSTFLG</code> and branch to more copied code (GBA). This doesn't seem to start execution by itself.
This region is an arm7 bootrom overlay, over the vector table at address 0. Once the ARM7 is taken out of reset by <code>TwlProcess9</code>, the reset vector will be jumped to, beginning execution. <code>TwlProcess9</code> uses this to put ARM7 in a loop (TWL), and to set the <code>POSTFLG</code> and branch to more copied code (GBA). Execution is started by writing <code>0x8001</code> to [[CONFIG11_Registers#CFG11_TWLMODE_0|CFG11_TWLMODE_0]]. Later, this overlay is disabled by the ARM7 via the "biosprot" register (0x04000308).


Reading uninitialized data in this 32-byte region leads to both screens displaying solid green (exception), and the CPU locking up.
Reading uninitialized data in this 32-byte region leads to both screens displaying solid green (exception), and the CPU locking up.