DSP中FLASH烧写方法
- 格式:doc
- 大小:31.50 KB
- 文档页数:2
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程序