STM32CubeF1生成的MDK-ARM工程编译错误

2019-07-14 14:02发布

大家好,  关于STM32CubeF1,  生成的MDK-ARM工程, 编译的时候发现有错误:

..DriversSTM32F1xx_HAL_DriverSrcstm32f1xx_hal_pwr.c(138): error:  #1113: Inline assembler not permitted when generating Thumb code

看了一下是是使用了__asm,  用一般的办法, 修改为

#if 0
__NOINLINE
static void PWR_OverloadWfe(void)
{
  __asm volatile( "wfe" );
  __asm volatile( "nop" );
}
#else
__NOINLINE __asm
static void PWR_OverloadWfe(void)
{
    wfe
    nop
}
#endif

则可以正常编译,  同时发现, 这个stm32f1xx_hal_pwr.c在一般的工程中, 也没有被引用, 直接删掉也可以编译通过

我想请问各位高人, 你们有遇到这样的问题吗? 是否有办法在CubeMX软件中设置生成的工程不包含这个文件?

请不吝赐教.

谢谢.
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
chm3
1楼-- · 2019-07-14 23:19
 精彩回答 2  元偷偷看……
胡bbs1
2楼-- · 2019-07-14 23:21
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太合理, 所以, 我想知道是我的环境的问题, 还是别人也有这样的问题.  

也许是我的Keil的问题?  看到也有高人说编译没有错的... 不解...
胡bbs1
3楼-- · 2019-07-15 03:30
胡bbs1 发表于 2019-2-22 20:14
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太合理, 所以, 我想知道是我的环境的问题, 还是别人也有这样的问题.  

也许是我的Keil的问题?  看到也有高人说编译没有错的... 不解... ...

果然是环境问题, Kei 是4.5的版本, 更新到4.72, 就正常了...

谢谢大家提供信息.
selinali0112
4楼-- · 2019-07-15 05:40
是版本低了,之前有人发过的
cmh4
5楼-- · 2019-07-15 11:17
我用MDK4.23也有这问题,升级到4.72后把调试器搞得不能用了,用了2个STlinkV2都是这样,显示无调试器,不知如何是好?

一周热门 更多>