Thread 中讨论的其他器件:EK-TM4C123GXL、
大家好、团队成员
我下载 Tiva 软件包 、引导加载程序文件夹包含源代码。 但它不像 软件包中的其他示例那样包含 CCS 项目文件。 从哪里可以买到它?
我的目的是编译引导加载程序并将其加载到闪存中进行现场更新。
此致
Yihe
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.
大家好、团队成员
我下载 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 调试符号。