DSP学习笔记

相同类别的数据为一个“段”
编译使.c文件生成.obj文件,而各个obj文件是由多个“段”构成的
链接就是使各.obj中的相同的“段”链接在一起,比如DSP28_ADC.obj文件含A、B、C段和DSP28_EV.obj含A、B段
那么链接的作用就是使ADC得A段和EV的A段链接在一起,使ADC得B段和EV的B段链接在一起。再加上ADC的C段——共同组成.out文件(可执行文件)

cmd文件就是给各个“段”分配存储空间

C语言的段: 已初始化段:存放在程序存储空间,含有真实的数据内容
  未初始话段:存放在数据存储空间

已初始化段: .text : 汇编指令代码
  .cinit : 存放对全局和静态变量初始化
  .const : const声明字符串常常是全局、静态
  .econst : far const.............

未初始化段: .bss :为全局变量和局部变量保留的空间。在程序商店的时候,.cinit会被复制出来复制到.bss的空间中区
  .ebss :为使用大寄存器的全局变量和局部变量保留的空间程序上电的时候,程序商店的时候.cinit会被复制到.bss中区,选择库文件也选择后缀为-ML的文件
  .stack :函数的传递变量和局部变量分配空间

上述是系统定义好的段

用户自定义的段:

#pragma CODE_SECTION(symbol "section name");
为代码定义段的 symbol 是函数名或者全局变量名,section name为段名,可以自定义
#pragma DATA_SECTION(symbol "section name");
为数据定义段的


在符号被定义和使用前用上述伪指令定义段
不能再函数体内用伪指令定义段
EX: #pragma DATA_SECTION(s,"newsect")
unsigned int s[100];
void main()
{

}

CMD文件的编写:
 指示存储空间:需要用到哪些存储空间
 分配段到存储空间:将段分配到存储空间去
上述也是编写cmd文件的两个步骤

如果要编写注视,支持/**/,不支持//
第一步:
用MEMORY伪指令来指示存储空间
MEMORY
{
 PAGE0 : name0 [(attr)] : origin = constant,length = constant
 
 name存储器名,可以自定义,1-8个字符
 attr:R、W、X、I
 origin存储器的起始地址
 length存储空间的大小

 PAGEN : name0 [(attr)] : origin = constant,length = constant
 理论上N可以到255,但是2812只能用到PAGE0和PAGE1

 PAGE0 用来存放程序的
 PAGE1 用来存放数据的

 
 在同一页里边儿不能有相同的存储器名,而不同页可以。



第二步:通过SECTIONS伪指令来将段分配到存储空间
SECTIONS
{
 name : [property,property]
 name是段名
 property————load: load = allocation
    输出段将被装载到哪里去 
     allocation可以是个绝对地址,但更为通常的是存储空间的名称
     上述语句等效于load > allocation
   :  run 指示段是从什么位置开始运行的
    只出现run或者load的其中一个关键字时,说明二者的地址是一样的(此时,可以用..>..表示)
   :  PAGE = 0 段分配到程序空间
      PAGE = 1段分配到数据空间


 name : [property,property]
 ...
}  


SRAM.cmd是用来将程序分配到RAM空间,只适合程序在RAM中运行的情况,file->load pagrama来讲程序下载到RAM中
FLASH.cmd 用来将程序分配到FLASH中去,需要下载到FLASH中去而生成.out文件的时候 要用到它。需要用到TOOLS->的F2812 Chip Flash Progammer来讲程序下载到FLASH空间里去

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值