⊙﹏⊙b汗,你把它当计算机CPU来使么。
为什么要感觉,看看数据手册就知道了,它本来就是放不下。dsPIC30F2010的SRAM才512个字节。你的一个数组就1600B了,单这个数组就挤不下了,能不报错么。PIC芯片多数是作为工业领域上控制方面的芯片,为了稳定性和价格方面的考虑,内部资源不会那么多的(想想工业级的SRAM、SDRAM价格吧,如果大内存嵌入到这种工业级单片机中,那价格可能还要翻倍;而且内部资源多了复杂了,系统稳定性就下降了)。
而且,非得上这么大的数组么?不能用其他方式代替么?做这种嵌入式系统,除非是ARM或X86之类的需要上操作系统,才会外扩RAM芯片处理这种长数组大数组。记得我以前用ARM9外扩了SDRAM,还要很抠门地最多只用256个单元的8位数组。这么大还这么长的数组,即使是计算机寻址也很费劲,一般计算机编程都用指针或者链表的方式来解决这种问题。但嵌入式系统中,特别是这种小资源的嵌入式系统,都不建议用这么大。你可以画个流程图来分析一下,试试用指针来替换数组。
如果你非要上这个大而长的数组,解决方法就是换成ARM9芯片或者X86,并扩展SRAM/SDRAM芯片。或者换用有PMP功能的PIC24/PIC32芯片。这个芯片都没法扩SRAM并且方便地寻址。