原创 TI DSP/BIOS的存储管理详解

2009-6-23 10:53 6494 9 9 分类: 处理器与DSP
TI DSP/BIOS的存储管理详解

基于DSP/BIOS开发的应用程序通过MEM模块以及自定义的“.cmd”文件来进行存储管理。一旦DSP/BIOS应用程序需要自定义的“.cmd”文件进行存储管理,则必须在自定义的“.cmd”文件中加上“-l xxxcfg.cmd”命令将DSP/BIOS应用程序默认的command文件包含于其中。MEM模块的配置方法如图所示。

clip

Argument Buffer Size:该属性值规定了DSP/BIOS应用程序中“.args”段的大小,“.args”段用于存储程序中的main(…)函数的“argc”、“argv”和“envp”参数值,该属性值一般保持默认值即可。

Stack Size (MAUs):该属性值规定了DSP/BIOS应用程序的栈大小(以DSP的最小访问单元为单位,对于DM642来说,MAU=1Byte)。

No Dynamic Memory Heaps:选中该选项的话,DSP/BIOS应用程序中将无法使用MEM_alloc(…)、MEM_calloc(…)、XXXMOD_create(…)等为程序动态分配堆空间以及使用堆空间动态创建DSP/BIOS模块对象的函数。

clip

本标签页旨在为DSP/BIOS内核的数据段分配存储空间。

Argument Buffer Section (.args):存放DSP/BIOS应用程序中main(…)函数形式参数值的存储段。

Stack Section (.stack):存放DSP/BIOS应用程序的栈数据的存储段。

DSP/BIOS Init Tables (.gblinit)、TRC Initial Value (.trcdata):存放DSP/BIOS全局变量初始值数据表以及DSP/BIOS分析工具初始值数据表的存储段。

DSP/BIOS Kernel State (.sysdata):存放DSP/BIOS内核状态值的系统数据存储段。

DSP/BIOS Conf Sections (.*obj):存放目标程序配置属性值的存储段。

clip

本标签页旨在为DSP/BIOS内核的代码段分配存储空间。由于DSP/BIOS内核程序是运行频率最高的代码部分,因此在图中除了将DSP/BIOS的启动代码段存放在外部存储器中以外,其余的代码段均存放在DSP的内部SRAM空间中。

BIOS Code Section (.bios):DSP/BIOS内核代码段,运行频率很高,可以考虑存放在DSP的内部存储器中。

Startup Code Section (.sysinit):DSP/BIOS内核的启动代码段,如果在General标签页中选中了Reuse Startup Code Space选项,则该段所占用的存储空间可以在DSP/BIOS内核启动后被回收,Reuse Startup Code Space选项只有当在DSP/BIOS应用程序中定义了堆存储空间时才是可被选中的。

clip

本标签页旨在为DSP/BIOS应用程序中的常规C语言程序部分的数据和代码分配存储空间。该页中的User .cmd File For Compiler Sections选项最好不要被选中,因为如果程序员需要为DSP/BIOS应用程序自定义非常规的存储段时,只要另行编写一个“.cmd”文件,并在其中包含上DSP/BIOS自带的“xxxcfg.cmd”文件即可。而另行编写的“.cmd”文件中只要包含非常规存储段的定义即可,不能涵盖“xxxcfg.cmd”文件中已经定义好的那些常规存储段的定义。但是如果选中了本页中的User .cmd File For Compiler Sections选项,则程序员不得不在自定义的“.cmd”文件中既包含非常规存储段的定义,也同时包含那些本可以在DSP/BIOS配置程序中通过鼠标点击方式就能完成的常规存储段的定义

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
9
关闭 站长推荐上一条 /3 下一条