This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

【求助】C6455无法自启动的问题



各位TI的工程师,本人在调试c6455 dsp的client工程从flash加载启动的时候,在0xb0000000地址是二次bootload代码,系统上电后可以正常从此处开始执行,bootload搬移代码也正常,但是系统跑起来后发现很慢,导致tcp/ip不通。但是在CCS中点击connect连接c6455DSK开发板,再断开连接(没有通过ccs load目标文件进去),系统就正常跑起来了。系统在CCS下调试发现也能正常跳转到_c_Int00处, 请问下这是什么原因?

  • “系统跑起来后发现很慢,导致tcp/ip不通”,这个似乎不应该。

    可能程序有问题,如果在CCS下调试没问题,请注意在自启动程序中,需要将CCS工程中的GEL文件中初始化代码部分移植到工程的main函数开头再编译出来。

  • 在CCS下调试是没有问题的。我测试了一下,把gel文件中的OnTargetConnect函数中的init_PLL语句去掉后,再通过CCS的connect连接,再disconnect,程序就不能正常运行。恢复这条语句后,这样操作,程序是可以正常运行起来的。但是我把init_PLL作为函数拷贝到工程中,在main函数中调用,编译成hex再烧写进flash进行自启动,就没有效果。init_PLL函数中是不是有些什么特殊操作只能在gel文件中连接开发板的时候进行?

  • 我也是这样的问题。。哎

  • 问题已经解决了。是init_PLL函数的问题。对PLLCTL寄存器操作的时候要先对4,5,7保留位进行清零,才能写寄存器。c6455datasheet也有说明。但是既然是保留位,一般都是不使用的,还有这种要求。。。

  • 请问你是采用什么方式生成COPYTABLE的,我的一直自举失败,能不能参考下你的bootload.asm,和makefile.cmd??谢谢

  • 这两个文件我也都是网上找的,bootload不用修改,make.cmd需要根据目标程序大小修改使用flash的大小。如果目标程序大于cmd文件中定义的flash长度,就无法生成boottable,可以打开.map文件看看有没有生成成功