I will first describe my problem. I am doing a remote upgrade of LPC54114. The way I use it is one, the Bootloader program, one APP program, and two programs to download Flash at different addresses.
1) Check if the second part of the code needs to be updated.
2) Go to 4) if no updates are needed.
3) Perform an update operation.
4) Jump to the second part of the code execution.
In this way, I implemented an upgrade to the M4 core. But my changes to the startup file have affected the startup of the M0+ core. Since I need to jump, I changed the file (one is the original file, one is changed by me, I have the label in the annex), the main change is
__Vectors DCD |Image$$ARM_LIB_STACK$$ZI$$Limit| ; Top of Stack
__Vectors DCD __initial_sp ; Top of Stack
Affect the variable to
Extern uint32_t Image$$CORE1_REGION$$Base;
(My understanding of this variable is: the starting address of the M0 core program)
Extern uint32_t Image$$CORE1_REGION$$Length;
(My understanding of this variable is: length of the M0 core program)
The error after compiling is
debug\hello_world_cm4.out: Error: L6218E: Undefined symbol Image$$CORE1_REGION$$Base (referred from hello_world_core0.o).
debug\hello_world_cm4.out: Error: L6218E: Undefined symbol Image$$CORE1_REGION$$Length (referred from hello_world_core0.o).
Can I solve this problem by making changes to the startup file or other methods? Or my upgrade ideas need to be changed?
Does anyone have time to help me see it? Lpc54114 dual-core upgrade, I did not see someone doing it online, I have some problems. Thank you.