我想通过 SPI 更新固件。
我想使用 CCS 构建一个闪存二进制文件。 有人能告诉我如何生成此文件吗?
然后、我想获取该文件、通过 SPI 对闪存进行编程。 我会按照以下步骤操作、但我不知道它是否起作用。
1.使用 RAM 函数执行闪存编程的所有步骤。
2.初始化 SPI 外设。
3.从 SPI 读取二进制文件并使用闪存 API 对全闪存进行编程。
有人能告诉我如何按照正确的步骤通过 SPI 对闪存进行编程吗?
谢谢
Cody
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.
我想通过 SPI 更新固件。
我想使用 CCS 构建一个闪存二进制文件。 有人能告诉我如何生成此文件吗?
然后、我想获取该文件、通过 SPI 对闪存进行编程。 我会按照以下步骤操作、但我不知道它是否起作用。
1.使用 RAM 函数执行闪存编程的所有步骤。
2.初始化 SPI 外设。
3.从 SPI 读取二进制文件并使用闪存 API 对全闪存进行编程。
有人能告诉我如何按照正确的步骤通过 SPI 对闪存进行编程吗?
谢谢
Cody
您好 Cody、
是的、您可以从 SPI 读取数据并使用闪存 API 将其编程到闪存中。 我的问题是:您是尝试在同一器件的闪存中并排使用两个不同的程序、还是尝试先使用 RAM 引导器件、然后再使用闪存引导器件? 如果您希望使用闪存引导程序、然后将另一个程序放置在闪存中的不同位置、则目前无法执行此操作、因为 C28x 编译器工具不支持可重定位的可执行文件。
后一种方法应该可以正常工作--对于闪存程序构建选项,您需要启用 C2000十六进制实用程序,然后选择所需的格式。 您可以使用二进制格式或任何十六进制格式、具体取决于您的偏好。
此致、
Ibukun
尊敬的 Lbukun:
假设有一个新版本的工程、我使用十六进制实用程序来构建二进制文件。 我获取该文件并通过 SPI 从 PC 或其他处理器发送。 我将旧工程切换为在发送该文件之前等待并从 SPI 接收数据。 我的计划如下:
1、跳转 RAM 中用于对闪存进行编程的自定义函数。
2.禁用所有中断
3.初始化 Flash()
4.初始 SPI 外设。
复制 CopyData()在 F2837xS_sci_flash_kernel 中,只需将 GetWordData 更改为 SPI
关于我的上述步骤、它是否起作用?
谢谢
Cody
尊敬的 Lbukun:
我会实现 SPI 接收函数、而不是 sciaGetWordData。 对于诸如"UINT32_t sciBoot (uint32_t BootMode)"的所有程序、我要将 sciBoot 复制到 spiFirmwareUpdate()的新函数、我只需用 spiaGetWordData 替换 sciaGetWordData 的内部函数。 执行此函数后、如果需要进行固件更新、我将使用 C2000十六进制实用程序来构建二进制文件、然后使用 USBtoSPI 发送此文件。 使用 FirmspiwareUpdate()接收此文件并执行更新闪存的过程。 那么、我想问您、这样一个流程是否正常工作?
我的英语很差、感谢您耐心地帮助我。
Cody