DSP

DSP调试心得

2019-07-13 09:43发布

1、 (1)、报错如下: -------------------------  tam2012112701.pjt - Debug  ------------------------- [Linking...] "C:CCStudio_v3.3C2000cgtoolsincl2000" -@"Debug.lkf" >> 28335_RAM_lnk.cmd:   error: system error, can't open file '/.obj' for input:                                No such file or directory   >> Compilation failure   Build Complete,   2 Errors, 0 Warnings, 0 Remarks. (2)、解决方法 是修改了CMD文件,看来它的确不能动,我只是做了一些注释,网上说CMD里面不能用" // "注释。   2、 (1)、报错 "tam2012112801.c", line 59: warning: last line of file ends without a newline   (2)、解决 最后一行后多加几个回车键,不要不光标放在最后一行。   3、Include Search Path  C:CCStudio_v3.3MyProjectsDSP2833x_commoninclude;C:CCStudio_v3.3MyProjectsDSP2833x_headersinclude   4、 注意添加rts2800_fpu32.lib和GlobalVariableDefs.c   5、 那应该找到原因了,ADC_cal这个函数是默认在ROM里的, 看下面的CMD:
   /* Allocate ADC_cal function (pre-programmed by factory into TI reserved memory) */
   .adc_cal     : load = ADC_CAL,   PAGE = 0, TYPE = NOLOAD   6、 "DSP2833x_PieVect.c", line 20: error: identifier "PIE_RESERVED" is undefined "DSP2833x_PieVect.c", line 36: error: identifier "INT13_ISR" is undefined "DSP2833x_PieVect.c", line 37: error: identifier "INT14_ISR" is undefined   原因是我没有加DSP281x_DefaultIsr.h所以不行的。   7、 返回的数据只有一个,而且乱码。 解决:ScicRegs.SCICCR.bit.LOOPBKENA=1;   8、    error: symbol _InitGpio is defined multiple times:             C:\CCStudio_v3.3\MyProjects\tam2013010901\Debug\DSP2833x_Gpio.obj and C:\CCStudio_v3.3\MyProjects\tam2013010901\Debug\tam2013010901.obj   解决:删除DSP2833x_Gpio.c   9、 undefined                        first referenced  symbol                              in file ---------                        ---------------- _XINT7_ISR                       C:\CCStudio_v3.3\MyProjects\tam2013010901\Debug\DSP2833x_PieVect.obj _ECAN1INTA_ISR                   C:\CCStudio_v3.3\MyProjects\tam2013010901\Debug\DSP2833x_PieVect.obj _USER10_ISR                         解决:添加源文件DSP2833x_DefaultIsr.c   10、变量修饰符 static: 修饰变量,函数。作用域:变量仅仅在本文件可见,函数在本文件可以被调用。static在函数内部定义的话,分配在堆中,数值保存在data段,而不是在栈中,而且只赋值一次。  extern: 修饰变量,函数。修饰变量时候,变量的声明在外面,修饰函数的时候,如果函数已经声明,则作用不是很大。  const: 修饰变量,函数。修饰变量时候,不能被重复赋值,只能放在只读段中。修饰函数时候,表明函数的返回值必须为常数。 volatile: volatile最初的意思是表示汽油容易挥发,在c中的作用大概有两点(1)表示变量是易失的,易变的。(2)强制访存操作,防止编译器去优化,告诉编译器每次必须去内存中取值,而不是从寄存器或者缓存。   11、注意   GpioCtrlRegs.GPBDIR.all = 0xFFFFFFFF;      // GPIO32-GPIO63 are inputs  寄存器GPBDIR是32位的,需要8个字母配置。 GPI的Ctrl寄存器都需要EALLOW和EDIS保护。