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.

[参考译文] SW-EK-TM4C129EXL:引导串行示例不起作用

Guru**** 667810 points
Other Parts Discussed in Thread: SW-EK-TM4C129EXL, UNIFLASH, EK-TM4C1294XL
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1117701/sw-ek-tm4c129exl-boot-serial-example-not-working

器件型号:SW-EK-TM4C129EXL
主题中讨论的其他器件: TM4C123UNIFLASHEK-TM4C1294XL

您好!

我使用的是 SW-EK-TM4C129EXL 中的 boot_serial 示例、并遵循了文档《用于 C 系列的 TivaWare 入门》(2021年3月文献编号 SPMU373)中概述的过程。 我使用的是 Code Composer Studio 11.1.0.00011版和 LM 闪存编程器内部版本1613。 我遵循第6章 TivaWare 引导加载程序中参考的文档所述的过程。 我从 Project Wizard 示例资源管理器的全新工作空间中获得了示例项目。 我对 APP_BASE 执行了修改、将其修改为0x00004000、以解决 TM4C123和 TM4C129第6章示例之间过程中的差异。 我已经编译了引导加载程序并使用 ICDI 和 CCS 刷写了器件。 切换到 LM 闪存编程器、并按照步骤在设置程序地址偏移(0x) 4000时、根据文档说明文件的规格手动设置 TM4C 中更大大小的存储器页的代码。 此时、我得到该误差。

为了尽可能地验证我使用 LM 闪存编程器加载了引导加载程序、使用 Uniflash 验证代码是否位于正确的存储器位置、并已确认这一点。 我还可以使用 Uniflash 下载器件的所有闪存内容、以验证我可以同时加载引导加载程序串行和 hello world 程序、而不会删除它们的存储器内容。

此时,我面临的一个问题是,大多数文件都不充分,或已从此处所述的地点删除。 我也找不到足够好的电路板模型文档来帮助指定如何使用跳线正确配置电路板。 我使用的是 Tiva C 系列 TM4C1294 Connected LaunchPad 评估套件 (文献编号 SPMU365C)和 TM4C 系列 TM4C129E Crypto Connected LaunchPad 评估套件(文献编号 SPMU372A)的可用文档。  我还注意到基于文档的器件配置文件存在问题。 将闪存页大小设置为1KB、而不是 SPMU373文档中规定的上述16KB。

注意:编译时、引导加载程序中会出现警告。 如果我更改项目编译器版本、则该警告消失、但其余两个仍然存在。 我已经尝试下载了使用生成的编译器版本。 没有成功。

此致、

斯蒂芬 G

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

    您好 Stephen、

    在此我必须深表歉意。

    第6.2节使用了错误的映像、其中显示了如何配置 LM 闪存编程器。

    我将看到这一问题得到迅速解决、图像得到了正确更新。

    这些是您应该用于引导加载程序的设置:

    我希望在将这些更正后的设置与 EK-TM4C1294XL 的 boot_serial 示例一起使用后、您将能够连接到引导加载程序。

    此致、

    Ralph Jacobi

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

    您好、Ralph、

    我根据您发送的图片尝试了配置、但我仍然认为这仍然不起作用。 我找到的解决方案是检查"Disable Auto Baud Rate Support (禁用自动波特率支持)"。 此功能已在示例 bl_config.h 文件中禁用、并使用115200的固定波特率。

    因此、传输大小没有影响。 例如、我在尝试理解它与#define buffer_size 20的交互时将其设置为20。

    我配置了一些探针来分别监控定义的 GPIO 引脚 PA0和 PA1上的 RX 和 TX。 我能够看到、在 BOOT_SERIAL 的自动波特率配置中、TX 引脚被驱动为0。

    您能评论一下我提到的关于页面/扇区大小的问题吗?

    此致

    斯蒂芬 G

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

    尊敬的 Stephen:

    我真的让我们看起来不称职。

    我完全打算选中该复选框、但我正在测试所有迭代、以确认需要禁用自动波特率支持、并设法发布错误的配置。

    应禁用自动波特、选中该复选框以禁用它是100%正确的。

    我没有过多地修整传输尺寸或与缓冲器尺寸的相互作用、因此我不能在那里放太多光-我一直使用32。 通常、在较高速度下、缓冲器的大小更重要。 我们使用较大的缓冲区并传输更多的数据包、例如使用460800波特、因为传输速度会通过每包发送更多字节来显示明显的差异。 我认为对于115200、传输间隔时间足够慢、以至于缓冲器在完全填满之前被清空、因此传输时32个缓冲器、而缓冲器中20个可以正常工作。 如果需要、您可以始终将其设置为高于列出的最大值。 在 LM Flash 缺省为32的情况下、我可能会考虑在中提出一个"改进"建议来访问20 vs 32。

    [引用 userid="517657" URL"~μ C/support/microcontrollers/arm-based microcontrollers-group/arm -based microcontrollers/f/arm based microcontrollers-forume/1117701/sw-ek-tm4c129exl-boot-serial-example-not working"]闪存页大小设置为1KB、而不是上面引用的 SPMU373/B 文档中所述的内容。]

    应该是0x4000、是的、我必须返回我们的错误日志、因为我之前在 TivaWare 更新中曾认为这是地址、所以我需要查看那里发生了什么。 在任何情况下、我都会提交一个错误通知单、以便在我们将来进行的任何更新中提供地址。

    此致、

    Ralph Jacobi