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.

[参考译文] CCS/TMS570LS3137:tms570ls3137片上引导加载程序

Guru**** 2461020 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/653163/ccs-tms570ls3137-tms570ls3137-on-chip-bootloader

器件型号:TMS570LS3137

工具/软件:Code Composer Studio

1、spnu118t Figure3-1说、上电后 、c_int00之前有一个"片上引导加载程序"、 对于 tms570ls3137 、有一个"片上引导加载程序 "?

   我可以检查哪个文档? 因为我认为这对下一个问题很有帮助

、.map 为2 μ s、如下所示

运行 origin load origin length init length atts members
------ ------ ------ ------ ---- ----
00000000 00000000 00000040 00000040 r-x
00000000 00000000 00000040 00000040 r-x .intvecs
00001560 00001560 00031920 00031920 r-x
00001560 00001560 00030a80 00030a80 r-x .text
00031fe0 00031fe0 000007c0 000007c0 r-.const
000327a0 000327a0 000006a0 000006a0 r-.cinit
00032e40 00032e40 00000020 00000020 r-.binit
00032e60 00032e60 00000020 00000020 r-.ovly
08008000 08008000 00018c68 00000000 Rw-
08008000 08008000 00018c68 00000000 rw-.bss
08020c68 00000040 0000105c 0000105c r-x
08020c68 00000040 0000105c 0000105c r-x flashAPI
08021cc8 08021cc8 00000660 00000000 rw-
08021cc8 08021cc8 00000660 00000000 rw-.data
08022340 00001540 00000020 00000020 r-x
08022340 00001540 00000020 00000020 r-x .TI.ramfunc
0803ffc0 00001500 00000028 00000028 r-x
0803ffc0 00001500 00000028 00000028 r-x ramIntvecs

 .bss 和.data 段位于 RAM 中、如何理解? 断电后、RAM 中没有剩余任何内容。

那么、必须有一些 机制将数据和 BSS 从闪存复制到 RAM?

我还想知道 CCS 何时调试 proj,它只是对闪存进行编程,或者对闪存和 RAM 进行编程?

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

    国东、您好!

    对于您的第一个问题:

    [引用用户="guodong Yao"]

    1、spnu118t Figure3-1说、上电后 、c_int00之前有一个"片上引导加载程序"、 对于 tms570ls3137 、有一个"片上引导加载程序 "?

       我可以检查哪个文档? 因为我认为这对下一个问题很有帮助

    [/报价]

    SPNU118t 是一份介绍我们支持 ARM CPU 的工具的通用文档。 这包括许多不同的产品线和许多不同的 ARM 内核(包括但不限于 ARM7TDMA、Cortex M0/M3/M4、Cortex R4/R5、ARM A8/9等)。 在某些情况下、产品线支持芯片引导加载程序、而在其他情况下则不支持。 对于 Hercules MCU 系列、我们没有片上引导加载程序。

    就文档而言、我们不在任何文档中包含引导加载程序引用、因为我们不通过硬件支持此功能。

    对于 Hercules、如果您的产品需要引导加载程序、您必须在器件的闪存中实现一个引导加载程序。 我们有几个使用 SPI、SCI 或 CAN 实现此类实现的示例、可用作通信方法。 以下链接的应用手册介绍了这些示例:

    [引用用户="guodong Yao"]

    、.map 为2 μ s、如下所示

    运行 origin load origin length init length atts members
    ------ ------ ------ ------ ---- ----
    00000000 00000000 00000040 00000040 r-x
    00000000 00000000 00000040 00000040 r-x .intvecs
    00001560 00001560 00031920 00031920 r-x
    00001560 00001560 00030a80 00030a80 r-x .text
    00031fe0 00031fe0 000007c0 000007c0 r-.const
    000327a0 000327a0 000006a0 000006a0 r-.cinit
    00032e40 00032e40 00000020 00000020 r-.binit
    00032e60 00032e60 00000020 00000020 r-.ovly
    08008000 08008000 00018c68 00000000 Rw-
    08008000 08008000 00018c68 00000000 rw-.bss
    08020c68 00000040 0000105c 0000105c r-x
    08020c68 00000040 0000105c 0000105c r-x flashAPI
    08021cc8 08021cc8 00000660 00000000 rw-
    08021cc8 08021cc8 00000660 00000000 rw-.data
    08022340 00001540 00000020 00000020 r-x
    08022340 00001540 00000020 00000020 r-x .TI.ramfunc
    0803ffc0 00001500 00000028 00000028 r-x
    0803ffc0 00001500 00000028 00000028 r-x ramIntvecs

     .bss 和.data 段位于 RAM 中、如何理解? 断电后、RAM 中没有剩余任何内容。

    那么、必须有一些 机制将数据和 BSS 从闪存复制到 RAM?

    我还想知道 CCS 何时调试 proj,它只是对闪存进行编程,或者对闪存和 RAM 进行编程?

    [/报价]

    为了提供有关映射文件的答案、我需要有一些上下文、包括代码和链接器命令文件、以了解呈现的内容。 此映射文件是否适用于 TMS570项目?  

    正确的方法是、如果断电、RAM 内容将丢失。

    通常、在启动时有一些初始化代码用于初始化在应用上下文中定义的 RAM 变量。 如果这是引导加载程序的一部分、则需要将引导加载程序加载到 RAM 中、以便对其所在的闪存组进行编程、因为您无法对正在执行的闪存组进行编程。

    除了正常的编程方法、没有将闪存复制到 RAM 的正式机制。 有许多线程在从 RAM 执行代码。 下面列出了其中的一些内容:

    对于 CCS、它会将程序放置在您要通知它的位置。 如上面的一些示例中所述、可以配置 RAM/Flash 交换并将程序加载到 RAM 中以供执行、 但我怀疑您的目的是在引导加载程序应用程序中从 RAM 加载和执行代码、这应该包含在前面的应用手册参考中。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Chuck,非常感谢! 我现在知道好多了!
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对于第二个问题、我现在知道:
    (spnu118t)在运行时自动初始化变量(-rom_model)
    由 run_cinit()将数据从闪存复制到 ram;

    谢谢、此致