当前位置: 代码迷 >> 单片机 >> stm32分配4K大小的数组,会有有关问题吗
  详细解决方案

stm32分配4K大小的数组,会有有关问题吗

热度:585   发布时间:2016-04-28 16:34:26.0
stm32分配4K大小的数组,会有问题吗?
stm32用的103系列.有64K的SRAM.我分配一个4K的数组会不回有问题?总感觉4K有点大了,怕程序会留下隐患.请教高手应该注意哪些地方?

------解决方案--------------------
如果是个局部变量,那么肯定是会出错的,没有那么大的堆栈来存放这个数组。
如果是全局变量,64K的RAM应该是分页的,一个数组如果是超过一页的大小,那么很可能会出错。一般一页是4K,你申请一个占4K字节的数组,刚好能占满空的1页,不会出问题。具体一页多大,你得去看芯片手册。
不过如果出错的话,链接的时候会提示你报错的。前提是你在程序中实际用了这个数组(如果你声明了1个程序但没使用的话,可能会不给你分配空间)。所以你可以这样测试一下:

C/C++ code
#define MAX_SIZE  2048int a[MAX_SIZE];int main(){  a[0] = a[MAX_SIZE] = 1;}
------解决方案--------------------
没有问题 可以分配4K的数组
------解决方案--------------------
ARM的体系结构注定了它不会有问题。。。