STM32寄存器开发系列(1)启动代码设计
来源:互联网 发布:java 当前时间加1小时 编辑:程序博客网 时间:2024/05/22 08:13
遇到的问题
直接引用startup_stm32f10x_hd.s的问题
在有了main函数以后会有以下啊错误
..\Output\athenaH.axf: Error: L6218E: Undefined symbol SystemInit (referred from startup_stm32f10x_h
此问题错误提示已经十分清楚的告诉你错在哪里了,Undefined symbol SystemInit ,翻译过来就是:SystemInit 这个符号没有定义,随后的小括号告诉你了,是在 startup_stm32f0xx.o 这个文件里面被提及的,这个.o文件在工程里面并没有,它是一个在编译的时候根据.c/.s文件生成的。所以我们只需要找到工程里面的.s或者.c即可,这里对应这个名字的就是 startup_stm32f0xx.s了。
; Reset handlerReset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main IMPORT SystemInit LDR R0, =SystemInit BLX R0 LDR R0, =__main BX R0 ENDP
原来在复位中断服务函数里面,调用了SystemInit这个函数,而这个函数在.s文件里面没有定义。
解决方案:
1. 在外部(其他任何.c文件里面)定义SystemInit这个函数,哪怕是个空函数也可以。
2. 把
IMPORT SystemInit LDR R0, =SystemInit BLX R0
这三句话注释掉。
SystemInit 是在使用main前做一些初始化工作,如果不需要官方的库,只是自己编写一些简单的应用,则可以把此函数禁掉。譬如创建工程时直接加入s文件,剩下的自己简单编程,此时就不要SystemInit。
0 0
- STM32寄存器开发系列(1)启动代码设计
- STM32寄存器开发系列(2)在ubuntu上搭建开发环境
- STM32之寄存器开发
- STM32寄存器开发-环境搭建
- stm32 低功耗设计[操作寄存器+库函数]
- stm32 直接读写寄存器代码风格总结
- STM32启动代码概述
- STM32启动代码概述
- stm32启动代码分析
- stm32启动代码分析
- STM32启动代码概述
- STM32启动代码概述
- STM32启动代码详解
- STM32启动代码分析
- STM32启动代码概述
- STM32启动代码分析
- STM32 启动代码分析
- stm32启动代码分析
- 实习第五天
- 【51nod】1006 最长公共子序列Lcs
- Android集成百度定位以及导航详解
- 独立游戏开发如何入门?
- UISearchController使用方法及注意事项
- STM32寄存器开发系列(1)启动代码设计
- (1)spring boot起步之Hello World【从零开始学Spring Boot】
- Dijkstra算法--一个点到其余点最短路径
- 网络编程TCP/UDP
- Thinkpad T400安装CentOS 7后无wifi的解决方法
- POJ 2492 A Bug's Life
- notepad++设置网络代理
- Rime协议学习笔记:(四)标识广播broadcast
- c++随机数