TI中文支持网
TI专业的中文技术问题搜集分享网站

CC1310: 关于 15.4 使用 NV 的问题

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例程,可以看一下,上位机方面我没有经验,无法提供更多帮助

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: 关于 15.4 使用 NV 的问题
分享到: 更多 (0)