使用keil编译最简单的工程时出现了四个错误
Rebuild started: Project: Project
*** Using Compiler 'V6.21', folder: 'D:\Users\86134\AppData\Local\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported
445 | uint32_t result=0;
| ^
Start/core_cm3.c(442): note: attribute is here
442 | uint32_t __get_PSP(void) __attribute__( ( naked ) );
| ^
Start/core_cm3.c(465): error: parameter references not allowed in naked functions
465 | "BX lr \n\t" : : "r" (topOfProcStack) );
| ^
Start/core_cm3.c(461): note: attribute is here
461 | void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) );
| ^
Start/core_cm3.c(479): error: non-ASM statement in naked function is not supported
479 | uint32_t result=0;
| ^
Start/core_cm3.c(476): note: attribute is here
476 | uint32_t __get_MSP(void) __attribute__( ( naked ) );
| ^
Start/core_cm3.c(499): error: parameter references not allowed in naked functions
499 | "BX lr \n\t" : : "r" (topOfMainStack) );
| ^
Start/core_cm3.c(495): note: attribute is here
495 | void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) );
| ^
使其零报错零警告应点击魔术棒更改以下为5.(如下图)再次编译即可。
若出现没有(miss)
5.37以后的新版本keil5不能使用Use default compiler version
按该帖子解决
MDK5.37不预安装Compiler Version5解决办法 - 知乎 (zhihu.com)
CubeMx 生成的FreeRTOS 代码在ARM compiler6 编译__forceinline 报错的解决方法_arm compiler 6 inline-CSDN博客
下面内容来自链接http://t.csdnimg.cn/b0CR1里的转载
“Keil5.37版本之后就不自带ARM5编译器了,之前的部分工程使用ARM5编译器更新的,使用ARM6再编译可能出现一些问题,所以可以再安装ARM5的编译器使用,可以从ARM官网下载(不过要注册登录账号,审核大概一星期通过),或者从我提供的云盘下载ARM5编译器
123云盘:ARMCompiler_506_Windows_x86_b960提取码:KY4v
ARM官网:Downloads - Arm Developer
”