I have download “Tracealyzer for FreeRTOS” to do some testing on Microblaze CPU. I have used “FreeRTOS Snapshot Recorder v3.0.9.zip”. I followed the guide but I somehow doubt from this point on:
I have create a project with one task that flashes a LED. The program runs smoothly with no integrated trace.
FreeRTOS v9.0.0 with Microblaze CPU + Snapshot Recorder v3.0.9 from Percepio
I have add this code at the end of “FreeRTOSConfig.h”:
/* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */ #define TRACE_ENTER_CRITICAL_SECTION() portENTER_CRITICAL() #define TRACE_EXIT_CRITICAL_SECTION() portEXIT_CRITICAL() #include "trcKernelPort.h"
The compilation is successful, but if I start the program this crash. In debug I noticed that after three, four calls to the Trace functions, the program crash.
I then decided to change code in “FreeRTOSConfig.h” with this:
/* Include the FreeRTOS+Trace FreeRTOS trace macro definitions. */ #define TRACE_ENTER_CRITICAL_SECTION() /* portENTER_CRITICAL() */ #define TRACE_EXIT_CRITICAL_SECTION() /* portEXIT_CRITICAL() */ #include "trcKernelPort.h"
I basically removed the definitions of “ENTER” and “EXIT” from critical section, In this way the program runs quietly and I can generate the trace in memory statically and then be discharged after a few minutes of operation.
The thing is very strange, but how can I check ?
I would be confident about this, because I would buy the tool, but I would try the real utility before proceeding.
Thanks very much.