I created a bootloader program and placed it at addresses 0x400000 to 0x420000. Whenever I update the program via serial port, only Core 0 continues to run. How can I enable the other cores to also run?
Hi @zhangyu5454,
You can enable the cores in the startup code. Refer to the startup code (startup_cm7.s) of the default S32DS project.
For example, if CM7_2_ENABLE == 1, the startup code will enable CM7_2 during system startup.
The cores can also be enabled later from the CM7_0 application, either by configuring the relevant registers directly or by using the MCU MCAL driver or the Power_Ip driver. Refer to this example:
BR, Daniel
Thank you for your response. I have tried using Power_Ip, but when the line “Power_Ip_Init(&Power_Ip_HwIPsConfigPB);” appears in the program, the debugging process automatically ends. Moreover, even when I don’t press the reset button, the reset light remains illuminated, resulting in the device not being able to operate at all. When I use IP_MC_ME, the program runs normally, but it doesn’t produce any results. The other components also fail to start. This code snippet seems not to work well for model 388.
Hi @zhangyu5454,
If the MCU goes through a system reset, you need to read the source of the reset.
You can call
Power_Ip_GetResetReason();
at the beginning of main() before
Power_Ip_Init();
Likely root cause is the V15 Switched-mode power supply - it must match the HW design.
BR, Daniel
Hi @zhangyu5454,
What is the reset reason then?
If I had to guess, it would be a POR/LVR.
How is V15 powered on the PCB?
Do you configure Power_Ip accordingly?
Regards,
Daniel
Thank you.