Home | Forums | What's new | Resources | |
Starting execution on the slave SH2 |
mic - Sep 29, 2008 |
antime | Sep 29, 2008 | |||
After the slave CPU is started, it will wait until it finds the value '2RDY' (0x32524459) at 0x6000240. After that it will continue its init sequence and eventually jump via the vector at 0x6000250 (which is the one you're setting in the SETSINT call). However I don't remember if the master CPU's init sequence or some other part of the firmware does it for you, or if you're supposed to do it yourself. During initialization the slave CPU will store '2RDS' (0x32524453) at 0x6000244, you can use that to check if something has gone wrong (the slave CPU is running from RAM at this point, so it's possible you've written over something you shouldn't have. This bit of the init sequence is found at 0x6000600, for instance.) ETA: The vector table at the start of ROM sets the slave's stack pointer to 0x6002000, and later on the value at location 0x60002ac will become the new stack pointer unless it's zero (according to my notes, this is where the Stack-S value from the IP area is copied after the header's been loaded from disc). If any of these are not good values, things will go very wrong very fast. |