主题中讨论的其他器件:AM3358
工具与软件:
您好!
我们已购买一些用于研发的 BeagleBone Black (BBB)、因为我们将在定制电路板中使用 AM3358。
作为我们要求的一部分、我们需要能够通过具有 WiFi 功能的安全 MCU 对 AM3358进行编程、从而执行安全的 OTA 更新。
是否有任何在线指南演示了如何通过 SPI、I2C 等而不是 USB 或 SD 卡刷写 AM3358或 BeagleBone Black 的 eMMC?
谢谢。
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.
工具与软件:
您好!
我们已购买一些用于研发的 BeagleBone Black (BBB)、因为我们将在定制电路板中使用 AM3358。
作为我们要求的一部分、我们需要能够通过具有 WiFi 功能的安全 MCU 对 AM3358进行编程、从而执行安全的 OTA 更新。
是否有任何在线指南演示了如何通过 SPI、I2C 等而不是 USB 或 SD 卡刷写 AM3358或 BeagleBone Black 的 eMMC?
谢谢。
您好、Bin Liu、感谢您让我知道! 只要能够通过 SPI 或 I2C 以某种方式刷写 AM335x、任何能够发送和接收这些信号的 MCU 都是一个起点。 我认为 OTA 会简单地接收数据并传递数据、这些数据减去了安全、处理串行/Web 命令等方面的细微差别
您认为 AM335x 内部或外部的 EEPROM 需要刷写? 那么 AM335x 将从该 EEPROM 引导?
花一些时间阅读技术参考手册的第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 以太网引导/闪存是更好的选择。