《dsp基础学习总结笔记》由会员分享,可在线阅读,更多相关《dsp基础学习总结笔记(26页珍藏版)》请在金锄头文库上搜索。
1、1、 cj431 电压基准芯片,2.5v2、 电平标准3、 驱动器 74HC245(为增强 PWM 的驱动负载能力)4 4 4、 增加输入端的抗干扰能力:在芯片的输入端加上拉电阻加电源或者下拉电 阻接地,没有用到的采样端口尽量不要悬空。没有用到的采样端口尽量不要悬空。没有用到的采样端口尽量不要悬空。 5 5 5、 D/A 电路方案通用扩展语言 GEL 和 c 相似,但是有所不同。GEL 语言是 C 语言的一个子集。 与 c 语言不同的是 gel 不需要指定函数返回值的类型。Gel 中的 while 语句和 c 中的 while 语句相同,gel 不支持标准 c 的 break 和 contin
2、ue 语句 6、 一个完整的 dsp 工程包括头文件(.h),库文件(.lib),源文件(.c), 以及配置文件.Cmd 使用关键字 MENUITEM 可以在 gel 菜单下选择用户自定义的菜单项,然后用 hotmenu、dialog 或 slider 等关键字,在这个新的下拉菜单中添加新的菜单项。7、关于添加文件遇到的问题8、变量查找:editfind:Ctrl+f 9、调试时,添加断点的快捷方法如下点击图上的小手即可 10、单步调试 第一个的意思是单击一步走一步,第二个的意思是指在单步运行时遇到子函数 不进入子函数内部进行而是把它当成一步来执行,第三个的意思是当执行到子 函数内部时使用这个
3、按钮就可以执行完剩下的部分返回上一层函数。如果想在一个窗口内同时看到 c 和汇编,则有操作 Viewmixed source/asm 11、观察变量 右击变量add to watch window 可以得到变量的值、类型、地址等。12、位域定义位域定义、结构体以及共同体的知识结构体以及共同体的知识结构体先定义再声明结构体先定义再声明Union SCIFFCT_REG Uint16 all;Struct SCIFFCT_BITS bit; ;/- -/ SCI Register File: / Struct SCI_REGS Union SCICCR_REG SCICCR; / Communic
4、ations control registerUnion SCICTL1_REG SCICTL1; / Control register 1Uint16 SCIHBAUD; / Baud rate (high) registerUint16 SCILBAUD; / Baud rate (low) registerUnion SCICTL2_REG SCICTL2; / Control register 2Union SCIRXST_REG SCIRXST; / Receive status registerUint16 SCIRXEMU; / Receive emulation buffer
5、registerUnion SCIRXBUF_REG SCIRXBUF; / Receive data buffer Uint16 rsvd1; / reservedUint16 SCITXBUF; / Transmit data buffer Union SCIFFTX_REG SCIFFTX; / FIFO transmit registerUnion SCIFFRX_REG SCIFFRX; / FIFO receive registerUnion SCIFFCT_REG SCIFFCT; / FIFO control registerUint16 rsvd2; / reservedUi
6、nt16 rsvd3; / reservedUnion SCIPRI_REG SCIPRI; / FIFO Priority control ;/- - / SCI External References Extern volatile struct SCI_REGS ScibRegs;由于 scihbaud 和 scilbaud 定义时为 unit16 型的,所以不能用.all 或者.bit 的方式来访问,只能直接给寄存器整体进行赋值。非常方便的功能:如下图,不用记那么多的寄存器了寄存器文件的空间分配 (1) 使用 data section 方法将寄存器文件分配到数据空间(2) 数据段映射到
7、寄存器对应的存储空间条件编译 预处理程序提供了条件编译的功能。 可以按不同的条件去编译不同的程序部分,因而产生 不同的目标代码文件。这对于程序的移植和调试是很有用的。 条件编译有三种形式,下面 分别介绍: 1.第一种形式: #ifdef 标识符 程序段 1 #else程序段 2 #endif它的功能是,如果标识符已被 #define 命令定义过则对程序段 1 进行编译;否则对程序 段 2 进行编译。如果没有程序段 2(它为空),本格式中的#else 可以没有,即可以写为: #ifdef 标识符第七章第七章 存储器的结构、映像及存储器的结构、映像及 cmd 文件的编写文件的编写总线结构为哈佛结构
8、什么叫分页机制?http:/ 。分页机制把整个线性地址空 间及整个物理地址空间都看成由页组成,在线性地址空间中的任何一页,可以映射为物理 地址空间中的任何一页(我们把物理空间中的一页叫做一个页面或页框(page frame) ) 。使用段的好处在于实现模块化编程使用段的好处在于实现模块化编程Cmd 文件的编写:文件的编写:1、注释支持:/* */但不支持/,有些关键字必须大写如SECTIONS/MEMORY2、通过 MEMORY 伪指令来指示存储空间和 SECTIONS 分配存储空间。格式如下:SECTIONS/* Allocate program areas: */.cinit : FLAS
9、HA PAGE = 0.pinit : FLASHA, PAGE = 0.text : FLASHA PAGE = 0Codestart : BEGIN PAGE = 0Ramfuncs : LOAD = FLASHD, RUN = RAML0, LOAD_START (_RamfuncsLoadStart),LOAD_END (_RamfuncsLoadEnd),RUN_START (_RamfuncsRunStart),PAGE = 0Csmpasswds : CSM_PWL PAGE = 0csm_rsvd : CSM_RSVD PAGE = 0/* allocate uninitial
10、ized data sections: */.stack : RAMM0 PAGE = 1.ebss : RAML1 PAGE = 1.esysmem : RAMH0 PAGE = 1/* For SDFlash to program these, they must be allocated to page 0 */.econst : FLASHA PAGE = 0.switch : FLASHA PAGE = 0 /* allocate IQ math areas: */IQmath : FLASHC PAGE = 0 /* Math Code */IQmathTables : ROM P
11、AGE = 0, TYPE = NOLOAD /* Math Tables In ROM */* .reset is a standard section used by the compiler. It contains the */ /* the address of the start of _c_int00 for C Code. /*/* When using the boot ROM this section and the CPU vector */* table is not needed. Thus the default type is set here to */* DS
12、ECT */ .reset : RESET, PAGE = 0, TYPE = DSECTVectors : VECTORS PAGE = 0, TYPE = DSECT烧到 FLASH 中时,程序运行速度将大大降低,因此希望一些对时间要求较精准的子程序在 RAM 中运行。那又如何做到呢?那又如何做到呢?1、在在 FLASH.CMD 中划分一段来设置中划分一段来设置 RAM 的载入和运行地址的载入和运行地址 2、在源文件中利用调用函数在源文件中利用调用函数 memcpy()将()将 FLASH 中的内容复制到中的内容复制到 RAM 中中 运行。运行。 3、在头文件中定义新变量在头文件中定义新变
13、量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能控制片内各种时钟的工作状态外设时钟控制寄存器系统与控制状态寄存器高速外设时钟预定标寄存器(H