我在SimpleBLEPeripheral里面需要定义一些全局变量,但是编译的时候会出现这样的错误,请问有没有什么办法可以解决啊
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0xc02 byte(s) total) in 0xbffbyte(s) of memory. The problem occurred while processing the segment placement command "-P(XDATA)XDATA_N=_XDATA_START-_XDATA_END", where atthe moment of placement the available memory ranges were "XDATA:1301-1eff"
Yan:
lily,
定义了很大的全局变量?
lily li1:
回复 Yan:
是的,我要用SD卡存储数据,所以定义了几个很大的全局变量数组
lily li1:
回复 Yan:
Yan,
我现在把INT_HEAP_LEN改成了1024,会不会有问题啊
da qin zheng sheng:
对于cc2540/2541芯片,你的全局变量数不能超过8192-256=7936 !
lily li1:
回复 da qin zheng sheng:
感觉我好像也没有定义这么多的全局变量啊,而且不能通过参数的设置来改变吗?我把那个参数改了以后就没报错了,就是怕后面的程序运行会有问题
wenzhong shen:
写SD卡也可以分次写啊,尽量减少大数组的全局变量,也可以在用的时候直接用堆去开辟,源程序中用的定义的是3072的大小。你用的时候开辟内存,用完了之后释放就好了。这样对程序影响最小。