I'm using an NXP S32K324 (dual core) MCU with Vector AUTOSAR + NXP-MCAL (RTD) + GreenHils Compiler + WinIDEA (IC5000) debugger & IDE.
The controller is started with boot-configuration-word set to 1 [CM7_0 enabled, CM7_1 disabled].
And from the Vector application code, second core (CM7_1) is started.
Per AUTOSAR startup requirements, it is required that CM7_0 waits for CM7_1 to complete booting up before RTE started in CM7_0.
This is partly part of the Vector SW synchronization process during Os_Init().
Here are the SW configuration used:
1. Use a common exception vector table for both cores during startup (which is provided as part of NXP MCAL RTD code). Meaning: VTOR of CM7_0 & CM7_1 would be the same while starting up.
2. When application starts, depending on the core-ID, Os_Init() assigns VTOR of each core with separate vector table base address generted by Vector OS code
For the above project, We have both cores up and running when we are connected over debugger.
But when the ECU is let to run from a Power-on-Reset after disconnecting debugger, it shows the following behavior:
* CM7_0 starts and waits in Vector application code for CM7_1 to complete boot-up
* CM7_1 does not finish boot-up, but remains trapped in a Hardfault (forced-hardfault) exception
When we hot-connect to the S32K324 after Power-on-Reset, have the following observations:
a) It is noticed that the CM7_1 core does not execute any expressions written as part of the main()
b) However, it is noted that the CM7_1 debug shows it is trapped in HardFault exception as part of OS's Interrupt Vector Table
c) VTOR register of CM7_1 has the base address of interrupt-vector-table generated in Vector code for CM7_1
d) But the above behavior observed is in violation of point (a) mentioned above. Because if SW control of CM7_1 does not reach main(), then there is no way for an OS initialization [Os_Init()] to occur & VTOR of CM7_1 to have OS's interrupt-vector-table base address.
Right now, since CM7_1 does not seem to execute the main(), the situation is that it does not let us enable any other fault exceptions to root-cause the issue.
And having the debugger connected does not show the issue.
Is this something that anybody in this forum has experienced?
Any help to root-cause the issue would be helpful.
Thanks !!