I set in my ncrt0.a30 the vixed vector table to have an interrupt vector entry of my start: address. My output.map file shows this to be: fffe5dc4. I verified in my output.mot file that the address is correct. Here is the last s-record line in my file that contains only that one word:
S309FFFFFFFCC45DFEFFDF
I use the emulator connected to an eval board to download the module (whether I connect with "Erase Flash and Connect" or "Program Flash"). Then I look in the fixed vector table at address 0xFFFFFFFC and I notice the value is 0xFFFF801C instead of 0xFFFE4DC4.
I'm trying to soft reset the processor wtih the following code:
_asm("MOV.l 0FFFFFFFCh, A1"); // Address of reset vector entry
_asm("jsri.l A1"); // Jump to the reset vector entry
That code does exactly what I expect: it jumps to the completely wrong address (0xFFFF801C) and my processor never comes back. Unfortunately I wanted it to soft reset.
Any ideas of
a) how to do a soft reset
b) why this flash address is not programmed as I have specified
You should take some minutes and read about the limitations of E8a.
http://documentation.renesas.com/eng/products/tool/rej10j1877_e8a_r32c111_s.pdf
You would find that E8a uses the reset vector for its firmware. With a reset vector of 0xFFFF801CI think you defined 0xFFFF8000 as firmware start address.
You can only use the RESET button in the E8a emulator to reset a processor controlled by E8a when you are debugging.
(6) Reset
The reset vector is used by the E8a emulator program. If the MCU is reset (hardware reset) while executing the user program, control is transferred to the E8a emulator program and the user program is forced to stop. Do not use the software reset and watchdog timer reset, otherwise the E8a emulator will run out of control.
If the automatic memory update is enabled in the memory or watch window, do not perform a hardware reset to the MCU. Otherwise the E8a emulator will run out of control.
Thanks for the info! This helped.
The code I have above works fine when the debugger is disconnected. When I have the debugger attached I simply put a breakpoint on this code, and then use the emulator to reset the processor. Everything works great.
©2003–2009 Renesas Technology Corp. All rights reserved. Using Our Website | Privacy
Contact us