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.

TMS320F28374S: DSP里的BEGIN地址

Part Number: TMS320F28374S

专家好:

想请教下,DSP里的BEGIN地址是确定的吗?我看有的地方说是0x3F7FF6,有的地方说是0x08000,有点混乱了

我理解的dsp启动过程是,上电后,进入initboot根据gpio电平状态,选择是否从flash启动

如果是从flash启动的话,按照上面这个表格,那cpu应该会直接跳转到0x3F7FF6这个地址去执行

所以应该在0x3F7FF6这个地址对应的memory被叫做BEGIN

同时在BEGIN中存放着code_start函数,从而跳转到main函数

不知道这个理解对不对?

如果是这样的话,好像这里的地址都是固定的,也没有可以修改的地方了,也没看出哪里是跳转大0x08000这里

请专家指导

  • 你的理解没有问题的。这个0X80000和0X3F7FF6,都是BEGIN地址,只是对应不同的芯片。比如28002X系列都是0X80000,像有些比如28035就是0X3F7FF6

  • 好的,感谢您的回复。

    想顺便请教下,最近学习到有不少Boot在线升级的时候,是先调到升级程序的main里检查是否有升级,之后再跳回到应用程序的main里执行功能程序

    对应到这里,那升级程序应该就是芯片默认的BEGIN地址吧,这个地址不能改变

    那对应的应用程序main地址呢,如何能知道该函数地址呢?

  • 没错,升级程序(boot)的code_start应位于芯片默认BEGIN位置,由boot程序跳转到App程序的入口地址执行app代码。

    在app程序的cmd文件中指定app入口地址。例如:

    下面芯片默认BEGIN位于0x088000:

    BEGIN_BOOT        : origin = 0x088000, length = 0x000008 //,fill = 0xFFFF/* codestart         */
    APP_BEGIN         : origin = 0x08B000, length = 0x000008 ,fill = 0xFFFF/* codestart         */
    
    codestart        : > APP_BEGIN, ALIGN(8)