TI中文支持网
TI专业的中文技术问题搜集分享网站

关于2808在ram中调试的CMD文件配置问题

    由于在ram调试DSP程序比较方便,一直都在ram做调试.最近由于代码量比较大,尝试修改cmd文件,修改之后出现无法调试的问题,希望大神能给予指点.

    主控:2808

    CCS版本:CCS6.0

    仿真器:XDS100V3

    原CMD文件为官方例程文件 2808_RAM_lnk.cmd 配置如下:

MEMORY
{
PAGE 0 :

BEGIN         : origin = 0x000000, length = 0x000002 RAMM0       : origin = 0x000002, length = 0x0003FE
RAML0        : origin = 0x008000, length = 0x001000 PRAMH0     : origin = 0x3FA000, length = 0x001000 RESET        : origin = 0x3FFFC0, length = 0x000002
BOOTROM : origin = 0x3FF000, length = 0x000FC0

PAGE 1 :

BOOT_RSVD : origin = 0x000400, length = 0x000080 
RAMM1           : origin = 0x000480, length = 0x000380 
DRAMH0        : origin = 0x3FB000, length = 0x001000}

SECTIONS
{
/* Setup for "boot to SARAM" mode: The codestart section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user code. */
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAMM0 PAGE = 0
.text : > PRAMH0, PAGE = 0
.cinit : > RAMM0, PAGE = 0
.pinit : > RAMM0, PAGE = 0
.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
.stack : > RAMM1, PAGE = 1
.ebss : > DRAMH0, PAGE = 1
.econst : > DRAMH0, PAGE = 1 .esysmem : > RAMM1, PAGE = 1

IQmath : > PRAMH0, PAGE = 0
IQmathTables : > BOOTROM, type = NOLOAD, PAGE = 

}

为了扩展空间,将红字部分改为

PRAMH0         : origin = 0x3F8000, length = 0x002000 

DRAMH0        : origin = 0x3FA000, length = 0x002000

出现如下错误

C28xx: File Loader: Data verification failed at address 0x003F8000 Please verify target memory and memory map.

经查实3F8000–3FBFFF确实为2808有效内存空间,实在想不明白问题所在,望指点.

Hank Zhao:

 0x008000和0x003F8000 地址指向的是同一块RAM区域,两者只能二选一,一块存储区域不能被分配两次。

    由于在ram调试DSP程序比较方便,一直都在ram做调试.最近由于代码量比较大,尝试修改cmd文件,修改之后出现无法调试的问题,希望大神能给予指点.

    主控:2808

    CCS版本:CCS6.0

    仿真器:XDS100V3

    原CMD文件为官方例程文件 2808_RAM_lnk.cmd 配置如下:

MEMORY
{
PAGE 0 :

BEGIN         : origin = 0x000000, length = 0x000002 RAMM0       : origin = 0x000002, length = 0x0003FE
RAML0        : origin = 0x008000, length = 0x001000 PRAMH0     : origin = 0x3FA000, length = 0x001000 RESET        : origin = 0x3FFFC0, length = 0x000002
BOOTROM : origin = 0x3FF000, length = 0x000FC0

PAGE 1 :

BOOT_RSVD : origin = 0x000400, length = 0x000080 
RAMM1           : origin = 0x000480, length = 0x000380 
DRAMH0        : origin = 0x3FB000, length = 0x001000}

SECTIONS
{
/* Setup for "boot to SARAM" mode: The codestart section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user code. */
codestart : > BEGIN, PAGE = 0
ramfuncs : > RAMM0 PAGE = 0
.text : > PRAMH0, PAGE = 0
.cinit : > RAMM0, PAGE = 0
.pinit : > RAMM0, PAGE = 0
.switch : > RAMM0, PAGE = 0
.reset : > RESET, PAGE = 0, TYPE = DSECT /* not used, */
.stack : > RAMM1, PAGE = 1
.ebss : > DRAMH0, PAGE = 1
.econst : > DRAMH0, PAGE = 1 .esysmem : > RAMM1, PAGE = 1

IQmath : > PRAMH0, PAGE = 0
IQmathTables : > BOOTROM, type = NOLOAD, PAGE = 

}

为了扩展空间,将红字部分改为

PRAMH0         : origin = 0x3F8000, length = 0x002000 

DRAMH0        : origin = 0x3FA000, length = 0x002000

出现如下错误

C28xx: File Loader: Data verification failed at address 0x003F8000 Please verify target memory and memory map.

经查实3F8000–3FBFFF确实为2808有效内存空间,实在想不明白问题所在,望指点.

杨旭:

回复 Hank Zhao:

感谢您的回复,这么说2808数据手册中内存映射图中的"Dual-Mapped"是指0x008000-0x00CFFFF地址和0x3F8000-0x3FCFFFF地址指向的是同一块物理内存?

我现在在cmd文件中

RAML0      : origin = 0x008000, length = 0x001000 删除

将PRAMH0     : origin = 0x3FA000, length = 0x001000改为

PRAMH0     : origin = 0x3F8000, length = 0x001000

依然报错

C28xx: File Loader: Data verification failed at address 0x003F8000 Please verify target memory and memory map.

 

赞(0)
未经允许不得转载:TI中文支持网 » 关于2808在ram中调试的CMD文件配置问题
分享到: 更多 (0)