请选择 进入手机版 | 继续访问电脑版
快捷导航
本帖最后由 小七仔 于 2017-12-13 10:14 编辑

https://wenku.baidu.com/view/6a3d604f227916888586d73f.html
按照上面这个文档移植FreeRTOS测试过程中程序所有asm指令处都报这个错误:
.\FreeRTOS\inc\portmacro.h(170): error:  #1113: Inline assembler not permitted when generating Thumb code

文件中代码:
static portFORCE_INLINE void vPortSetBASEPRI( uint32_t ulBASEPRI )
{
        __asm
        {
                /* Barrier instructions are not used as this function is only used to
                lower the BASEPRI value. */
                msr basepri, ulBASEPRI
        }
}

网上查了资料:


附Keil编译常见问题:https://wenku.baidu.com/view/26ac79c080eb6294dd886cd4.html

然后把所有asm改成这样:
__asm void nop1(void)
{
    /* Barrier instructions are not used as this function is only used to
        lower the BASEPRI value. */
        msr basepri, ulBASEPRI
}

static portFORCE_INLINE void vPortSetBASEPRI( uint32_t ulBASEPRI )
{
        nop1();
}


emmmmmm..................
接着msr处全部报错。。.\FreeRTOS\inc\portmacro.h(171): error: A1647E: Bad register name symbol, expected Integer register
求大佬告知一下要怎么解决,感激不尽!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
Connecting & Messaging from Any.

共 4 个关于本帖的回复 最后回复于 2017-12-15 08:32

李腾杰 中级会员 发表于 2017-12-13 10:28:42 | 显示全部楼层
应该MDK版本问题  我原来用的4.12版本也出现这种问题,我查了一下应该是汇编的问题,不支持源码里这种写法  我换了一个高一点的版本
Connecting & Messaging from Any.
举报 使用道具
小七仔 注册会员 发表于 2017-12-13 10:35:39 | 显示全部楼层
李腾杰 发表于 2017-12-13 10:28
应该MDK版本问题  我原来用的4.12版本也出现这种问题,我查了一下应该是汇编的问题,不支持源码里这种写法  ...

这样啊.............我就是因为之前装的版本的总是崩,才装的4.12版的,好像还是你发给我的.........跟着大佬换版本
Connecting & Messaging from Any.
举报 使用道具
chinmel 版主 发表于 2017-12-13 10:43:02 from Mobile | 显示全部楼层
直接上crossDev环境,用gcc编译。不用MDK了。当然汇编还要重写。
Connecting & Messaging from Any.
举报 使用道具
小七仔 注册会员 发表于 2017-12-15 08:32:01 | 显示全部楼层
已结贴,就是MDK的问题,感谢
Connecting & Messaging from Any.
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐板块

精彩推荐

热门排行

明星用户

手机版|小黑屋|AnyMSG ( ©AnyMSG 2009 - 2017 · ICP备16009991号 )

GMT+8, 2019-2-16 19:22