Hi,
I'm using Keil v4 along with Cortex M4 (in this casa Freescal's K40) I have to create a project that will be linked and executed at address grater than 0 (0x400 to be exact).
It will help if I will be able to compile and build the Blinky sample at an address > 0. Simply changing the address in the TARGET page will result in a non functioning project (it will abort as soon as it will be executed on the target)
Thanks, Eitan.
The start address of programs depends on the underlying hardware. In your case, you probably need a bootloader that will jump to the desired address.
The point of this is to create a boot loader (Keil + Freescale K40). The target will be loaded with the boot loader which in turn will get data from a UART channel and update the flash with the main application, the last thing it will do is to jump to the application address and execute it.
as an early step I'm simply attempting to use Keil to flash a program at any address other then 0 , and then using the debugger jump to this address and execute it.
I guess that this is not that simple, it's not working.
It is working. But what have you done to make sure that you get your interrupt vector table mapped so that the processor can use it?
I guess this is main question, how can I remap the vector table to a different address?
how can I remap the vector table to a different address?
If you can't figure that on your own, using only the data sheets and other applicable documents, maybe you shouldn't be trying to write a bootloader.
You sound like a man with a charming personality :) Does anyone here have an example of how to relocate the interrupt vector table - Keil , Freescale K60?
Several examples have been posted on this forum, for specific processors.
void execute_user_code(void) { // remap interrupt vectors NVIC_SetVectorTable(NVIC_VectTab_FLASH, MAIN_BOOT_START_SECTOR); jump_to_application() ; }
Should work for you, if your into CMSIS.
<quote>Should work for you, if your into CMSIS.</quote>
Tapeer,
you're
Zeusti.