之前使用CC2640R2F遇到了.cinit 数据过大超过了FLASH空间大小的问题
我将FLASH_SIZE 从0x00020000修改到了0x00030000 可以编译通过了!但是烧写软件的时候出现如下错误(大概80%进度)
是不是我还需要修改别的地方呢?如果有人能帮帮我,我将感激不尽!
Kevin Qiu1:
.cinit用来存放全局变量和静态变量初始化的常数,你在map文件中看下ram的使用情况
user6359397:
回复 Kevin Qiu1:
感谢您的回复,已经改好大小了,但是烧写软件的时候出现了上述错误,我该怎么解决呢?
Kevin Qiu1:
回复 user6359397:
根据错误提示信息只知道内存写入失败,不能确定具体是哪里的问题,所以让你看map文件.
你把map文件传上来
user6359397:
回复 Kevin Qiu1:
map.c
因为不支持.map文件上传,我将map文件的内容拷贝到.c文件中了
user6359397:
Count_ws.rar
已经将整个Workspace压缩好了,谢谢你
Kevin Qiu1:
回复 user6359397:
有些路径不对,导入不进来,看下ram和flash空间是否剩余,应该是程序的问题。如果你有CC26X2的板子,可以试一下.
user6359397:
回复 Kevin Qiu1:
…但是它的的确确提醒了我.cinit空间大于FLASH空间大小了,优化代码确实可以实现成功烧写,但是考虑到后续仍然需要添加整合大量的代码,于是我拓宽了FLASH空间,我将FLASH_SIZE 从0x00020000修改到了0x00030000,希望改完之后他能装下.cinit,除此之外并没有对其他地方有所改动,虽然修改完能编译通过,但是debug会失败,我不知道如何来排查这方面的问题,望大哥指点指点
user6359397:
回复 Kevin Qiu1:
ohh确实不够了,空间占满了。我应该只能从优化代码方面入手了,我的想法正确吗?
Kevin Qiu1:
回复 user6359397:
CC2640r2f 只有128KB 可编程flash 、28k sram,看了你的map文件,flash分配的空间达到了188+4kB、sram 33kB,都超出了。
代码优化可以从变量入手,去掉未使用的变量,另外对变量初始化赋值。你用到了这么多空间,感觉优化作用不太大,可能是添加的代码本身有问题。如果确实需要更大空间,推荐使用CC26X2系列,有352K flash和 80K SRAM。