实现将程序代码烧到 F2812 的片上 FLASH 中,然后复位后程序从 FLASH 中的代码
执行(运行当中不将 FLASH 中的代码或部分代码载入到 RAM 区内),要做这么几个工作:
修改 CMD 文件
添加指令跳转代码
烧写 FLASH
(一)修改 CMD 文件
相对于调试时的 SRAM.CMD 文件来说,要修改这么几部分:
1、 将程序部分(PAGE0)对应到 FLASH 空间;
2、 分别在 SECTINS 和 MEMORY 中添加起始段(用户自定义的 codestart)和相应的
存储空间名(设定为 BEGIN),实现的代码如下:
BEGIN : origin = 0x3F7FF6, length = 0x000002
codestart : > BEGIN, PAGE = 0
(二)添加指令跳转代码
直接使用开发包中的源码 DSP281x_CodeStartBranch.asm 文件,代码如下:
***********************************************************************
WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0
.ref _c_int00
***********************************************************************
* Function: codestart section
*
* Description: Branch to code starting point
***********************************************************************
.sect "codestart"
code_start:
.if WD_DISABLE == 1
LB wd_disable ;Branch to watchdog disable code
.else
LB _c_int00 ;Branch to start of boot.asm in RTS library
.endif
;end codestart section
***********************************************************************
* Function: wd_disable
*
* Description: Disables the watchdog timer
评论4