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.

[参考译文] TM4C123BH6ZRB:Tiva 软件包中的引导加载程序 CCS 项目文件

Guru**** 2580865 points
Other Parts Discussed in Thread: EK-TM4C123GXL, TM4C123BH6ZRB

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/969242/tm4c123bh6zrb-bootloader-ccs-project-file-from-tiva-software-package

器件型号:TM4C123BH6ZRB
Thread 中讨论的其他器件:EK-TM4C123GXL

大家好、团队成员

我下载 Tiva 软件包 、引导加载程序文件夹包含源代码。 但它不像 软件包中的其他示例那样包含 CCS 项目文件。 从哪里可以买到它?

我的目的是编译引导加载程序并将其加载到闪存中进行现场更新。

此致

Yihe

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

    串行引导加载程序的 CCS 工程可在 TivaWare 目录中找到:

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_serial

    对于 USB 引导加载程序、请查看:

    C:\ti\TivaWare_C_Series-2.2.0.295\examples\boards\ek-tm4c123gxl\boot_usb

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

    您好 Bob

    谢谢你。 我能够编译 boot_serial (使用 I2C 更新) 并在 TM4C123BH6ZRB 上运行它。 我能够通过 I2C 与引导加载程序通信。 我使用的是 CCS9.1和 Tiva 2.2.0.295封装。

     我发现、 当我停止内核时、代码会停止、但代码绝不会在我在从 CCS 停止内核的同一位置设置的断点停止

    如何  使用断点调试引导加载程序?

    非常感谢

    Yihe  

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

    调试引导加载程序的问题是引导加载程序从 RAM 运行、而不是从闪存运行。 在将代码复制到 RAM 之前、不应在 RAM 位置设置断点。 遗憾的是、在代码跳转到 RAM 执行之前、这些符号不起作用。 如果引导加载程序正常工作、将代码复制到 RAM 中并等待来自外设的输入、只需运行代码、然后将其停止。 您应该从 RAM 中循环运行、以检查外设。 此时、您可以设置断点并正常进行调试。

    如果问题到了这一点、您需要将代码单步执行到代码跳转到 RAM 的位置。 我使用了串行引导加载程序演示程序。 您的地址可能不同、但方法相同。 您将需要使用反汇编器窗口。

    执行系统重置并查看"Disassembly"窗口。 代码应与下图类似:

    我的代码从地址0x33C 开始、该地址是 文件 BL_STARTUP_CCS.s 中的标签 ResetISR 在地址0x34C 上、有一个到地址0x300上子例程的分支。 这是子例程 ProcessorInit()。 在地址0x336处、请参阅" Orr r14、r14、0x20000000"? 该指令将返回地址更改为指向 RAM。 在该位置设置断点、然后汇编接下来的两条指令。 您现在应该位于 RAM 中、并且具有正常的 C 调试符号。