Kill5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题

升级Keil5到5.37版本后,使用ARMcomplier6编译STM32项目时遇到编译错误,原因是ARMcomplier6不支持__asm指令。解决方案包括回退到编译器V5或修改代码。查阅资料得知,__asm用于声明内含汇编代码的函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Kill5-5.37版本下,使用ARMcomplier6编译__asm 函数报错的问题

问题简要描述:

昨日更新了keil5软件的版本,从5.17更新到了5.37版本,然后编译STM32项目文件时,软件提示编译报错。报错问题如下:

Build started: Project: QKsoftware
*** Using Compiler 'V6.18', folder: 'E:\MDK-ARM\ARM\ARM\ARMCLANG\Bin'
Build target 'QKsoftware'
compiling stm32f4xx_it.c...
../User/sys/sys.c(93): error: expected '(' after 'asm'
__asm void WFI_SET(void)
      ^
../User/sys/sys.c(93): error: expected ';' after top-level asm block
__asm void WFI_SET(void)
     ^
     ;
../User/sys/sys.c(95): error: use of undeclared identifier 'WFI'
        WFI;              
        ^
../User/sys/sys.c(98): error: expected '(' after 'asm'
__asm void INTX_DISABLE(void)
      ^
../User/sys/sys.c(98): error: expected ';' after top-level asm block
__asm void INTX_DISABLE(void)
     ^
     ;
../User/sys/sys.c(100): error: use of undeclared identifier 'CPSID'
        CPSID   I
        ^
../User/sys/sys.c(104): error: expected '(' after 'asm'
__asm void INTX_ENABLE(void)
      ^
../User/sys/sys.c(104): error: expected ';' after top-level asm block
__asm void INTX_ENABLE(void)
     ^
     ;
../User
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值