Thread 中讨论的其他器件: SysConfig
大家好、我使用的是 CC2652P、SimpleLink SDK v4.20。 我的应用基于示例154堆栈传感器。
我对 ccfg 有一些问题。
根据 CC2652P 技术参考手册、CCFG 寄存器基址为0x5000 3000。 有22个 ccfg 寄存器、第一个寄存器的偏移量为0x1FA8、每个寄存器为4个字节、因此、cfg 寄存器从0x5000 4FA8获取88个字节。
最后一个闪存页面也是 ccfg、如下所示:
最后一个闪存页的范围是0x56000到0x58000。
我读出了 ccfg 寄存器的内容和闪存的最后一页、然后比较88个字节、发现它们实际上是相同的。
那么、我的问题是 、两个相同的 ccfg 区域之间的机制是什么?
例如、有一个 ccfg 寄存器、名为 image_valid_conf、该寄存器具有闪存矢量表开头的地址值、以便 ROM 中的引导 FW 可以将控制传输到闪存映像。
我读出该寄存器、它是0x0000 0000、最后一个闪存页中的相同偏移地址也是0x0000 0000。
因此、很明显、ROM 中的 FW 会将控制权转移到0x0000 0000 0000以运行我的应用程序映像。
但是、如果该寄存器值与上一个闪存页中的值不同、该怎么办?
例如、寄存器值为0x0000 0000、但最后一个闪存页中的模块为0x0000 8000、ROM 中的 FW 是否会将控制传输到0x0000 0000或0x0000 8000?
并且、当 ccfg 寄存器中的值与最后一个闪存页面中的值不同时、如何使它们再次相同?
这个设计机制有两个 ccfg 区域(ccfg 寄存器和最后一个闪存页)的优势是什么?
非常感谢。
