paradoxfx

【原创】TI C2833x编程环境介绍---(9) cmd文件解释

0
阅读(2211)
  • 上次提到了C程序的不同段在目标系统中被放置在不同的存储区域中,这次解释一下各个段的具体含义
  • 程序代码(.text)
  • DSP中的程序代码由指令序列组成来进行数据操作、初始化系统设置等操作。在系统复位(上电)之前,程序代码就需要已经被定义好。在这个基本的系统限制前提下,一般我们需要把代码预先保存在非易失性的存储器(non-volatile memory,)中,例如FLASH或者EPROM,当然ROM也可以,但是代码就无法修订了。
  • 常量(.cinit –被初始化的数据)
  • 初始化数据I存储在系统复位之后的预定义区域中,包含了常量或者变量的初始值。与程序带啊类似,常量一般也存储在非易失性的存储器之中,这样系统复位、上电之前所设置的常量和初值就已经是有效数据了。
  • 变量(.ebss – 未初始化的数据)
  • 未初始化的数据存储单元可以在程序的执行过程中被改变和操作。与程序代码或者常量不同的是,未初始化的数据或者变量必须位于易失性的存储器之中,例如RAM。易失性的存储单元可以被修改和更新,这样它们所存储的变量就可以用数学表达式、高级语言的方法来描述。每一个变量都需要被提前声明,这样才能为它们预先保留一定的存储空间。根据变量的这种性质,变量只有在它们被程序调用时才会分配响应的值。

 

图1 链接代码与存储单元

链接代码与存储单元的3个步骤为:

  1. 定义存储单元的不同区域(片上SARAM、FLASH或者外部存储器)。需要注意的是,在使用外部存储器的时候,需要使用外部存储器接口Xintf,细节以后提到。
  2. 定义段与存储器区域的关联关系。
  3. 进行obj文件与cmd文件的链接。