STM32F103VB的SD卡在應用編程設計
STM32F103VB作為主設備,SD卡作為從設備,使用片內集成SPI1接口與SD卡相連。端口PE3與SD卡片選引腳CS相連,作為其片選控制端口;SPI1_SCK為主設備時鐘輸出引腳,接至SD卡時鐘輸入引腳CLK;PSI1_MOSI為主設備數據輸出端口,與SD卡數據輸入端口DI相連;同理,將SD卡數據輸出端口DO與主設備數據輸入端口SPI1_MISO相連。利用片上通用同步/異步收發(fā)器USART1經過MAX3232收發(fā)器芯片與上位機串口相連,串口通信電路原理圖如圖2所示。將端口PB9配置成輸入浮空模式并外接一個用戶按鍵,作為觸發(fā)IAP操作啟動的判斷條件,按鍵電路如圖3所示。本文引用地址:http://butianyuan.cn/article/149588.htm
3 軟件設計
3.1 IAP功能實現
在應用中編程(IAP)允許用戶在應用程序運行過程中對Flash進行重新編程。整個過程主要是由IAP驅動程序來完成,它的主要工作流程是:首先在SD卡中定位用于更新固件的二進制文件,然后將該文件讀出并寫入用戶應用程序所在的Flash區(qū)域,最后跳轉到更新后的應用程序入口執(zhí)行系統(tǒng)應用程序。因此用戶程序存儲區(qū)應該分為兩個部分,其中一個部分存儲IAP驅動程序,只用于IAP功能的執(zhí)行,通過ICP方式由JTAG或者SWD接口燒寫入Flash;另一部分存儲真正的應用程序,用來執(zhí)行用戶真正需要的功能。兩個部分在Flash存儲區(qū)域中相互獨立,不能存在重疊的部分,系統(tǒng)上電或者復位后首先執(zhí)行第一部分代碼,實現對第二部分代碼的更新操作,在不需要更新系統(tǒng)固件的情況下直接由第一部分跳轉到第二部分代碼入口處執(zhí)行用戶應用程序。
將存有更新程序的SD卡插入卡槽,系統(tǒng)重新上電或復位后通過指定按鍵選擇是否進行IAP操作,IAP操作流程如圖4所示。
評論