Other Parts Discussed in Thread: SYSCONFIG
我用到的示例工程是C:\ti\simplelink_cc13x2_26x2_sdk_5_20_00_52\examples\rtos\CC26X2R1_LAUNCHXL\ble5stack\simple_peripheral_oad_offchip。用的是CLang编译器,IDE是CCS。
打开simple_peripheral_oad_onchip.syscfg -> TI DRIVERS -> NVS,看到有两个NVS区域:CONFIG_NVSINTERNAL和CONFIG_NVSINTERNAL1。其中,CONFIG_NVSINTERNAL1的Region Type选择的是Pointer,基地址是0x0,区域大小是0x34000,如下图。
问题1:在simple_peripheral工程中没有CONFIG_NVSINTERNAL1区域,只有CONFIG_NVSINTERNAL区域,想问一下在OAD工程中CONFIG_NVSINTERNAL1的作用?基地址是0x0,区域大小是0x34000,这是整个应用程序的固件区域了,需要调用nvs_read和nvs_write做什么,难道需要修改固件自身的代码吗?
CONFIG_NVSINTERNAL的Region Type选择的是Generated,基地址是0x34000,区域大小是0x4000,如下图。
编译之后的Memory Allocation如下图所示,整个Flash大小是136K,CONFIG_NVSINTERNAL定义的区域被分配到FLASH中的.TI.bound.flashBuf0段,大小是16384(即0x4000)
将CONFIG_NVSINTERNAL的Region Type选择为Pointer,基地址是0x34000,区域大小是0x4000,如下图。
编译之后的Memory Allocation如下图所示,整个Flash大小是120K(正好Region Type为Generated时小16384(即0x4000)),未找到CONFIG_NVSINTERNAL定义的区域分配
问题2:按照sysconfig中对Region Type字段的提示说明,Generated—自动生成flash内部区域;Pointer-按照Region Base指定的地址分配区域。BLE的配对绑定信息是保存在CONFIG_NVSINTERNAL定义的区域吗?调用osal_snv_read和osal_snv_write操作的是CONFIG_NVSINTERNAL定义的区域吗,为何配置为Pointer的方式在最终的固件中没有此区域,但为何我测试BLE的配对、绑定,还有osal_snv_read/write的读写都正常?