This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

CubeMX, Freertos, SystemAnalyzer & ArmClang

Hi,

i'm using Keil 5.36, CubeMX and touchgfx. At first i tried to use touchgfx with Keil RTX 5 (and in another experiment with freertos 10) installed via Keil run time environment
But somehow cubeMX was not generating all the code necessary and i could not get it working(maybe i will try again with more knowledge) with parts of the code generated by cubeMX and parts coming from the Keil run time environment. Also cubemx did not generate a freertos_evr.h/.c (at least in my project it was missing)

So i switched to the cubeMX freertos & touchgfx generated code. This works fine and i can generate my Keil Project and the cubemx freertos code is working. printf is working via event recorder

Now i'm trying to get the kernel awareness runing with the event recorder to see running tasks.
I'm using the freertos_evr.h/.c from the Keil folder and i use the cmsis-v2 API.

Now i need a freertos-scvd for the cmsis API to show all the thread events. as i'm using cmsis-v2 i thought the RTX5 scvd would be suitable. It works somehow but has not all the information(like not all threads are shown)

Has somebody completed this file? Or what would i have to do?
If my cubemx freertos and keil rtx5 both implement cmsis-v2, why is it not working? the function calls should be the same?


these are the defines i use for my event recorder

#define configEVR_SETUP_LEVEL 1
#define configEVR_INITIALIZE 1

#define traceTASK_NOTIFY_GIVE_FROM_ISR_DISABLE
#define traceTASK_NOTIFY_TAKE_BLOCK_DISABLE
#define traceTASK_NOTIFY_TAKE_DISABLE
#define traceTASK_NOTIFY_WAIT_BLOCK_DISABLE
#define traceTASK_NOTIFY_FROM_ISR_DISABLE
#define traceTASK_NOTIFY_DISABLE
#define traceTASK_NOTIFY_WAIT_DISABLE

#define configEVR_LEVEL_TASKS 0x0F
#define configEVR_LEVEL_QUEUE 0x0f
#define configEVR_LEVEL_TIMERS 0x0f
#define configEVR_LEVEL_EVENTGROUPS 0x0f
#define configEVR_LEVEL_HEAP 0x0f
#define configEVR_LEVEL_STREAMBUFFER 0x0f

#define USE_TRACE_EVENT_RECORDER

i had to disable some of the trace events as there were errors like

freertos_evr.h(708): note: expanded from macro 'traceTASK_NOTIFY_GIVE_FROM_ISR'
  #define traceTASK_NOTIFY_GIVE_FROM_ISR(ux)          EvrFreeRTOSTasks_TaskNotifyGiveFromIsr(pxTCB, ux, pxTCB->ulNotifiedValue[ux])
                                                                                                      ^
Middlewares\Third_Party\FreeRTOS\Source\tasks.c(5063): error: expected expression
\src\freertos_evr.h(708): note: expanded from macro 'traceTASK_NOTIFY_GIVE_FROM_ISR'
  #define traceTASK_NOTIFY_GIVE_FROM_ISR(ux)          EvrFreeRTOSTasks_TaskNotifyGiveFromIsr(pxTCB, ux, pxTCB->ulNotifiedValue[ux])


i think some internal format has changed?

Thanks for helping me