S32K324 bootloader programming question

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K324 bootloader programming question

1,569 Views
witness
Contributor III

hi, everyone

Now i am working on S32K324 bootloader, and merge core0&core1 .hex file, currently after boot programming, the software can jump to core0 app, but core1 app can not be activated. as we know, if we use debugger, core0 can activate core1, but without debugger, how can I activate core1? I tried to use MultiCore_Enable function in boot before jump to core0 app, but failed.

0 Kudos
Reply
7 Replies

782 Views
JonAnder_Amante
Contributor I

Hi, I am using the project "S32K344_Can_bootloader_RTD200" in the microprocessor S32K344. I want to download an application with the program of bootloader. I have achieved the jump from program to application but I have different questions. 1. I want to use #define EN_DELAY_TIME but when I uncomment the command in the folder "public_in", the program has different errors. My target to use "Backdoor", that is to say, I want to check if the program has to enter to bootloader or not. I don´t know the process and the different functions that I have to use to achieve the target. I want to use the function "Boot_CheckReqBootloaderMode(void)" but when I debug the program, it never enters to the "if". Could you explain me the process and the steps to achieve the target. I add different functions that I think are important. 2. I don´t know if I have to modificate the parameters of "static tJumpAppDelayTimeInfo gs_stJumpAPPDelayTimeInfo = {FALSE, 0u};". I have to change this structure ? You can see all structure in one of the next pictures. I need the reply as soon as possible since I have to send a project very soon. 

 

JonAnder_Amante_0-1713767629061.png

 

 

 

 

 

JonAnder_Amante_1-1713767629063.png

 

 

 

 

 

JonAnder_Amante_2-1713767629065.png

 

 

 

 

 

JonAnder_Amante_3-1713767629069.png

 

 

 

 

 

JonAnder_Amante_4-1713767629068.png

 

 

Thank you for all,

0 Kudos
Reply

849 Views
nishanth_s12
Contributor I

Hello @witness 

please let me know,which RTD version you are using to jump from bootloader to application for core 0.

 

 

0 Kudos
Reply

1,544 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

Hi @witness 

second core can be enabled by Mode Entry module. Take a look at this thread:

https://community.nxp.com/t5/S32K/Enabling-dual-core-in-S32K344-after-OS-startup/m-p/1528620

Regards,

Lukas

0 Kudos
Reply

1,526 Views
witness
Contributor III

hi, @lukaszadrapa 

Thanks for your reply, I have already tried your method, no matter put this in boot(before jump app) or core0 app main, it still doesn't work.

0 Kudos
Reply

1,506 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

I'm sure this works, I tested it in the past. Be aware that the address stored to MC_ME->PRTN0_CORE1_ADDR is an address of vector table. It's not directly the entry point. Maybe that's the problem on your side.

Regards,

Lukas

0 Kudos
Reply

1,491 Views
witness
Contributor III

hi, Lukas

I will describe what I did in detail.

1. background

I am using S32K344 bootloader to flash S32K324(just adjust the memory arrange)

2.Memory segment definition

I put the bootloader memory segment to 0x00400000 - 0x00450000, put the core0 and core1 app into "0x00450000 - 0x004F0000", "0x00500000 - 0x006D4000" respectively.

3. Start_Core1 location

It is at the beginning of the core0 main

witness_3-1693118023220.png

and MC_ME->PRTN0_CORE1_ADDR is an address of vector table, the info .map file as below:

witness_2-1693117981509.png

 

4. Hex file to be flashed

I use hexview tool to merge the core0 and core1 hex file(without padding value)

5. bootloader flash programming result

The software still can only run in core0, and core1 can not run(by monitoring core1 IO output).

any key point I have lost? looking forward to your reply.

0 Kudos
Reply

1,454 Views
lukaszadrapa
NXP TechSupport
NXP TechSupport

What kind of debugger do you use? Did you try to connect to core 1? This would be more helpful than just checking some IO. Maybe the core started but there's another problem later in the code.

If you use S32DS, you can follow:

https://community.nxp.com/t5/S32-Design-Studio/How-attach-to-running-program/m-p/1030375

You can need to select core M7_1 in Pemicro Debugger tab (the screenshots in the thread are slightly different because it's for PowerPC. But the principle is still the same).

And you can also check PRTN0_CORE1_STAT register to see if clocks to the core 1 are running (CCS bit).

Regards,

Lukas

0 Kudos
Reply