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.

[参考译文] AM2732:具有网络功能和 LwIP 的 SBL

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1433481/am2732-sbl-with-networking-and-lwip

器件型号:AM2732

工具与软件:

您好!
我曾在引导加载程序中使用 LwIP 进行实验、并遇到了一些我认为与内存损坏相关的非常奇怪的问题。
我首先以 sbl_null 示例为例、并将其与使用原始 API (enet_cpsw_rawhttpserver)的 LwIP 示例相结合。
只需尝试 LwIP 部件即可用作应用、但如果我在 SBL 环境中尝试它、一旦连接以太网电缆、就会引发随机崩溃。
示例应该非常简单、因此我不明白为什么它会在 SBL 中崩溃、而不是作为应用程序崩溃。
这种组合是否有些奇怪?

重现步骤:
-在分离以太网电缆的情况下,用 uart_bootloader.py 刷写 SBL_Enet_test.tiimage
-附加 JTAG,加载符号,将断点放置在所有的故障中断处理程序中,修改变量以退出 loop_forever
-插入以太网电缆

e2e.ti.com/.../sbl_5F00_enet_5F00_test.zip

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

    您好、Anrea、

    我正在研究这个问题、请给我1-2天时间来运行一些测试并分享我的观察结果。

    此致、
    Shaunak

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

    安德烈、您好!  

    1.我们通常不建议在 SBL 代码中使用 LwIP、因为有任何具体原因导致 LwIP 无法成为应用代码本身的一部分?

    2.我试图快速浏览你的代码,在调用 app_main()函数之前,我看到了一个永远的 while 循环。 您能说明一下应用程序是如何退出此 while 循环的吗?

    此致、
    Shaunak

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

    尊敬的 Shaunak:
    感谢您的参与。

    1.我们希望从以太网进行次级引导加载程序引导、因此需要某种以太网库。
    我最初选择 LwIP 是因为这是我更熟悉的东西。 我想问一下在 SBL 代码中避免使用该错误的原因是什么? 另外、您会推荐其他什么备选方案、LLD?

    2.这里允许我使用 JTAG 连接并调试 SBL、方法是按照 OG 问题中简要介绍的过程进行操作。 它与问题无关、可以在需要时删除

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

    您好!

    我想问在 SBL 代码中避免使用此方法的原因是什么吗? 此外、您还会推荐其他什么备选方案、LLD?

    1.我们还没有完整测试 LwIP 和 SBL。 因此、您面临的任何问题对我来说都可能同样是新问题。

    通常、我们建议客户使用不带 LwIP 栈的以太网驱动程序(仅使用 Enet-LLD 驱动程序)来实现 SBL 以太网功能。 我们有一个用于 SBL 以太网的 AWR294x 器件经过测试的工作示例。 我随附参考文档。 您可以尝试将其移植到 AM273x。

    e2e.ti.com/.../AWR294x-MCU_2B00_-SDK_5F00_-SBL-QSPI-ENET.pdf

    请告诉我上述方法是否适合您。

    2.明白了,谢谢分享。  

    此致、
    Shaunak

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

    您好!
    最后、我们进行了长时间的调试并发现崩溃是由中断堆栈溢出造成的。
    作为一种权变措施、我们增加了 FIQ 堆栈大小、现在它似乎工作得更好。
    不知道为什么会发生这种情况。