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.

[参考译文] TFTP-AM263PX:在 MCU-PLUS-SDK 中实现 TFTP 服务器

Guru**** 2393725 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1507914/mcu-plus-sdk-am263px-implementation-of-a-tftp-server-in-the-sbl

器件型号:MCU-PLUS-SDK AM263PX-AM263PX
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好、

我使用的是 AM263Px CC 评估板。 我使用的是 CCS 版本12.8.1、安装的 SDK 为 am263px_10_00_00_35。

和 EMI 数据 裸机上的 Enet LwIP HTTP 服务器(非 RTOS) OSPI 闪存 IO 、我实施了一个 UDP TFTP 服务器。 它接收一个二进制文件并将其写入闪存。 现在、我在引导加载程序(SBL)中实现了该代码、以便能够更新本应运行的应用程序。 我选择了 sbl_ospi、因为它已经能够运行已刷写到 EVM 闪存中的应用程序。 我调用了新的引导加载程序 sbl_ospi_enet。 我向 sbl_ospi syscfg 中添加了 Enet、向源代码中添加了 TFTP 服务器。 引导加载程序等待运行之前刷写的应用程序(0x4b 0x01 0x20)的命令(与 SBL 一起) (1) 或刷写新新应用程序(0x4b 0x01 0x21)并覆盖现有应用程序 (2) 。  这在某些情况下有效。

  1. 只运行 nortos 应用程序。
    我使用示例文件夹中的几个应用进行了测试。 其中一些可行、其他一些则不可行。
    Nortos 应用程序 gpio_led_blink 和 hello_world:SBL 完成加载映像并切换到应用程序的过程。
    FreeRTOS 应用 hello_worl:初始化内核 R5FSS0_0时、SBL 挂起。 (main.c 中的第177行)
  2. 我使用 uart_uniflash.py 刷写 EVM。 SBL 的理念是在 SBL 找到并加载之前、在必要时覆盖刷写的数据(appimage)。 如果同时刷写了 sbl_ospi_enet 和应用程序、则引导加载程序根本不会运行。 如果仅刷写了 sbl_ospi_enet (无应用程序)、则引导加载程序会运行。 如果没有应用程序、(1)将无法再被选择或执行。 (2)工作如上所述。

 

我需要一些帮助来解决上述问题。 我能做到这一点吗? 我是否错过或误解了某些内容?

我遇到的问题是:

  • 我必须将 tftp 服务器放在 main 中的什么位置?
  • syscfg 中需要哪些 MPU ARMv7设置和存储器配置?

此致、

Wega.

e2e.ti.com/.../sbl_5F00_ospi_5F00_enet.zip

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

    您好、不要开始调查。 我发现 SBL 太大(0x8D000)而无法放入所提供的存储器(0x600000000–0x60081000)。 UART Uniflash 未发出警告、但 TI Uniflash 收到了警告! I 为应用程序定义了一个新的偏移量0xA0000。 我在我的帖子中遇到的一些问题已得到解决。 我仍然对此引导加载程序有一些相关问题、但在此之前、我需要进一步研究。

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

    尊敬的 Wega:

    请告诉我您对引导加载程序还有什么疑问

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

    您好:Nilabh、

     在 sbl_ospi_enet 中修复应用偏移后、我可以:

    • 使用 UART uniflash 链接器 TI uniflash 刷写 SBL 和应用程序(例如我刷写了 gpio_led_blink_nortos)、
    • 运行 SBL:
    • 可选地运行刷写的应用程序(gpio_led_blink_nortos、请参阅终端输出- gpio_led_blink - preflashed.txt)
    • 或使用 tftp 刷写新应用程序并运行它(hello_world_nortos、请参阅终端输出- hello_world - iap_tftp.txt)。

    我希望您帮助解决以下两个问题:

    1. 引导加载程序不会重新引导(请参阅终端输出- reboot_error.txt)。 此功能在从 sbl_ospi_enet 转换到 sbl_ospi_enet 期间不知何故丢失。 我怀疑这是 syscfg 中的设置。 但我不知道如何解决。 每次我要重新启动引导加载程序时、都必须刷写它。 重置按钮或关机/开机不工作。
    2. free-RTOS 应用程序在 SBL 中使用 uniflash 与 SBL 一起或使用 tftp 刷写时不会运行。 当在 main.c 中的第177行中初始化内核 R5FSS0_0时、SBL 挂起(请参阅终端输出- hello_world_freertest - preflashed - error.txt 和终端输出- hello_world_freertest - iAP_tftp - error.txt)。 这在从中派生 sbl_ospi_enet 的 sbl_ospi 中没有问题。 我想该错误是由 syscfg 中的变化引起的。

    以下是 sbl_ospi_enet 的更新:

    /cfs-file/__key/communityserver-discussions-components-files/908/8015.sbl_5F00_ospi_5F00_enet.zip

    感谢您对这些问题的帮助。

    此致、

    Wega.

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

    尊敬的 Wega:

    在被覆盖的 SBL 上、您能否检查应用程序内存映射、它是覆盖 SBL 还是 tftp 会覆盖 SBL?

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

    您好:Nilabh、

    我可以通过增加应用程序中的 SBL 存储器区域大小来解决问题2、因为带有 enet 的 SBL 不适合0x40000字节的给定区域大小。

    但这并不能解决重新启动问题。 你有什么想法吗?

    此致、

    Wega.

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

    尊敬的 Wega:

    我还无法找出原因、您认为是否需要在每个运行周期进行刷新、或仅使用 SBL Enet 进行固件更新?

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

    您好、

    这是一个内存问题。 我可能已经解决了。 需要进行进一步的测试。

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

    当然、Wega、我现在要结束该主题。 如果需要进一步的帮助、请随时打开一个新的解决方案。