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:引导加载程序

Guru**** 2473270 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/684069/tm4c123bh6zrb-bootloader

器件型号:TM4C123BH6ZRB

您好,

我需要有关基于 UART 的引导加载程序的一些帮助。 我能够从 UART 引导加载程序更新我的应用程序。 问题是我想修改 UART 引导程序。 希望在引导加载程序中使用包括计时器和 UART 串行中断在内的中断。 可以帮帮我吗? 当前,当我尝试在引导加载程序中使用计时器和 UART 中断并将中断功能放入启动文件时,引导加载程序将不起作用。

此外,还可以调试引导加载程序,因为断点也不起作用。

此致、

MOH

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

    引导加载程序将所有代码复制到 SRAM、处理器从 SRAM 运行、以便处理器可以自由擦除和写入任何闪存位置。

    通常、当从闪存运行时会中断硬件断点、但当从 SRAM 运行时、调试器会修改 SRAM 操作码。 如果您查看断点窗口、您会注意到它显示的是 SWBP、而不是 HWBP。  反汇编过程中看不到运算代码交换、但您可以在内存浏览器中看到它。

    您遇到的问题是复制过程;复制到 SRAM 的操作码会重新复制到 SRAM。 您的软件断点调试器诀窍会被覆盖。 我计算出、您可以单步执行复制循环~870次、然后才能在复制循环之后立即设置断点。 在中断复制循环后、您可以在任意位置设置断点。 这对我很有用。 我不记得确切的数字。 尝试900以确保安全。

    或者、您可以让程序运行一段时间、暂停、然后设置断点。

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

    ***像***写得很好。

    我是否可以在海报(不合理)的愿望中记录"问题"、即"在引导加载程序上强制中断-计时器和 UART -"。   如果此添加充分偏离供应商的"正常/习惯"代码设计计划和实施、则问题(可能)严重。  (甚至是"预期"的 lurk。)

    无论是公司还是我都不使用供应商的引导加载程序-如果中断对供应商的引导加载程序设计而言是"不可或缺的"、则可能会忽略此注意事项。

    一般而言、修改"已知良好代码"(在这种动态、多存储器传输环境中)的做法(没有适当的理由)会带来问题、并且应该(仅在确实合理的情况下)实施。   (未提供此类用例!)   然后-仅在极其小心的情况下-和实质性的"测试/验证"。

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

    大家好、我没有任何关于移动良好工作规范的意图。 问题是我想在引导加载程序中添加更多功能。 如何在不进行修改的情况下实现这一点。 谢谢

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

    我相信我们的职位已经"跨越"了。   正如我所写的-如果引导加载程序需要"特殊注意/处理"来适应您的"添加的"中断-需要谨慎。

    我们公司不使用供应商的引导加载程序-我会提供"预防建议"(以防万一)、正如我们注意到(其他供应商的) ARM MCU 中存在的(类似)问题-按您的建议运行... 引导加载程序的"动态性质"可能会因"意外/意外的此类中断"的到来而受到影响-这是我的担忧!