浙江大学微机原理(DSP)考试必背(知识点及基本程序部分)
DSP考试重点内容总结

DSP的结构特点:1、哈弗结构;将数据和存储空间分开,程序和数据各有自己的地址和数据总线;2、多总线结构;3、指令系统的流水线操作;4、专用的硬件加法器;5、特殊的DSP指令;6、快速的指令周期;7、硬件配置强;8、低功耗;DSP的构成:抗混叠滤波器——数据采集器——A/D转换器——数字信号处理器——D/A转换器——低通滤波器;C54x的CPU简介:1、一个40位的算术逻辑单元(MAU),用于完成二进制补码的算术运算,也可以完成布尔运算。
2、乘法器/加法器单元(MAC),用于进行数字信号处理算法中常见的乘法算法;3、两个40位的累加器(A和B),用于ALU或MAC的输出交换数据,同时也可以当做暂存器使用。
4、桶形寄存器(Barrel Shifter),用于对输入的数据0-31位的左移或者0-16位的右移;5、比较、选择和存储单元(CSSU),用于完成累加器的高位子节和低位字节之间的最大值比较;6、指数编译器(EXP Encoder),用于支持单周期指令EXP的专用硬件;DSP硬件结构:1、总线2、寄存器3、CPU状态和控制寄存器4、地址生成单元;CPU寄存器(26个)寻址方式:1、立即寻址;LD #30h,A2、直接寻址;LD #x,DP;/STL A,@x+10;3、间接寻址;STM #2,AR0;STM x,AR1;4、绝对寻址;MVDK *AR1+,1000h;LD #2,DP;PORTR 100h,input;5、存储器映像寻址;.mmregs;STM #2,AR2;6、堆栈寻址;size .set 200h;stk .uset “STACK”,size;7、寻址32位数据;段(Sections),是指连续占有存储空间的一个数据或者代码段。
段的两种基本类型:初初始化段和未初始化段。
有几个汇编器伪指令可用来将数据和代码各个部分与相应的段相联系。
汇编器在编译过程中产生段,大多数系统包括好几种存储器,使用段可以使目标存储器的使用更为有效。
DSP复习提纲精华版

1、请列出几种常用的嵌入式操作系统,并简单说明其特点?2、常用的嵌入式处理器包括?3、DSP按照数据格式可以分为定点和浮点处理器两种4、DSP同单片机不同在于其哈弗结构,请说明其特点?5、DSP与MCU硬件结构比较,有何异同?6、请列出几个常用的DSP制造商?7、CPU组成包括什么?8、DSP的程序执行机构是什么?9、DSP的每次取指操作都是取8条32位指令,称为一个取指包10、指令执行时,每条指令占用一个功能单元11、什么是DSP的数据通路,C6000的数据通路包括什么?12、下列寄存器哪个不能用作条件寄存器A1、A2、A3、B0、B1、B213、C6000DSP中有8个功能单元,分别是什么?14、什么是流水线,其操作原理是什么?15、DSP的流水线都按照所有指令均按取指(fetch)、译码(decode)和执行三级进行。
16、取指级有4个节拍,译码级有2个节拍,执行级对不同类型的指令有不同数目的节拍17、流水线操作以CPU周期为单位,1个执行包在流水线1个节拍的时间就是1个CPU周期。
18、①在DP节拍,1个取指包的8条指令根据并行性被分成几个执行包,执行包由1~8条并行指令组成。
②在DP节拍期间,1个执行包的指令被分别分配到相应的功能单元③同时,源寄存器、目的寄存器和有关数据通路被译码以便在功能单元完成指令执行19、C6000片内为哈佛结构,即存储器分为程序存储空间和数据存储空间。
20、延迟间隙21、取指包:CPU运行时总是一次取8条32位指令,组成一个取指包执行包:所有并行执行的指令组成一个执行包。
22、C6000全部采用间接寻址23、所有寄存器都可以作为线性寻址的地址指针。
而A4~A7,B4~B7这8个寄存器还可以作为循环寻址的地址指针24、DSP试验箱通过仿真器连接电脑,其接口是JTAG口。
25、CCS有两种工作模式,软件仿真模式;硬件在线编程模式26、为什么要使用RTOS27、DSP/BIOS提供了4种不同的线程:硬件中断(HWI)、软件中断(SWI) 、任务(TSK) 、IDLE线程。
微机原理知识点及复习资料

微型计算机原理及应用》知识点第 1 章 计算机基础知识1. 掌握十进制数与二进制数、十六进制数间的互相转换。
2. 135=10000111B =87H 3. 10001110B =142 4. 7BH =01111011B=1235. 掌握正、负数据与补码间的互相转换 6.若 X=+1111010则 [X] 补=011110107. 设 Y=-1001100则 [Y] 补=10110100第 2 章 80X 86CPU8086/8088CPU 总线接口单元由哪些功能部件组成? 8086/8088BIU 中各组成部分的功能是什么?10.地址锁存器的功能是什么?地址是如何被锁存的? 11.最小模式下8086/8088CPU 是怎样控制内存进行读 /写操作的? 12.举例说明 8086CPU计算物理地址的过程?13.说明 8086/8088 中 SI,DI,SP,BP 的特殊用途。
14.说明 8086 对存储器进行读操作的控制过程。
1.2. 3. 8086/8088BIU 的主要功能是什么? 4. 8086/8088 的 EU 由哪些功能部件组成?5.8086/8088 中的寄存器可以分为哪 5 类?它们各自的主要功能是什么? 6. 8086 处理器中 20 位物理地址是怎样产生的?7.掌握 8086 处理器结构框图及各功能部件的作用。
8.8086 处理器中标志寄存器有哪些标志位?这些标志位的作用分别是什么? 9. 8086 系统中一个逻辑段最大容量是多少?15.说明8086对存储器进行写操作的控制过程。
16. 8086最小模式下是怎样控制外设端口进行读 /写操作的?17. 8086可以访问的内存空间为多少? 18. 8086是如何实现对内存进行分段管理的? 19. 8086是如何实现对内存按字和按字节访问的?20. 8086系统中控制命令 M/W , ALE 和DT/丘各自的作用是什么?21. 8282及8286芯片的作用分别是什么? 22. 8086中CS,SS,DS,ES 寄存器的作用分别是什么?23.术语: 标志,规则字,非规则字,协处理器第3章微机指令系统试述指令 MOV AX,1234 和 MOV AX,DS:[1234]的区别。
浙江大学微机原理(DSP)考试必背(程序部分)

typedef interrupt void(*PINT)(void);interrupt void INT_1_7(void);int k;void main(void){asm( "EALLOW");asm( "DINT");PLLCR=0xA;WDCR=0x68;LPMCR0=0x0;TIMER0TPR=149;TIMER0TPRH=0;TIMER0PRD=(long)999999;TIMER0TCR=0xf000;PIEIFR1=0x0000;PIEIER1=0x0040;PIECTRL=0x1;PIEACK=0xff;(*(PINT*)0x0D4C)=&INT_1_7;asm(" and IFR, #00H");asm(" or IER, #01H");asm(" EINT");asm(" EDIS");k=0;for(;;){asm(“ IDLE”);}}interrupt void INT_1_7(void){ k+=1;switch(k){}PIEACK=0xff;TIMER0TCR=0xf000;}typedef interrupt void(*PINT)(void);interrupt void INT_2_4(void);int k;void main(void){asm( "EALLOW");asm( "DINT");PLLCR=0xA;WDCR=0x68;LPMCR0=0x0;…..HISPCP=0x0003;//高速时钟预定标(150MHz/3*2) PIEIFR2=0x0000;PIEIER2=0x0008;//INT_2_4使能PIECTRL=0x1;PIEACK=0xff;GPTCONA=0x0000;//初始化EV AT1CON=0x1740;//连续增计数,128分频 5.12us,连续增/减0F40T1CNT=0x0000;T1PR=0x9895; //5.12us*(T1PR+1)=0.2s(*(PINT*)0x0D56)=&INT_2_4;EV AIERA=0x0080;//使能定时器1的周期中断EV AIFRA=0x0080;//写1清除定时器1的周期中断标志asm(" and IFR, #00H");asm(" or IER, #02H");asm(" EINT"); asm(" EDIS");for(;;){asm(“ IDLE”);}}interrupt void INT_2_4(void){k+=1;switch(k){…}EV AIMRA=0x0080;EV AIFRA=0x0080;PIEACK=0xff;}T1PINT T1CON T1PR EV AIMRA=0x0080 EV AIFRA=0xFFFF 0x0D56 INT_2_4 02H PIEIFR2=0x0000 PIEIER2=0x0008 PIEACK=0x02T2PINT T2CON T2PR EV AIMRB=0x0001 EV AIFRB=0xFFFF 0x0D60 INT_3_1 04H PIEIFR3=0x0000 PIEIER3=0x0001PIEACK=0x04T3PINT T3CON T3PR EVBIMRA=0x0080 EVBIFRA=0xFFFF 0x0D76 INT_4_4 08H PIEIFR4=0x0000 PIEIER4=0x0008PIEACK=0x08T4PINT T4CON T4PR EVBIMRB=0x0001 EVBIFRB=0xFFFF 0x0D80 INT_5_1 10H PIEIFR5=0x0000 PIEIER5=0x0001 PIEACK=0x10MEMORY{ PAGE0:PRAMH0 : origin=0x3F8000,length=0x001000RESET : origin=0x3FFFC0,length=0x000002PAGE1:RAMM1 : origin=0x000400,length=0x000400RAMH0 : origin=0x3F9000,length=0x001000}SECTIONS{ .text : > PRAMH0, PAGE=0.cinit : > PRAMH0, PAGE=0.stack : > RAMM1, PAGE=1.bss : > RAMH0, PAGE=1.reset : > RESET, PAGE=0, TYPE=DSECTGpiofMuxRegs : > GPFMUX, PAGE=1GpiofDirRegs : > GPFDIR, PAGE=1GpiofDataRegs : > GPFDAT, PAGE=1}int Gpfmux, Gpfdir, Gpfdat;#pragma DATA_SECTION(Gpfmux, "GpiofMuxRegs")#pragma DATA_SECTION(Gpfdir, "GpiofDirRegs") #pragma DATA_SECTION(Gpfdat, "GpiofDataRegs")ST0有如下状态位:OVC/OVCU:溢出寄存器PM:乘法移位模式位V:溢出位,用于判断有符号运算是否出错C:进位、借位位,用于无符号数判断高低浙江大学微机原理(DSP)考试必背(程序部分)N:负标志位,用于有符号数判断大小Z:零标志位TC:测试/工作位OVM:溢出模式位SXM:符号扩展模式位ST1有如下状态位:ARP:辅助寄存器指针XF:XF状态位AMODE:寻址模式位EALLOW:仿真存取使能位LOOP:循环指令状态位SPA:堆栈指针定位位VMAP:向量映射位PAGE0:寻址模式设置位INTM:中断全局屏蔽位MOVW DP,#0X01C3MOV @20,#0XF0FFMOV @21,#0X0F00;MOV AL,# 0XF0FF;MOV *(0:0X70D4),@ALMOVB AL,#0X0F00;MOV *(0:0X70D5),@AL;MOVL XAR2, #0X70D4MOV *+XAR2[0],#0XF0FF;MOV *+XAR2[1],#0XF0FF;。
浙江大学微机原理(DSP)考试必背(知识点及基本程序部分)

第二章系统控制与中断+老师复习时专讲的中断内容1、【强记】void InitSysCtrl( )void InitSysCtrl(){ EALLOW;WDCR=0x0068; //屏蔽WatchDogPLLCR=0xA; //锁相环设为10/2=5倍频(使系统时钟30MHz*5=150MHz)//PLLCR可设0x0~0xA,其中0x0和0x1等效,均为1/2=0.5倍频for(i= 0; i< ( (131072/2)/12 ); i++) {;}HISPCP=1; // HISPCLK=SYSCLK/HISPCP*2,从而有75MHzLOSPCP=2; // LOSPCLK=SYSCLK/LOSPCP*2,从而有37.5MHzPCLKCR=0x0D0B; //写1开启部分外设,这里开启了SCIA/B,SPI,ADC,EV A/B//0000 1101 0000 1011EDIS;}2、解释WatchDog(看门狗)工作原理(记住位域名称与功能)片内振荡器时钟OSCCLK经过分频后进入8位看门狗计数器,当计数器上溢,则可输出中断或复位信号。
当看门狗使能,若系统正常运行,则需用户周期性地在看门狗计数器上溢前向复位寄存器WDKEY写入0x55+0xAA来清零计数器,若程序受干扰而跑飞,则看门狗的中断或复位信号可使系统恢复至正常状态,提高系统稳定性与可靠性。
补充——涉及寄存器:系统控制和状态寄存器SCSR:WDENINT指定看门狗输出复位信号还是中断信号;WDOVERRIDE指定是否允许用户修改控制寄存器WDCR的WDDIS位;计数寄存器WDCNTR:低8位连续加计数,可由复位寄存器WDKEY立即清零;复位寄存器WDKEY:连续写入0x55+0xAA可清零计数寄存器WDCNTR,写入其它序列则立即触发看门狗复位事件。
读该寄存器返回控制寄存器WDCR值;控制寄存器WDCR:WDFLAG为看门狗复位状态标志位,若复位事件由看门狗触发则置1,用户写1清零;WDDIS写1使能,写0屏蔽看门狗;WDCHK必须写101才能写WDCR 寄存器;WDPS为看门狗计数器时钟相对于OSCCLK/512的分频系数。
DSP基础知识简洁版(适合考试用)

一、名词解释1、数字信号处理理论(Digital Signal Processing):频谱分析、数字滤波器设计、自适应信号处理、信号压缩、信号建模……2、数字信号处理器 (Digital Signal Processor) :专门针对数字信号的数学运算需要而设计开发的一类集成电路芯片3、冯·诺依曼结构:也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
由于取指令和存取数据要从同一个存储空间存取,经由同一总线传输,因而它们无法重叠执行,只有一个完成后再进行下一个。
4、哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。
可以减轻程序运行时的访存瓶颈。
5、专用的硬件乘法器:典型的FFT、IIR和FIR等数字信号处理算法中,乘法是DSP运算的重要组成部分;DSP芯片中有专用的硬件乘法器,一次或多次的乘法累加运算可以在一个指令周期内完成。
6、特殊的DSP指令:专门为实现数字信号处理的算法而设置特殊指令;位倒序寻址、循环寻址等特殊指令能够方便快速地实现FFT算法。
7、流水线操作:执行指令的几个阶段在程序执行过程中是重叠的,即几条不同的指令同时处于激活状态,每条指令处于不同的阶段。
8、晶振时钟信号:‘28x DSP片上晶振电路模块允许采用内部振荡器或外部时钟源为CPU内核提供时钟;在使用片上晶振模块的内部振荡器时,应当在X1/XCLKIN和X2两个引脚之间连上一个石英晶振,片上晶振模块输出与石英晶振频率相同的时钟信号,典型的晶振频率是30MHz。
采用外部时钟应把时钟信号直接接到X1/XCLKIN引脚,X2引脚则必须悬空,这时内部振荡器不工作,片上晶振模块输出该外部时钟信号。
二、简答题1.PWM变化PWM输出变化由一个对称/非对称波形发生器和一个相关输出逻辑控制,同时还要依赖于以下几种情况:(1)GPTCONA/B中位的定义;(2)定时器的计数模式;(3)定时器处于连续增/减计数模式下的计数方向。
微机原理复习知识点总结

微机原理复习知识点总结一、微机原理概述微机原理是计算机科学与技术专业的基础课程之一,是培养学生对计算机硬件体系结构和工作原理的理解和掌握的核心课程。
本文将从微机系统概念、基本组成部分、系统总线、存储器等方面进行总结复习。
二、微机系统概念及基本组成部分1.微机系统概念:微机系统由计算机硬件和软件组成,是由中央处理器(CPU)、存储器、输入/输出设备和系统总线等基本组成部分组成的。
2.中央处理器(CPU):中央处理器是计算机的大脑,负责执行计算机指令。
它包括运算器和控制器两部分,运算器负责执行算术逻辑运算,控制器负责指令的解析和执行控制。
3.存储器:存储器是用于存储数据和指令的设备,按存储介质可分为内存和外存。
内存按读写方式可分为RAM和ROM两类,外存一般指硬盘。
4.输入/输出设备:输入设备用于将外部数据传输到计算机,如键盘、鼠标等;输出设备将计算机处理后的数据输出到外部设备,如显示器、打印机等。
5.系统总线:系统总线是微机系统中各个组成部分之间传输数据和控制信息的公共通信线路,包括数据总线、地址总线和控制总线。
三、系统总线1.数据总线:数据总线用于传输数据和指令,一般有8位、16位、32位等不同位数,位数越大,数据传输速度越快。
2.地址总线:地址总线用于传输内存地址和外设地址,决定了计算机的寻址能力,位数决定了最大寻址空间。
3.控制总线:控制总线用于传输控制信号,包括读写控制、时序控制、中断控制等,用来控制计算机的工作状态。
四、存储器1.RAM(随机存取存储器):RAM是一种易失性存储器,读写速度快,存储内容能被随机读取和写入。
分为静态RAM(SRAM)和动态RAM(DRAM)两类。
2.ROM(只读存储器):ROM是一种非易失性存储器,只能读取,不能写入。
包括只读存储器(ROM)、可编程只读存储器(PROM)、可擦写只读存储器(EPROM)和电可擦写只读存储器(EEPROM)等。
3. Cache(高速缓存):Cache是位于CPU和内存之间的高速缓存存储器,用来存储CPU频繁访问的数据和指令,以提高计算机的运行速度。
DSP考试知识点总结

DSP考试知识点总结DSP考试知识点1.DSP狭义理解是数字信号处理器,广义理解是数字信号处理(方法、技术)。
2.信号的数字化需要三个步骤:抽样、量化和编码。
3.数字信号处理的优势(1)抗干扰能力强、无噪声积累(2)便于加密处理(3)便于存储、处理和交换(4)设备便于集成化、微型化(5)便于构成综合数字网和综合业务数字网(6)占用信道频带较宽4.哈佛结构与冯·诺依曼结构的最大区别:哈佛结构:多总线结构、程数分开、单周期乘加、冯·诺依曼结构:一组总线、程数不分、四周期乘法5.规范的(Normalized)浮点数表达方式具有如下形式:±d.dd...d ×β^ e , (0 ≤d i < β) ,其中d.dd...d 即尾数,β为基数,e 为指数。
尾数中数字的个数称为精度,在本文中用p 来表示。
每个数字d 介于0 和基数之间,包括0。
小数点左侧的数字一般不为0。
6.例:将实数-9.625 表达为二进制的浮点数格式首先,将小数点左侧的整数部分变换为其二进制形式,9 的二进制性形式为1001。
处理小数部分的算法是将我们的小数部分乘以基数2,记录乘积结果的整数部分,接着将结果的小数部分继续乘以2,并不断继续该过程:0.625 ×2 = 1.25 10.25 ×2 = 0.5 00.5 ×2 = 1 1当最后的结果为零时,结束这个过程。
这时右侧的一列数字就是我们所需的二进制小数部分,即0.101。
这样,我们就得到了完整的二进制形式-1001.101。
用规范浮点数表达为-1.001101 ×2^37.DSP的特点:哈佛结构、多总线结构、流水线结构、多处理单元、特殊的DSP指令、指令周期短、运算精度高。
8.’C54x使用40位的算术逻辑运算单元和2个40位累加器,可完成宽范围的算术逻辑运算。
9.舍入器作用:用来对运算结果进行舍入处理,即将目标累加器中的内容加上215,然后将累加器的低16位清零。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章系统控制与中断+老师复习时专讲的中断内容1、【强记】void InitSysCtrl( )void InitSysCtrl(){ EALLOW;WDCR=0x0068; //屏蔽WatchDogPLLCR=0xA; //锁相环设为10/2=5倍频(使系统时钟30MHz*5=150MHz)//PLLCR可设0x0~0xA,其中0x0和0x1等效,均为1/2=0.5倍频for(i= 0; i< ( (131072/2)/12 ); i++) {;}HISPCP=1; // HISPCLK=SYSCLK/HISPCP*2,从而有75MHzLOSPCP=2; // LOSPCLK=SYSCLK/LOSPCP*2,从而有37.5MHzPCLKCR=0x0D0B; //写1开启部分外设,这里开启了SCIA/B,SPI,ADC,EV A/B//0000 1101 0000 1011EDIS;}2、解释WatchDog(看门狗)工作原理(记住位域名称与功能)片内振荡器时钟OSCCLK经过分频后进入8位看门狗计数器,当计数器上溢,则可输出中断或复位信号。
当看门狗使能,若系统正常运行,则需用户周期性地在看门狗计数器上溢前向复位寄存器WDKEY写入0x55+0xAA来清零计数器,若程序受干扰而跑飞,则看门狗的中断或复位信号可使系统恢复至正常状态,提高系统稳定性与可靠性。
补充——涉及寄存器:系统控制和状态寄存器SCSR:WDENINT指定看门狗输出复位信号还是中断信号;WDOVERRIDE指定是否允许用户修改控制寄存器WDCR的WDDIS位;计数寄存器WDCNTR:低8位连续加计数,可由复位寄存器WDKEY立即清零;复位寄存器WDKEY:连续写入0x55+0xAA可清零计数寄存器WDCNTR,写入其它序列则立即触发看门狗复位事件。
读该寄存器返回控制寄存器WDCR值;控制寄存器WDCR:WDFLAG为看门狗复位状态标志位,若复位事件由看门狗触发则置1,用户写1清零;WDDIS写1使能,写0屏蔽看门狗;WDCHK必须写101才能写WDCR 寄存器;WDPS为看门狗计数器时钟相对于OSCCLK/512的分频系数。
3、解释PLL(锁相环)工作原理PLL负责把片内振荡器时钟或外部时钟经过倍频转化为系统时钟SYSCLKOUT。
当引脚XF_XPLLDIS为低电平:PLL被禁止,系统时钟直接引用外部时钟源。
当引脚XF_XPLLDIS为高电平:若PLLCR为0,则PLL被旁路,片内振荡器时钟OSCCLK被二分频;若PLLCR为n(n=0x1~0xA),则PLL使能,OSCCLK被(n/2)倍频。
4、【强记】为了使CPU定时器工作在指定频率,应如何设置void InitSysCtrl();void InitCputimer(void) //定时器初始化,中断周期为1ms(1kHz){ EALLOW;TIMER0TPR=149;//CPU定时器分频寄存器,150MHz/(149+1)=1MHz的计时器时钟TIMER0TPRH=0;//CPU定时器分频寄存器的高位置0TIMER0PRD=(long)999;//设置CPU定时器周期寄存器,1MHz/(999+1)=1kHzTIMER0TCR=0xF000;//CPU定时器0的启动与清除中断标志都是这句。
EDIS;}5、解释CPU定时器工作原理系统时钟进入CPU定时器后,16位预定标计数器PSCH:PSC会连续减计数,当经过(TDDRH:TDDR+1)个SYSCLKOUT周期后下溢,预定标计数器重装TDDRH:TDDR值,并使计数寄存器TIMH:TIM减1。
当计数寄存器TIMH:TIM下溢,则重装PRDH:PRD值,并输出定时器中断信号。
补充——涉及寄存器:TPRH:TPR:高8位组合成共16位的PSCH:PSC,为预定标计数器;低8位组合成共16位的TDDRH:TDDR,为分频寄存器,储存预定标计数器的周期;TIMH:TIM:计数寄存器,下溢时输出中断信号;PRDH:PRD:周期寄存器,储存计数寄存器的周期;TCR:控制寄存器,含中断标志位、中断使能位、定时器重载控制位、定时器使能/停止位。
启动与清除中断标志都是这句:TIMER0TCR=0xF000;6、PIE工作原理PIE共有12组(m=1~12),每组控制8个中断(n=1~8),因此共控制96个外设中断。
要使外设的中断请求INTm.n被送入CPU,必先清零PIE标志位PIEIFRm(全部n=1~8都需清零),置一PIE使能位PIEIFRm.n,再向应答标志位PIEACKm写1清零。
当外设中断请求到来,相应PIE标志位和应答标志位都会置1。
当CPU转向中断服务函数,会自动清除PIE标志位PIEm.n,但还需用户软件向PIE应答标志位PIEACKm写1清零,并清零外设中断标志位。
7、CPU级中断寄存器的原理CPU级中断INTm共有14个(m=1~14),其中前12个被PIE复用。
要使中断请求INTm 被送入CPU,必先清零标志位IFR,置一使能位IFR,并使能全局中断控制位INTM(使能调用语句:asm(“EINT”);屏蔽调用语句:asm(“DINT”);)。
当中断请求到来,相应标志位IFR置一。
当CPU转向中断服务函数,会自动清除标志位IFR。
8、中断向量表工作原理当中断请求到达CPU后,CPU会保存现场,并自动清除相应的CPU中断标志位和PIE 中断标志位,再根据中断的来源按照优先级读取中断向量表的相应地址中存放的中断服务函数ISR地址,并跳转至该ISR。
ISR执行完毕后,CPU回到原现场继续执行。
对于中断向量INT_m_n(m=1~12,n=1~8),中断向量地址计算:PIE_VECT_m_n=0x0D40+2*[8*(m-1)+(n-1)](0x0D40为INT1.1即第一组第一个中断向量的地址,每个地址长度为0x0002,以此类推,INT1.2地址为0x0D42,INT1.3地址为0x0D44……)补充——老师考以下中断编程,其中断向量地址如下(但老师可能故意考上面的公式):CPU定时器0的中断:(INT_1_7) TINT0:0x0D4CEV A的通用定时器1、2的周期中断:(INT_2_4) T1PINT:0x0D56 (INT_3_1) T2PINT:0x0D60EVB的通用定时器3、4的周期中断:(INT_4_4) T3PINT:0x0D76 (INT_5_1) T4PINT:0x0D809、中断向量表的赋值写代码时严格执行这三句话:(在所有函数外)typedef interrupt void(*PINT) (void);(在所有函数外)interrupt void INT_m_n(void);(在main函数内)(*(PINT*)PIE_VECT_m_n) = & INT_m_n;其它赋值方式(写代码时不用):(在所有函数外)interrupt void INT_m_n(void);(在main函数内)InitPIE;(在main函数内)PieVectTable.TINT0=& INT_m_n;10、【强记】CPU定时器0中断程序,并使能PIE级与CPU级中断void InitSysCtrl(void){ EALLOW;WDCR=0x0068;PLLCR=0xA;//锁相环设为10/2=5倍频(使系统时钟30MHz*5=150MHz)for(i= 0; i< ( (131072/2)/12 ); i++) {;}HISPCP=1;LOSPCP=2;EDIS;}void InitCputimer0(void){ EALLOW;TIMER0TPR=149;//产生150MHz/(149+1)=1MHz的计时器时钟TIMER0TPRH=0;//CPU定时器0预定标计数器的高位部分(置0)TIMER0PRD=(long)999;//设置CPU定时器0中断周期,即1MHz/1000=1kHz TIMER0TCR=0xF000;EDIS;}void InitGpioF(void){ ……}typedef interrupt void(*PINT)(void);interrupt void INT_1_7(void);//CPU定时器0void main(void){ InitSysCtrl();InitCputimer0();//CPU定时器0初始化,它确定了中断周期为1ms(1kHz)InitGpioF();//GPIOF初始化EALLOW;PIEIFR1=0x0000;PIEIER1=0x0040;PIECTRL=0x1; //使能PIEPIEACK =0x1;(* (PINT *) 0x0D4C) = & INT_1_7;asm(" and IFR,#00H");asm(" or IER,#01H");asm(" EINT");LPMCR0=0x0; //设置低功耗模式为idle模式EDIS;for(;;){asm(" IDLE");};}interrupt void INT_1_7(void){ ……PIEACK=0x1;TIMER0TCR=0xF000;}11、【强记】T1定时器的中断程序(以T1PINT中断为例),并使能PIE级与CPU级中断void InitSysCtrl(void){ EALLOW;WDCR=0x0068;PLLCR=0xA;//锁相环设为10/2=5倍频(使系统时钟30MHz*5=150MHz)for(i= 0; i< ( (131072/2)/12 ); i++) {;}HISPCP=1;LOSPCP=2;EDIS;}void InitEV(void)//初始化EV{ EALLOW;T1CON=0x1748;//T1连续增,时钟HSPCLK被128分频,使能T1,使用内部时钟源,禁止比较操作/*如此,TICON=0001 0 111 01 00 1000,具体为:TMODE1-TMODE0=10,使T1为连续增计数模式;TPS2-TPS0=111,使外设高速时钟HSPCLK被128分频(2^7=128),使T1计时时钟频率为HSPCLK/128;TENABLE=1,使能本定时器T1;TCLKS1-TCLKS0=00,T1时钟源设为内部时钟,即HSPCLK(另外,上已设定它要被128分频才用作T1时钟);TECMPR=0,禁止本定时器的比较操作;*/T1PR=586;//T1的周期寄存器赋值586EV AIMRA=0x0080; //使能T1PINT/*如此,EVAIMRA=0000 0000 1000 0000,从而使能T1PINT*/EV AIFRA=0xFFFF;//EV A中各中断标志写1清0EDIS;}void InitIO(void){ ……}typedef interrupt void(*PINT)(void);interrupt void eva_T1PINT_isr(void);//声明了通用定时器1的周期匹配中断void main(void){ InitSysCtrl();InitIO();//初始化引脚InitEV();//初始化EVEALLOW;PIEIFR1=0x0000;PIEIER1=0x0040;PIECTRL=0x1; //使能PIEPIEACK =0x2;(* (PINT *) 0x0D56)= & INT_2_4;asm(" and IFR,#00H");asm(" or IER,#02H");//使能CPU级第2组中断通道asm(" EINT");LPMCR0=0;//低功耗模式为idleEDIS;for(;;){ asm(" IDLE");}}interrupt void eva_T1PINT_isr(void)//T1周期中断服务函数{ ……EV AIFRA=0xFFFF; //EV A中相应中断标志清零PIEACK=0x02; //PIE第2组中断通道的应答标志写1清0}关于TnPINT替换的说明:T1PINT T1CON T1PR EV AIMRA=0x0080 EV AIFRA=0xFFFF 0x0D56 INT_2_4 02H PIEIFR2=0x0000 PIEIER2=0x0008 PIEACK=0x02T2PINT T2CON T2PR EV AIMRB=0x0001 EV AIFRB=0xFFFF 0x0D60 INT_3_1 04H PIEIFR3=0x0000 PIEIER3=0x0001 PIEACK=0x04T3PINT T3CON T3PR EVBIMRA=0x0080 EVBIFRA=0xFFFF 0x0D76 INT_4_4 08H PIEIFR4=0x0000 PIEIER4=0x0008 PIEACK=0x08T4PINT T4CON T4PR EVBIMRB=0x0001 EVBIFRB=0xFFFF 0x0D80 INT_5_1 10H PIEIFR5=0x0000 PIEIER5=0x0001 PIEACK=0x10第五章SPI(串行外设接口)1、列举SPI模块的输入输出信号(有哪几根线)SPI有四个外部引脚:SPISOMI主输入从输出引脚;SPISIMO主输出从输入引脚;SPICLK串行时钟引脚,由主设备输出至从设备;SPISTE,发送使能引脚。