admin 管理员组文章数量: 1184232
2024年3月13日发(作者:mongodb集群的优缺点)
手把手教你写STM32的bootloader
(SDIO读取TF卡更新固件)
作者:谭建裕
1、bootloader的简介及作用
什么是bootloader?本人不知道该怎么说,反正会来看这篇都是知道自己要干嘛的。
不过bootloader的作用还是要提提的,bootloader最直观的作用就方便,比如你用单片
机给人家做了一款产品,后期你的产品固件需要更新的时候,你总不能带着电脑直接去客
户那里拆开产品给单片机下程序吧?也不能教客户怎么给单片机下程序吧?用户体验感太
差。
其实本质上bootloader的也是一个完整的程序,也有main函数,有自己的中断向
量表,栈顶指针,它可以检查有没有新的固件,如果有,则将新的固件的数据写入到我们
指定的flash地址中,之后跳到新的程序中去就OK了。此时bootloader的优势就来了,
bootloade更新固件有很多种方式,本人在这里只详细讲解一种,搞懂一种之后,其它的
都好办,因为它们的思路都是一样的。Bootloader的主体原理是:首先将bin文件的数据
复制到特定的地址。然后设置中断向量表,设置MSP主堆栈指针(具体请看CM3权威指
南),设置复位向量。然后就没有然后了。
2、bootloader涉及的知识
本人在此讲解的是STM32通过读取TF内的bin文件数据来更新固件。这里牵扯到
STM32的SDIO外设,FATFS文件系统,STM32的flash读写操作。
2.1 SDIO
SDIO是STM32的外设,需要注意的是只有100引脚及以上的才有。电路原理图如
图2-1-1所示。
图2-1-1
注意:在使用TF之前必须保证TF卡格式为FAT32,单元大小为2048。如图2-1-2所
示。
版权声明:本文标题:手把手教你写STM32的bootloader(SDIO读取TF更新Bootloader)_ 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710298359a566729.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论