首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cmsis编译FreeRTOS v8.1.2时,在Keil uVision5上出现构建错误

使用cmsis编译FreeRTOS v8.1.2时,在Keil uVision5上出现构建错误
EN

Stack Overflow用户
提问于 2016-05-12 01:29:41
回答 1查看 957关注 0票数 0

我使用Keil uvision5来编译cmsis_os.c (我的FreeRTOS的包装器)。

我收到此错误:..\Middlewares\Third_Party\FreeRTOS\Source\portable\GCC\ARM_CM4F\portmacro.h(221):错误:#18:预期为")“

Portacro.h有这样的特性:

代码语言:javascript
复制
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包装器用于调试器等。

EN

回答 1

Stack Overflow用户

发布于 2016-05-17 16:03:57

对于Keil,您应该使用来自FreeRTOS\Source\portable\RVDS\ARM_CM4F\的适当文件。

Keil语法中的此函数如下所示

代码语言:javascript
复制
static portFORCE_INLINE void vPortRaiseBASEPRI( void )
{
    uint32_t ulNewBASEPRI = configMAX_SYSCALL_INTERRUPT_PRIORITY;
    __asm
    {
        msr basepri, ulNewBASEPRI
        dsb
        isb
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37169549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档