请教芯片FLASH无法擦除问题?
现使用2808芯片开发(刚接触DSP),在仿真是曾出现使用TI例程无法仿真运行问题,仿真单步运行时C语言下方的汇编程序都是为-------;后修改CMD文件,将其中的PRAML0的起始地址该为0x008000后可仿真运行。现想将程序写人FLASH中,却发现在擦除FLASH时进度条停留在1/3处后就不动,多次重启软硬件都没有无法解决,在本网站上也看到相关的帖子,但是都没有说出是如何解决的,恳请哪为兄台出来指点一二!不胜感激! 1.8V与3.3V电源端都采用47uF电容,在芯片附近增加多个105电容问题依旧。是否还有地方设置不当? 在同一台电脑上烧写2802一切正常,但是2808擦除都有问题!是否是电路硬件有问题?但为什么又能仿真呢?真是有点搞不懂 在仿真过程中查看变量值时Value中显示的为memory map prevented read of target memory at 0x0000B480@Data,这是什么问题?CMD设置有问题?数据超出了区域?如果RAM不够应该会提示啊? randy3418 发表于 2013-10-15 16:57 static/image/common/back.gif1.8V与3.3V电源端都采用47uF电容,在芯片附近增加多个105电容问题依旧。是否还有地方设置不当? ...
这个应该与供电没关系 randy3418 发表于 2013-10-15 17:18 static/image/common/back.gif
在仿真过程中查看变量值时Value中显示的为memory map prevented read of target memory at 0x0000B480@Data ...
你是怎么查看的你可以光标放到变量上 然后右击add to watch查看 可以右击refresh 你可以先找些编译没什么问题的工程单步和烧写一下看看
https://bbs.21ic.com/icview-577686-1-1.html
zhangmangui 发表于 2013-10-15 23:39 static/image/common/back.gif
你可以先找些编译没什么问题的工程单步和烧写一下看看
https://bbs.21ic.com/icview-577686-1-1.html
...
版主真是辛苦,都快12点了还帮我解答。十分感激!
使用add to watch查看数据时右击refresh数据还是没有反应依然是那样。见附件中的图片。
我昨天还发现一个问题,当用const定义一个数组时,无**确的读取数值中的具体值(制作LCD字库),如将cons取消,数据能正常读取(用小数组试验)。CMD中DRAML0 : origin = 0x00A000, length = 0x002000,是不是这个有什么讲究? 附件为add to watch后的窗口图片,我使用TI的例程烧写FLASH试试看。
有一点我没明白TI的例程中为何无法仿真运行?是否是设置CMD文件对芯片造成了什么影响? randy3418 发表于 2013-10-16 10:06 static/image/common/back.gif
版主真是辛苦,都快12点了还帮我解答。十分感激!
使用add to watch查看数据时右击refresh数据还是没有反 ...
这完全是C语言功底啊你如果在定义变量之前加code 就说明你这个量不是变量
类似常量 烧写后是要存入到flash中而不是预留RAM区
是不能修改的查看当然也不可以了 watch只能是变量 zhangmangui 发表于 2013-10-16 11:14 static/image/common/back.gif
这完全是C语言功底啊你如果在定义变量之前加code 就说明你这个量不是变量
类似常量 烧写后是要存 ...
在实际应用中主要是查找const定义中的数据以复制到LCDSendBuf中再写入LCD的RAM中,LCDSendBuf是变量。
例如const u8 Temp[]={0x11,0x12,0x13};
LCDSendBuf = Temp;时LCDSendBuf 的值不为0x11,而将Temp数据定义成普通数据LCDSendBuf 的值才为0x11。
在RAM_Lnk.CMD文件中定义.econst : > DRAML0, PAGE = 1
DRAML0 : origin = 0x00A000, length = 0x002000
是否是DRAML0 定义有问题? 本帖最后由 randy3418 于 2013-10-16 11:59 编辑
调用TI例程gpio_toggle,在InitSysCtrl();后增加
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);
InitFlash();
在擦除FLASH时停止以下窗口不动。 randy3418 发表于 2013-10-16 11:57 static/image/common/back.gif
调用TI例程gpio_toggle,在InitSysCtrl();后增加
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsR ...
我看你只选择了Erase Only所以只能查出没有烧写
你选择Erase,Program这个看看 randy3418 发表于 2013-10-16 11:45 static/image/common/back.gif
在实际应用中主要是查找const定义中的数据以复制到LCDSendBuf中再写入LCD的RAM中,LCDSendBuf是变量。
例 ...
这个与LCD没关系肯定最后是要到DSP中跑啊
变量前面加了const在后面是不能修改的
并且是不能watch的 zhangmangui 发表于 2013-10-16 12:54 static/image/common/back.gif
我看你只选择了Erase Only所以只能查出没有烧写
你选择Erase,Program这个看看 ...
因为先擦在写不行,我才选只擦除。 randy3418 发表于 2013-10-16 11:57 static/image/common/back.gif
调用TI例程gpio_toggle,在InitSysCtrl();后增加
MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsR ...
加了这个也没多大影响MemCopy(&RamfuncsLoadStart,&RamfuncsLoadEnd,&RamfuncsRunStart);
只是将flash的代码搬移到RAM中运行
这问题就说不好了 路过学习学习
页:
[1]