新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > STM32F103VB的SD卡在應用編程設計

        STM32F103VB的SD卡在應用編程設計

        作者: 時間:2012-02-21 來源:網絡 收藏

        3.4 程序更新
        根據文檔的大小擦除相應的閃存頁面,然后從卡中讀取文檔數據內容到處理器的RAM中,按照閃存步驟將文檔數據放入指定的閃存地址,完成用戶程序的更新任務。閃存每次可寫入半字,即兩個字節,閃存流程如圖8所示。

        本文引用地址:http://www.104case.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 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 墨玉县| 恩平市| 玉龙| 靖远县| 班戈县| 珲春市| 文山县| 梨树县| 浠水县| 丘北县| 施秉县| 石嘴山市| 塘沽区| 永和县| 乌鲁木齐市| 民乐县| 阿荣旗| 临夏市| 砚山县| 恩平市| 卢湾区| 绥德县| 洪江市| 泰来县| 安宁市| 永定县| 高台县| 浮梁县| 堆龙德庆县| 澄迈县| 朝阳区| 衡南县| 华阴市| 天长市| 江油市| 夏河县| 石嘴山市| 乌兰察布市| 柘城县| 松滋市| 饶平县|