Free RTOS+ Trace integration

Hi, I need help with Trace recorder library integration. I’m using Keil and STM32F407. I included recorder library in my project but when I try to compile I got an error which I don’t know how to fix. Error is in code: void prvTraceEnableIRQ(void) { asm volatile (“cpsie i”); } void prvTraceDisableIRQ(void) { asm volatile (“cpsid i”); } void prvTraceSetIRQMask(uint32_t priMask) { asm volatile (“MSR primask, %0;” : : “r” (priMask)); } uint32t prvTraceGetIRQMask(void) { uint32t result; asm volatile (“MRS %0, primask” : “=r” (result)); return result; } Error says: GenericRecorderLibSrctrcHardwarePort.c(65): error: #20: identifier “asm” is undefined GenericRecorderLibSrctrcHardwarePort.c(65): error: #65: expected a “;” Thank you for your help!

Free RTOS+ Trace integration

It looks like you are trying to use GCC syntax in a Keil project. IAR will generally let you do that, but Keil won’t. You need to look in the Keil manual to see what to do, but as a head start asm volatile (“cpsie i”); can be replaced with __enable_irq(); Likewise asm volatile (“cpsid i”); can be replaced with __disable_irq(); I imagine there is another such intrinsic to get the primask value. Regards.

Free RTOS+ Trace integration

Thank you for your help!