您的位置 首页 方案

mdk中增加flash算法

在RealviewMDK中,Flash烧写算法不是通用的,都是针对具体的Flash存储芯片的。由于市面上的Flash种类比较多,所以RealviewMDK不可能包

在Realview MDK中,Flash烧写算法不是通用的,都是针对具体的Flash存储芯片的。因为市面上的Flash品种比较多,所以Realview MDK不可能包含一切的Flash芯片烧写程序。但是在具体的运用中,开发者在Realview MDK中可能会找不到自己所需求的Flash烧写程序,这时,用户就必须自己增加Flash烧写程序。本文将具体的讨论这种办法。

Realview MDK现已界说好了增加到其间的Flash烧写算法的接口,包含1个描绘Flash芯片的结构体和6个对Flash芯片操作的函数界说。具体的内容能够参阅下面的代码。

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按钮可将此编程算法文件增加到方针运用工程中。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/260907.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部