• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

[求助] 2407载入程序的问题

500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/70/414871223522103.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">

板子是TI的2407,上面的截图是load program时弹出的提示框,cmd文件的page 0如下:
PAGE 0 :   VECS   : origin =0h , length =40h   /* VECTORS */
           PVECS  : origin =40h, length =70h
           PROG   : origin = 1010h , length = 6000h
开始烧不进去,提示0x1000h处有问题,于是小弟把prog的起始地址改为0x1010h,希望能略过有问题的地址,改后如上图,还是提示这个地址有问题.

请教高手,如何解决,谢谢
全部回复(7)
正序查看
倒序查看
namin
LV.6
2
2008-10-13 15:28
高手帮忙啊
0
回复
2008-10-14 17:29
@namin
高手帮忙啊
供参考
MEMORY
{
PAGE 0 : VECS : origin =8000h , length = 0040h /* PROGRAM */
PVECS : origin =8044h , length = 0100h   /* Peripheral Interrupt Vectors */
PROG : origin = 8144h , length = 0500h
/* FLASH on Chip*/
PAGE 1 : MMRS : origin = 0000h ,length = 005Fh /* MMRS*/
B2 : origin = 0060h ,length = 0020h/* DARAM B2 BLOCK*/
B01 : origin = 0200h ,length = 0080h/* DARAM B0 BLOCK*/
B02 : origin = 0280h ,length = 0080h
B11 : origin = 0300h ,length = 0080h/* DARAM B1 BLOCK*/
B12 : origin = 0380h ,length = 0080h
SARAM1 : origin = 0800h ,length = 0080h/* SARAM BLOCK*/
SARAM3 : origin = 0900h ,length = 0100h/* SARAM BLOCK*/
SARAM5 : origin = 0A00h ,length = 0200h/* SARAM BLOCK*/
SARAM7 : origin = 0C00h ,length = 0080h/* SARAM BLOCK*/
SARAM9 : origin = 0D00h ,length = 0300h/* SARAM BLOCK*/
}
0
回复
namin
LV.6
4
2008-10-28 10:44
@yangzhouxia
供参考MEMORY{PAGE0:VECS:origin=8000h,length=0040h/*PROGRAM*/PVECS:origin=8044h,length=0100h  /*PeripheralInterruptVectors*/PROG:origin=8144h,length=0500h/*FLASHonChip*/PAGE1:MMRS:origin=0000h,length=005Fh/*MMRS*/B2:origin=0060h,length=0020h/*DARAMB2BLOCK*/B01:origin=0200h,length=0080h/*DARAMB0BLOCK*/B02:origin=0280h,length=0080hB11:origin=0300h,length=0080h/*DARAMB1BLOCK*/B12:origin=0380h,length=0080hSARAM1:origin=0800h,length=0080h/*SARAMBLOCK*/SARAM3:origin=0900h,length=0100h/*SARAMBLOCK*/SARAM5:origin=0A00h,length=0200h/*SARAMBLOCK*/SARAM7:origin=0C00h,length=0080h/*SARAMBLOCK*/SARAM9:origin=0D00h,length=0300h/*SARAMBLOCK*/}
请教一下
你的cmd 是不是使用的外部存储器?

现在我想用外部存储器,原来的cmd文件是
MEMORY
{
PAGE 0 :  VECS : origin = 0h , length = 40h  /*  程序复位 */
PVECS: origin =  44h , length = 70h  /* 外围模块中断向量 */
PROG : origin = 1000h , length = 6000h
PAGE 1 :  MMRS : origin = 0h , length = 060h
            B2 : origin = 0060h , length =  020h
          B0B1 : origin = 0200h , length =   200h
          SARAM : origin = 800h , length =  800 h    
}
SECTIONS
{      
    .reset   : { } > VECS   PAGE 0 /* 复位中断向量表 */
    .vectors : { } > VECS   PAGE 0 /* 中断向量表 */
    .pvecs   : { } > PVECS  PAGE 0 /* 外围模块中断向量表 */
    .text    : { } > PROG   PAGE 0 /* 代码 */  
    .switch  : { } > PROG   PAGE 0
    .data    : { } > PROG   PAGE 0
    .cinit   : { } > PROG   PAGE 0
    
    .const   : { } > SARAM  PAGE 1
    .bss     : { } > SARAM  PAGE 1 /* 块 B2 */
    .stack   : { } > SARAM  PAGE 1 /* 堆栈-40个单元 */
    .sysmem  : { } > SARAM  PAGE 1
    .reg240x : { } > MMRS   PAGE 1
    .firldb  : { } > B0B1   PAGE 1
    .firfilt : { } > SARAM  PAGE 1
    .fircoef : { } > SARAM  PAGE 1
}

我把page0 的 PROG的起始地址改为 8000h,然后编译可以通过,运行不出波形.
对cmd还不是很明白,请高手指点
0
回复
2008-10-28 13:03
@namin
请教一下你的cmd是不是使用的外部存储器?现在我想用外部存储器,原来的cmd文件是MEMORY{PAGE0:  VECS:origin=0h,length=40h  /*  程序复位*/PVECS:origin=  44h,length=70h  /*外围模块中断向量*/PROG:origin=1000h,length=6000hPAGE1:  MMRS:origin=0h,length=060h            B2:origin=0060h,length=  020h          B0B1:origin=0200h,length=  200h          SARAM:origin=800h,length=  800h    }SECTIONS{          .reset  :{}>VECS  PAGE0/*复位中断向量表*/    .vectors:{}>VECS  PAGE0/*中断向量表*/    .pvecs  :{}>PVECS  PAGE0/*外围模块中断向量表*/    .text    :{}>PROG  PAGE0/*代码*/      .switch  :{}>PROG  PAGE0    .data    :{}>PROG  PAGE0    .cinit  :{}>PROG  PAGE0        .const  :{}>SARAM  PAGE1    .bss    :{}>SARAM  PAGE1/*块B2*/    .stack  :{}>SARAM  PAGE1/*堆栈-40个单元*/    .sysmem  :{}>SARAM  PAGE1    .reg240x:{}>MMRS  PAGE1    .firldb  :{}>B0B1  PAGE1    .firfilt:{}>SARAM  PAGE1    .fircoef:{}>SARAM  PAGE1}我把page0的PROG的起始地址改为8000h,然后编译可以通过,运行不出波形.对cmd还不是很明白,请高手指点
在使用外部存储器做仿真使用时,CMD文件不需要改变.和烧录FLASH 的CMD 用的是同一个
0
回复
2008-10-28 13:11
@northen1228
在使用外部存储器做仿真使用时,CMD文件不需要改变.和烧录FLASH的CMD用的是同一个
一般就是检查以下几点:
1.检查硬件RAM与CPU 的连线是否都正确且存在,尤其是PS信号
2.是否把MC引脚处于悬空状态,仿真应悬空
3.CMD文件对应CPU的存储器映射是否正确
4.仿真和烧录共用一个CMD
5.注意别让变量超过了了,.BSS的块的范围
0
回复
namin
LV.6
7
2008-10-29 15:31
@northen1228
一般就是检查以下几点:1.检查硬件RAM与CPU的连线是否都正确且存在,尤其是PS信号2.是否把MC引脚处于悬空状态,仿真应悬空3.CMD文件对应CPU的存储器映射是否正确4.仿真和烧录共用一个CMD5.注意别让变量超过了了,.BSS的块的范围
有个问题,就是出现这个对话框之后,我点 确定,显示其他的程序烧进去了

那这个烧进去的程序是不是不完整的?是不是不能正常运行呢?

谢谢
0
回复
2008-11-09 21:45
@namin
有个问题,就是出现这个对话框之后,我点确定,显示其他的程序烧进去了那这个烧进去的程序是不是不完整的?是不是不能正常运行呢?谢谢
这种情况,在运行时你看一下地址中的值就知道是一种假运行状态,值不对.
0
回复