打印

用STM32写程序,局部数组变量用堆好还是栈好?

[复制链接]
3782|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
z_no1|  楼主 | 2011-9-26 16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
现在写的程序在各个子程序里用了局部数组,最简单的就是按局部变量直接申请,
uint8_t t_temp[512];
char s[] = "abc"; 栈
或者p1 = (char *)malloc(10);  堆
在用STM32 MDK 裸奔的情况下,是不是用栈还方便些?数组肯定是只在内部使用,堆和栈是不是都只能放在片内RAM里?

相关帖子

沙发
computer00| | 2011-9-26 16:53 | 只看该作者
裸奔的话,建议还是直接用栈比较好些……

使用特权

评论回复
板凳
vidanet| | 2011-9-29 09:53 | 只看该作者
裸奔的话,建议还是直接用栈比较好些……
computer00 发表于 2011-9-26 16:53


请教一个问题,堆是否是操作系统实现的呢? 也就是说没有操作系统的话就没有堆这个概念,动态开辟空间malloc函数这都是操作系统实现的吧?

使用特权

评论回复
地板
z_no1|  楼主 | 2011-9-29 15:02 | 只看该作者
应该不是的,我没用OS,也可以用malloc函数.这个应该是库函数

使用特权

评论回复
5
z_no1|  楼主 | 2011-9-30 13:54 | 只看该作者
这个问题是51到ARM的人会遇到的,不知道51有堆么?可能由库函数在外部RAM里能做。很少用到,一般要用数组都是做成全局变量,51的栈更是只有几十个字节。只有到了ARM,才能在栈里分配大容量的数组做局部变量,毕竟这样程序可维护性好很多。用堆还是不太方便。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

223

主题

2646

帖子

10

粉丝