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软件中设置生成的工程不包含这个文件?
请不吝赐教.
谢谢.
暂时没有找到选择库选项,如果没有用到PWR的功能,删除也不会报错的。 测试编译没有报错。 编译器给出的错误不是非常明显吗:
error:#1113: Inline assembler not permitted when generating Thumb code
你想编译出Thumb代码时不能使用inline汇编代码!
Cortex-M全是Thumb指令集,当你嵌入汇编代码时,不应使用inline!
测试一下错误 moyanming2013 发表于 2015-5-29 15:26
编译器给出的错误不是非常明显吗:
error:#1113: Inline assembler not permitted when generating Thumb ...
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太合理, 所以, 我想知道是我的环境的问题, 还是别人也有这样的问题.
也许是我的Keil的问题?看到也有高人说编译没有错的... 不解... Jumper 发表于 2015-5-29 17:21
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太 ...
果然是环境问题, Kei 是4.5的版本, 更新到4.72, 就正常了...
谢谢大家提供信息. 是版本低了,之前有人发过的 我用MDK4.23也有这问题,升级到4.72后把调试器搞得不能用了,用了2个STlinkV2都是这样,显示无调试器,不知如何是好?:funk:
页:
[1]