×
单片机 > 单片机程序设计 > 详情

基于STM32从零写操作系统系列---使用官方固件库

发布时间:2020-06-05 发布时间:
|

目的内容

使用官方固件库的好处就是方便,看着说明文档就可以使用。但是,从编译后的.bin文件大小看,一样的点亮LED灯,使用固件库产生的.bin文件大小差不多有6K,而上一章的串口+LED程序编译后的.bin文件就只有2K多。对于stm32F103zet6而言,flash大小512K,如果想要在这么点空间装个”有点意思”的操作系统,就需要尽量减少.bin文件的大小了。在实现的功能相同的情况下,用最少的指令数量显然更合理。在使用固件库时,编译的一些文件中,有部分函数功能是没有用到的,但他们也被链接到.bin文件中了。所以最终生成的.bin文件就比较大了。


还有一个问题就是,固件库用起来方便,但是想要完全掌握你的程序的来龙去脉,你还要必须认真去看固件库的源代码,花时间去了解固件库的结构和一些使用规范。所以,在以后的编写操作系统的过程中,固件库只是作为我的参考,而不会完全使用固件库。这样就可以以固件库为范例,去学习别人的一些编程思路,学习别人的一些良好的编程规范,学习C语言的一些高级用法。


分析

1.先来看看本次实验的项目文件结构

2.创建如上的目录结构后,就是从“STM32最新固件库v3.5”复制相关的头文件和.c文件。boot.s是自己编写汇编启动代码,test_led.c是自己编写的测试代码,其他的.h和.c文件都是复制固件库的。boot.s文件和上一章中的boot.s文件一样。


3.编写test_led.c

4.Makefile有所变动,主要是修改后子目录的Makefile更具有通用性,添加了如下一条代码。


这条代码用于查找当前目录下的.s和.c文件,然后文件名不变加上扩展名.o。


小结

这次使用固件库,只是为了了解一下固件库是如何实现的。为以后继续编写自己的操作系统添加一个源代码参考。


由于码云的限制,代码分享在百度网盘,链接如下,文件名:chapter8.zip

STM32最新固件库v3.5也可以在下面的网盘下载:

链接:https://pan.baidu.com/s/1DlzYMo8oZsnF9ammJuuZoQ 

提取码:dc5h 



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析