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.

[参考译文] TMS320F2.8379万D:重置为引导加载程序流查询

Guru**** 2539500 points
Other Parts Discussed in Thread: UNIFLASH, CONTROLSUITE

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/615720/tms320f28379d-reset-to-bootloader-flow-inquiry

部件号:TMS320F2.8379万D
主题:controlSUITE中讨论的其他部件

您好,下面是我对设备重置后的流量的理解。

1.设备在重置后执行的所有操作都取决于重置类型,启动模式选择引脚和相关寄存器,对吗? 它都写在引导ROM中,不能修改,对吗? 例如,重置后,设备将始终获取驻留在0x3FFFC0中的指令,而不是其他任何位置,并且驻留在0x3FFFC0中的指令不能修改,对吗?

2. BootROM中的代码将检测重置源。 如果是POR,它将“将时钟分配器调整为/1"-"device configuration"-"RAM初始化"-"continue default boot flow"。 所以BootROM中的代码就像一个"开关案例"或"如果其他",对吗?

3."默认引导流"从检测仿真器是否已连接开始,对吗? 如果是独立启动,而启动模式是启动到闪存,那么设备将转到主()代码驻留在闪存中,对吗? 如果是sci启动模式,它将配置sci外设,将代码加载到闪存,然后转到刚加载到闪存中的main()代码,对吗?

4.对于从重置到main()代码开始的整个过程,我们只能选择,而不能修改,对吗?

5.引导ROM中的代码是否可见?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Zou,

    [引述] 1. 设备在重置后执行的所有操作都由重置类型,引导模式选择引脚和相关寄存器确定,对吗? 它都写在引导ROM中,不能修改,对吗? 例如,重置后,设备将始终获取驻留在0x3FFFC0中的指令,而不是其他任何位置,并且驻留在0x3FFFC0中的指令不能修改,对吗? [/引述]

    正确。

    [引述] 2. BootROM中的代码将检测重置源。 如果是POR,它将“将时钟分配器调整为/1"-"device configuration"-"RAM初始化"-"continue default boot flow"。 所以BootROM中的代码就像一个"开关案例"或"如果其他",对吗? [/引述]

    正确。

    [引述] 3. "默认引导流"从检测仿真器是否已连接开始,对吗? 如果是独立启动,而启动模式是启动到闪存,那么设备将转到主()代码驻留在闪存中,对吗? [/引述]

    正确。

    [报价]如果是sci启动模式,它将配置sci外设,将代码加载到闪存,然后转到刚加载到闪存中的main()代码,对吗? [/引述]

    BootROM将代码加载到RAM而不是闪存中。 要加载到Flash,您需要使用辅助引导加载程序(例如UniFlash等工具 )

    [引述] 4. 对于从重置到main()代码开始的整个过程,我们只能选择,而不能修改,对吗? [/引述]

    正确。 您可以说应用程序入口点或用户代码入口点,而不是main()。

    [引述] 5. 引导ROM中的代码是否可见? [/引述]

    是的,启动ROM代码是可见的,但您可以看到汇编代码,但您可以加载符号文件(您可以在controlSUITE中找到它) C:\ti\controlSUITE\libs\utilities\boot_ROM\F2837x_RevB)。

    此致,

    Vivek Singh

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    只是补充Vivek的回复。  0x3FFFC0是一个向量 (表示隐含分支),它将流重定向 到  引导ROM中InitBoot代码的地址。  开机时和重置后,程序计数器(PC)设置为0x3FFFC0,但 实际 矢量地址可能会根据设备版本而变化。  唯一重要的部分是,向量将始终重定向到InitBoot代码。  然后,引导代码 将根据 提及的各种因素确定入口点。  用户有责任从此处重定向代码。  例如,在入口点,用户可以有一个到_c_init00的分支(参见我们的CodeStartBranch.asm文件),该分支 将执行 运行时支持库 ,然后调用 main(),它在链接时成为一个地址。  在其他情况下,如果 代码可能是在汇编中编写的,则用户可能需要调用另一个“开始”标签。  我建议复习车间中的其他重置和引导幻灯片。

    我希望这能有所帮助。

    - Ken