I have recently tried to create my first project using RTX5. I believe I have the basic pieces set up correctly, but when I try to build the projects I get errors building rtx_kernel.c
compiling rtx_kernel.c... C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\RTOS2\RTX\Source\rtx_kernel.c(31): error: #29: expected an expression { .os_id = osRtxKernelId, .version = osRtxVersionKernel, .kernel.state = osRtxKernelInactive }; C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\RTOS2\RTX\Source\rtx_kernel.c(31): error: #29: expected an expression { .os_id = sRtxKernelId, .version = osRtxVersionKernel, .kernel.state = osRtxKernelInactive }; C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\RTOS2\RTX\Source\rtx_kernel.c(31): error: #29: expected an expression { .os_id = sRtxKernelId, .version = sRtxVersionKernel, .kernel.state = osRtxKernelInactive }; C:\Keil_v5\ARM\PACK\ARM\CMSIS\5.0.1\CMSIS\RTOS2\RTX\Source\rtx_kernel.c: 0 warnings, 3 errors
It seems (according to the uVision error markers) that these errors are actually caused by issues in rtx_lib.h which in turn are caused by issues in core_cm.h on lines related to exclusive access. The first of the problem lines is at line 765:
static __asm uint8_t atomic_wr8 (uint8_t *mem, uint8_t val) {
Floating over the error indicator in uVision shows:
error: expected identifier or '('
The __asm keyword is underlined in the editor so I assume this is the issue, but this construct is supposed to be a supported use of the __asm keyword in ARM Compiler v5 so I'm not sure what the problem is.
I'm using compiler 5.06u3, CMSIS CORE 5.01, CMSIS-RTOS2 5.10 (Source).
Has anyone else successfully built RTX5 for CM4F using ARM Compiler v5?
Thanks, Keith
Thank you for your reply Robert. That seems to have fixed my build issues. Could you provide a little insight as to why RTX5 and/or those particular lines of code require C99 to be enabled?
Thanks!