DSP学习心得笔记.docx
- 文档编号:2940140
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:13
- 大小:136.03KB
DSP学习心得笔记.docx
《DSP学习心得笔记.docx》由会员分享,可在线阅读,更多相关《DSP学习心得笔记.docx(13页珍藏版)》请在冰豆网上搜索。
DSP学习心得笔记
DSP学习心得笔记
----------------白建成.baijc.icekoor
建立新工程过程中:
问题1:
"GPIO_Study.c",line61:
fatalerror:
couldnotopensourcefile"DSP280x_Device.h"
1fatalerrordetectedinthecompilationof"GPIO_Study.c".
解决方法:
因为projectbuildoptionscompilerpreprocessor中,要包含的头文件的地址没有加进去,你可以找到头文件的地址,然后加进去。
问题2:
undefinedfirstreferenced
symbolinfile
-------------------------
_c_int00D:
\DSPstudy\test3\Debug\DSP280x_CodeStartBranch.obj
FS$$MPYD:
\DSPstudy\test3\Debug\DSP280x_CpuTimers.obj
FS$$TOLD:
\DSPstudy\test3\Debug\DSP280x_CpuTimers.obj
>>error:
symbolreferencingerrors-'./Debug/test3.out'notbuilt
或者下面的问题:
undefinedfirstreferenced
symbolinfile
-------------------------
_c_int00D:
\DSPstudy\GPIO_Study\Debug\DSP280x_CodeStartBranch.obj
>>error:
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的数值。
调试程序:
在编译完成之后,要来下载程序并进行功能调试。
FileLoadProgram,在工程文件夹下面的Debug文件夹下,选中**.out文件,点击打开,便开始下载程序了。
将**.out文件下载到目标板上2812的RAM中。
注意,这里是调试,所以将程序下载到RAM。
等到最后您要固化程序的时候,就得下载到FLASH了,因为断电之后,RAM里面所有的数据都会消失。
(Run和Animate的区别,Run是如果遇到断点的话它就停下来了。
而Animate就算遇到断点时先停止DSP内核,刷新窗口,然后接着继续启动运行,常用来连续刷新变量窗口和生成graph图形等)——知识储备。
添加断点:
加上断点的方法很简单,只要在该行代码前双击就行。
双击之后,这行代码前面会出现一个红色圆块。
另外一种添加断点的方法,就是在刚才的编译工具栏上,点一下那个小手图形的按钮,前提是你要把光标移动到想要设置断点的哪一行上。
使用watchwindow:
Watchwindow的作用是来观察程序运行过程中的各个变量的值。
调用watchwindow的方法是点击菜单栏的"View","watchwindow",这时watchwindow就会显示在CCS下方的信息区域;
选中所要观察的变量,然后右键,在右键菜单中选择addtowatchwindow。
调试代码观察:
我们在调试程序的时候经常想让程序从Main函数开使运行,点DebugGomain。
既能看到源文件中代码的执行情况,又能看到汇编指令的执行情况ViewMixedSource/Asm;
关于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;//XINT13
PINTTINT2;//CPU-Timer2
PINTDATALOG;//Datalogginginterrupt
PINTRTOSINT;//RTOSinterrupt
PINTEMUINT;//Emulationinterrupt
PINTXNMI;//Non-maskableinterrupt
PINTILLEGAL;//IllegaloperationTRAP
PINTUSER0;//UserDefinedtrap0
PINTUSER1;//UserDefinedtrap1
PINTUSER2;//UserDefinedtrap2
PINTUSER3;//UserDefinedtrap3
PINTUSER4;//UserDefinedtrap4
PINTUSER5;//UserDefinedtrap5
PINTUSER6;//UserDefinedtrap6
PINTUSER7;//UserDefinedtrap7
PINTUSER8;//UserDefinedtrap8
PINTUSER9;//UserDefinedtrap9
PINTUSER10;//UserDefinedtrap10
PINTUSER11;//UserDefinedtrap11
//Group1PIEPeripheralVectors:
PINTPDPINTA;//EV-A
PINTPDPINTB;//EV-B
PINTrsvd1_3;
PINTXINT1;
PINTXINT2;
PINTADCINT;//ADC
PINTTINT0;//Timer0
PINTWAKEINT;//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,//Reservedspace
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
PIE_RESERVED,
//Non-PeripheralInterrupts
INT13_ISR,//XINT13orCPU-Timer1
INT14_ISR,//CPU-Timer2
DATALOG_ISR,//Datalogginginterrupt
RTOSINT_ISR,//RTOSinterrupt
EMUINT_ISR,//Emulationinterrupt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 学习心得 笔记