Jumper 发表于 2015-5-29 14:14:28

STM32CubeF1 疑问, 编译错误

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

..\Drivers\STM32F1xx_HAL_Driver\Src\stm32f1xx_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软件中设置生成的工程不包含这个文件?

请不吝赐教.

谢谢.


发表于 2015-5-29 14:34:41

暂时没有找到选择库选项,如果没有用到PWR的功能,删除也不会报错的。

Tension 发表于 2015-5-29 15:18:41

测试编译没有报错。

moyanming2013 发表于 2015-5-29 15:26:07

编译器给出的错误不是非常明显吗:
error:#1113: Inline assembler not permitted when generating Thumb code
你想编译出Thumb代码时不能使用inline汇编代码!
Cortex-M全是Thumb指令集,当你嵌入汇编代码时,不应使用inline!

露兰芬芳加油 发表于 2015-5-29 16:13:22

测试一下错误

Jumper 发表于 2015-5-29 17:21:39

moyanming2013 发表于 2015-5-29 15:26
编译器给出的错误不是非常明显吗:
error:#1113: Inline assembler not permitted when generating Thumb ...

编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太合理, 所以, 我想知道是我的环境的问题, 还是别人也有这样的问题.

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

Jumper 发表于 2015-5-29 19:18:45

Jumper 发表于 2015-5-29 17:21
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太 ...

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

谢谢大家提供信息.

为什么是EEFOCUS小白 发表于 2015-5-31 09:40:01

是版本低了,之前有人发过的

tjl98 发表于 2015-9-30 21:19:17

我用MDK4.23也有这问题,升级到4.72后把调试器搞得不能用了,用了2个STlinkV2都是这样,显示无调试器,不知如何是好?:funk:
页: [1]
查看完整版本: STM32CubeF1 疑问, 编译错误