7445|4

73

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

data verification failed at address...(load program 时) [复制链接]



我现在用的是 DSP2407 的板子
(1)
程序编译通过之后,load   .CMD 文件的时候提示我

\\\"data verification failed at address 0x0,
please verify target memoty and memory map\\\"

其中 0x0 是我在 .cmd 文件当中定义的 VECS 的开始地址
然后我点确定,它会 load ,但是当到了家在程序段的时候,它又会提示我

\\\"data verification failed at address 0x0100,
please verify target memoty and memory map\\\"

其中0x0100是我在 .cmd 文件里定义的片内 flash 的开始地址
然后我再点确定,他再 load
但是当结束的时候,会在 output 窗口中提示我

“Can\\\'t Set Breakpoint: Error 0x00000008/-1076 Error during: Break Point,    Cannot set/verify breakpoint at 0x000001BF
Breakpoint Manager: An error was encountered attempting to set a breakpoint used
for end of program detection.

请问这是什么原因?
该如何解决呢?


(2)
另外我把 ccs 安装时产生的 f2407.gel 文件改了一下,它原是
   /* Check MPNMC value (SCSR2 bit 2) to determine map setting.    */
    if(SCSR2 & 4)
        GEL_MapAdd(0x0000,0,0x8000,1,1);    /* Ext prog memory      */
    else
        GEL_MapAdd(0x0000,0,0x8000,1,0);    /* On-chip flash memory */
可是我用这个文件的时候他老是提示我出错,不论我用
   *SCSR2 = 0X000B;   将片子设为 MC 模式;
还是用
   *SCSR2 = 0X000F;   将片子设为 MP 模式,都提示我相同的错误,提示如下:

“ load failed . A section of your program falls into a program that is not writable .\\\"

后来我将其改为:
   /* Check MPNMC value (SCSR2 bit 2) to determine map setting.    */
    if(SCSR2 & 4)
        GEL_MapAdd(0x0000,0,0x8000,1,1);    /* Ext prog memory      */
    else
        GEL_MapAdd(0x0000,0,0x8000,1,1);    /* On-chip flash memory */  
就出现了如(1)所述的问题。

请问问题(1)是不是有问题(2)所引起来的?
那该如何解决问题(2)才能避免问题(1)呢?

ps:另附 .cmd 文件的相关语句
VECS            :ORIGIN=0000H,      LENGTH=0040H   
FLASH_PM    :ORIGIN=0100H,      LENGTH=7EFFH

vectors   :{} > VECS           PAGE 0
.text        :{} > FLASH_PM       PAGE 0


诚盼高手不吝赐教
在此先谢谢了

最新回复

你硬件设计mp/mc已经是低电平了,映射到内部flash,当然不能load。 可以用gel做个软跳针。 #define SCSR1         0x7018 #define SCSR2         0x7019 #define MP        0x0f #define MC        0x0b /* The Startup() function is executed when the GEL file is loaded. */ StartUp() {         F2407_Init();         } F2407_Init() {         GEL_Reset();         GEL_MapReset();         GEL_MapOn();                 GEL_MapAdd(0x0000,0,0x8000,1,1);        /* Flash/External SRAM */         GEL_MapAdd(0x8000,0,0x8000,1,1);        /* External SRAM */                 GEL_MapAdd(0x0000,1,0x0060,1,1);        /* MMR */         GEL_MapAdd(0x0060,1,0x0020,1,1);        /* B2 */         GEL_MapAdd(0x0200,1,0x0100,1,1);        /* B0 */         GEL_MapAdd(0x0300,1,0x0100,1,1);        /* B1 */         GEL_MapAdd(0x0800,1,0x0800,1,1);        /* SRAM */         GEL_MapAdd(0x1000,1,0xF000,1,1);        /* External SRAM */ } menuitem "F2407 DEBUGGER"; hotmenu flash_disable() {         *(int *)SCSR2 = MP; } hotmenu flash_enable() {         *(int *)SCSR2 = MC; } 建议自己设计的时候mp、mc脚做个硬件跳线。  详情 回复 发表于 2010-1-5 10:15
 
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

补充说明

DSP2407的内部程序存储器不可以访问,内部数据存储器可以访问(通过CCS的view memory).MP/MC引脚是低电平.
为什么内部程序存储器不可以访问呢




[ 本贴由 lishiyu250 于 2009-4-22 11:32 AM 最后编辑 ]
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
急啊,我也和你有同样的问题,望高手指教啊
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
把你的Setup再重新配置一下就可以了
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

5
 
你硬件设计mp/mc已经是低电平了,映射到内部flash,当然不能load。
可以用gel做个软跳针。


#define SCSR1         0x7018
#define SCSR2         0x7019

#define MP        0x0f
#define MC        0x0b

/* The Startup() function is executed when the GEL file is loaded. */

StartUp()
{
        F2407_Init();
       
}

F2407_Init()
{
        GEL_Reset();
        GEL_MapReset();
        GEL_MapOn();
       
        GEL_MapAdd(0x0000,0,0x8000,1,1);        /* Flash/External SRAM */
        GEL_MapAdd(0x8000,0,0x8000,1,1);        /* External SRAM */
       
        GEL_MapAdd(0x0000,1,0x0060,1,1);        /* MMR */
        GEL_MapAdd(0x0060,1,0x0020,1,1);        /* B2 */
        GEL_MapAdd(0x0200,1,0x0100,1,1);        /* B0 */
        GEL_MapAdd(0x0300,1,0x0100,1,1);        /* B1 */
        GEL_MapAdd(0x0800,1,0x0800,1,1);        /* SRAM */
        GEL_MapAdd(0x1000,1,0xF000,1,1);        /* External SRAM */
}

menuitem "F2407 DEBUGGER";
hotmenu flash_disable()
{
        *(int *)SCSR2 = MP;
}

hotmenu flash_enable()
{
        *(int *)SCSR2 = MC;
}

建议自己设计的时候mp、mc脚做个硬件跳线。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表