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.

280049中的CMD文件的codestart是如何跳转到main函数的?

Other Parts Discussed in Thread: TMS320F280049

测试平台:TMS320F280049

如下图是CMD文件中的codestart段被分配到BEGIN(origin = 0x080000, length = 0x000002),从这里看出是不是280049是从0x080000开始执行的是吧?

然后第二个问题,我查到codestart的代码如下,我们看到程序是跳转到_c_int00的地方,但是找不到_c_int00实现在哪里,  他是如何跳转到我们自己的main函数地址处的呢?

  • 你好:
    1、280049是从0x080000开始执行的
    2、_c_int00是运行支持库RTS.lib(CCS8中的具体位置:C:\ti\ccsv8\tools\compiler\ti-cgt-c2000_18.1.1.LTS\lib,也可以在属性的“linker”中找到)包含的一个重要函数。c_int00是C初始化代码的入口地址,在你用C编程的时候,DSP需要执行一段C运行支持库代码以完成C运行环境的初始化,_c_int00就是这段初始化代码的入口地址。执行完初始化代码后,库代码会自动跳到main函数继续运行。
  • 很高兴能帮到你。
  • 你好:

    我现在想给280049做一个基于CAN通讯的bootloader,准备分成两个程序,我boot功能的codestart我在手册上面看到四个(0x8000\0x8EFF0\0x9000\0x9EFF0),我的做法是希望boot的功能函数执行完跳转到主程序的入口地址,那样的话我的入口地址如何选取(我不知道有什么限制),主程序的入口地址是可以自行设定还是有硬性要求,我看之前有很多人提到一个地址0x3F7FF6,我比较想知道这几个地址之间的关系以及我现在的实际应用应该如何选择或者注意什么问题?

    Best regards,

    Felix Feng