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

如有不详细的描述、错误或疑问,欢迎留言!!!

基于STM32从零写操作系统系列---前言与目录

目的内容

使用官方固件库的好处就是方便,看着说明文档就可以使用。但是,从编译后的.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 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值