2959|1

1140

帖子

0

TA的资源

纯净的硅(初级)

楼主
 

关于DSP中堆heap和栈stack的理解 [复制链接]

前一直不是很清楚堆和栈之间的区别,因为在windows下不是很注意区分它们。今天查了些资料,关于C6000DSP堆和栈有如下区别:
stack -

又称系统栈(system stack),用于:

保存函数调用后的返回地址;

给局部变量分配存储空间;


传递函数参数;

保存临时结果;

heap -

编译器提供的运行时支持库的一些函数(如malloc/calloc/realloc),允许运行时为变量动态分配存储器。这些存储器就放置在.system段的全局池(global pool)或堆(heap)中。

这个动态存储池的大小仅仅受限与系统中实际的存储容量。

这2个选项都可以在project-build options的连接器选项中设置

《TMS320C6000系列DSP编程工具与指南》P126

综上,简单比较堆和栈的区别是:堆是程序中动态申请内存的地方,栈是函数嵌套调用,中断,任务切换时保护现场时存储相关寄存器的地方。


最新回复

堆的存储空间需要手动释放,而栈的存储空间在函数返回时,自动释放  详情 回复 发表于 2018-12-25 08:53
点赞 关注
 

回复
举报

6366

帖子

4926

TA的资源

版主

沙发
 
堆的存储空间需要手动释放,而栈的存储空间在函数返回时,自动释放
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表