Bootloader and application code imlepentation
Hello,
I work on a project where I implemented a bootloader and an application code. The bootloader program was written in Keil environment (K), and tha application code was written in System Workbench for STM32 environment (S).
I work with STM32F407 controller and the memory organization that I set is the folowing:
-starting address of bootloader vector table is 0x08000000, after that following the program
-starting address of application vector table is 0x08008000, after that following the program
I set the application vector table in the SCB->VTOR to 0x08008000, and in the linker set the loading address to same.
MEMORY
{
FLASH (rx) : ORIGIN = 0x8008000, LENGTH = 992K
RAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
CCMRAM (rw) : ORIGIN = 0x10000000, LENGTH = 64K
}
I read that with these settings the program should work correctly, but if I built it and programmed both bootloader and application code to the right address, the bootloader program crashes. It didn’t find the application code.
I wrote a little test application code in K and if built it and programmed it in to the application area the bootloader knew it and jumped to the application code.
So I think that the problem comming from the S environment binary file generation, or bad settings of the linker script. Can You help me where I took the mistake? The project deadline comming soon and I need the solution as fast as possible.
Please help me to get the error together.
Kind regards,
Szabolcs