S32K388 JumpApp Only runs with core 0 active. 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? S32_SCB->VTOR = 0x00422000; __asm volatile( "msr msp, %0" : : "r"(appStack) : "memory"); ((pFunction)appEntry)(); Re: S32K388 JumpApp Only runs with core 0 active. 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:
https://community.nxp.com/t5/S32K-Knowledge-Base/S32K358-Multicore-Start-CM7-2-from-CM7-0/ta-p/1923889
BR, Daniel
Re: S32K388 JumpApp Only runs with core 0 active. 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. Re: S32K388 JumpApp Only runs with core 0 active. 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.
danielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.pngdanielmartynek_0-1785236184264.png
BR, Daniel
Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 According to your advice, I will implement it in the int main(void) section. Power_Ip_GetResetReason() was called. However, the test results remain unchanged. int main(void) { Power_Ip_GetResetReason(); Power_Ip_Init(&Power_Ip_HwIPsConfigPB); Clock_Ip_Init(&Mcu_aClockConfigPB[0]); Power_Ip_SetMode(&Power_Ip_aModeConfigPB[0]); while (1) { Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 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.
Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Thanks for your reply. I don't know much about these functions. Is there any related example or tutorial files? I tried to follow the S32K358 example but didn't succeed. Regarding the V15 power supply, I found that it is generated from an external 3.3V through a transistor controlled by a microcontroller to make 1.5V, with 1.1V also generated under microcontroller control. I also noticed that my hardware design doesn't have a 32.768 crystal oscillator, and the program gets stuck in Clock_Ip_ExtOsc.c in the loop do { SxoscStatus = ((Clock_Ip_apxXosc[Instance]->STAT & SXOSC_SXOSC_STAT_OSC_STAT_MASK) >> SXOSC_SXOSC_STAT_OSC_STAT_SHIFT); TimeoutOccurred = Clock_Ip_TimeoutExpired(&StartTime, &ElapsedTime, TimeoutTicks); } while ((0U == SxoscStatus) && (FALSE == TimeoutOccurred)); Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454,
I understand that you are using an SMPS on the PCB, so it must be enabled in the Configuration Tool:
danielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.pngdanielmartynek_0-1786525102760.png
danielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.pngdanielmartynek_1-1786525162418.png
Regarding SXOSC, make sure it is disabled:
danielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.pngdanielmartynek_2-1786525202445.png
Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 zhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.pngzhangyu5454_0-1786934052028.png Hello I followed your method to enable V15 and disable SXOSC. However, when debugging reaches the line `IP_PMC->SMPSCONFIG = ConfigValue;`—located within `Power_Ip_PMC_PowerInit`, which is inside `Power_Ip_Init`—the debugging session terminates automatically, and the board's reset indicator LED remains lit with a dim, steady glow. Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hello @zhangyu5454,
What are the values of ConfigValue in these two writes?
IP_PMC->CONFIG = ConfigValue;
IP_PMC->SMPSCONFIG = ConfigValue;
The MCU is resetting due to an incorrect power mode configuration.
Place the following loop at the beginning of main() so that you can debug it after the reset.
volatile uint32_t loop = 1;
while (loop)
{
}
The loop variable can be modified from the debugger to allow execution to continue.
Once the code is halted in the loop, call:
Power_Ip_GetResetReason()
It should return MCU_POWER_ON_RESET.
Also read the Low Voltage Status and Control (LVSC) register to obtain more information about the reset event.
Regards,
Daniel
Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 Hi @zhangyu5454,
I cannot reproduce this issue on my EVB with the config values you shared.
Are you using the XS32K388EVB-Q289? If so, could you please let me know the position of jumper J118?
danielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.pngdanielmartynek_0-1787229063371.png
If you are using a custom board, please share the schematic. If you prefer not to share it here, please create a support ticket and attach the schematic there.
Thank you,
BR, Daniel Re: S32K388 JumpApp Only runs with core 0 active.#S32K388 @Hi @zhangyu5454,
I have difficulties to explain it.
Can you measure V15 and V11 voltage during the Power_Ip initialization using an oscilloscope?
記事全体を表示