Tool/software:
SDK version 0806 0902
Board: tda4vm_evm
Hello TI experts,
I currently encountering a problem: I want mcu1_0 to execute on ospi(We do not use DDR),I referenced two projects[sblMcXipEntryApp and k3MulticoreApp(sbl_amp_multicore.c) Running on baremetal] and successfully ran them.
The Two Projects let me know that I need to map the “entry_point” in 0x501c0000 like this:
and the map_file:
I also saw that the system initialization code is indeed at 0x501c0000:
But in fact, we need to run freertos,so I also tried to modify the linker-file of our project and refer to the documentation.
Below are my link file modification points (different from sdk):
I let the data sections, stacks, heaps and globals are in OCMC
The other one runs on ospi(0x501c0000), And I use cmd make it to bin:
gcc-arm-9.2-2019.12-x86_64-aarch64-none-elf/bin/aarch64-none-elf-objcopy vx_app_rtos_linux_mcu1_0.out -O binary --only-section .freertosrstvectors --only-section .text --only-section .rodata vx_app_rtos_linux_mcu1_0.bin
And flash vx_app_rtos_linux_mcu1_0.bin at 0x1c0000(ospi flash),But mcu1_0 Can not boot. Then I looked at the map file, Only the _freertosresetvectors is on 0x501c0000,but the _c_int00 is on 0x501f056c , Therefore, _c_int00 cannot be executed when sblMcXipEntryApp jump to 0x501c0000 -> (((void *)(void))0x501c0000)();
So can TI provide a demo that can fully run the demo with Freertos on opsi (xip)?
I also referred to can_profile_xip demo,But I can't fully understand how it works。I looked at its link file:The entry address of the program is not at 0x501c0000,But at 0x41010000,
when sblMcXipEntryApp jump to 0x501c0000 -> (((void *)(void))0x501c0000)(); how can can_profile_xip running when I flash the can_profile_xip at 0x1c0000 (ospi flash)?
thanks
Eason