"Thread:SysConfig"中讨论的其他器件
问题:
如何指示 LOCK-APP 构建过程在地址0xa8000处启动.NVS 链接器段? 对于为锁定应用(chip.syscfg)定义的内部 NV 的0x4000字节、默认值0xaa000不适用、但在本例中、我定义的是从地址0xa8000开始的额外0x2000区域。 这会导致整个.NVS 链接器段的大小为0x6000、而不是默认的0x4000、但是链接步骤坚持在默认的0xaa000而不是0xa8000处启动.NVS 段。 结果是我获得以下构建故障。
失败:chip-LP_CC2652R7-lock-example.out chip-LP_CC2652R7-lock-example.out.map…。 /chip-LP_CC2652R7-lock-example.out 段的` 0xb0000不在区域`FLASH'内
详细信息:
‘的'Grep'命令显示构建系统中的某个器件尝试从地址0xaa000开始启动.NVS 段。 如果从此处开始、则0x6000字节将不适用。
$ CD ~/TI/matter/examples/lock-app/cc13x2x7_26x2x7
$ grep "\.NVS" out/debug/chip-LP_CC2652R7-lock-example.out.map
.rodata.nvsCC26XHUAttrs
.rodata.nvsSPI25XHUAttrs.
.NVS 0x0000000AA000 0x6000
*(.NVS)
.NVS 0x0000000AA000 0x6000 obj/build_DIR/gen/sSysConfig.ti_drivers_config.C.O
.bss.nvsCC26XX 对象
.bss.nvsSPI25X 对象
而.NVS 段需要从地址0xa8000开始、这正是我在 chipsys.cfg 中为我定义的其他 NV 区域指明的地址。
以下是在我的 chip.syscfg 中定义这两个区域的方法
$ CD ~/TI/matter/examples/lock-app/cc13x2x7_26x2x7
$ grep "NVS1.internal" chip.syscfg
NVS1.internalFlash.$name ="ti_drivers_NVS_NVSCC26XX0";
NVS1.internalFlash.regionBase = 0xA8000;
NVS1.internalFlash.regionSize = 0x2000;
$ grep "NVS2.internal" chip.syscfg
NVS2.internalFlash.$name ="ti_drivers_NVS_NVSCC26XX1";
NVS2.internalFlash.regionBase = 0xAA000;
NVS2.internalFlash.regionSize = 0x4000;
摘要:
由于我在 chip.syscfg 中定义了0x6000字节的内部闪存、并且集合的起始地址为0xa8000、因此我希望锁定应用程序构建过程定义.NVS 链接器部分从0xa8000开始(且不继续使用默认值0xaa000)。 有什么建议吗?