新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > STM32F1 0x在應用中編程的實現方法

        STM32F1 0x在應用中編程的實現方法

        作者: 時間:2009-10-15 來源:網絡 收藏
        3.2 IAP驅動
        IAP驅動主要包含如下源文件。
        main.c:完成Flash解鎖、按鍵端口初始化、按鍵判斷、USART1的初始化以及處理器的始終初始化,另外還初始化指針和跳轉到應用程序處語句。然后從common.c執行主菜單。
        common.c:顯示主菜單。主菜單上顯示一系列操作,如加載二進制文件、執行應用程序以及禁止寫保護(如果事先Flash被寫保護)。
        download.c:等待用戶選擇傳送文件操作,或者放棄操作以及一些提示信息,但真正實現傳送的是ymodem.c源文件。
        ymodem.c:負責從超級終端接收數據(使用Ymodem協議),并將數據加載到內部RAM中。如果接收數據正常,則將數據編程到Flash中;如果發生錯誤,則提示出錯。
        3.3 軟件實現
        要實現IAP功能,還需做一些準備工作:
        ①要準備BIN類型的代碼文件。開發環境使用的是Keil,默認情況下Keil生成HEX類型的編譯文件。利用Keil自帶的fromelf.exe工具,就可以生成二進制文件。
        ②對超級終端進行設置。IAP驅動中對USART1的設置為:波特率為115 200 kb/s,8位數據位,1位停止位,無校驗位和硬件控制。超級終端也必須保持相同設置。
        IAP驅動和應用程序代碼需要分配在Flash的合適位置。圖6是2部分代碼在Flash中的存儲情況。由于IAP驅動代碼占用8 KB的空間,故而將Flash最初的8 KB劃出來,應用程序是從0x08020000地址處開始存放的。這是通過在common.h頭文件中語句定義的:
        #define ApplicationAddress 0x08020000
        也可以定義在其他0x08020000地址后的任何位置,只要保證應用程序大小不超過所用處理器Flash的容量。在platform_config.h頭文件中有定義Flash的語句:
        #define PAGE_SIZE(0x400) //Flash頁大小為1 KB
        #define FLASH_SIZE(0x20000)//Flash容量為128 KB
        F10x處理器有2種Flash頁的大小:1 KB和2 KB。通過以上語句即可定義頁大小。
        在platform_config.h頭文件中還定義了進入IAP功能選擇按鍵映射引腳:

        本文引用地址:http://www.104case.com/article/188565.htm

        IAP驅動在Keil中編譯、鏈接后,利用ARM公司的RealView ULINK2仿真器將生成的HEX文件燒寫到Flash中。此時Keil自帶的Flash燒寫工具要設置Flash的起始地址為0x08000000。在應用程序中,定義向量表的函數NVIC_SetVectorTabl(NVIC_VectTab_FLASH,0x2000)中的第2個參數,即Flash的偏移量一定要設置成0x2000或更大的數值。同時,Flash燒寫工具也要做相對應的設置。將系統的串口與PC機串口相連,打開已經設置好參數的超級終端。將BOOT0跳線為0,BOOT1為0或1都可以。按住IAP功能選擇按鍵,給系統上電。此時,在超級終端就會顯示IAP功能主界面,如圖7所示。

         

        在鍵盤上按1選擇待載入二進制文件,界面上會出現提示語。在“傳送”菜單中選擇傳送文件后,只需幾秒鐘可以將6 KB左右的文件燒寫到Flash。下載完后,在鍵盤上按2或復位就可以直接執行應用程序了,如圖8所示。雖然IAP功能使用的是USART1口,但進入應用程序后就可以正常使用USART1口。隨時可以通過復位后按住IAP功能選擇鍵來進行IAP方式燒寫應用程序。

        結 語
        F10x處理器性能出眾,已被廣泛應用于各種場合。其IAP功能給用戶帶來了極大方便,使得產品的固件更新快捷、簡單。本文闡述了IAP的基本原理,并詳細描述了如何在F10x處理器平臺中實現IAP功能,并在所設計的系統中進行了IAP實驗。實驗證明,該款處理器的IAP功能可靠、快捷。

        存儲器相關文章:存儲器原理



        上一頁 1 2 下一頁

        關鍵詞: STM 32F 32 F1

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 延庆县| 平武县| 板桥市| 英吉沙县| 土默特左旗| 炎陵县| 精河县| 康平县| 海兴县| 孝义市| 永寿县| 晴隆县| 会昌县| 阿克| 正镶白旗| 镇安县| 新野县| 交城县| 开平市| 柳河县| 绵阳市| 闻喜县| 阳山县| 左贡县| 徐汇区| 沂水县| 临桂县| 广州市| 松潘县| 册亨县| 贺州市| 六盘水市| 疏勒县| 若羌县| 甘洛县| 南漳县| 德安县| 顺义区| 岳池县| 黄山市| 延庆县|