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.
工具与软件:
您好!
我们在设计中使用 TI 280039C。 我们需要通过连接到另一个处理器的 SPI 更新固件。
对此进行研究后发现、这似乎是一个包含两个步骤的过程。 需要加载完全耗尽 RAM 的 RAM 内核。 它将通过 SPI 总线接收固件更新并将数据写入闪存。 完成此操作后、需要跳转到闪存开始处的入口点以重新启动并开始执行更新后的固件映像。
我的理解是否正确?
然后、我去 C2000Ware 中查看代码示例。
C:\ti\c2000\C2000Ware_5_02_00_00\utilities\flash_programmers
C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f28003x\examples\flash
我在最后一个目录中找到了许多与更新闪存相关的不同文件:
您好、Brent:
对于延迟响应、我们深表歉意。 是的、您回答正确。 此过程包含两个步骤、其中新固件通过 SPI 引导通过 SPI 总线发送、然后刷写新固件。 SPI 还有额外的步骤、因为 SPI 引导不是通过引导模式引脚状态(GPIO24/32)配置的默认引导选项的一部分。 我将请您咨询我们的专家、他可以帮助指导您完成 SPI 步骤。
此致、
Joseph
感谢 Joseph 的回应。 C2000Ware 代码似乎没有适用于 SPI 的闪存内核。 是这样吗?
是否计划添加 SPI 闪存内核?
我想我需要修改 C:\ti\c2000\C2000Ware_5_02_00_00\driverlib\f28003x\examples\flash\flash_kernel_ex3_sci_flash_kernel 示例、并将 SCI 替换为 SPI、以提供自定义闪存内核?
通过查看280039C 参考手册、我可以看到以下部分:
4.8.8.2.2 SPI 引导模式
如图4-6所示、SPI 加载程序期望在 SPI-A 引脚上存在与 SPI 兼容的16位或24位可寻址串行 EEPROM 或串行闪存器件。 SPI bootloader 支持8位数据流、不支持16位数据流。
在我们的案例中、SPI 总线将连接到另一个处理器、因此我不认为 SPI 引导模式会起作用。 这是你的理解吗?
因此、我认为我需要在应用程序开头添加"自定义"引导代码、以便能够通过 SPI 读入"自定义"SPI 闪存内核并将其写入 RAM。 完成后、应用将跳转至"客户"闪存内核、以便通过 SPI 读取固件更新并将其写入闪存。 完成此操作后、跳转至闪存开始处的入口点以开始执行新映像。
是这样吗?
我可以在 C2000Ware 或其他地方使用 SPI 引导加载程序或其他源代码吗?
感谢您的帮助、
Brent Williams
您好、Brent:
您是对的、C2000Ware 中没有 SPI 闪存内核示例。 您可以修改 SCI 闪存内核示例以改用 SPI。
SPI bootROM 加载程序源位于 C2000 Ware_Install_Location libraries\boot_rom\f28003x\rev0\rom_sources\F28003x_rom\bootrom\source
您可以使用自定义引导加载程序读取 SPI 闪存内核、也可以将处理器配置为充当 SPI"从器件"并使用 ROM 中的 SPI 引导加载程序。
此致、
Skyler