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/TM4C123GH6PM:将 TIvAware 引导加载程序集成到现有应用

Guru**** 2448780 points
Other Parts Discussed in Thread: EK-TM4C129EXL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/634876/ccs-tm4c123gh6pm-integrating-tivaware-bootloader-to-existing-application

器件型号:TM4C123GH6PM
Thread 中讨论的其他器件:EK-TM4C129EXL

工具/软件:Code Composer Studio

研究员,

我的同事尝试将 Tivaware 引导加载程序集成到他的应用程序中、但在编译时收到如下错误消息:

configPkg/linker.cmd"、第147行:警告#10096-D:指定的地址位于内存映射之外
错误#10264:默认存储器范围与现有存储器范围闪存重叠
错误#10264:默认存储器范围与现有存储器范围 SRAM 重叠

然后他打电话给我寻求帮助、"假设我是引导加载程序专家..." 我不是-但我一定可以去看看!!!

我查看了 spmu301d.pdf 手册、但尽管它对 API 非常全面、但似乎并未显示如何将其集成到现有项目中... 有关如何正确处理.cmd 配置的任何提示、或有关正确文档的指导?

此致

布鲁诺

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您正在寻找某种类型的链接和定位命令。 通常在文件中指定存储器映射、但有时是通过命令行指定的。 我本以为引导加载程序示例会包含至少用作模板的文件。

    虽然闪存显然不应重叠、但至少某些 SRAM 可能会重叠。

    您的同事是否有机会尝试作为单个应用程序进行链接? 这将使这一进程复杂化。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Robert、
    我将在明天下载他的项目、并进行更好的查看。 显然、正是这种情况发生了:将引导加载程序和应用程序整合为一个块的意图。 这就是我们在自己的"复杂"引导加载程序解决方案中的工作方式。
    我还没有意识到、但看来 Tivaware 引导加载程序的常规序列是:
    1-为引导加载程序创建一个非常简单的项目,配置适用于电路板的任何硬件要求
    2-通过 CCS 或使用的任何 IDE 将其上载到空白目标。
    3-创建应用程序"就好像它不是用于引导加载程序一样",除非它必须被编译偏移量。 生成.bin 文件。
    4 -在运行上传程序的电路板上执行"无"操作的情况下、使用 LMFlash 将应用程序的 bin 文件传输到电路板。
    是这样吗?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我不知道这是否正确、但这正是我所期望的。 如果没有其他原因、或者您不想在更新应用程序时重新加载引导加载程序、则它们通常是分开的。

    如果您希望工厂编程使用单个二进制文件、则可以很容易地合并生成的二进制文件。

    Robert
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruno、
    是的、TivaWare 引导加载程序示例将执行此操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Robert、

    我测试了引导加载程序示例程序、它们确实简单易懂。

    此处有一些其他读者可以避免的注意事项:
    -编译标准 boot_serial 示例会生成两个奇怪的警告、我没有找到解释(在 CCS 论坛上单独发布)。
    -通过 LMFlash 发送更新固件时,请记住键入正确的偏移位置。
    - boot_demo1和 boot_demo2以相同的速率闪烁 LED -它确实向我建议更新代码的尝试失败,因为我假定不同的闪烁速率将是"概念证明"。 因此、任何尝试它的人都应该更改降级2上的闪烁速率、以感到更开心!

    我的同事将使用单独的引导加载程序。 我没有编译他的工程、因为他的工程定义是针对不同的编译器、我现在不会费心寻找/安装它... 因此、我对第一个帖子的"存储器重叠"消息仍没有真正的解释、但如果出现新消息、我将在此处进行更新。

    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、Charles!
    稍后、我通过使用 boot_serial、boot_demo1和 boot_demo2示例集来确认这一点。
    只是缺少有关重叠存储器范围消息的说明... 找到了另一个线程、我们将对其进行检查。
    布鲁诺
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    请允许我的小组赞扬你布鲁诺"分享你的努力细节"、希望"将价值传递给他人"。

    如果此处列出这些"奇怪的警告"、将"提高读者的理解能力"。 (不是将"所有"读取器转移到另一个站点、而是将"几分钟的时间(现在)"转移到未来的所有读取器、从而节省了"数千分钟的损失时间"。)   (不要恨我-我试图"放松/加速"他人的努力)

    建议以单独的速率闪烁、也可以让完全不同的 LED 闪烁、或者只需切换多个(不同的) GPIO、这些 GPIO 连接到 LED 的"非板载"(鹅卵石)"目录林"。   7段 LED 还可"轻松处理"多个 LED (即使图形不是数字形式也是如此)。

    如果您没有整洁的帖子(可能也有价值)、您会对"您使用了哪些引导加载程序示例程序"进行描述、并提出建议。  我不是此类引导加载程序的"大粉丝"、但我还记得有"多种启动方式"引导加载程序、这可能会影响"后续读取器"的成功...

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

    CB1、

    当然、我本可以更清楚地说明这一点。

    示例集包括:

    - boot_serial (只能通过 UART0使目标为接收固件做好准备的小型工程)

    - boot_demo1 (一种简单的演示程序、可使 LED 闪烁、但在按下开关时也会将执行转移到引导加载程序区域)

    - boot_demo2 (类似)

    这些示例都可以在 TIvaware 示例文件夹中找到、尤其是对于/boards/ek-tm4c129exl 示例集。

    奇怪的警告是:

    这两个宏都未在今天上午的 E2E 论坛上找到。

    此致

    布鲁诺

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

    谢谢-非常感谢。
    也许那些具有"知情人"的人可以提供"释放引导加载程序代码示例"的方法、而不会发出此类(不明但相关)警告...

    请注意、通过 PM (Moments 之前)、我已通过"外部知识"向您进行了更新。  (希望-"无警告"。)

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

    刚刚收到有关神秘警告的回复:

    "您不应收到这些警告。  这是汇编器中的一个错误。  我可以重现问题。  我在 SDOWP 系统中提交了 CodeGen-3843、以对其进行调查。 您可以通过禁用 ULP Advisor 来避免警告。  在 CCS 中、右键点击工程名称、然后选择"Show Build Settings"。  然后使用下面的屏幕截图。"

    (项目属性->生成-> ARM 编译器-> ULP Advisor ->取消选中全部)

    我想我们可以考虑现在回复的主题。 一种"总和":

    - Robert Adsett 指出,实际上使用了两个单独的项目。
    -使用 launchpad 电路板上的示例文件以及相关提示进行进一步测试
    -  在 CCS 方面提供帮助

    斯莱恩特!

    布鲁诺

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

    您好、Bruno、

    存储器重叠错误可能是 TI-RTOS 配置或其他编译应用程序的关键、并且很难解决。 通过点击 CCS View/Other、选择 Memory Allocation 图标、可以找到一个不错的工具。 接受1个编译以将信息传播到其中、然后绿色/黄色条指示使用的缓冲区、堆存储器段、INT 矢量等。 如果  配置会使 INT 矢量表的物理地址空间混乱、则图形布局使一切看起来都更加清晰。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    做得好、对 LED 上的其他人有很好的建议

    Robert