DSP学习中遇到的问题(By Moli)

 

一.            定点和浮点:

定点数指小数点在数中的位置是固定不变的

浮点数中小数点的位置是不固定的,用阶码和尾数来表示

二.cmd文件

用于链接器对段的处理:

1.       将一个或多个COFF目标文件(.obj)中的各种段作为链接器的输入段,经链接后在一个可执行的COFF模块(.out)中建立各个输出段

2.       为各个输出段选定存储器地址

编写:

①用伪指令MEMORY指定存储器

MEMORY

{

  PAGE0:  name0[(attr)]:   origin=constant,length=constant

  PAGE1:  name1[(attr0)]:  origin=constant,length=constant

}

说明:1.有两个页PAGE0(存放程序)、PAGE1(存放数据)

         2.name0为自己定义的名字

      3.attr为属性(R W X I),一般省略

②用伪指令SECTORS分配到存储空间

SECTORS

{

  name:[property,property,…]

  name:[property,property,…]

  …

}

说明:1.name为段名

3.       property为属性(load run )

三.            MOV与AMOV区别

    MOV只能对16bit数进行赋值
AMOV可以对扩展的数据进行赋值

    例如:要访问400020H地址单元内容,可以这样通过间接寻址方式:
AMOV       #400020H,XAR0     ;XAR0为23bit
 MOV        *AR0,AR1

四.GEL文件

GEL为General Extend Language缩写(通用扩展语言),用来扩展CCS的功能

五.2011年10月28日做了个mini5402实验,代码如下:

              .mmregs

              .def _c_int00

              .def _timer0

Couter     .set 500

;on_off    .usect ".on_off",1   ;为变量预留一个空间,用于存放判断灯的亮灭

              .text

_c_int00: STM #50C7H,CLKMD

                     STM #00a0h, PMST

                     STM #Couter,AR1

              ;      STM #on_off,AR2

                    

                     STM #0H,IMR                                                     

                     STM #0010H,TCR

                     STM #186AH,PRD

                     STM #0C2fh,TCR

                     STM #0008h,IFR

                     ORM #0008h,*(IMR)

                            ;ST #1,*AR2

                    

                     RSBX INTM

loop:              nop

                     b loop

 

_timer0:  PSHM ST0

                     BANZ NEXT,*AR1-

                     STM #Couter,AR1

                     BITF *AR2,#1

                     BC led_on,TC

      

led_off:   SSBX XF

                     ST #1,*AR2   ;AR2默认值为0000h,0000h为IMR的地址,也就是IMR=0001H,修改了IMR的值,TINT0已经被屏蔽,不会中断,但程序运行正常,Why?

                     B NEXT

led_on:           RSBX XF

                     ST #0,*AR2

NEXT:

                     POPM ST0

                     RETE

                     .end

                    

六.乘法

              .mmregs

              .def _c_int00

              .data

mux:       .int -2,4

              .text

_c_int00: STM #50C7H,CLKMD

              ;      STM #4240H,SWWSR  ;没有用到外部存储器就所以可以不用设置

                     STM #00a0h, PMST

              ;      STM #0802h, BSCR

                    

                     STM #0H,IMR

                     RSBX INTM

                    

                     STM #1300H,AR2

                     STM #1301H,AR4

                     MPY *AR2-,*AR4+0%,B  ;执行后B=FFFFFFFFF8   是这么算的将-2的补码0xFFFE复原去掉符号位和0x0004相乘,得0x0008,这个数的补码放入B

loop:

                     NOP

                     B loop

delay:                           ;延时大概为1ms,1/101MHZ*(256*40960)

                     STM #100H,BRC

                     RPTB end_ret-1

                     RPT #0A000h

                     NOP

end_ret:   ret

                     .end

                    

七.2011年11月18日晚发现了个问题,到次日早晨才解决:

编译错误:

---------------------------  c and asm.pjt - Debug  ---------------------------

[yuyan.asm] "E:\CCStudio_v3.3\C5500\cgtools\bin\cl55" -g -fr"D:/Documents/CCS/55x test/c and asm/Debug" -d"_DEBUG" -@"Debug.lkf" "yuyan.asm"

 

[yuyan.c] "E:\CCStudio_v3.3\C5500\cgtools\bin\cl55" -g -fr"D:/Documents/CCS/55x test/c and asm/Debug" -d"_DEBUG" -@"Debug.lkf" "yuyan.c"

"yuyan.c", line 9: warning: variable "s4" was set but never used

//从上面两句可以看出先编译的.asm文件

[Linking...] "E:\CCStudio_v3.3\C5500\cgtools\bin\cl55" -@"Debug.lkf"

<Linking>

>> warning: creating output section vectors without SECTIONS specification

 

undefined                        first referenced

 symbol                              in file

---------                        ----------------

_mac1                            D:\\Documents\\CCS\\55x test\\c and asm\\Debug\\yuyan.obj

_mac2                            D:\\Documents\\CCS\\55x test\\c and asm\\Debug\\yuyan.obj

_mac3                            D:\\Documents\\CCS\\55x test\\c and asm\\Debug\\yuyan.obj

>>   error: symbol referencing errors - './Debug/c and asm.out' not built

 

>> Compilation failure

 

Build Complete,

  2 Errors, 2 Warnings, 0 Remarks.

 

八.CSL(片级支持库)

       CSL (Chip Support Library)

       在TI公司的CCS开发环境中,提供了DSP片级支持库CSL,多数CSL模块都对应函数,宏,类,和表示符号组成。

       简单方便的完成对DSP器件片上外设配置和控制的编程工作,从而简化了DSP片上外设开发工作,缩短开发周期,并且可以达成标准化控制的编程工作。

       简而言之,用它的话TI公司的所有TMS320系列的DSP都不需要对寄存器级的直接操作,非常有用的一项技术

九.error: illegal relocation type 050002 found in section .debug_info, file

昨天用css3.3编译程序出现以上错误。

是库的问题,把rts55.lib换为css2.2的就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值