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.

[参考译文] RM57L843:Hercules 电路板-引导过程

Guru**** 2524550 points
Other Parts Discussed in Thread: RM57L843, HALCOGEN

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1272147/rm57l843-hercules-board---boot-process

器件型号:RM57L843
主题中讨论的其他器件: HALCOGEN

您好、TI 团队、

我想了解 RM57L843和 TMS570l843微控制器的启动过程。 提供了一些链接、我们需要在其中对此进行研究。 是否有任何具体的指南或参考链接、请与我们分享。

什么是引导过程、在哪里研究它、什么是 RTOS 和嵌入式的引导过程。  

RTOS 遵循了与嵌入式相同的引导过程。

请引导我

谢谢。此致、

A. Ajith Kumar。

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

    尊敬的 Ajith Kumar:

    Hercules 器件 没有 ROM 引导加载程序。 这些器件只支持从闪存引导。

    因此、在上电复位后、闪存中的代码将从地址0x0执行。

    和参考以下应用手册、了解 Hercules 器件的初始化序列:

    Hercules ARM Cortex-R4F 微控制器的初始化(修订版 D)

    --

    谢谢。此致、
    Jagadish。

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

    Jagadish、您好!

    我已经了解了启动过程。 我理解一些东西、但对此我仍有困惑。 我会告诉下面我的理解,如果我错了,请纠正我。

    1.微控制器启动(或)复位后。

    2.启动代码将从闪存执行。(由制造商预定义)

    3.此引导代码将包含外设初始化和加载引导加载程序。 引导加载程序将检查 nRST 引脚是否为低电平、以更新主程序。 变为 低电平。 引导加载程序将擦除以前的存储器并将主程序加载到微控制器中。

    主应用程序包含启动程序、该程序将初始化所有外设、时钟、中断、可编程内置自检(PBIST)模块将测试所有正常工作的外设。

    在该主函数之后执行哪个用户定义的。

    Question:

    1.我提到的上述过程是否正确或按任何顺序更改。

    2.是否引导代码可以由用户修改。 有可能吗?如何实现?

    3.PBIST 模块会出现在引导代码中还是启动代码中?

    启动代码和启动代码之间的区别?

    5.同样的过程也适用于微处理器吗? 请说明其中的差异。

    6.汇编语言在引导代码中的作用是什么?

    谢谢。此致、

    A. Ajith Kumar

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

    尊敬的 Ajith Kumar:

    2. 启动代码将从闪存执行。(由制造商预定义)

    制造商不会提供任何预定义代码。 控制器完成复位后、它将直接开始执行来自闪存0x0地址的代码。

    所以、这里不会有任何主要的引导加载程序概念。 所有初始化都将是应用程序代码的一部分。 我是说所有必要的初始化、例如 CPU 寄存器初始 化、堆栈指针初始化、内存初始化和系统初始化 、所有内容都将仅存储在闪存中。 这些所有初始化都将位于函数"_c_int00"中。

    处理器完成复位后、它将通过分支到函数 "_c_int00"来直接执行这些初始化。

    1.上述 过程是否正确或按任何顺序更改。

    不正确、在 Hercules 器件中不会有任何制造商引导加载程序概念。

    Unknown 说:
    2.is 启动代码可以由用户修改。 是否可能以及如何实现?

    代码将始终从闪存地址0x0开始执行、这完全取决于我们在闪存开头编程的代码类型。

    通常、HALCoGen 将生成如下代码:

    在起始地址上、它将存储中断矢量、然后它将逐个存储代码的不同目标文件。

    因此、在复位后、处理器将执行地址0x0中的代码矢量表、并跳转到 _c_int00函数。

    您可以根据您的要求修改此代码。

    3.PBIST 模块会出现在启动代码或启动代码中?

    PBIST 相关代码将位于名为片上 PBIST ROM 的单独存储器部分中。

    它是一个只读存储器、不能被改变。

    4.启动代码与启动代码之间的区别?

    如前所述、制造商不会提供任何启动代码。  在调用 main 函数之前、_c_int00函数中的所有初始化都可以作为启动代码进行调用。

    5. 同样的过程也适用于微处理器吗? 请提及差异。

    不是、微处理器采用不同的程序、因为它们没有任何内置闪存。 其中处理器将包含内置的 ROM 存储器、该存储器包含启动代码(我们可以将其称为主引导加载程序)。 复位后、处理器将执行主引导加载程序、并使用该主引导加载程序、我们可以加载次级引导加载程序和/或应用程序。

    6. 汇编语言在启动代码中的作用是什么?

    在所有内核寄存器初始化、堆栈指针和存储器初始化之前、代码将使用汇编语言。 一旦所有这些初始化完成、代码就可以使用 C 语言、因为根据我的理解、没有这些初始化、我们就无法进行任何正确的函数调用?

    --

    谢谢。此致、
    Jagadish。