是否有任何有关基于 ROM 的 USB 引导加载程序的文档? 我需要了解以下内容。
是否会在启动时注意闪存中没有程序、因此使用 DFU 启动以通过 USB 查找更新? (器件如何知道如何使用 USB/DFU?)。
收到 ROM_UpdateUSB (0)调用后是否会无限等待更新?
如果在等待更新时、它已关闭并备份、会发生什么情况? (它将运行闪存程序、还是仍在等待更新?)。
是否可以为 ROM USB 引导加载程序配置这些内容中的任何内容?如果可以、如何配置?
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.
是否有任何有关基于 ROM 的 USB 引导加载程序的文档? 我需要了解以下内容。
是否会在启动时注意闪存中没有程序、因此使用 DFU 启动以通过 USB 查找更新? (器件如何知道如何使用 USB/DFU?)。
收到 ROM_UpdateUSB (0)调用后是否会无限等待更新?
如果在等待更新时、它已关闭并备份、会发生什么情况? (它将运行闪存程序、还是仍在等待更新?)。
是否可以为 ROM USB 引导加载程序配置这些内容中的任何内容?如果可以、如何配置?
实际上、我们昨天刚刚在一次团队会议上讨论了 ROM 引导加载程序文档是如何分散和难以找到的。
[报价用户="Alexander Wardlow">启动时是否会注意到闪存中是否没有程序、因此使用 DFU 启动以通过 USB 查找更新? (器件如何知道如何使用 USB/DFU?)。
启动时、CPU 开始从 ROM 执行。 它会检查 BOOT_CFG 寄存器以查看是否必须检查引脚并进入引导加载程序模式。 如果 boot_CFG 寄存器未引导至引导加载程序模式、它会检查闪存的前8个字节。 如果前4个字节包含有效的堆栈地址、后4个字节包含有效的复位矢量、则 CPU 通过加载堆栈指针并跳转到复位矢量指向的地址来开始执行。 否则、CPU 将进入循环、检查 UART0、I2C0、SSI0、USB0或以太网中的有效引导加载程序命令。
[报价用户="Alexander Wardlow"]收到 ROM_UpdateUSB (0)的调用后,它是否会无限等待更新?
是的。
[引用 user="Alexander Wardlow">如果在等待更新时关闭并备份更新,会发生什么情况? (它将运行闪存程序、还是仍在等待更新?)。
该过程将重复。 如果器件从闪存运行并且调用了 ROM_UpdateUSB (0)、CPU 将再次返回到从闪存执行。 如果该闪存程序再次调用 ROM_UpdateUSB (0)、它将返回尝试执行 DFU 更新。 问题在于、如果在更新期间断电、闪存只能被部分擦除或部分编程。
[报价用户="Alexander Wardlow"]是否可以为 ROM USB 引导加载程序配置其中的任何内容?[/报价]
复位时执行的、因为闪存为空白、不是 从应用程序代码调用 ROM_UpdateUSB (uint8_t * pu8USBBootROMInfo)时,应用程序需要配置引脚和 PLL。 它还接受一个指向阵列的指针、该阵列用于配置供应商 ID、产品 ID、总线供电与自供电、最大功率、器件版本、 和 USB 灯串。