您好,欢迎访问三七文档
DSP学习心得笔记----------------白建成.baijc.icekoor引言:学习DSP的时间有两个多月了,收获很多新知识,我们要每天都有进步才行,以下内容没有特别的顺序,跟具自己的学习情况写的,如果有不对的地方希望指出来,如果有不懂得也可以问我,大家相互交流很重要,我的一个邮箱:baijc@163.com欢迎联系!建立新工程过程中:问题1:GPIO_Study.c,line61:fatalerror:couldnotopensourcefileDSP280x_Device.h1fatalerrordetectedinthecompilationofGPIO_Study.c.解决方法:因为projectbuildoptionscompilerpreprocessor中,要包含的头文件的地址没有加进去,你可以找到头文件的地址,然后加进去。问题2:undefinedfirstreferencedsymbolinfile-------------------------_c_int00D:\DSPstudy\test3\Debug\DSP280x_CodeStartBranch.objFS$$MPYD:\DSPstudy\test3\Debug\DSP280x_CpuTimers.objFS$$TOLD:\DSPstudy\test3\Debug\DSP280x_CpuTimers.objerror:symbolreferencingerrors-'./Debug/test3.out'notbuilt或者下面的问题:undefinedfirstreferencedsymbolinfile-------------------------_c_int00D:\DSPstudy\GPIO_Study\Debug\DSP280x_CodeStartBranch.objerror:symbolreferencingerrors-'./Debug/GPIO_Study.out'notbuilt解决办法都是下面:这个问题是因为没有加在库文件,请在projectbuildoptionslinkerlibraries中加入rts2800.lib。问题3:warning:creating.stacksectionwithdefaultsizeof400(hex)words.Use-stackoptiontochangethedefaultsize.error:can'tallocate.stack,size00000400(page1)inRAMM1(avail:00000380)error:errorsininput-./Debug/GPIO_Study.outnotbuilt解决办法:这个问题是关于堆栈存储大小的问题,他是说,创建堆栈段使用与设置400个字,并建议在“堆栈操作”中改变这个与设置。这时,需要进行如下修改就可通过:projectbuildoptionsLinkerbasic,在StackSize(-stack):填入800或者其他小于1024的数值。调试程序:LoadProgram,在工程文件夹下面的Debug文件夹下,选中**.out文件,点击打开,便开始下载程序了。将**.out文件下载到目标板上2812的RAM中。在编译完成之后,要来下载程序并进行功能调试。File注意,这里是调试,所以将程序下载到RAM。等到最后您要固化程序的时候,就得下载到FLASH了,因为断电之后,RAM里面所有的数据都会消失。(Run和Animate的区别,Run是如果遇到断点的话它就停下来了。而Animate就算遇到断点时先停止DSP内核,刷新窗口,然后接着继续启动运行,常用来连续刷新变量窗口和生成graph图形等)——知识储备。添加断点:加上断点的方法很简单,只要在该行代码前双击就行。双击之后,这行代码前面会出现一个红色圆块。另外一种添加断点的方法,就是在刚才的编译工具栏上,点一下那个小手图形的按钮,前提是你要把光标移动到想要设置断点的哪一行上。使用watchwindow:Watchwindow的作用是来观察程序运行过程中的各个变量的值。调用watchwindow的方法是点击菜单栏的View,watchwindow,这时watchwindow就会显示在CCS下方的信息区域;选中所要观察的变量,然后右键,在右键菜单中选择addtowatchwindow。调试代码观察:MixedSource/Asm;Gomain。既能看到源文件中代码的执行情况,又能看到汇编指令的执行情况View我们在调试程序的时候经常想让程序从Main函数开使运行,点Debug关于F2812中用C语言来实现中断的说明1.首先在.cmd中定位系统中断表:MEMORY{PAGE0:......................................PAGE1:......................................PIE_VECT:origin=0x000D00,length=0x000100......................................}SECTIONS{...................................PieVectTable:PIE_VECT,PAGE=1.....................................}2.在C中制定该中断的结构体:#pragmaDATA_SECTION(PieVectTable,PieVectTable);structPIE_VECT_TABLEPieVectTable;(在DSP28_GlobalVariableDefs.C中初始化)3.用一组常数(按照中断向量的顺序)初始化该名字为PIE_VECT_TABLE的表:typedefinterruptvoid(*PINT)(void);这里有些一问,一下应该为函数名??//DefineVectorTable:structPIE_VECT_TABLE{//Resetisneverfetchedfromthistable.//Itwillalwaysbefetchedfrom0x3FFFC0ineither//bootROMorXINTFZone7dependingonthestateof//theXMP/MCinputsignal.OntheF2810itisalways//fetchedfrombootROM.PINTPIE1_RESERVED;PINTPIE2_RESERVED;PINTPIE3_RESERVED;PINTPIE4_RESERVED;PINTPIE5_RESERVED;PINTPIE6_RESERVED;PINTPIE7_RESERVED;PINTPIE8_RESERVED;PINTPIE9_RESERVED;PINTPIE10_RESERVED;PINTPIE11_RESERVED;PINTPIE12_RESERVED;PINTPIE13_RESERVED;//Non-PeripheralInterrupts:PINTXINT13;//XINT13PINTTINT2;//CPU-Timer2PINTDATALOG;//DatalogginginterruptPINTRTOSINT;//RTOSinterruptPINTEMUINT;//EmulationinterruptPINTXNMI;//Non-maskableinterruptPINTILLEGAL;//IllegaloperationTRAPPINTUSER0;//UserDefinedtrap0PINTUSER1;//UserDefinedtrap1PINTUSER2;//UserDefinedtrap2PINTUSER3;//UserDefinedtrap3PINTUSER4;//UserDefinedtrap4PINTUSER5;//UserDefinedtrap5PINTUSER6;//UserDefinedtrap6PINTUSER7;//UserDefinedtrap7PINTUSER8;//UserDefinedtrap8PINTUSER9;//UserDefinedtrap9PINTUSER10;//UserDefinedtrap10PINTUSER11;//UserDefinedtrap11//Group1PIEPeripheralVectors:PINTPDPINTA;//EV-APINTPDPINTB;//EV-BPINTrsvd1_3;PINTXINT1;PINTXINT2;PINTADCINT;//ADCPINTTINT0;//Timer0PINTWAKEINT;//WD..........................//Group12PIEPeripheralVectors:PINTrsvd12_1;PINTrsvd12_2;PINTrsvd12_3;PINTrsvd12_4;PINTrsvd12_5;PINTrsvd12_6;PINTrsvd12_7;PINTrsvd12_8;};然后在使我们在.cmd文件中定义的表有以上属性:externstructPIE_VECT_TABLEPieVectTable;(在.h文件中)4.初始化该表(在.c文件中)使之能够为主程序所使用:conststructPIE_VECT_TABLEPieVectTableInit={PIE_RESERVED,//ReservedspacePIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,PIE_RESERVED,//Non-PeripheralInterruptsINT13_ISR,//XINT13orCPU-Timer1INT14_ISR,//CPU-Timer2DATALOG_ISR,//DatalogginginterruptRTOSINT_ISR,//RTOSinterruptEMUINT_ISR,//EmulationinterruptNMI_ISR,//Non-maskableinterruptILLEGAL_ISR,//IllegaloperationTRAPUSER0_ISR,//UserDefinedtrap0USER1_ISR,//UserDefinedtrap1USER2_ISR,//UserDefinedtrap2USER3_ISR,//UserDefinedtrap3USER4_ISR,//UserDefinedtrap4USER5_ISR,//UserDefinedtrap5USER6_ISR,//UserDefinedtrap6USER7_ISR,//UserDefinedtrap7USER8_ISR,//UserDefinedtrap8USER9_ISR,//UserDefinedtrap9USER10_ISR,//UserDefinedtrap10USER11_ISR,//UserDefinedtrap11//Group1PIEVectorsPDPINTA_ISR,//EV-APDPINTB_ISR,//EV-Brsvd_ISR,XINT1_ISR,XINT2_ISR,ADCINT_ISR,//ADCTINT0_ISR,//Timer0WAKEINT_ISR,//WD..........................//Group12EVectorsrsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_ISR,rsvd_I
本文标题:DSP学习笔记心得
链接地址:https://www.777doc.com/doc-2910501 .html