您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 详细手把手教你学dsp教程学习笔记
1、cj431电压基准芯片,2.5v2、电平标准3、驱动器74HC245(为增强PWM的驱动负载能力)44、、增加输入端的抗干扰能力:在芯片的输入端加上拉电阻加电源或者下拉电阻接地,没没有有用用到到的的采采样样端端口口尽尽量量不不要要悬悬空空。。55、、D/A电路方案通用扩展语言GEL和c相似,但是有所不同。GEL语言是C语言的一个子集。与c语言不同的是gel不需要指定函数返回值的类型。Gel中的while语句和c中的while语句相同,gel不支持标准c的break和continue语句6、一个完整的dsp工程包括头文件(.h),库文件(.lib),源文件(.c),以及配置文件.Cmd使用关键字MENUITEM可以在gel菜单下选择用户自定义的菜单项,然后用hotmenu、dialog或slider等关键字,在这个新的下拉菜单中添加新的菜单项。7、关于添加文件遇到的问题8、变量查找:editfind:Ctrl+f9、调试时,添加断点的快捷方法如下点击图上的小手即可10、单步调试第一个的意思是单击一步走一步,第二个的意思是指在单步运行时遇到子函数不进入子函数内部进行而是把它当成一步来执行,第三个的意思是当执行到子函数内部时使用这个按钮就可以执行完剩下的部分返回上一层函数。如果想在一个窗口内同时看到c和汇编,则有操作Viewmixedsource/asm11、观察变量右击变量addtowatchwindow可以得到变量的值、类型、地址等。12、位域定义、结构体以及共同体的知识结构体先定义再声明UnionSCIFFCT_REG{Uint16all;StructSCIFFCT_BITSbit;};//---------------------------------------------------------------------------//SCIRegisterFile://StructSCI_REGS{UnionSCICCR_REGSCICCR;//CommunicationscontrolregisterUnionSCICTL1_REGSCICTL1;//Controlregister1Uint16SCIHBAUD;//Baudrate(high)registerUint16SCILBAUD;//Baudrate(low)registerUnionSCICTL2_REGSCICTL2;//Controlregister2UnionSCIRXST_REGSCIRXST;//ReceivestatusregisterUint16SCIRXEMU;//ReceiveemulationbufferregisterUnionSCIRXBUF_REGSCIRXBUF;//ReceivedatabufferUint16rsvd1;//reservedUint16SCITXBUF;//TransmitdatabufferUnionSCIFFTX_REGSCIFFTX;//FIFOtransmitregisterUnionSCIFFRX_REGSCIFFRX;//FIFOreceiveregisterUnionSCIFFCT_REGSCIFFCT;//FIFOcontrolregisterUint16rsvd2;//reservedUint16rsvd3;//reservedUnionSCIPRI_REGSCIPRI;//FIFOPrioritycontrol};//---------------------------------------------------------------------------//SCIExternalReferences&FunctionDeclarations://ExternvolatilestructSCI_REGSSciaRegs;ExternvolatilestructSCI_REGSScibRegs;由于scihbaud和scilbaud定义时为unit16型的,所以不能用.all或者.bit的方式来访问,只能直接给寄存器整体进行赋值。非常方便的功能:如下图,不用记那么多的寄存器了寄存器文件的空间分配(1)使用datasection方法将寄存器文件分配到数据空间(2)数据段映射到寄存器对应的存储空间条件编译预处理程序提供了条件编译的功能。可以按不同的条件去编译不同的程序部分,因而产生不同的目标代码文件。这对于程序的移植和调试是很有用的。条件编译有三种形式,下面分别介绍:1.第一种形式:#ifdef标识符程序段1#else程序段2#endif它的功能是,如果标识符已被#define命令定义过则对程序段1进行编译;否则对程序段2进行编译。如果没有程序段2(它为空),本格式中的#else可以没有,即可以写为:#ifdef标识符第七章存储器的结构、映像及cmd文件的编写总线结构为哈佛结构什么叫分页机制?分页机制在段机制之后进行,以完成线性—物理地址的转换过程。段机制把逻辑地址转换为线性地址,分页机制进一步把该线性地址再转换为物理地址。分页机制管理的对象是固定大小的存储块,称之为页(page)。分页机制把整个线性地址空间及整个物理地址空间都看成由页组成,在线性地址空间中的任何一页,可以映射为物理地址空间中的任何一页(我们把物理空间中的一页叫做一个页面或页框(pageframe))。使用段的好处在于实现模块化编程Cmd文件的编写:1、注释支持:/**/但不支持//,有些关键字必须大写如SECTIONS/MEMORY2、通过MEMORY伪指令来指示存储空间和SECTIONS分配存储空间。格式如下:SECTIONS{/*Allocateprogramareas:*/.cinit:FLASHAPAGE=0.pinit:FLASHA,PAGE=0.text:FLASHAPAGE=0Codestart:BEGINPAGE=0Ramfuncs:LOAD=FLASHD,RUN=RAML0,LOAD_START(_RamfuncsLoadStart),LOAD_END(_RamfuncsLoadEnd),RUN_START(_RamfuncsRunStart),PAGE=0Csmpasswds:CSM_PWLPAGE=0csm_rsvd:CSM_RSVDPAGE=0/*allocateuninitializeddatasections:*/.stack:RAMM0PAGE=1.ebss:RAML1PAGE=1.esysmem:RAMH0PAGE=1/*ForSDFlashtoprogramthese,theymustbeallocatedtopage0*/.econst:FLASHAPAGE=0.switch:FLASHAPAGE=0/*allocateIQmathareas:*/IQmath:FLASHCPAGE=0/*MathCode*/IQmathTables:ROMPAGE=0,TYPE=NOLOAD/*MathTablesInROM*//*.resetisastandardsectionusedbythecompiler.Itcontainsthe*//*theaddressofthestartof_c_int00forCCode./*/*WhenusingthebootROMthissectionandtheCPUvector*//*tableisnotneeded.Thusthedefaulttypeissethereto*//*DSECT*/.reset:RESET,PAGE=0,TYPE=DSECTVectors:VECTORSPAGE=0,TYPE=DSECT}烧到FLASH中时,程序运行速度将大大降低,因此希望一些对时间要求较精准的子程序在RAM中运行。那又如何做到呢??1、在FLASH.CMD中划分一段来设置RAM的载入和运行地址2、在源文件中利用调用函数memcpy()将FLASH中的内容复制到RAM中运行。3、在头文件中定义新变量F2812片内拥有18k*16位的ram空间和128k*16位的flash空间第八章时钟和系统控制1、振荡器和锁相环时钟就像人的心跳一样,对于系统而言他是很重要的。通过软件实时的配置片上外设时钟,片内有较高的时钟频率而片外可以运行在比较低的频率上面。常用第三种情况:使能,当PLLCR不为0时,写10进去则可获得最大的时钟频率150MHZ。看门狗电路的基本原理:看门狗电路和一个I/O口连接,通过程序控制该口向看门狗电路送入高电平或者低电平,这些控制看门狗电路的语句分散在程序中,起到一个监测的作用。在程序跑飞的情况下,可以使复位,程序从头开始执行。向看门狗密钥寄存器8位(WDKEY)写0X55+0XAA的理解0X55+0XAA=255,使WDCNTR计数器清除强调顺序:先写0X55再写0XAA,0X55使能,0XAA清除LPMCR(1-0)的不同决定了四种不同的功耗模式外设时钟控制寄存器PCLKCR能控制片内各种时钟的工作状态外设时钟控制寄存器系统与控制状态寄存器高速外设时钟预定标寄存器(HISPCP)HSPCLK低速外设时钟预定标寄存器(LOSPCP)LSPCLK低速时类似PLL控制寄存器第9章通用输入/输出多路复用GPIOGPIO寄存器一共分为两大类:一类是控制寄存器:主要由功能控制寄存器GPxMUX,方向控制寄存器GPxDIR,输入限定控制寄存器GPxQUAL组成。另一类是数据寄存器:主要由数据寄存器GPxDAT,置位寄存器GPxSET,清除寄存器GPxCLEAR和取反寄存器GPxTOGGLE组成。假设已经设置为数字I/O口,那么输入输出又是怎么定义的呢?如下所示:输入限定控制寄存器、可以通过这个寄存器对输入信号进行量化限制、改善输入信号从而去除不希望的噪声污染。连续采样到多个相同的电平时才认为是该电平、滤除了干扰信号。LED闪烁实验系统初始化函数、GPIO初始化函数、主函数、延时子函数在寄存器中结构体的运用StructGPADIR_BITS{//bitsdescriptionUint16GPIOA0:1;//0Uint16GPIOA1:1;//1Uint16GPIOA2:1;//2Uint16GPIOA3:1;//3Uint16GPIOA4:1;//4Uint16GPIOA5:1;//5Uint16GPIOA6:1;//6Uint16GPIOA7:1;//7Uint16GPIOA8:1;//8Uint16GPIOA9:1;//9Uint16GPIOA10:1;//10Uint16GPIOA11:1;//11Uint16GPIOA12:1;//12Uint16GPIOA13:1;//13Uint16GPIOA14:1;//14Uint16GPIOA15:1;//15};UnionGPADIR_REG{Uint16all;StructGPADIR_BITSbit;};第10章CPU定时器32位定时器周期寄存器、32位计数器寄存器、16位定时器分频器寄存器(决定了每一步的时间)、16位的预定标计数器寄存器只有定时器0是能用的第11章中断系统可屏蔽中断、不可屏蔽中断中断使能寄存器IER某一位为1则屏蔽该对应中断高两位保留、低14位对应着相应的14个中断中断标志寄存器IFR:说明CPU中断提出了相应中断请求若相对应位为0、则说明没有未处理的对应中断若相对应位为1、则说明至少有一个对应中断没有处理INTM总开关PIE中断控制器组的概念:被分布在不同的组里μC/OS-II由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。μC/OS-II
本文标题:详细手把手教你学dsp教程学习笔记
链接地址:https://www.777doc.com/doc-3665356 .html