微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI无线射频设计 > CC1310 内部flash 如何进行读写操作

CC1310 内部flash 如何进行读写操作

时间:12-23 整理:3721RD 点击:

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了,非常感谢!

非常感谢,这个里面内容是正解

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top