Hi Stanislav
I have two projects, one is bootloader, another is a simple LED application.
bootloader:
boot header:0x00FA0000
flash start 0x01000000, size=1MB
LED app:
boot header:0x00FA4000
flash start 0x01100000, size=2MB
bootloader will wait 10sec then jump to LED app's boot header
My S32 IDE has different format *.ld, merger bootloader doesn't work.
Here is my flash mapping:
1.bootloader
bootloader_flash.ld
MEMORY
{
flash_rchw : org = 0x00FA0000, len = 0x4
cpu0_reset_vec : org = 0x00FA0000+0x10, len = 0x4
cpu1_reset_vec : org = 0x00FA0000+0x14, len = 0x4
cpu2_reset_vec : org = 0x00FA0000+0x04, len = 0x4
m_text : org = 0x1000000, len = 1024K
m_vectors_ram : org = 0x40000000, len = 0xC00
m_data : org = (0x40000000+0xC00), len = 768K-0xC00
}
2.LED application
LED_flash.ld
MEMORY
{
flash_rchw : org = 0x00FA4000, len = 0x4
cpu0_reset_vec : org = 0x00FA4000+0x10, len = 0x4
cpu1_reset_vec : org = 0x00FA4000+0x14, len = 0x4
cpu2_reset_vec : org = 0x00FA4000+0x04, len = 0x4
m_bootloader : org = 0x1000000, len = 1024K
m_text : org = 0x1100000, len = 2048K
m_vectors_ram : org = 0x40000000, len = 0xC00
m_data : org = (0x40000000+0xC00), len = 768K-0xC00
}
SECTIONS
{
.rchw :
{
KEEP(*(.rchw))
} > flash_rchw
.cpu0_reset_vector :
{
KEEP(*(.cpu0_reset_vector))
} > cpu0_reset_vec
.cpu1_reset_vector :
{
KEEP(*(.cpu1_reset_vector))
} > cpu1_reset_vec
.cpu2_reset_vector :
{
KEEP(*(.cpu2_reset_vector))
} > cpu2_reset_vec
.bootloader :
{
KEEP(*(V31_Bootloader_20180716_Z4_0_Z4_0.bin))
} > m_bootloader
I'm sure something missing, because bootloader is not working after memory is flashed.
Any suggestion about it?
Regards,