大家好, 关于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软件中设置生成的工程不包含这个文件? 请不吝赐教. 谢谢. |
error: #1113: Inline assembler not permitted when generating Thumb code
你想编译出Thumb代码时不能使用inline汇编代码!
Cortex-M全是Thumb指令集,当你嵌入汇编代码时,不应使用inline!
编译器的错误确实很明显, 修改也很简单, 只是, 对于CubeMX这样的工具, 自动生成的代码会有编译错误, 不太合理, 所以, 我想知道是我的环境的问题, 还是别人也有这样的问题.
也许是我的Keil的问题? 看到也有高人说编译没有错的... 不解...
果然是环境问题, Kei 是4.5的版本, 更新到4.72, 就正常了...
谢谢大家提供信息.