项目场景:
在我们学习STM32F10X(或者基于CM3内核的MCU)开发的时候,建立Keil工程的时候,第一步就是建立一个最基本的Project模板,只有最基本的模板编译通过后,后面的工程才有可能编译通过
问题描述
STM32F103X开发-01:工程模板建立-keil编译工程后,core_cm3.c出现4处报错;具体内容如下:
Build started: Project: stm32f10x_Project_Template
*** Using Compiler ‘V6.14’, folder: ‘E:\Keil\ARM\ARMCLANG\Bin’
Build target ‘Template’
CMSIS/core_cm3.c(445): error: non-ASM statement in naked function is not supported
uint32_t result=0;
^
CMSIS/core_cm3.c(442): note: attribute is here
uint32_t __get_PSP(void) attribute( ( naked ) );
^
CMSIS/core_cm3.c(465): error: parameter references not allowed in naked functions
“BX lr \n\t” : : “r” (topOfProcStack) );
^
CMSIS/core_cm3.c(461): note: attribute is here
void __set_PSP(uint32_t topOfProcStack) attribute( ( naked ) );
^
C

在STM32F10X开发中,使用Keil建立工程时遇到core_cm3.c编译错误。错误源于core_cm3.c文件版本过旧,已不再被ST维护。解决方法包括:1)更新CMSIS文件,替换旧版头文件并使用CMSIS标准接口;2)降低编译版本。建议采用更新CMSIS标准接口的方式,尽管会屏蔽一些底层细节,但这是现代嵌入式开发的趋势。
最低0.47元/天 解锁文章
6024

被折叠的 条评论
为什么被折叠?



