[笔记]DSP中的堆heap和栈stack

  • Eagleson
  • LV5工程师
  • |      2015-11-12 18:48:27
  • 浏览量 1026
  • 回复:3

关于C6000DSP堆和栈有如下区别:

stack -

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

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

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

传递函数参数;


保存临时结果;

heap -

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

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

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

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

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

  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子