Dear community,
I am trying to get the IPCF examples for the S32K358 (bare metal or FreeRTOS) running but debugging of both cores runs into HardFault during initialization after calling ipc_queue_push. The console states the following:
core0:
MemManage: The processor attempted a load or store at a location that does not permit the operation.
Possible MemManage fault location: 0x2047F0DC.
HardFault: A fault has been escalated to a hard fault.
core2:
MemManage: The processor attempted a load or store at a location that does not permit the operation.
Possible MemManage fault location: 0x2042F0DC.
HardFault: A fault has been escalated to a hard fault.
The possible fault location seems to be somewhere in the configured remote_shm_addr range (IPCF_SHAREMEM_c0 and IPCF_SHAREMEM_c2 in the linker file).
I am just trying to get the example project running, there have been no changes done to the configuration and the error occurs in both, bare metal and FreeRTOS examples. Could you please help me out?
Solved! Go to Solution.
Hello @Iota,
If you enable MPU then you have to set those area memory is "Local RW access, remote R access"
If you disable MPU then your program can run normally.
Best regards,
Dan
Stack core2
Hello @Iota,
what is the IPCF package you are using?
Could you send me your example?
Best regards,
Dan
Hello @nxf78987,
The version is SW32K3 IPCF 4.0.0 D2306; Version: 4.0.0; Build id: 202306301110.
I remember having a problem while building with the IPC_SHM_VENDOR_ID_C of the generated ipcf_Ip_Cfg which was 40 and didn't match the 43 of other files.
Please find the example attached.
Best regards,
Julius
Hello @Iota,
If you enable MPU then you have to set those area memory is "Local RW access, remote R access"
If you disable MPU then your program can run normally.
Best regards,
Dan
Hello @nxf78987,
thanks for the hint, I will give the first one a try.
However, for the second one, if you refer to the setting "Platform -> GeneralConfiguration -> Platform Enable MPU M7 Support", this box is unchecked in both IPCF examples and a MPU component is not used. But still the program could not run normally. Or do you refer to another setting that I am not aware of?
Thank you and best regards,
Julius
Hello @Iota,
You can right-click on the name of the project and select "Properties". After that, you can see the compiler option "MPU_ENABLE" in the below image. You can remove it or change it to "MPU_DISABLE".
Best regards,
Dan