堆在ROM还是RAM?
时间: 2020-07-21来源:OSCHINA
程序开始启动
当系统上电后根据BOOT的引导配置选择启动方式,默认是Flash启动,这时系统开始把所有的代码段搬到RAM中去运行
CPU就从内存中(RAM)获取数据和指令,根据相关指令来控制系统运行
数据存放位置:除了特定IO操作存到EEPROM里面,其他变量的使用全在RAM区,其中就有堆和栈。堆是由用户手动分配malloc,在整个程序运行期间都有效除非手动释放free。而栈在一个函数体内存在,例如main方法由系统自动创建,如果出现递归创建则很容易导致栈溢出,当系统执行完该函数功能后,栈空间数据也由系统自动销毁。

ROM和RAM数据比较
堆和栈的实际定义大小可查看,在.map文件中

总结 内存大小直接体现该系统所能同时运行的任务数,而 所有系统运行中产生的数据存放位置全都在RAM区 。除了读写磁盘
热门排行