DSP中FLASH烧写方法

  • 格式:doc
  • 大小:31.50 KB
  • 文档页数:2

下载文档原格式

  / 4
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

FLASH烧写程序方法:

1、将要烧写的程序例如TIMER调通可以在线(用仿真器)下载。注意其source文件

中一定要包含boot.asm程序(见附件)

其cmd文件设置如下:主要修改其L2的长度为8000

*---------timer1.cmd---------

MEMORY

{

L1 : o = 0h l = 0x400

L2 : o = 00000400h l = 00008000h /* not all SRAM */

}

SECTIONS

{

.boot_load > L1

.cinit > L2

.text > L2

.stack > L2

.bss > L2

.const > L2

.data > L2

.far > L2

.switch > L2

.sysmem > L2

.tables > L2

.cio > L2

}

2、查看TIMER程序的map文件,根据map文件中各段的地址和长度修改FLASH_PRG

程序(见附件)中flash_timer.h文件中的各段地址和长度如下:

/* 程序入口点 */

#define ENTRY_POINT 0x000015a0

/* boot段的长度和RAM中地址设定 */

#define BOOT_SECTION_SIZE 0x00000400

#define BOOT_SECTION_ADDRESS 0x00000000

/* cinit段的长度和RAM中地址设定 */

#define CINIT_SECTION_SIZE 0x00001000

#define CINIT_SECTION_ADDRESS 0x00001820

/* text段的长度和RAM中地址设定 */

#define TEXT_SECTION_SIZE 0x00001420

#define TEXT_SECTION_ADDRESS 0x00000400

/* end of table */

#define TABLE_END 0

其中ENTRY_POINT入口地址就是.map文件中的.text:_c_int00的地址,也就是load完程序后在反汇编界面上自动跳到的地址

3、FLASH_PRG程序的cmd文件中的MEMORY中SRAM要选在TIMER程序中SRAM

的后面,这里从0x00008000开始

MEMORY

{

FLASH : origin = 0x64000000, len = 0x4000000

SRAM : origin = 0x00008000, len = 0x1f000

}

4、先load TIMER程序到内存,接着load FLASH_PRG程序并运行,这样就可以将

TIMER程序烧入FLASH中。可以对照memory 0-8000和64000000-64008000的数据是否一致。数据查看方法是:file/data/save 可输入保存的初始地址和长度。分别

保存并对照即可。

附件:

FLASH_PRG程序

BOOT.asm程序