久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5629|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

在Realview MDK中添加自己的FLASH編程算法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:60266 發(fā)表于 2014-8-18 02:49 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
                        【其實(shí)我們可以參考 KEIL Realview MDK安裝目錄如K:\Keil_arm_for_tkstudio\ARM\Flash\AT91SAM7_128,這里面就有各種各樣的FLASH的燒寫算法程序,我們可以參考著寫,這些目錄里面有.c等源文件可供參考】
在RealviewMDK中,F(xiàn)lash燒寫算法不是通用的,都是針對具體的Flash存儲芯片的。由于市面上的Flash種類比較多,所以RealviewMDK不可能包含所有的Flash芯片燒寫程序。但是在具體的應(yīng)用中,開發(fā)者在RealviewMDK中可能會找不到自己所需要的Flash燒寫程序,這時,用戶就必須自己添加Flash燒寫程序。本文將詳細(xì)的探討這種方法。RealviewMDK已經(jīng)定義好了添加到其中的Flash燒寫算法的接口,包括1個描述Flash芯片的結(jié)構(gòu)體和6個對Flash芯片操作的函數(shù)定義。詳細(xì)的內(nèi)容可以參考下面的代碼。
struct FlashDevice
{
unsigned short Vers; // 體系結(jié)構(gòu)及版本號;
char DevName[128]; // 設(shè)備的名稱及描述;
unsigned short DevType; // 設(shè)備的類型,例如: ONCHIP, EXT8BIT,EXT16BIT等等;
unsigned long DevAdr; // 默認(rèn)設(shè)備的起始地址;
unsigned long szDev; // 設(shè)備的總?cè)萘浚?
unsigned long szPage; // 頁面的大小;
unsigned long Res; // 保留,以便將來擴(kuò)展之用;
  unsigned char valEmpty; //Flash擦除后儲存單元的值;
unsigned long toProg; // 頁寫函數(shù)超時的時間;
unsigned long toErase; // 扇區(qū)擦除函數(shù)超時的時間;
struct FlashSectors sectors[SECTOR_NUM];//扇區(qū)的起始地址及容量設(shè)置數(shù)組。
};
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 longadr);
extern int ProgramPage (unsigned long adr, unsigned long sz,unsigned char *buf);
extern unsigned long Verify (unsigned long adr, unsigned longsz, unsigned char *buf);
在RealviewMDK中,添加Flash燒寫算法的實(shí)質(zhì)就是填充上面的那個結(jié)構(gòu)體以及實(shí)現(xiàn)那6個函數(shù)。至于幾個函數(shù)是如何被RealviewMDK調(diào)用的,用戶不必關(guān)心,這些是由Realview MDK自動管理的,只要正確的實(shí)現(xiàn)了上面的那些內(nèi)容,開發(fā)者就可以將RealviewMDK編譯鏈接后的程序下載到自己的Flash芯片中去。下面是添加一個Flash燒寫的詳細(xì)步驟:
1. 在C:\Keil\ARM\Flash下新建一個空的子文件夾;
2. 在Flash文件夾中選擇一個已存在的,且和欲添加的Flash算法相近的內(nèi)容(如..\ARM\Flash\LPC_IAP_256) 拷貝到這個新文件中,并將此算法作為新算法的模板;
3. 重命名工程文件LPC_IAP_256.UV2以表示新的FlashROM設(shè)備名,如29F400.UV2并用μVision IDE將其打開;
4. 在對話框Project - Options for Target - Output 中將所有的輸出文件名(如LPC_IAP_256)替換為新的設(shè)備名;
5. 編輯FlashPrg.C文件并為EraseChip,EraseBlock及ProgramBlock定義函數(shù)代碼。在函數(shù)Init和UnInit中編寫算法所需的初始化以及卸載代碼;
6. 在文件FlashDev.C中的struct FlashDevice結(jié)構(gòu)體中定義設(shè)備參數(shù);
7. 重新編譯工程,將在C:\Keil\ARM\Flash文件夾下生成*.FLX格式的Flash編程算法。此文件即為所添加的Flash編程算法;
8. 使用Configure Flash Download中的Add按鈕可將此編程算法文件添加到目標(biāo)應(yīng)用工程中。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:44262 發(fā)表于 2014-8-21 22:43 來自手機(jī) | 只看該作者
好資料,,值得收藏
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品乱码久久久久久按摩观 | 国产午夜在线观看 | 亚洲成人精品视频 | 欧美色欧美亚洲另类七区 | 日本一卡精品视频免费 | 国产一区二区三区在线免费 | 精品成人一区二区 | 日本天堂一区二区 | www.99热 | 91精品久久 | 亚洲免费人成在线视频观看 | 国产欧美日韩在线观看 | 午夜男人的天堂 | 精品91久久| 久久久久久久香蕉 | 国产欧美一区二区三区在线看 | 欧美一区二区 | 国产精品一区二区福利视频 | 午夜一区 | 欧美日韩视频 | 91一区二区三区在线观看 | 亚洲精品观看 | 欧美视频二区 | 九九精品在线 | 成人在线中文字幕 | 亚洲成人久久久 | 国产欧美一级二级三级在线视频 | 国产一二区视频 | 久久久久久国产精品 | 天天夜碰日日摸日日澡 | 欧美一级二级在线观看 | 毛片久久久 | 中文字幕日本一区二区 | 中文字幕在线观看一区二区 | 性色在线 | 成人欧美| 亚洲精选久久 | 日本久久黄色 | 国产精品一区二区在线免费观看 | 亚洲一区二区三区免费在线 | 成年人黄色一级片 |