返回信息流RT,求教
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #8640同步于 2010/5/24
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
请教:DSP程序运行时如何得到程序占用的程序空间大小和数据空间
Alex2008
2010/5/24镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
程序空间是定死的吧,看.text段的大小,如果是TI CCS编译的话,默认会生成一个.map的存储器映像和全局符号统计文件,里边有大小。
或者在CCS目录下有个好像叫sizeti.exe的程序,可以分析COFF文件的段大小。
数据空间主要是堆上内存分配的变化吧,一种方法你可以自己写一个malloc和free函数,替代C运行库版本的,然后在里边自己实现内存使用的统计,比如打印出来。
也可以用ReferenceFramework(RF)里边带的UTL宏,里边有一个是好像叫UTL_showHeapUsage的,可以统计并打印出当前堆的使用情况,参数中可以指定是片上堆还是片外堆。
真的很感谢1楼。回答的真好!
另外,我看有些文章上CCS的DSP/BIOS在运行中使用实时分析工具可以直接得出程序空间和数据空间的占用情况 ,1楼清楚这种方法吗
嗯 还有栈空间 我给忘了
有三种方法好像
如果你用DSP/BIOS的话,最方便的方法是用内核对象观察窗口,会列出系统和各任务堆栈的峰值。
DSP/BIOS手册上还介绍了两种方法,一种是在DSP/BIOS的硬件中断中,在Timer中断中添加检查堆栈指针位置的任务,在CDB里可以设置。
另外一种是DSP/BIOS里提供的一个API,好像是tsk_stackstat之类的名字,这个你自己查查吧。
【 在 Alex2008 的大作中提到: 】
: 真的很感谢2楼。回答的真好!
: 另外,我看有些文章上CCS的DSP/BIOS在运行中使用实时分析工具可以直接得出程序空间和数据空间的占用情况 ,2楼清楚这种方法吗
: --
: ...................
【 在 nickluchen 的大作中提到: 】
: 嗯 还有栈空间 我给忘了
: 有三种方法好像
: 如果你用DSP/BIOS的话,最方便的方法是用内核对象观察窗口,会列出系统和各任务堆栈的峰值。
: ...................
好的,谢谢!!