CC1310 内部flash 如何进行读写操作
TI的大神们,请问下如何读写CC1310内部FLASH的内容? 目前通过修改.cmd的文件修改FLASH的大小如下图,留出空间来供外部访问,但是这样通过debug模式运行可以正常跑起来,但是断电重启或者直接烧录生成的.hex文件,芯片都无法启动,还请帮忙分析下,感谢!
默认配置
#define FLASH_BASE 0x0
#define FLASH_SIZE 0x10000
修改后配置
#define FLASH_BASE 0x0
#define FLASH_SIZE 0xF000
你好,什么叫留出来空间,供外部访问?
你们是想在Flash里面单独划一块空间,用来存放数据吗?
如果是这样的话,FLASH_SIZE依旧写 0x10000,然后数据直接往Flash对应的地址操作就可以了,只要保证你们的程序和要写的数据不冲突。
另外hex文件跑不起来,应该是你们调整了FLASH的空间,默认是要把CCFG这块内容放在Flash最后的,但是你们调整了SIZE以后,CCFG就没有放在最后了,所以程序跑不起来。
参考 https://e2e.ti.com/support/wireless_connectivity/proprietary_sub_1_ghz_simpliciti/f/156/t/515170
对比了下两种配置的flash里面的内容,只有下面这两处有差异,其它部分都是一样的这个不知道怎么回事导致修改后芯片无法工作,还请帮忙查看下
这段内容就是ccfg的内容,一定要放在flash的最后面,否则程序是无法运行的
你可以看下ccfg.c和.cmd文件的
SECTIONS
{
.text : > FLASH
.const : > FLASH
.constdata : > FLASH
.rodata : > FLASH
.cinit : > FLASH
.pinit : > FLASH
.init_array : > FLASH
.emb_text : > FLASH
.ccfg : > FLASH (HIGH)
#ifdef __TI_COMPILER_VERSION__
#if __TI_COMPILER_VERSION__ >= 15009000
.TI.ramfunc : {} load=FLASH, run=SRAM, table(BINIT)
#endif
#endif
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM (HIGH)
.nonretenvar : > SRAM
}
Hi VV 按照你提供的方法已经可以正常操作flash了,非常感谢!
非常感谢,这个里面内容是正解