新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > mdk中添加flash算法

        mdk中添加flash算法

        作者: 時間:2016-11-23 來源:網絡 收藏
        在Realview MDK中,Flash燒寫算法不是通用的,都是針對具體的Flash存儲芯片的。由于市面上的Flash種類比較多,所以Realview MDK不可能包含所有的Flash芯片燒寫程序。但是在具體的應用中,開發者在Realview MDK中可能會找不到自己所需要的Flash燒寫程序,這時,用戶就必須自己添加Flash燒寫程序。本文將詳細的探討這種方法。

        Realview MDK已經定義好了添加到其中的Flash燒寫算法的接口,包括1個描述Flash芯片的結構體和6個對Flash芯片操作的函數定義。詳細的內容可以參考下面的代碼。

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

        struct FlashDevice {

        unsigned short Vers; // 體系結構及版本號;

        char DevName[128]; // 設備的名稱及描述;

        unsigned short DevType; // 設備的類型,例如: ONCHIP, EXT8BIT, EXT16BIT等等;

        unsigned long DevAdr; // 默認設備的起始地址;

        unsigned long szDev; // 設備的總容量;

        unsigned long szPage; // 頁面的大小;

        unsigned long Res; // 保留,以便將來擴展之用;

        unsigned char valEmpty; // Flash擦除后儲存單元的值;

        unsigned long toProg; // 頁寫函數超時的時間;

        unsigned long toErase; // 扇區擦除函數超時的時間;

        struct FlashSectors sectors[SECTOR_NUM]; //扇區的起始地址及容量設置數組。

        };

        extern int Init (unsigned long adr, unsigned long clk, unsigned long fnc);

        extern int UnInit (unsigned long fnc);

        extern int BlankCheck (unsigned long adr, unsigned long sz, unsigned char pat);

        extern int EraseChip (void);

        extern int EraseSector (unsigned long adr);

        extern int ProgramPage (unsigned long adr, unsigned long sz, unsigned char *buf);

        extern unsigned long Verify (unsigned long adr, unsigned long sz, unsigned char *buf);

        在Realview MDK中,添加Flash燒寫算法的實質就是填充上面的那個結構體以及實現那6個函數。至于幾個函數是如何被Realview MDK調用的,用戶不必關心,這些是由Realview MDK自動管理的,只要正確的實現了上面的那些內容,開發者就可以將Realview MDK編譯鏈接后的程序下載到自己的Flash芯片中去。下面是添加一個Flash燒寫的詳細步驟:

        1. 在C:KeilARMFlash下新建一個空的子文件夾;

        2. 在Flash文件夾中選擇一個已存在的,且和欲添加的Flash算法相近的內容(如 ..ARMFlashLPC_IAP_256) 拷貝到這個新文件中,并將此算法作為新算法的模板;

        3. 重命名工程文件LPC_IAP_256.UV2以表示新的Flash ROM設備名,如29F400.UV2并用μVision IDE將其打開;

        4. 在對話框Project - Options for Target - Output 中將所有的輸出文件名(如 LPC_IAP_256)替換為新的設備名;

        5. 編輯FlashPrg.C文件并為EraseChip, EraseBlock及ProgramBlock定義函數代碼。在函數Init和UnInit中編寫算法所需的初始化以及卸載代碼;

        6. 在文件FlashDev.C中的struct FlashDevice結構體中定義設備參數;

        7. 重新編譯工程,將在C:KeilARMFlash文件夾下生成*.FLX 格式的Flash編程算法。此文件即為所添加的Flash編程算法;

        8. 使用Configure Flash Download 中的Add按鈕可將此編程算法文件添加到目標應用工程中。



        關鍵詞: mdkflash算

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 黔江区| 烟台市| 万载县| 固始县| 宁安市| 凤冈县| 临潭县| 长春市| 米泉市| 昔阳县| 天峨县| 周至县| 全椒县| 郴州市| 北碚区| 祁连县| 视频| 莫力| 温泉县| 柞水县| 白朗县| 古浪县| 康定县| 遂平县| 宁海县| 河曲县| 曲靖市| 洪江市| 锡林浩特市| 无为县| 南涧| 丹江口市| 张家口市| 安多县| 依兰县| 仁寿县| 定远县| 小金县| 留坝县| 康保县| 华安县|