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

关于C6713二次启动调试的问题

最近负责C6713板卡开发,调试的软件在ram中运行正常,需要下载到flash中进行固化。目前遇到的问题是,有时候板卡会启动不起来,需要单步调试测试。

目前我的做法是,将包含二次启动的工程编译后,然后在debugger模式下,通过load加载.out文件,使用cup reset重置寄存器,然后使用汇编单步调试进行二次启动代码的调试。在此有以下疑问:

1,包含二次启动代码的工程是否可以在编译后通过load加载,加载到了什么位置 是否由工程的.cmd文件决定

2,使用cup reset后,执行汇编单步时,运行的程序是在RAM中 此程序是通过load加载进入RAM的还是通过EDMA将FLASH的文件拷贝过来的

3,单步执行完毕二次启动代码后,跳转到c_int00时会提醒No source available for "c_int00”,我查到的说法是debugger模式下缺少RTS库,所以无法单步执行 是否是这个原因,如果不是这个原因又是什么导致的

4,使用load直接加载.out文件可以直接进入工程的main()循环中,但是如果cup reset后,使用汇编单步执行的时候无法进入,是什么原因

Tony Tang:

Daniel wang33,单步执行完毕二次启动代码后,跳转到c_int00时会提醒No source available for "c_int00”,我查到的说法是debugger模式下缺少RTS库,所以无法单步执行 是否是这个原因,如果不是这个原因又是什么导致的

不是缺RTS库,而是这个函数是RTS库文件来的,不在你的工程源文件里,所以单步跟踪不到C代码, No source available for "c_int00”这句话只是告诉你这个事实,而不是出错。

Daniel wang3:

回复 Denny%20Yang99373:

您好,我还有一些疑问如下:

1,加载的位置如果是根据CMD确定,我的工程中.text段是定位到flash的存储空间的 加载的时候是如何操作的

2,就是说cpu reset后,没有进行load操作就是从flash中读出,如果进行load操作就是load进来的吗

3,这个您说的很明确,谢谢

4,如何将PC指针强制指向程序入口?是指向main()的地址吗?

Daniel wang3:

回复 Tony Tang:

明白了,谢谢指明原因

Daniel wang3:

回复 Tony Tang:

好的,谢谢您的解释

Daniel wang3:

回复 Tony Tang:

1,加载的位置如果是根据CMD确定,我的工程中.text段是定位到flash的存储空间的 加载的时候是如何操作的

— 我的CMD文件是这样写的:    .text   : load = FLASH_REST, run = IRAM 

按照您的说法,就是跑在ram中喽

2,没有问题

3,没有问题

4,就是用debugger–Go Main来完成吗?

Tony Tang:

回复 Daniel wang3:

Daniel wang3

  .text   : load = FLASH_REST, run = IRAM 

按照您的说法,就是跑在ram中喽

上面这个load从来就没什么用,跟CCS download程序不是一回事。程序编译后链接是按RUN地址链接成执行文件的,你看看文档spru186关于cmd文件的说明吧,你的问题上面都有答案。

Daniel wang3:

回复 Tony Tang:

是TMS320C6000 Assembly Language Tools User’s Guide中第七章linker Description的内容吧

Tony Tang:

回复 Daniel wang3:

对的。

赞(0)
未经允许不得转载:TI中文支持网 » 关于C6713二次启动调试的问题
分享到: 更多 (0)