初学STM32,跟着网上的教程开始新建工程,教程编译后 0 Error, 0 Warning, 到我手上 4 Errors,无数个Warnings。看了一些大佬的文章说是编译器版本的问题,没错确实是编译器版本问题,但是在我的keil5上面却缺少需要的编译器版本,于是又接着查资料........
最后也算是解决了,在此记录分享一下
一、版本问题
Start/core_cm3.c(445): error: non-ASM statement in naked function is not supported;
针对以上报错信息,结论是编译器版本问题,我的keil5使用的是V6.21版本的编译器,当把编译器换成V5版本时即可正常编译程序
建工程的步骤这里省略哈^-^
1、打开 keil5 软件,首先点击 “魔术棒” 图标①,然后在新页面中点击 Target ②,可以看到ARM Compiler ③ 的版本是Version 6 ,我们需要更改编译器的版本
2、此时我天真的选择了Missing:Compiler Version 5(当时也没多想,看见有个5就选上试一试),结果显然是不行的
3、报错:如第二步的操作结果,编译出现如下报错
*** Target 'Target 1' uses ARM-Compiler 'Default Compiler Version 5' which is not available.
二、ARM编译器V5版本下载安装
解决该问题的办法就是重新下载V5版本的ARM编译器,链接如下:
ARM编译器V5.06(提取码:4132)https://pan.baidu.com/s/1zRW7sf3_5KGRlyaUzqI1NA1、下载完成后,双击它
2、点击 Next
3、勾选 I accept ,再点击 Next
4、选择安装目录,默认是C盘,这里我安装在Keil5安装目录的ARM->ARMCC文件夹中(新建的ARMCC),点击 Next
5、再点击 Next
6、点击 Install
7、等待安装完成,点击 Finish。此时去ARMCC文件夹查看,发现已经安装成功
三、Keil5配置
1、再次进入keil5软件界面,点击下图①位置的三个方块图标,在弹出页面中点击 Folders/Extensions,再点击③位置的三个小点
2、点击 Add another ARM Compiler Version to List...
3、选择V5编译器的安装路径ARMCC,点击确定
4、之后可以看到ARMCC Path中多了一条
5、最后在点击 “魔术棒”图标,进入Target页面,可以看到ARM Compiler的选择中多了Version 5,选择Version 5,点击ok
6、再重新编译程序,可以看到 0 Error(s), 0 Warning(s).
至此,解决问题^-^
以上内容是根据各位前辈大佬的经验总结出自己认为思路比较清晰的解决办法,希望在给自己留下记录的时候也能帮助到其他小伙伴^-^