zxj123

zxj123

0个粉丝

92

问答

0

专栏

0

资料

zxj123  发布于  2012-12-24 14:35:26
采纳率 0%
92个问答
3206

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

 
  在RealviewMDK中,Flash烧写算法不是通用的,都是针对具体的Flash存储芯片的。由于市面上的Flash种类比较多,所以Realview MDK不可能包含所有的Flash芯片烧写程序。但是在具体的应用中,开发者在Realview MDK中可能会找不到自己所需要的Flash烧写程序,这时,用户就必须自己添加Flash烧写程序。本文将详细的探讨这种方法。

    Realview MDK已经定义好了添加到其中的Flash烧写算法的接口,包括1个描述Flash芯片的结构体和6个对Flash芯片操作的函数定义。详细的内容可以参考下面的代码。

    structFlashDevice  {

    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, unsignedlongfnc);

    extern int UnInit (unsigned long fnc);

    extern int BlankCheck (unsigned long adr, unsigned long sz, unsignedcharpat);

    extern int EraseChip (void);

    extern int EraseSector (unsigned long adr);

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

    externunsigned long Verify (unsigned long adr, unsignedlongsz, unsigned char

   *buf);

   在RealviewMDK中,添加Flash烧写算法的实质就是填充上面的那个结构体以及实现那6个函数。至于几个函数是如何被RealviewMDK调用的,用户不必关心,这些是由Realview MDK自动管理的,只要正确的实现了上面的那些内容,开发者就可以将Realview MDK编译链接后的程序下载到自己的Flash芯片中去。下面是添加一个Flash烧写的详细步骤:

1.  在C:\Keil\ARM\Flash下新建一个空的子文件夹;

2.   在 Flash 文件夹中选择一个已存在的,且和欲添加的 Flash 算法相近的内容(如

    ..\ARM\Flash\LPC_IAP_256) 拷贝到这个新文件中,并将此算法作为新算法的模板;

3.  重命名工程文件LPC_IAP_256.UV2以表示新的FlashROM设备名,如29F400.UV2并用μVisionIDE

    将其打开;

4.  在对话框Project-OptionsforTarget-Output中将所有的输出文件名(如 LPC_IAP_256)替换为新的

    设备名;

5.  编辑FlashPrg.C文件并为EraseChip,EraseBlock及ProgramBlock定义函数代码。在函数Init和UnInit

    中编写算法所需的初始化以及卸载代码;

6.  在文件FlashDev.C中的structFlashDevice结构体中定义设备参数;

7.  重新编译工程,将在C:\Keil\ARM\Flash文件夹下生成*.FLX 格式的Flash编程算法。此文件即为

    所添加的Flash编程算法;

8.  使用ConfigureFlashDownload 中的Add按钮可将此编程算法文件添加到目标应用工程中。

我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
更多相似问答
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区