S32K324 bootloader programming question

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

S32K324 bootloader programming question

1,681 次查看
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 项奖励
回复
7 回复数

894 次查看
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 项奖励
回复

961 次查看
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 项奖励
回复

1,656 次查看
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 项奖励
回复

1,638 次查看
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 项奖励
回复

1,618 次查看
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 项奖励
回复

1,603 次查看
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 项奖励
回复

1,566 次查看
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 项奖励
回复