Changes

Jump to navigation Jump to search
283 bytes added ,  07:13, 8 June 2019
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.
35

edits

Navigation menu