Part Number:CC1310
大家好:
在官方示例用使用 ONEPAGE 来存储数据,我想用其他页(比如 0x1C000)来给用户自定义一些参数。
请问:
如何声明让 15.4 知道我这一块 FLASH 已经被我使用了,系统不会把这块覆写呢?
谢谢
kaiquan ning:
#define FLASH_BASE0x00000000 #ifdef ONE_PAGE_NV #define FLASH_SIZE0x1E000 #define FLASH_NV_BASE0x1E000 #define FLASH_NV_SIZE0x1000 #else #define FLASH_SIZE0x1D000 #define FLASH_NV_BASE0x1D000 #define FLASH_NV_SIZE0x2000 #endif #define FLASH_LAST_BASE0x1F000 #define FLASH_LAST_SIZE0x1000 #define RAM_BASE0x20000000 #define RAM_SIZE0x5000如果我把 ONEPAGE 的定义改为
#define FLASH_BASE 0x00000000 #ifdef ONE_PAGE_NV #define FLASH_SIZE 0x1D000 #define FLASH_NV_BASE 0x1D000 #define FLASH_NV_SIZE 0x1000 #else #define FLASH_SIZE 0x1C000 #define FLASH_NV_BASE 0x1C000 #define FLASH_NV_SIZE 0x2000 #endif #define FLASH_LAST_BASE 0x1F000 #define FLASH_LAST_SIZE 0x1000 #define RAM_BASE 0x20000000这样是否就可以把 1E000 这页拿来自用了?
,
Kevin Qiu1:
NVS区域一般放在flash未使用的末尾几个page中,放在已使用的code区域可能会造成覆盖
可以尝试修改.cmd文件来指定特定区域:
.nvs 0x1C000 (NOLOAD) : ALIGN(0x1000) {*(.nvs)} > REGION_TEXT
,
kaiquan ning:
已经运行起来了,还需要修一个参数,指定NV起始地址
#define SNV_FIRST_PAGE (0x1E >> 0)
改为
#define SNV_FIRST_PAGE (0x1D >> 0)
,
kaiquan ning:
这个问题的延伸,我对这个自定义的页面想写个配置工具,类似 Flash Programmer 2的,可以对这一页读写的,请问有什么办法没有?
,
Kevin Qiu1:
可以参考NVS的具体使用说明:https://dev.ti.com/tirex/content/simplelink_cc13x0_sdk_4_20_01_03/docs/tidrivers/doxygen/html/_n_v_s_8h.html
SDK中也有NVS例程,可以看一下,上位机方面我没有经验,无法提供更多帮助