stm32分配4K大小的数组,会有问题吗?
stm32用的103系列.有64K的SRAM.我分配一个4K的数组会不回有问题?总感觉4K有点大了,怕程序会留下隐患.请教高手应该注意哪些地方?
[解决办法]
如果是个局部变量,那么肯定是会出错的,没有那么大的堆栈来存放这个数组。
如果是全局变量,64K的RAM应该是分页的,一个数组如果是超过一页的大小,那么很可能会出错。一般一页是4K,你申请一个占4K字节的数组,刚好能占满空的1页,不会出问题。具体一页多大,你得去看芯片手册。
不过如果出错的话,链接的时候会提示你报错的。前提是你在程序中实际用了这个数组(如果你声明了1个程序但没使用的话,可能会不给你分配空间)。所以你可以这样测试一下:
#define MAX_SIZE 2048int a[MAX_SIZE];int main(){ a[0] = a[MAX_SIZE] = 1;}
[解决办法]
没有问题 可以分配4K的数组
[解决办法]
ARM的体系结构注定了它不会有问题。。。