我使用Keil uvision5来编译cmsis_os.c (我的FreeRTOS的包装器)。
我收到此错误:..\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\portmacro.h(221):错误:#18:预期为")“
Portacro.h有这样的特性:
portFORCE_INLINE static void vPortRaiseBASEPRI( void )
{
uint32_t ulNewBASEPRI;
__asm volatile
(
" mov %0, %1 \n" \
" msr basepri, %0 \n" \
" isb \n" \
" dsb \n" \
:"=r" (ulNewBASEPRI) : "i" ( configMAX_SYSCALL_INTERRUPT_PRIORITY ) <<<<<<<<<<< LINE WITH THE ERROR.
);
}ARM是STM32F417VG。FreeRTOS源代码是V8.1.2
我们已经有了ARM的基于gcc的源代码,我需要将其移植到Keil IDE上。我使用ST CubeMx生成了一个原始的Keil项目。然后,我添加了V8.1.2Keil源代码,包括cmsis_os.c和cmsis_os.h,因为FreeRTOS需要cmsis RTOS包装器用于调试器等。
发布于 2016-05-17 16:03:57
对于Keil,您应该使用来自FreeRTOS\Source\portable\RVDS\ARM_CM4F\的适当文件。
Keil语法中的此函数如下所示
static portFORCE_INLINE void vPortRaiseBASEPRI( void )
{
uint32_t ulNewBASEPRI = configMAX_SYSCALL_INTERRUPT_PRIORITY;
__asm
{
msr basepri, ulNewBASEPRI
dsb
isb
}
}https://stackoverflow.com/questions/37169549
复制相似问题