看数组的大小及单片机的RAM是否足够,一般情况下不会一下子开辟上万个数组这么大的空间。
可以对数据进行滑窗处理,避免一次用太多的RAM。
如果真需要如此大空间,就外挂Ram。
单片机内存上限,看看你的 ram 地址空间是多大,全用上就是了,片上不够就外扩
话说,单片机不是实时处理数据的,一边接受一边处理一边转发出去,或者保存 flash,不行么。
一下在开辟几万个数据空间,也不会同时用到呀,用的时候取,用完之后数据存起来,ram 反复使用,数据保存到 flash 上就可以呀。
几万个元素的数组是有些大了,如果不是非常频繁使用的数据,并且不用修改,可以把数据保存到Flash中,这样只要Flash足够大,可以定义足够大的数据,定义的方法是使用const关键字,如下方法
const unsigned short T_PCB_Table[T_END] ={ //0x0FAD 4013 //-55[degrees C]……}具体实现方法要看不同的编译器略有差异。
如果数组数据使用非常频繁,并且需要随时修改的话,还是要吧数据妨碍RAM内的,如果片上资源不够,可以考虑外扩RAM。