工具与软件:
您好!
我有一个 TPS65988DJEVM、我正在使用 slvae21.pdf (和 slva783a.pdf)中所述的逻辑并使用基于 I2C 接口的 STM32进行闪存更新。
如果已使用之前的有效闪存映像对闪存进行编程(通过 SPI 使用应用程序自定义工具)、我可以使用 low region 二进制文件更新 EVM 上的闪存。 此部件正常工作。 我可以使用新的二进制文件更改闪存固件、而不会出现任何问题。
但是、如果我先擦除闪存(使用自定义工具)并尝试通过 I2C 再次从 EC 编程、我将在引导标志中设置 regionX.invalid 和 regionx 标志、但无法对闪存进行编程。 我还尝试使用完整闪存映像和/或尝试使用'FLrr 和 FLad'设置区域和指针地址、但发生了相同的事情。
软件检查 region0和 region 1标志、不能 满足以下条件(如 slvae21a.pdf 文档的第8页所示)
if (0 == p_bootflags->region1)
...
否则为((1 == p_bootflags->region1)&&\
(1 == p_bootflags->region0)&&\
((0 == p_bootflags->region1crcfail)&&\
(0 == p_bootflags->region1flasherr)&&\
(0 == p_bootflags->region1invalid)))
是否可以在最初使用 FLxx 命令擦除闪存时对其进行编程、或者只能使用应用程序自定义工具(通过 SPI)进行编程?
或者我是否缺少一些空闪存更新步骤?
您能帮助说明一下吗?
谢谢你