LF2406控制板无法下载程序到RAM,是否先要擦除Flash的程序
LF2406控制板无法下载程序到RAM,下载时显示“Data verification failed at address 0x8000.Please verify target memory and memory map.”,是否先要擦除Flash上原来烧入的程序?请问怎么擦除呢?下面是我的CMD文件:
MEMORY
{
PAGE 0: VECS: origin = 0x8000,length 0x0040
PAGE 0: PROG: origin = 0x8060,length 0x0700
PAGE 1: B0: origin = 0x0200,length 0x0100
PAGE 1: B1: origin = 0x0300,length 0x0100
PAGE 1: B2: origin = 0x0060,length 0x0020
PAGE 1: DATA: origin = 0x0860,length 0x0700
}
SECTIONS
{
.vectors: {}>VECS PAGE 0 /* 中断向量表 */
.text : {}>PROG PAGE 0 /* 可执行代码和字符串 */
.cinit : {}>PROG PAGE 0
.data : {}>DATA PAGE 1 /* 初始化变量和常数表 */
.bss : {}>DATA PAGE 1 /* 保留全局变量和静态变量空间 */
.const : {}>DATA PAGE 1 /* 字符串和switch表 */
.switch : {}>PROG PAGE 0 /* 包含.switch语句建立的表格 */
.stack : {}>DATA PAGE 1 /* 为系统堆栈分配存储器 */
.system : {}>DATA PAGE 1 /* 为动态存储器函数分配存储器空间 */
} 应该是下载程序到flash 你的cmd有没有添加错? zhangmangui 发表于 2013-9-11 14:30 static/image/common/back.gif
应该是下载程序到flash 你的cmd有没有添加错?
只是调试程序,也直接下载到Flash吗?
是不是通过 on-chip flash programmer 把程序下载进去? cmd文件改成下面所示的,然后通过on-chip flash programmer 把程序下载进去Flash,还是显示“Data verification failed at address 0x8000.Please verify target memory and memory map.”
-stack 40
MEMORY
{
PAGE 0: VECS: origin = 0x0000,length 0x0040
PAGE 0: PVECS: origin = 0x0040,length 0x0070
PAGE 0: PROG: origin = 0x00B0,length 0x7F50
PAGE 1: MMRS: origin = 0x0000,length 0x005F
PAGE 1: B0: origin = 0x0200,length 0x0100
PAGE 1: B1: origin = 0x0300,length 0x0100
PAGE 1: B2: origin = 0x0060,length 0x0020
PAGE 1: DATA: origin = 0x0800,length 0x0800
}
SECTIONS
{
.reset : {}>VECS PAGE 0
.vectors: {}>VECS PAGE 0 /* 中断向量表 */
.pvecs : {}>PVECS PAGE 0
.text : {}>PROG PAGE 0 /* 可执行代码和字符串 */
.cinit : {}>PROG PAGE 0
.data : {}>DATA PAGE 1 /* 初始化变量和常数表 */
.bss : {}>DATA PAGE 1 /* 保留全局变量和静态变量空间 */
.const : {}>DATA PAGE 1 /* 字符串和switch表 */
.switch : {}>PROG PAGE 0 /* 包含.switch语句建立的表格 */
.stack : {}>B1 PAGE 1 /* 为系统堆栈分配存储器 */
.system : {}>DATA PAGE 1 /* 为动态存储器函数分配存储器空间 */
} 楼上的兄弟,2406的寄储空间地址从0x8000h开始是外部数据RAM,内部的RAM是从0x300h开始的,不知你要往哪里存呢,另外FALSH是从0x150h开始的,长度是0X7EAFH。
如果你是用汇编的就要将数据地址直接定义到RAM区
.text: {} >B1PAGE1
这样才可以的。
另外好象,你的堆栈区也小了一点吧。
_stact400,试试看。 如果你是用C来编,如果不用programcop();函数,编译器会自动将程序下载到RAM区的。就看你的选择了。
希望能帮助到你。 本帖最后由 bevisc 于 2013-9-12 09:18 编辑
蚊音若雷 发表于 2013-9-11 18:06 static/image/common/back.gif
楼上的兄弟,2406的寄储空间地址从0x8000h开始是外部数据RAM,内部的RAM是从0x300h开始的,不知你要往哪里 ...
我是拿 LF2407的CMD文件,对应着官网提供的2406映像图来改的,2406和2407的区别只是不能外扩吧?2406哪来的外部数据RAM?下图是2406的映像http://ww2.sinaimg.cn/bmiddle/8ad08f14jw1e8jf9s7901j20cq0f80v3.jpg
你说的如果使用汇编写的,和如果使用C写的,指的是我的程序吗? 1楼那个CMD文件中的0x8000是程序空间的RAM。4楼的CMD没写这个地方了,还是报错 我想是这样的吧:从你第一楼和第后来你修改的CMD情况看,RAM区是从0x300h开始的,好像你指的不对吧。2406是没有外部存储区,也就是说它没有地址总线和数据总线引出来,也就说0x8000-0x0FF00不能用。第二个可能是修改不成功吧。
你说的问题和FLASH没有关系,因为提示是说中断向量空间被提在了外部存储器,要你修改MAP。 蚊音若雷 发表于 2013-9-13 09:42 static/image/common/back.gif
我想是这样的吧:从你第一楼和第后来你修改的CMD情况看,RAM区是从0x300h开始的,好像你指的不对吧。2406是 ...
谢谢,已经解决,原来只是需要在CCS那里点一下CPU复位。。:L bevisc 发表于 2013-9-16 15:27 static/image/common/back.gif
谢谢,已经解决,原来只是需要在CCS那里点一下CPU复位。。
点一下CPU复位 只是调到main处了
和你的问题有关么 是的 我也遇到过类似的问题,问题主要出在用的CCS和仿真器是比较新的型号,DSP是老一些的型号就有这样的问题,可以用老版本的CCS和仿真器 就可以了,或者就是烧写程序前复位CPU
页:
[1]