DSP学习心得笔记.docx

上传人:b****5 文档编号:2940140 上传时间:2022-11-16 格式:DOCX 页数:13 大小:136.03KB
下载 相关 举报
DSP学习心得笔记.docx_第1页
第1页 / 共13页
DSP学习心得笔记.docx_第2页
第2页 / 共13页
DSP学习心得笔记.docx_第3页
第3页 / 共13页
DSP学习心得笔记.docx_第4页
第4页 / 共13页
DSP学习心得笔记.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

DSP学习心得笔记.docx

《DSP学习心得笔记.docx》由会员分享,可在线阅读,更多相关《DSP学习心得笔记.docx(13页珍藏版)》请在冰豆网上搜索。

DSP学习心得笔记.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1