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

zjk2752 2011-12-14 12:28:31
stm32用的103系列.有64K的SRAM.我分配一个4K的数组会不回有问题?总感觉4K有点大了,怕程序会留下隐患.请教高手应该注意哪些地方?
...全文
2565 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjk2752 2011-12-15
  • 打赏
  • 举报
回复
谢谢大家,尤其是finewind,回答的很乡西.
lbing7 2011-12-14
  • 打赏
  • 举报
回复
ARM的体系结构注定了它不会有问题。。。
woshi_ziyu 2011-12-14
  • 打赏
  • 举报
回复
没有问题 可以分配4K的数组
绿野耕夫 2011-12-14
  • 打赏
  • 举报
回复 1
如果是个局部变量,那么肯定是会出错的,没有那么大的堆栈来存放这个数组。
如果是全局变量,64K的RAM应该是分页的,一个数组如果是超过一页的大小,那么很可能会出错。一般一页是4K,你申请一个占4K字节的数组,刚好能占满空的1页,不会出问题。具体一页多大,你得去看芯片手册。
不过如果出错的话,链接的时候会提示你报错的。前提是你在程序中实际用了这个数组(如果你声明了1个程序但没使用的话,可能会不给你分配空间)。所以你可以这样测试一下:


#define MAX_SIZE 2048

int a[MAX_SIZE];
int main()
{
a[0] = a[MAX_SIZE] = 1;
}

一步步加大MAX_SIZE,看看什么时候报错
shagua0916 2011-12-14
  • 打赏
  • 举报
回复
你是动态分配的还是直接声明一个数组?

27,517

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧