首先先看错误的提示是不是以下的显示:
Rebuild started: Project: STM32F103C8T6
*** Using Compiler 'V6.15', folder: 'F:\keil\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
../SYSLIB/core_cm3.c(445): error: non-ASM statement in naked function is not supported
uint32_t result=0;
^
../SYSLIB/core_cm3.c(442): note: attribute is here
uint32_t __get_PSP(void) __attribute__( ( naked ) );
^
../SYSLIB/core_cm3.c(465): error: parameter references not allowed in naked functions
"BX lr \n\t" : : "r" (topOfProcStack) );
^
../SYSLIB/core_cm3.c(461): note: attribute is here
void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) );
^
../SYSLIB/core_cm3.c(479): error: non-ASM statement in naked function is not supported
uint32_t result=0;
^
../SYSLIB/core_cm3.c(476): note: attribute is here
uint32_t __get_MSP(void) __attribute__( ( naked ) );
^
../SYSLIB/core_cm3.c(499): error: parameter references not allowed in naked functions
"BX lr \n\t" : : "r" (topOfMainStack) );
^
../SYSLIB/core_cm3.c(495): note: attribute is here
void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) );
^
4 errors generated.
compiling core_cm3.c...
compiling delay.c...
compiling main.c...
assembling startup_stm32f10x_md.s...
compiling system_stm32f10x.c...
".\Objects\STM32F103C8T6.axf" - 4 Error(s), 0 Warning(s).
Target not created.
Build Time Elapsed: 00:00:01
当然这边不是我一开始创建之后编译出现的错误,一开始我的是直接四个错误加上十几条的警告!
这是一个编译器执行标准的问题!
首先我们打开keill工程文件(一定要确保工程文件创建的没有问题,然后报不知名错误的,才有可能是我们软件的执行标准的问题)
出现这种情况是我们点击魔法棒
然后我们进入这个界面,进行步骤点击:
把默认的编译标准V6.15或者是其他的改成V5.06的标准:
然后点击OK,我们再次重新编译会发现报错警告问题已经解决完毕,我们又能愉快的进行代码输出了!
那么原因究竟是什么?这个arm compiler究竟是什么有什么作用?
我小小的查了一下,结果惊呆了我:
原文可以查看:Keil切换到armclang编译器,到底强在哪里?_小麦大叔的博客-CSDN博客
作为新手的我的确是看不懂很多东西,但是也提取到一些我能理解的东西
按照字面意思,其实就是和我开头说的是一样的,就是两种不同规格的编译器他们执行的标准有一些地方是有差异的,这样就会导致我们在ARM Compiler 5(及更早版本)使用 armcc 编译器时就能够正常编译不会有任何问题,一旦使用AC6(ARM Compiler 6) 用 armclang 替换了 armcc之后就会出来一堆错误。
然后博客下面都是一堆我作为小白看不懂的东西,但大概的意思我了解了,就是我们想要在V6的环境下正常编译,估计需要花费很多时间去找手册然后进行修改调整,这无疑给小白的我来说增加了非常大的工程量,建议感兴趣的小伙伴可以去试试!(我是真看不懂,全是问号,我的全部理解就只能到这里了,欢迎懂的大佬随时指正错误!)
那么今天的错误分享就到这里啦!这里是一刻也不想学习的@是浩吉呀哈!!