Linker offsets for bootloader -> IRQs do not work any more
Hi,
I have some CubeMX-generated code which works properly. Originally it was created to run from default address 0x08000000.
Now I have a bootloader at address 0x08000000 which is responsible for handling updates and other stuff and then jumps into the target-code, so I moved that code via linker script to 0x08020000. This also works fine, the code works as desired.
In a next step I decided to have some additional information stored in flash prior to the CubeMX generated code to make it easier for the bootloader to manage firmware versions, so I shifted the code by additional 128 bytes and now have the following section in my linker script:
MEMORY
{
FLASH_BOOT (rx) : ORIGIN = 0x08000000, LENGTH = 128K
FLASH (rx) : ORIGIN = 0x08020080, LENGTH = 1024K - 128K - 128
EEPROM_EMUL (xrw) : ORIGIN = 0x080E0000, LENGTH = 128K
DTCMRAM (xrw) : ORIGIN = 0x20000000, LENGTH = 128K
RAM_D1_DMA (xrw) : ORIGIN = 0x24000000, LENGTH = 64K
RAM_D1 (xrw) : ORIGIN = 0x24010000, LENGTH = 320K - LENGTH(RAM_D1_DMA)
RAM_D2 (xrw) : ORIGIN = 0x30000000, LENGTH = 32K
RAM_D3 (xrw) : ORIGIN = 0x38000000, LENGTH = 16K
ITCMRAM (xrw) : ORIGIN = 0x00000000, LENGTH = 64K
}My problem: with the start offset of 0x08020080 my interrupts do not work any more. So what is the problem here? What do I have to do in order to work with an application offset different than 128K?
Thanks!
