I want to extend my application with a second core. I can't flash any code onto the second core. Only the first core gets updated when debugging.
First I tried creating a simple 3-core LED blink project and it worked fine (I had problems with uploading the code to the cores, but finally I found a workaround: I created a launch group with all the cores, and this way managed to flash code to all cores simultaneously).
I went on to the next step: I imported an example from NXP (the one that uses the LWIP stack, it is a single-core application), renamed it, and then tried to add a new project that has code for the Z2_2 core. This was impossible - you can't create a new project ONLY for the Z2_2 core. So, I created a regular project with 3 cores, and then created a debug launch group for 3 cores combining the NXP example and the new core in this way:
- Z4_0 uses the LWIP .elf from the NXP example
- Z4_1 uses the newly created code for the second core (Z4_1.elf)
- Z2_2 uses the newly created code for the third core (Z2_2.elf)
Then I tried debugging the launch group.
Unfortunately, this setup doesn't work - the debugger shows that Z4_1 and Z2_2 cores are "Running: User Request", but the code from these cores is not being executed - breakpoints set in main.c on the Z2_2 are never called, the pins are never initialized. The code for the first core runs fine - the application programed on the first core works. No errors are being shown. The other cores simply don't get flashed.
How to program the second and third core?
(I am using freeRTOS on all of the cores. Each core uses 256kB of SRAM, and the memory is correctly mapped in linker.flash for each core. The OpenSDA debugger can be only set to Z4_0, the other cores have their choice of debugger grayed out. By debugging, in the brackets, PE micro debugger is set. Using the same setup for RUN launch group results in the same behavior).

lwip example on Z4_0, simple led blinking code on Z2_2