uint32 APP_START = 0x8438; asm ( move.w #0x2700,sr); // Disable interrupts asm ( MOVE.L (APP_START), A0); asm ( jmp (a0));
asm ( move.w #0x2700,sr); // Disable interrupts asm ( MOVE.L #0x8438, A0); asm ( jmp (a0));
void mcf_exception_handler(void *framepointer) { volatile unsigned long stackFrameVector = (unsigned long)MCF5XXX_RD_SF_VECTOR(&stackFrameWord); switch (stackFrameVector) { case 3: VECTORDISPLAY3(MCF5XXX_EXCEPTFMT, "Address Error", stackFramePC); switch (stackFrameFS) { case 4: VECTORDISPLAY("Error on instruction fetch\n"); break; ... ... ...
}
....
}
VECTOR_TABLE:_VECTOR_TABLE:INITSP: .long ___SP_AFTER_RESET /* 0 (0x000) Initial SP */INITPC: .long _start /* 1 (0x004) Initial PC */// ... ... ...vectorFF: .long _asm_isr_handler /* 255 Reserved */ // CFM Flash Configuration Field KEY_UPPER: .long 0xAAAAAAAA // 4 bytesKEY_LOWER: .long 0xBBBBBBBB // 4 bytesCFMPROT: .int 0xCCCC // 2 bytesCFMSACC: .int 0xDDDD // 2 bytesCFMDACC: .int 0xEEEE // 2 bytesCFMSEC: .int 0xFFFF // 2 bytes // total 16 bytes = 0x10/********************************************************************/// HeaderHEAD_SIGNATURE: .long 0x12351236 // 4 bytesVERSION: .long _DEF_SW_VERSION // 4 bytesN_WORDS: .long 0xAAAAAAAA // 4 bytesCHECKSUM: .long 0xBBBBBBBB // 4 bytesSPARE1: .int 0x1111 // 2 bytesSPARE2: .int 0x2222 // 2 bytesSPARE3: .int 0x3333 // 2 bytesSPARE4: .int 0x5555 // 2 bytes // total 24 bytes = 0x18/********************************************************************/_start: move.w #0x2700,SR jmp _startup .end
uint32 APP_START = 0x8438; asm ( move.w #0x2700,sr); // Disable interrupts asm ( MOVE.L #APP_START, A0); asm ( jmp (a0));Hope this helps