以.CMD 为扩展名的文件,这个文件的作用是用来分配存储空间的。由于DSP 编译器的编译结果是未定位的,DSP 也没有操作系统来定位执行代码,DSP 系统的配置需求也不尽相同,因此我们根据实际的需求,自己定义代码的存储位置。打个通俗的比喻,就是我们有一个仓库,现在需要把货物存放到仓库里面去,为了便于日后取用货物,我们将货物分门别类,然后把它们存放到指定的位置去。把哪些货物放到哪个位置的规则,就是我们的CMD文件的内容。
CMD文件,又称链接命令文件,主要作用是分配rom和ram空间,它告诉链接程序怎样计算地址和分配空间。例如,应该把程序放在哪块地址内,把数据放在哪块地址内以及把程序中定义的某些变量(如图中的 i 所示)放在哪块地址内。
首先,CMD文件分为三大部分:a.输入输出定义;b.MEMORY 和c .SECTIONS。
输入输出定义: 这一部分,可以通过ccs的“Build Option…”菜单设置
。obj 链接的目标文件
。lib 链接的库文件
。map 生成的交叉索引文件
。out 生成的可执行代码
以及堆栈的设置:
-stack :又称系统栈(system stack),用于:保存函数调用后的返回地址;给局部变量分配存储空间;传递函数参数;保存临时结果。
-heap :编译器提供的运行时支持库的一些