STM32F103VB的SD卡在应用编程设计
STM32F103VB作为主设备,SD卡作为从设备,使用片内集成SPI1接口与SD卡相连。端口PE3与SD卡片选引脚CS相连,作为其片选控制端口;SPI1_SCK为主设备时钟输出引脚,接至SD卡时钟输入引脚CLK;PSI1_MOSI为主设备数据输出端口,与SD卡数据输入端口DI相连;同理,将SD卡数据输出端口DO与主设备数据输入端口SPI1_MISO相连。利用片上通用同步/异步收发器USART1经过MAX3232收发器芯片与上位机串口相连,串口通信电路原理图如图2所示。将端口PB9配置成输入浮空模式并外接一个用户按键,作为触发IAP操作启动的判断条件,按键电路如图3所示。本文引用地址:https://www.eepw.com.cn/article/149588.htm
3 软件设计
3.1 IAP功能实现
在应用中编程(IAP)允许用户在应用程序运行过程中对Flash进行重新编程。整个过程主要是由IAP驱动程序来完成,它的主要工作流程是:首先在SD卡中定位用于更新固件的二进制文件,然后将该文件读出并写入用户应用程序所在的Flash区域,最后跳转到更新后的应用程序入口执行系统应用程序。因此用户程序存储区应该分为两个部分,其中一个部分存储IAP驱动程序,只用于IAP功能的执行,通过ICP方式由JTAG或者SWD接口烧写入Flash;另一部分存储真正的应用程序,用来执行用户真正需要的功能。两个部分在Flash存储区域中相互独立,不能存在重叠的部分,系统上电或者复位后首先执行第一部分代码,实现对第二部分代码的更新操作,在不需要更新系统固件的情况下直接由第一部分跳转到第二部分代码入口处执行用户应用程序。
将存有更新程序的SD卡插入卡槽,系统重新上电或复位后通过指定按键选择是否进行IAP操作,IAP操作流程如图4所示。
评论