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

bootloader之后CCS无法连接?

开发板:SEED-DEC6437

平台:CCS3.3

问题:在成功烧写flash之后(自启动),连接CCS一直失败

 初次连接CCS报错如下:

单击YES之后显示如下:

 

问题详细描述:

         我仿照SEED给led的boot程序,通过仿真器成功将vedio_vga程序烧写到开发板上,断开仿真器,重新上电后,得到从摄像机传输的图像带有很多条纹状重叠(vedio_vga程序若通过仿真器单独在板子上跑是没问题的),于是网上查了资料之后怀疑是二次boot程序有问题,然后修改了二次boot程序(请看附件,修改的地方都有注释),然后再重新烧写到开发板上,之后就出现了上边无法与CCS连接的问题。

         个人怀疑是因为将二次boot程序修改成死循环了,导致二次boot之后就不能跳转到目标程序的起始地址,于是上电就自动循环运行该boot程序,导致CPU一直被占用,从而无法与CCS连接。。。。若是该原因,擦除flash应该就好了,但是不能与CCS连接的情况下如何擦除呢?如果不是这个原因,又是为什么呢?

        请专家赐教啊,折腾好久了,万分感激!

Andy Yin:

Alan您好,

请根据bootloader document 进行代码check,一步步比对核实一下。我们也在核实一下。谢谢。

Alan Zhang:

回复 Thomas Yang1:

恩,我查看官方资料也说硬件复位再连接,可是仍然不管用,谢谢你。

Alan Zhang:

回复 Andy Yin:

我check过了,按照我修改的程序是会导致程序不能跳转到0x42000000的,我想知道之前有出现过类似问题吗?或者我将工程发送给您,您在开发板上边试试?

Thomas Yang1:

回复 Alan Zhang:

0x42000400 是落在:

40000000 4FFFFFFF 256M HyperLink data 空间

Alan Zhang:

回复 Thomas Yang1:

DM6437内存映射中0x42000000-0x42FFFFFF 16M是EMIFA data CS2的空间,因为合众达这个开发板的boot mode是EMIFA ROM FASTBOOTwithout AIS模式,所以上电后会从0x42000000处连接flash,这里是没有问题的,原来的程序就是这个入口地址,我并没有修改,谢谢你~

Thomas Yang1:

回复 Alan Zhang:

你意思是单步跟踪后,程序不能跳转到0x42000000?你能不能先把code section放到片内空间,调试成功后,再放到片外空间后?

建议供参考

Alan Zhang:

回复 Thomas Yang1:

Thomas Yang:

      你好,不是单步跟踪看到程序跳转到0x42000400,而是SEED-DEC6437的启动模式就是这样的,整个过程其实是这样的,开发板上电之后就自动执行板子内嵌的一次bootloader程序,将0x42000000-0x42000400处(共1kb,就是我附件中给的boot.asm)的代码搬移到片内RAM中,然后再执行该1KB的程序(boot.asm),我把它命名为二次bootloader,作用就是将余下真正的目标程序代码搬移到片内RAM中,搬移完毕之后就跳转到目标程序的起始地址(对应于0x42000400)开始执行目标程序。

  现在的问题就是我写的二次搬移程序boot.asm错误的写成了死循环,导致程序最终无法跳转到目标程序的起始地址,就是不能从boot.asm中跳转出来,致使CPU一直被占用,无法与CCS连接,不能连接CCS基本上什么操作都做不了了,我猜想能否通过什么办法(不用连接CCS,比如串口)擦除flash空间(就是擦除boot.asm这个程序),让CPU不被占用??

   谢谢你一直以来的解答。

Thomas Yang1:

回复 Alan Zhang:

你好

现在明白你的意思了,如果SEED的开发板有拨码开关支持no boot的话, 建议配置成no boot 模式。或者自己跳线试试

赞(0)
未经允许不得转载:TI中文支持网 » bootloader之后CCS无法连接?
分享到: 更多 (0)