目前项目想在ccfg所在页面写一些自定义的数据,考虑在CCFG中直接扩展,但是找不到工程里配置的__ccfg地址,不知道在哪儿可以修改
修改方式如下所示
typedef struct
{ // Mapped to address
uint32_t CCFG_OEM_DATA_0;
uint32_t CCFG_OEM_DATA_1;
uint32_t CCFG_EXT_LF_CLK ; // 0x50003FA8
uint32_t CCFG_MODE_CONF_1 ; // 0x50003FAC
………………….
uint32_t CCFG_CCFG_PROT_127_96 ; // 0x50003FFC
} ccfg_t;
#elif defined(__TI_COMPILER_VERSION__)
#pragma DATA_SECTION(__ccfg, ".ccfg")
#pragma RETAIN(__ccfg)
const ccfg_t __ccfg =
#else
const ccfg_t __ccfg __attribute__((section(".ccfg"))) __attribute__((used)) =
#endif
{ // Mapped to address
DEFAULT_CCFG_EXT_LF_CLK , // 0x50003FA8 (0x50003xxx maps to last
DEFAULT_CCFG_MODE_CONF_1 , // 0x50003FAC sector in FLASH.
…………………….
DEFAULT_CCFG_CCFG_PROT_127_96 , // 0x50003FFC
};
考虑到不能修改已有固化参数的地址,所以需要直接修改__ccfg 的地址,但是找了半天没找到具体在哪儿修改
dennis yang:
在cc13x0lp.cmd和linker.cmd中都没找到配置的__ccfg 地址
Susan Yang:
回复 dennis yang:
CCFG在flash的最后一个section 88 bytes并映射到内部寄存器
Felix ZF:
CCFG只能放在Flash的最高地址区域
修改了CCFG存放地址后,reset后,无法从Flash最高地址区域读到正确的CCFG配置,会影响芯片的正常工作
JisiLiu:
回复 Felix ZF:
fan, 我也遇到了同样的问题,没看明白如何解决,可以详细描述一下么?
Felix ZF:
回复 JisiLiu:
系统开始运行时,会从最后一个sector读取CCFG信息,如果用户修改了CCFG信息存放的位置(不放在最后一个sector对应位置),则会导致系统无法从最后一个sector的对应位置读到正确的CCFG信息,从而影响芯片的正常工作。
解决办法就是,不要修改存放CCFG信息的位置。