DSP

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

2019-07-13 10:59发布

  一.            定点和浮点: 定点数指小数点在数中的位置是固定不变的 浮点数中小数点的位置是不固定的,用阶码和尾数来表示 二.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.3C5500cgtoolsincl55" -g -fr"D:/Documents/CCS/55x test/c and asm/Debug" -d"_DEBUG" -@"Debug.lkf" "yuyan.asm"   [yuyan.c] "E:CCStudio_v3.3C5500cgtoolsincl55" -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.3C5500cgtoolsincl55" -@"Debug.lkf" >> 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的就可以了。