新闻中心

EEPW首页>嵌入式系统>设计应用> STM32F103VB的SD卡在应用编程设计

STM32F103VB的SD卡在应用编程设计

作者: 时间:2012-02-21 来源:网络 收藏

3.4程序更新
根据文档的大小擦除相应的闪存页面,然后从卡中读取文档数据内容到处理器的RAM中,按照闪存步骤将文档数据放入指定的闪存地址,完成用户程序的更新任务。闪存每次可写入半字,即两个字节,闪存流程如图8所示。

本文引用地址://m.amcfsurvey.com/article/149588.htm

g.jpg


闪存步骤如下:
①检查FLASH_SR寄存器的BSY位,以确认没有其他正在进行的编程操作。
②设置FLASH_CR寄存器的PG位为1。
③写入要编程的半字到指定的地址。
④等待BSY位变为0。
需要注意的问题是用户程序在编译的时候要进行相应的设置。用户应用程序设置如图9所示。在KeilμVision开发环境下,应用程序的起始地址设定为0x08003000,同时在应用程序中也要设定向量表的偏移量为0x3000。

h.jpg



4 IAP实验过程及结果
下面介绍IAP实验过程。
①将卡与PC机相连,发送新的二进制文件至卡的根目录下并将其重新命名为UPDATE.BIN。
②用串口线将PC的串口和系统的串口相连。打开PC上的超级终端工具,进行参数设置,参数设置要与IAP驱动程序中的通信方式相匹配,如相同的波特率和数据位等。
③系统上电后,如若不将用户按键按下,则IAP驱动程序不执行固件更新流程,直接跳转到用户应用程序入口。本应用程序为每隔1 s从串口发出“Hello world!”的字符串,并通过串口线显示在PC的超级终端上。
④把存有UPDATE.BIN文件的SD卡插入卡槽,按下用户按键,并同时将系统重新上电或者复位后,IAP驱动程序开始执行固件升级程序。在SD卡中检索到UPDATE.BIN文件后,超级终端上显示“UPDATE.binfounded!”,同时显示文档的大小、首簇位置、占用的簇数量和完整簇链。UPDATE.BIN文件大小为6 472字节,使用第8簇,UPDATE.BIN文件大小为6 472字节,使用第8和第9两个簇来进行存储,第8簇为文件存储的起始簇。
⑤得到更新固件的数据后进入闪存编程程序,新的固件下载完成后立即执行。超级终端上每隔1 s显示“It is a new program!”,证明用户应用程序升级成功。

结语
本文给出了一种基于芯片的嵌入式系统在应用编程方案,该方案采用SD卡作为升级程序的存储媒介。上文给出了详细的实现步骤和实验方案。实验结果表明该方案能可靠实现IAP功能,完成对嵌入式系统固件的更新,且实现步骤简单、快捷。其原理可以广泛用于任何一种基于闪存的嵌入式系统。

分频器相关文章:分频器原理

上一页 1 2 3 4 下一页

评论


相关推荐

技术专区

关闭