Hello,
I'm using a MCU with 1x Cortex M0+ and 2x Cortex M7. I use the M0+ and one of the M7 cores. On both cores, M0+ and M7, FreeRTOS is running. My MCU contains an IPC peripheral unit e.g. for communication between M0+ and M7.
In my application I use a touch controller which is connected via I2C on the M7 core. For every touch event an interrupt is generated and the I2C data is queued into a FreeRTOS queue. A separate task is working on the queue, prepares the data and transmits them via IPC to the M0+ core which forwards the data on CAN.
My application is working fine without any issues in both cases, with debugger connected and without debugger.
When I load the T32 FreeRTOS add-on with
TASK.CONFIG "C:\T32\demo\arm\kernel\freertos\freertos.t32"
MENU.ReProgram "C:\T32\demo\arm\kernel\freertos\freertos.men"
and display the FreeRTOS tasks, everything works fine too. But when I generate touch events, then a failure case occurs and the state of the M7 core is "running (core power down)". The M0+ core is running normally.
In state "running (core power down)" I cannot see the memory or peripherals of the M7 core. The fault handlers are enabled in the M7 core. I set up breakpoint in the handlers but they obviously were not called.
I think the FreeRTOS add-on in T32 affects the time behavior of the core. Can you tell me what can cause my issue, which occurs only with the FreeRTOS add-on?
Thanks!
Comments (2)