当前位置:首页 > 公众号精选 > 嵌入式微处理器
[导读]做过很多Bootloader升级的产品,感觉Bootloader还是很有意思的。通过芯片的一段程序,去更新剩余的程序。从而达到更新产品软件的作用。芯片自带的Bootloader是通过芯片厂家的协议,通过烧录器把程序更新到Flash里面。而我们自己为什么还要部分的空间再写一个Boo...

做过很多Bootloader升级的产品,感觉Bootloader还是很有意思的。通过芯片的一段程序,去更新剩余的程序。从而达到更新产品软件的作用。芯片自带的Bootloader是通过芯片厂家的协议,通过烧录器把程序更新到Flash里面。而我们自己为什么还要部分的空间再写一个Bootloader呢?因为我们想通过我们自己的方式,升级芯片里的软件。
传输方式那就太多了,基本有的通信方式理论上都可以进行传输升级,包括CAN、SPI、IIC、USART等等。做过汽车上面的CAN升级、USART升级、SD卡升级、OTA升级。其中CAN和USART升级都是在线升级,SD卡可以称之为离线升级。就是不用PC端,在线下插入SD卡,就可完成升级。(CAN和USART如果有硬件升级的设备,也可以做成离线升级)。
讲一下SD卡的升级,使用离线升级,设备端需要有SD卡槽,升级的时候,将升级的文件放入SD卡中,再插入卡槽完成升级。(SD卡使用的SPI驱动,原理上其实也可以称为SPI升级。。。)
这里使用STM32F103RCT6的芯片制作SD卡Bootloader。

一.硬件
我使用的原子mini开发板,芯片为STM32F103RCT6,带SPI驱动的SD卡槽。

二.软件(寄存器编码,为的是减少Bootloader的代码占用空间)
1. SD卡使用的是SPI驱动。SPI1_Init()初始化,SPI1_ReadWriteByte读写。

 

2. SD卡驱动和FATFS文件系统。读SD卡、写SD卡、初始化SD卡等等,都是写好的驱动程序,直接可以用。这里也是用到了FATFS文件系统,需要移植两个文件。这里不多说。



3. 芯片Flash的操作。由于升级APP程序片需要用到Flash的操作,所以Flash的擦除,写入不能少。

 

4. APP程序跳入。当Flash里面写入了更新后的程序,需要跳转到Flash的起始地址,所以有一个函数需要。


5. 应用部分:  首先选择一个起始地址,是需要刷写程序的起始地址。只要大于Bootloader程序的总长度,并且APP程序的长度不能超过(芯片大小 - Bootloader程序大小)即可。  然后Flash中选取一个地址作为标志位,用于判断是否需要更新程序。  最后就是读取SD卡里的文件,把读取的写入到对应的Flash里面,完成跳转。



Main函数,先检测0x08002FFE这个地址的标志位,如果是0x02,说明有应用APP程序,不需要进行升级,所以直接iap_load_app(FLASH_APP_ADDR)跳转到APP的起始地址,开始运行程序,BOOT程序就到这里结束。
如果不是0x02,说明是新的芯片,或者是没有进行过升级的。就开始进行BOOT程序的升级流程SD_Update()。



这里是打开SD卡、挂载的一些操作。如果成功进行到下面。




f_read读取SD卡中的文件
嵌入式ARM

扫描二维码,关注更多精彩内容

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

近日,海关发布通报一女子手推电单车内藏上万张存储卡,在经沙头角边境特别管理区旅检大厅入境时被查获。

关键字: SD卡

对于 CL1 和 CL2,建议使用 5pF 至 25pF 范围(典型值)的高质量外部陶瓷电容器,专为高频应用而设计,并根据晶体或谐振器的要求进行选择(见图24)。CL1 和 CL2 通常大小相同。晶体制造商通常会指定负载...

关键字: STM32F103 晶振 电容

同大多数的Bootloader一样,uboot的启动过程也分为BL1、BL2两个阶段,分别对应着SPL和Uboot。

关键字: Bootloader SPL Uboot

同大多数的Bootloader一样,uboot的启动过程也分为BL1、BL2两个阶段,分别对应着SPL和Uboot。

关键字: Bootloader uboot SPL

台湾台北, July 14, 2022 (GLOBE NEWSWIRE) -- 特种存储和内存解决方案领域的全球领先企业ATP Electronics推出新的3D三层单元(TLC)S750/S650系列SD和microS...

关键字: DVR MICROSD SD卡 行车记录仪

PX 系列工业级存储卡支持 SMART 命令,并具有高性能、高可靠性

关键字: 存储卡 ARM MICROSD SD卡

摘要:以铁路道口应用为例,设计了一种基于SD卡的信息数据存储警示系统。该系统可在需要警示的情况下,通过人工操作或自动触发发出相应的警示信息,包括LED显示屏显示文字警示信息、语音系统播放警示语音、警灯闪烁进行灯光警示。文...

关键字: SD卡 文字 声光 警示系统

摘 要:给出了一种低功耗可刷卡健康手环的设计方法。该设计为了实现手环的多功能化,采用低功耗嵌入式单片机STM32F103为主控制器,并结合了心率传感器、Mifare 1 S50卡、GPS模块、GSM模块以及电源管理模块,...

关键字: STM32F103 低功耗 心率监测 集成射频卡

现在很多现代的NAND闪存设备都采用了一种新型的架构,将接口、控制器和存储芯片集成到一个普通的陶瓷层中。我们称之为一体结构封装。

关键字: SD卡 NAND 闪存

SD卡(secure digital card)是SD卡协会开发的低成本,非易失性存储卡格式(相比较于RAM,SD卡掉电数据不丢失); 随着本世纪电子技术的高速发展,对于这种中等型号,节能、节省空间的存储器设备的需求一直...

关键字: SD卡 存储器
关闭
关闭