Hello everybody,
As Sree on the following discussion, I have a requirement to test ILLEGAL ADDRESS reset on MC9S08JE128 microcontroller. To do so, I have implemented the routine shown below with no success (MC9S08JE128 microcontroller does not reset):
#pragma CODE_SEG NON_BANKED
static void APP_jumpToIllegalAddr (void) {
PPAGE = 6;
asm STA 0xDA53;
}
Any help on this issue would be more than appreciated. Thanks a lot in advance.
Regards,
已解决! 转到解答。
JE128 seems having no unimplemented locations and thus no addresses, which could trigger illegal address reset on access. JE64 may be used for this test, provided it is real JE64 maskset with only 64k of flash.
JE128 seems having no unimplemented locations and thus no addresses, which could trigger illegal address reset on access. JE64 may be used for this test, provided it is real JE64 maskset with only 64k of flash.
Hi Edward,
Thanks for your time! I thought that by modifying PPAGE register from a routine located on non-banked memory, code might attempt to access a non existant address (0x6D153 in the case of APP_jumpToIllegalAddr() previosuly posted). But I guess MMU just ignores the content of PPAGE and just tries to access non-banked memory address 0xDA53 on PPAGE3, am I right? I also guess STA instruction is just ignored, as a value is attempted to be stored in flash memory.
However, I'm not quite sure I have understood your answer. As I interpret from Figue 4-2 on MC9S08JE128, trying to acess one of those memory addresses located on a 'RESERVED' range would lead to an ILAD reset. However, as there are no 'RESERVED' ranges on Figure 4-1, does this mean all flash memory addresses are accesible?
Regards,
CPU address bus has only 16 lines, so CPU can access only addresses 0 to FFFF. Switching PPAGE just maps different page to addresses 8000..BFFF.
Right. Even if you order JE64 part, you may get be JE128 maskset labeled as JE64, and still no address to trigger illegal address reset.