器件型号:CC3220
各位、您能向我展示一下非常简单的引导地址源吗、它可以与串行闪存和程序存储器配合使用。 我可以通过 UART 加载这些内容。
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.
您好!
了解您是要使用 CC3220S (R)还是 CC3220SF 器件、这一点很重要。 如何设计 CC3220SF 芯片、创建自己的引导加载程序会稍微复杂一些。 由于 XIP 闪存(片上)闪存的内容由 ROM 引导加载程序与 sFlash 内的固件文件同步。 两种可能的方法:
-仅从 RAM 执行代码、而不是从 XIP 闪存(S 和 SF)执行代码
S (R):ROM 引导加载程序->将用户引导加载程序复制到 RAM ->从 RAM 运行用户引导加载程序->将固件复制到 RAM ->从 RAM 执行代码
SF:ROM 引导加载程序->同步 XIP (用户 BooloLoader 文件)->从 XIP 运行用户引导加载程序->将固件文件复制到 RAM ->从 RAM 执行代码
-从 XIP 闪存的顶部组执行代码(仅限 SF)
SF:ROM 引导加载程序->同步 XIP (用户 BooloLoader 文件)->运行用户引导加载程序->从 XIP 的第二个组执行固件(在此阶段中、也可以将 XIP 的第二个组与固件文件同步)
TI 不会以这种方式提供官方支持。 实施将由您决定。 我个人已经为 Energia 做了小启动器
()。 此引导程序的主要思想来自上一代 SDK (CC3200)的引导加载程序。
1月
我的自定义 OTA 更新如下所示:
1)在新 PCB 上首先启动芯片-通过 UART 生产线编程器加载我的定制引导加载程序(CBL)(由 Uniflash 签名)并启动它;
2) 2)通过 CBL (UART 器件)、使用主程序加载原始 bin、并将其另存为文件 main1.bin 以保存到外部 sFlash
3) 3)如果 UART 断开连接-启动引导加载程序、将 main1.bin 复制到 RAM 并运行程序
4) 4)如果我的服务器有 main2.bin -我的程序会将它从服务器下载到 sFlash、即 main2.bin
5) 5)如果引导加载程序看到新文件-请运行该文件并删除旧的 main1.bin 并将 main2.bin 重命名为 main1.bin
看起来不错、但我的芯片工作1-3秒、然后转至 HIB 180秒。
这种"彼得鲁斯卡"(russisan 情况)不适合我们的工作。
是否有任何方法可以将 bin 文件保存到 XIP 闪存并在自定义 OTA 更新后运行该文件?
UPD:忘记了它
>>从 XIP 闪存的顶部组执行代码
如何操作?
P.S.您在哪里找到 asm 代码列表?
P.P.S.有点问题、但在 CCS 中、我可以看到 bin 文件的大小和 RAM 的使用情况?
您好!
正如我说过的、您可以将代码存储到 XIP 闪存的第二个组中、并从 bootlaoder 跳转到此代码以执行。 有关 XIP 闪存的详细信息,请参见 TRM ( www.ti.com/.../swru465 )第21章。 要写入 XIP 闪存、您可以使用\source\ti\devices\cc32xx\driverlib\flash.h
- ASM 代码来自上一代(CC3200) SDK 的辅助引导程序。 但这不是一种火箭科学。 您还可以使用此代码从 XIP 闪存执行。
-存储器区域在 CCS 工程的链接器文件(*。cmd 文件)中进行配置
-为了确定存储器部分的大小、您可以使用 CCS 中的存储器分配工具
1月