固件库编程:关于core_cm3.c的错误
然后编译发现如下错误和警告:
…/CMSIS/CM3/core_cm3.c(445): error: non-ASM statement in naked function is not supported
uint32_t result=0;
^
…/CMSIS/CM3/core_cm3.c(442): note: attribute is here
uint32_t __get_PSP(void) attribute( ( naked ) );
^
…/CMSIS/CM3/core_cm3.c(465): error: parameter references not allowed in naked functions
“BX lr \n\t” : : “r” (topOfProcStack) );
^
…/CMSIS/CM3/core_cm3.c(461): note: attribute is here
void __set_PSP(uint32_t topOfProcStack) attribute( ( naked ) );
^
…/CMSIS/CM3/core_cm3.c(479): error: non-ASM statement in naked function is not supported
uint32_t result=0;
^
…/CMSIS/CM3/core_cm3.c(476): note: attribute is here
uint32_t __get_MSP(void) attribute( ( naked ) );
^
…/CMSIS/CM3/core_cm3.c(499): error: parameter references not allowed in naked functions
“BX lr \n\t” : : “r” (topOfMainStack) );
^
…/CMSIS/CM3/core_cm3.c(495): note: attribute is here
…
其中必有的错误 \Obj\Project.axf" - 4 Error(s)
此类问题解决方案:
直接从项目中删除core_cm3.c文件。其中的函数在Keil_v5\ARM\CMSIS\Include\core_cmFunc.h中,如果自动include功能勾选了的话不用在项目文件里include这个文件。
如图:
如果include中已经勾选,那么就把项目中的core_cm3.c删除掉。如图所示:
转载:
https://blog.csdn.net/Qi_ta/article/details/72872250