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.

[参考译文] BEAGL-BONE-BLACK:通过外部 MCU 经由串行线刷写

Guru**** 2542720 points
Other Parts Discussed in Thread: AM3358

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1428487/beagl-bone-black-flashing-over-serial-wire-via-external-mcu

器件型号:BEAGL-BONE-BLACK
主题中讨论的其他器件:AM3358

工具与软件:

您好!

我们已购买一些用于研发的 BeagleBone Black (BBB)、因为我们将在定制电路板中使用 AM3358。

作为我们要求的一部分、我们需要能够通过具有 WiFi 功能的安全 MCU 对 AM3358进行编程、从而执行安全的 OTA 更新。

是否有任何在线指南演示了如何通过 SPI、I2C 等而不是 USB 或 SD 卡刷写 AM3358或 BeagleBone Black 的 eMMC?

谢谢。

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

    尊敬的 Ezra:

    请查看 AM335x TRM 初始化一章、AM335x ROM 支持从 SPI 或 I2C 启动。 但它来自 SPI0或 I2C0上的存储器、例如 EEPROM。 我不确定这是否可以用于 OTA 更新。

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

    您好、Bin Liu、感谢您让我知道! 只要能够通过 SPI 或 I2C 以某种方式刷写 AM335x、任何能够发送和接收这些信号的 MCU 都是一个起点。 我认为 OTA 会简单地接收数据并传递数据、这些数据减去了安全、处理串行/Web 命令等方面的细微差别

    您认为 AM335x 内部或外部的 EEPROM 需要刷写? 那么 AM335x 将从该 EEPROM 引导?

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

    尊敬的 Ezra:

    由于所有 AM335x EVM 都不具有此功能、我认为这些 SPI 和 I2C 引导特性已通过处理器 SDK 验证、但根据 TRM 中的信息、我认为板上的外部 EEPROM 已经具有引导映像、AM335x 通电后、它的 ROM 会通过 SPI 或 I2C 从 EEPROM 下载引导映像、然后从此处进行引导。

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

    我明白了。 要确保编程正确、需要插入设备或继续使用 SD 卡? 除非外部 MCU 具有 USB 功能并且可以通过该功能对其进行编程?

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

    是的、可以使用 SD 卡或通过 CPSW 以太网或 USB 以太网对 AM335x 进行引导和编程。

    UART0也可用于刷写、但如果固件大小过大、则速度会较慢、

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

    花一些时间阅读技术参考手册的第26.1节(初始化->功能说明)、其中指出 UART、USB、以太网都是通过外设进行引导的方法。 在图26-2和26-3中、说明了引导的过程。

    我对自己有限的知识有两个印象

    1.如果有 eMMC、SPI 闪存或 SD 卡等存储器件、即使有有效的外设可从中引导、它也会尝试从该存储器件进行引导。 这是正确的吗?

    2.要从外设引导、然后加载到 AM335x 中的程序存储器仅在 RAM 内部提供临时帮助、这意味着如果外设已被移除并且器件已复位、则无法启动。 这也是正确的吗?

    鉴于此、是否可以使用使用 UART0连接 AM335x 的外围器件在 eMMC、SD 卡等设备上刷写公共或安全 ROM 扇区、以便程序存储器存储在其指定的存储器扇区中、然后可以从存储器器件正常引导(如图26-2和26-3所示)?

    再次感谢您对我的帮助和耐心。

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

    尊敬的 Ezra:

    1. 如果有 eMMC、SPI 闪存或 SD 卡等存储器件、即使有有效的外设可从中引导、它也会尝试从该存储器件进行引导。 这是正确吗?

    不是的。 当多个存储器和外设可用时、引导顺序由 SYSBOOT 引脚设置决定。 请参阅 TRM 的26.1.6节"引导"中的详细信息。

    2. 若要从外设引导、然后加载到 AM335x 中的程序存储器仅在 RAM 内部提供了临时帮助、这意味着如果外设已被移除且器件已复位、则无法引导。 这也是正确的吗?

    正确。 外设引导将可引导固件下载到 DDR、然后执行它。 但是、从外设引导 AM335x 后、外设可继续用于下载存储器器件(eMMC、NAND 闪存等)并对其进行编程、以便在将来引导。

    鉴于此、是否可以使用使用 UART0与 AM335x 连接的外围设备来刷写 eMMC、SD 卡等上的公共或安全 ROM 扇区、以便程序存储器存储在其指定的存储器扇区中、然后可以像图26-326-3所示那样从存储器设备正常启动?

    基本正确、但要刷写到 eMMC、SD 卡等的程序不是 ROM 扇区、而是次级引导加载程序和应用程序或 Linux。 ROM 扇区已在 AM335x 器件中、并会在每次 AM335x 上电或复位时运行。

    顺便说一下、如果要刷写的程序很大、UART 的刷写速度很慢(波特率仅为115200bps)。 在此类用例中、以太网或 USB 以太网引导/闪存是更好的选择。