第五章 应用系统设计与调试_第1页
第五章 应用系统设计与调试_第2页
第五章 应用系统设计与调试_第3页
第五章 应用系统设计与调试_第4页
第五章 应用系统设计与调试_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ARM 应用系统设计第五章 应用系统设计佘黎煌东北大学信息科学与工程学院电子信息工程研究所第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理华邦的ARM产品网络通讯平台系列多媒体终端平台系列5.1 简介nW90P710微控制器概述 华邦W90P710采用ARM的ARM7TDMI微处理器核以及0.18 m工艺生产,标准工作频率可达80 MHz,内建一个Ethernet MAC,采用176/128引脚LQPF封装,具有省电与低成本的优势。 W90P710还集成了USB 1.1主/设备控制器

2、,让各种应用可以透过USB接口连接各种计算机周边产品,增添了产品的整体附加价值。W90P710/W90N745内建的4 KB ICache以及4 KB DCache,也可以随产品开发人员的需求,设定为OnChip RAM。w90p710Sm卡FLASHSDRAM电源UARTUSB设备USB主机PS2ETHW90P710SD键盘晶振JTAG1 网络监控2 便携式RFID手持机n采用W90P710处理器n采用LINUX,3寸TFT显示n采用MICROWINDOWS 图形用户界面nRFID标签卡读写头n无线的CDMA通讯n有线的USB,以太网 ,UART通讯2 便携式RFID手持机3 数码相框方案3

3、 W90p710数码相框方案3 数码相框方案5.2 最小系统n简介 一个嵌入式处理器自己是不能独立工作的,必须给它供电、加上时钟信号、提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器芯片才可能工作。这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。而大多数基于ARM7处理器核的微控制器都有调试接口,这部分在芯片实际工作时不是必需的,但因为这部分在开发时很重要,所以也把这部分也归入最小系统中。 6.1 最小系统n简介嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)可选,因为许多面向嵌入式领域的微

4、控制器内部集成了程序和数据存储器最小系统框图可选,但是在样品阶段通常都会设计这部分电路嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)n各部件简介电源供电系统(电源) 电源系统为整个系统提供能量,是整个系统工作的基础,具有极其重要的地位,但却往往被忽略。如果电源系统处理得好,整个系统的故障往往减少了一大半。嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)n各部件简介时钟 目前所有的微控制器均为时序电路,需要一个时钟信号才能工作,大多数微控制器具有晶体振荡器。简单的方法是

5、利用微控制器内部的晶体振荡器,但有些场合(如减少功耗、需要严格同步等情况)需要使用外部振荡源提供时钟信号。 时钟系统嵌入式控制器时钟系统调试测试接口复位及其配置系统存储器系统供电系统(电源)n各部件简介复位及其芯片配置 微控制器在上电时状态并不确定,这造成微控制器不能正确工作。为解决这个问题,所有微控制器均有一个复位逻辑,它负责将微控制器初始化为某个确定的状态。这个复位逻辑需要一个复位信号才能工作。一些微控制器自己在上电时会产生复位信号,但大多数微控制器需要外部输入这个信号。这个信号的稳定性和可靠性对微控制器的正常工作有重大影响。 复位及其配置系统嵌入式控制器时钟系统调试测试接口复位及其配置系

6、统存储器系统供电系统(电源)n各部件简介存储器系统 对于大部分微控制器来说,存储器系统不是必需的,但如果微控制器没有片内程序存储器或数据存储器时,就必须设计存储器系统,这一般通过微控制器的外部总线接口实现。 存储器系统5.2 ARM系统设计5.2 ARM系统设计n系统(核心板)n电源n晶振nCPUnFLASHnSDRAMnUARTnJTAGnRTCnUSB(ETH)(可选可选)n主面板(应用板):其他所有可外扩的功能模块W90P710 核心板的设计W90p710核心板的设计W90P710核心板的设计POWEROWERCLOCKPLL的设置RTC的设计晶振RESET复位:系统中W90P710和以

7、太网控制芯片DM9161等都需要低电平的复位信号,系统采用STM809芯片来产生复位信号,产生200ms左右的低脉冲用于整个系统复位JTAGn标准的JTAG接口是4线:TMS、TCK、TDI、TDO.分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。用于实现在线编程的功能,如在线调试、对板载FLASH进行编程。nBoot flash8/16位宽度O ECSBL S 1D15:8CEO EW EI O 7:0 A a_m :0 BL S 0D7: 0CEO EW EI O 7:0 A a_m :0 A a_b:1 O ECSW ECEO EW EUBLBI O 15:0 A a_m :0

8、 D 15:0 BLS 0A a_b:1 BLS 1a)16 位宽存储器组连接8位的存储器芯片a)16位宽存储器组连接16位的存储器芯片O ECSBL S 1D15:8CEO EW EI O 7:0 A a_m :0 BL S 0D7: 0CEO EW EI O 7:0 A a_m :0 A a_b:1 O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 15:0 BLS 0A a_b:1 BLS 1a)16 位宽存储器组连接8位的存储器芯片a)16位宽存储器组连接16位的存储器芯片由1片16位宽度的存储器芯片构成16位存储器由2片8位宽度的存储器芯片构成16位存储

9、器O EC SBLS 0D 7: 0C EO EW EI O 7: 0A a_m : 0A a_b: 0由1片8位宽度的存储器芯片构成8位存储器使用字节定位引脚BLS0作为写使能信号BOOT FLASHBOOT FLASHn系统扩张了Winboard公司W19B/L320S的2Mx16的并行FLASH,W90P710复位后访问的是低地址空间,因此FLASH片选采用nBTCS,默认的地址空间是0 x0000 00000 x00FF FFFF,本系统的FLASH地址为0 x0000 00000 x003F FFFFn系统要上拉SDD12,下拉SDD13,启动FLASH总线宽度为16位nsdram3

10、2位宽度A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位宽存储器组连接8位的存储器芯片b)32位宽存储器组连接16位的存储器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位宽存储器组连接32位的存

11、储器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 15:0BLS 0A a_b:2 BLS3BLS 1A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位宽存储器组连接8位的存储器芯片b)32位宽存储器

12、组连接16位的存储器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位宽存储器组连接32位的存储器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 15:0BLS 0A a_b:2 BLS3BLS 1A a_b:2 BLS 1D 15:8 CEO EW EI O 7:0 A a_m :0 BLS 0D 7:0 CEO EW EI O 7:0 A a_m :0 O

13、 ECSBLS3D 31:24CEO EW EI O 7:0 A a_m :0 BLS 2D23:1 6CEO EW EI O 7:0 A a_m :0 a)32 位宽存储器组连接8位的存储器芯片b)32位宽存储器组连接16位的存储器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS 2A a_b:0 BLS 3BLS 0BLS 1c)32 位宽存储器组连接32位的存储器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLBI O 15:0 A a_m :0 D 1

14、5:0BLS 0A a_b:2 BLS3BLS 1由1片32位宽度的存储器芯片构成32位存储器由2片16位宽度的存储器芯片构成32位存储器由4片8位的存储器芯片构成32位存储器sdramn系统2片1Mx4Bankx16bit的SDRAM。一片是高16位,一片是低16位,组成16MB的内存空间。 使用UART0通信需要两个引脚,分别为:引脚名称类型描述RxD0输入串行输入,接收数据TxD0输出串行输出,发送数据n使用UART0通信W90P710的I/O电压为3.3V(可承受5V),连接时须注意电平的匹配。与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。W90P

15、710其它通信设备W90P710PC机串口232电平转换TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0UART的电路原理图n一般都使用最基本的串行通信功能,只需RXD、TXD 和GND 3 根信号线,但由于RS-232-C 标准与W90P710 系统的LV TTL 电路所定义的通信电平幅值完全不同,LV TTL 的标准逻辑“1”对应2V3.3V 电平,标准逻辑“0”对应00.4V电平,而RS-232-C 标准采用负逻辑方式,标准逻辑“1”对应515V 电平,标准逻辑“0”对应515V 电平,所以要把W90P710 的UART 信号转换成RS-232-C 标准的信号,在系统中是

16、通过芯片MAX202C 进行电平转换的,然后再连接至DB9 接口。USB 主机接口电路nUSB 主机接口电路采用A 型USB 接口端子,USB 信号通过D1 + 和D1-两根信号线进行传输。在USB 供电方面采用专用的电源芯片AMC3526H,该芯片能提供500mA 电流的供电能力,具有过载保护功能;CTL1 引脚控制电压的关断和开启;FLG1 引脚能反馈电源芯片当前的工作状态USB设备接口电路nUSB 设备接口采用B 型微小USB 接口。当接到外部USB 主机时,可由外部USB 主机对其供电,并且可以通过系统的复位信号拉低D2+信号,给挂接的外部USB 主机提供一个上电唤醒信号5.3 W90

17、P710主板的设计W90P710主板的设计POWERLCDETHSDSDI2SI2CPS2PS2第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理4.外扩存储器管理及存储重映射n需要的掌握的内容1.W90P710(或ARM)在复位的时候,如何来识别外部固态存储器的类型,总线宽度,并读取代码?2. W90P710如何来外扩存储器的,比如,FLASH、SDRAM、SRAM?3.什么是特殊功能寄存器,如何读写?4.内存映射如何实现?5.4.1 W90P710的存储组织nW90P710提供2G

18、 Bytes 的cacheable address space(0 x0000_0000 0 x7FDF_FFFF)和2G Bytes 的non-acheable (0 x8000_00000 xFFDF_FFFF) n内部的特殊功能寄存器的地址为1M Bytes在 0 xFFF0_0000 0 xFFFF_FFFF的地址nW90P710内部SRAM的地址是0XFFE0_0000地址n W90P710的EBI (External BUS interface)nEBI用于对外部存储的访问控制,包括可选的1 BANK的ROM/FLASH BANK (256KB16MB)2 BANK的SDRAM B

19、ANK (2MB64MB)4 BANK的External I/O bank (256KB16MB)n每个BANK有22个地址线,支持8位,16位,32位读写存储重新映射nSDRAM的读写速度比FLASH快nUCLINUX,LINUX都是把代码拷贝到SDRAM中,然后运行n异常向量总是放在0X0地址开始的8个字的存储单元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000复位时初始化完成EBI控制寄存器FLASH的读写时序正常分页SDRAM的控制第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.A

20、RM应用系统的设计q4.外扩存储器管理及存储重映射外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理中断的管理存储重新映射nSDRAM的读写速度比FLASH快nUCLINUX,LINUX都是把代码拷贝到SDRAM中,然后运行n异常向量总是放在0X0地址开始的8个字的存储单元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000复位时初始化完成EBI控制寄存器基地址为基地址为ROMCON 的的31:19左移左移18,相当把低相当把低19位清位清0,整个数整个数右移右移1位位; 0 x02040084的 基地址

21、为多少?,4M开始的地址应该为什么数? 基地址为基地址为SDCONF0的的31:19左移左移18,相当把低相当把低19位清位清0,整整个数右移个数右移1位位; 设置EBI总线 基地址为基地址为ROMCON 或或SDCONF0的的31:19左移左移18,相当把相当把低低19位清位清0,整个数右移整个数右移1位位nEBICONEQU0 xFFF01000;EBI control registernROMCONEQU0 xFFF01004;ROM/FLASH control registernSDCONF0EQU0 xFFF01008;SDRAM bank 0 configuration regis

22、ternSDCONF1EQU0 xFFF0100C;SDRAM bank 1 configuration registernSDTIME0EQU0 xFFF01010;SDRAM bank 0 timing control registernSDTIME1EQU0 xFFF01014;SDRAM bank 1 timing control registerFLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000复位时初始化完成如何设置EBI总线(复位时)n;Flash 04Mn;SDRAM 420MnADRL r0, In

23、it_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nInit_SystemMemorynDCD0 x000530C1 ;EBICOMnDCD0 x00040084 ;ROMCOM 基址 0 x0000_0000nDCD0 x008090E4 ;SDCONF0 基址 0 x0040_0000nDCD0 x200090E4 ;SDCONF1nDCD0 x0000014B ;SDTIME0nDCD0 x0000014B ;SDTIME0FLASHSDRAM0X0000_00000X0040_0000如何设置EBI总线(

24、复位之后)n;Flash 1620Mn;SDRAM 016MnADRL r0, Remap_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nRemap_SystemMemoryn DCD0 x000530C1 ;EBICOMnDCD 0 x02040084;ROMCOM 基址 0 x01000000 , 16M开始nDCD0 x000090E4;SDCONF0 基址 0 x00000000 , 0开始nDCD0 x200090E4 ;SDCONF1nDCD0 x0000014B ;SDTIME0nDCD0 x000

25、0014B ;SDTIME0SDRAMFLASH0X0000_00000X0100_0000n;Initialise the system memoryn;Flash 04Mn;SDRAM 420MnADRL r0, Init_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nLDR r0, =0 x0;the start address of romnLDRr1, =0 x300000;the size of romnLDRr2, =0 x400000;the start address of sdramnCopy

26、_LoopLDRr3, r0, #4nSTRr3, r2, #4nSUBSr1, r1, #4nBNECopy_Loopnn;Remap the system memoryn;Flash 1620Mn;SDRAM 016MnADRL r0, Remap_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6 Init_SystemMemoryDCD0 x000530C1DCD0 x00040084DCD0 x008090E4DCD0 x200090E4 DCD0 x0000014BDCD0 x0000014BRemap_S

27、ystemMemoryDCD0 x000530C1DCD0 x02040084DCD0 x000090E4DCD0 x200090E4 DCD0 x0000014B DCD0 x0000014B第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理5.GPIO的控制n需要掌握的内容n1.如何实现GPIO的复用功能?n2.如何控制GPIO的输入输出?引角的复用GPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引脚配置)n引脚功能选择使用示例 w90p710微控制器的引脚一般

28、是多个功能复用,但是同一引脚在同一 引脚在同一时刻只能使用其中一个功能,这可以通过设置GPIO_CFG寄存器来选择,详细介绍见“引脚连接模块”小节。通过GPIO_CFG控制引脚功能USBPWRENW90P710的GPIOnGPIO(General Purpose Input/Output)nW90P710拥有71个GPIO分成7个组W90P710的GPIO配制nGPIO_CFG用于配制是用普通的IO还是用于功能模块nGPIO_DIR表示用于普通IO时,是用于输入还用于输出nGPIO_DATAOUT,用于输出时的输出寄存器nGPIO_DATAIN,用于输入时的输入寄存器.GPIO_CFG的作用G

29、PIO_CFG的设置(为GPIO功能)nGPIO_CFG0 EQU 0XFFF8_3000;定义地址nLDR R0,=GPIO_CFG0 ;读取GPIO_CFG0地址到R0nLDR R1,R0;读取GPIO_CFG0的值到R1nBIC R1,0X03;设置PT0CFG0为0,即为GPIO0nSTR R1,R0 n ;将设置好的值写入寄存器 GPIO_DIR的作用GPIO_DIR0的设置nGPIO_DIR0 EQU 0XFFF83004;定义地址nLDR R0,= GPIO_DIR0 ;读取GPIO_DIR0地址到R0nLDR R1,R0;读取GPIO_CFG0的值到R1nORR R1,0X01

30、 ; BIC R1,0X01;设置PORT0的GPIO0为输出nSTR R1,R0 n ;将设置好的值写入寄存器 GPIO_DATAOUT的作用GPIO_DATAOUT0的设置代码nGPIO_DATAOUT0 EQU 0XFFF8_3008;定义地址nLDR R0,= GPIO_DATAOUT0;读取GPIO_DATAOUT0地址到R0nLDR R1,R0;读取GPIO_DATAOUT0的值到R1n0RR R1,0X01 ; BIC R1,0X01;设置GPIO0的电平nSTR R1,R0 n ;将GPIO0输出GPIO_DATAIN的作用GPIO_DATAIN的设置代码nGPIO_DATAI

31、N EQU 0XFFF8_300C;定义地址nLDR R0,= GPIO_DATAIN ;读取GPIO_DATAIN地址到R0nLDR R1,R0;读取GPIO_DATAIN的值到R1nANDS R1,0X01;”1”,NE条件成立,”0”EQ条件成立 ;屏蔽其它的数据位,此时R1为0为低电平 ;R1为1为高电平设计实例(键按下,灯亮)GPIO_CFG0 EQU 0XFFF8_3000 ;低低10位位GPIO_DIR0 EQU 0XFFF8_3004;低低5位位GPIO_DATAOUT0 EQU 0XFFF8_3008 ;低低5位位GPIO_DATAIN EQU 0XFFF8_300C ;低低

32、5位位P0.0 P0.1GPIO的配制GPIO_CFG0 EQU 0XFFF83000 GPIO_DIR0 EQU 0XFFF83004GPIO_DATAOUT0 EQU 0XFFF83008GPIO_DATAIN EQU 0XFFF8300CAREA Start, CODE,READONLY ;设置名称设置名称(Start)及属性及属性ENTRYLDR R0,=GPIO_CFG0 ;读读GPIO_CFG0地址到地址到R0LDR R1,R0;读取读取GPIO_CFG0的值到的值到R1BIC R1,0X0F ; 设置为设置为GPIO0:1STR R1,R0 ;将设置好的值写入寄存器将设置好的值写

33、入寄存器LDR R0,= GPIO_DIR0 ;读取读取GPIO_DIR0地址到地址到R0LDR R1,R0;读取读取GPIO_CFG0的值到的值到R10RR R1,0X02 ;设置设置PORT0的的GPIO0为输入为输入BIC R1,0X01;设置设置PORT0的的GPIO1为输出为输出STR R1,R0 ;将设置好的值写入寄存器将设置好的值写入寄存器 操作LOOP1LDR R0,= GPIO_DATAIN;读读GPIO_DATAIN地址到地址到R0LDR R1,= GPIO_DATAOUT0;读读GPIO_DATAOUT0地址到地址到R0LDR R2,R0;读取读取GPIO_DATAIN的

34、值到的值到R1LDR R3,R1; GPIO_DATAOUT0TST R2,0X01 ;判断是否有键按下判断是否有键按下ORRNE R3,0X02 ;没有键按下位没有键按下位2置置1BICEQ R3,0X02; 有有键按下位有有键按下位2置置0STR R3,R1 ;输出输出 MOV R2,0X20000LOOP2SUBSR2,R2,#01 BNELOOP2 ;延时子程序延时子程序BLOOP1 ;循环点亮发光二极管循环点亮发光二极管ENDGPIO0AC97_nRESETnIRQ4P0.05.5 GPIO(引脚配置)n引脚功能选择使用示例 w90p710微控制器的引脚一般是多个功能复用,但是同一引

35、脚在同一 引脚在同一时刻只能使用其中一个功能,这可以通过设置GPIO_CFG寄存器来选择,详细介绍见“引脚连接模块”小节。通过GPIO_CFG控制引脚功能USBPWRENGPIO_CFG的作用GPIO_CFG的设置(为GPIO功能)nGPIO_CFG0 EQU 0XFFF8_3000;定义地址nLDR R0,=GPIO_CFG0 ;读取GPIO_CFG0地址到R0nLDR R1,R0;读取GPIO_CFG0的值到R1nBIC R1,0X03;设置PT0CFG0为0,即为GPIO0nSTR R1,R0 n ;将设置好的值写入寄存器 第5章 目录q0.概述q1.W90P710简介q2.最小系统的设

36、计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理6.中断的管理n需要掌握的内容nW90P710如何识别中断源,即为那个部件引起的中断?nW90P710如何跳到相应的中断服务函数?n中断向量表是如何设定的?n最终的目的学会如何设计ARM的中断处理程序5.6 W90P710的中断控制器(AIC)n向量中断控制器概述 ARM7TDMI内核具有两个中断输入,分别为IRQ中断和FIQ中断。但是芯片内部有许多中断源,最多可以有32个中断输入请求。向量中断控制器的作用就是允许哪些中断源可以产生中断、可以产生哪类中断、产生中断后执行哪段服务程序。ARM7TDMI

37、-SIRQFIQAIC中断请求输入0中断请求输入31. . .W90P710的中断控制器(AIC)nARM7TDMI处理器提供两种中断模式, 快速中断快速中断 (FIQ) 模式用于紧急事件处理,而中断模式中断模式 (IRQ) 用于普通事件处理。n可以处理32个不同的中断源,可独立开启或屏蔽,每个中断源有一个唯一的中断号.n支持8个不同的优先级,当优先级为0时,表示处理的是FIQ中断,为17时,表示的是IRQ中断n支持的中断触发方式n低电平n高电平n下降沿触发n上升沿触发中断的任务n1.判断是产生的中断是IRQ还是FIQ.n2.应该执行的是31个中的那个中断.n3.找到相应的中断服务程序去执行n

38、4.返回,判断下一个中断.几个概念n中断时的电平中断时的电平n中断条件满足标志中断条件满足标志n中断条件满足中断条件满足,并且相应的中断号的使能的并且相应的中断号的使能的n中断条件满足中断条件满足,并且相应的中断号的使能并且相应的中断号的使能,并且优并且优先级最高先级最高n中断屏蔽中断屏蔽(MASK)标志标志n中断屏蔽的设置中断屏蔽的设置n中断屏蔽的解除中断屏蔽的解除n中断向量中断向量,中断号中断号31个中断源及相应的中断号中断触发方式及优先级设置nIRQ0为FIQ,下降沿触发AIC_SCR2 EQU 0 xFFF82008LDR R0,=AIC_SCR2LDR R1,R0BIC R1,0XC

39、0;(1100_0000)ORR R1,0X80; 设置为下降沿BIC R1,0X07; 设置FIQ,优先级为0STR R1,R0;中断寄存器功能 AIC_IRSR0 xFFF8.2100R Interrupt Raw Status Register,中断电平中断电平0 x0000.0000 AIC_IASR0 xFFF8.2104R Interrupt Active Status Register,条件满足条件满足0 x0000.0000 AIC_ISR0 xFFF8.2108R Interrupt Status Register条件满足且未屏蔽条件满足且未屏蔽0 x0000.0000 AI

40、C_IPER0 xFFF8.210CR Interrupt Priority Encoding Register,优先级优先级0 x0000.0000 AIC_ISNR0 xFFF8.2110R Interrupt Source Number Register0 x0000.0000 AIC_IMR0 xFFF8.2114R Interrupt Mask Register,那些被屏蔽那些被屏蔽0 x0000.0000 AIC_OISR0 xFFF8.2118R Output Interrupt Status Register0 x0000.0000 AIC_MECR0 xFFF8.2120W

41、Mask Enable Command Register,使能命令使能命令Undefined AIC_MDCR0 xFFF8.2124W Mask Disable Command Register屏蔽命令屏蔽命令Undefined AIC_SSCR0 xFFF8.2128W Source Set Command Register,防真防真Undefined AIC_SCCR0 xFFF8.212CW Source Clear Command Register,防真防真Undefined AIC_EOSCR0 xFFF8.2130W End of Service Command Register

42、,完成当前完成当前UndefinedAIC_TEST0 xFFF8.2200W ICE/Debug mode RegisterUndefined中断寄存器功能(AIC_SRSR)中断寄存器功能(AIC_IASR)中断寄存器功能(AIC_IASR)中断寄存器功能(AIC_ISR)中断寄存器功能(AIC_IPER)中断寄存器功能(AIC_ISNR)中断寄存器功能(AIC_OISR)中断寄存器功能(AIC_IMR)中断寄存器功能(AIC_MECR)设置nIRQ0中断使能AIC_MECR EQU 0XFFF82120LDR R0,=AIC_MECR MOV R1,0X04 STR R1,R0中断寄存器

43、功能(AIC_MDCR)设置nIRQ0中断使能AIC_MECR EQU 0XFFF82120AIC_MDCR EQU 0XFFF82124使能nIRQ0,允许其产生中断 LDR R0,=AIC_MECR MOV R1,0X04 STR R1,R0 屏蔽nIRQ0,不允许其产生中断 LDR R0,=AIC_MDCR MOV R1,0X04 STR R1,R0中断寄存器功能(AIC_SSCR)中断寄存器功能(AIC_SCCR)中断寄存器功能(AIC_EOSCR)0 x0000 00000 xFFFF FFFF用户程序中断服务程序异常向量表1.正在执行用户程序;2.外部中断0发生中断;3.AIC硬件

44、将中断服务程序地址装入AIC_IPER寄存器;4.程序跳转至异常向量表中IRQ入口0 x0018处;5.执行指令跳转至AIC_IPER寄存器中的中断服务地址;6.中断服务程序执行完毕,返回被中断的用户程序继续执行被中断的代码。n图示IRQ中断的发生过程中断流程n读寄存器AIC_IPER获取向量(IRQ x 4), 这时,AIC_ISNR会装载当前中断号,这个向量(IRQ x 4)表明了哪个中断是打开的,活跃的并且优先级是最高的,乘上4然后存在寄存器AIC_IPER 。从AIC_IPER 获取的数据(向量)方便下面中断服务程序地址的计算。n通过添加向量到中断向量表来跳到相应的中断服务程序执行。n

45、写任意值到AIC_EOSCR来结束中断。中断流程StartRead AIC_IPERGet the BranchAddressJump to InterruptService RoutineWrite AIC_EOSCREndAIC_IPER = IRQ_Number * 4Bit31:7Reserved6:2IRQ Number1:00Branchaddress = AIC_IPER +INT_TABLE_BASEWrite by Any Value to endthis interrupt service中断向量表的定义nAREA Vect, CODE, READONLYn ENTRYns

46、tart n BReset_Handlern BUndefined_Addr n BSWI_Addrn BPrefetch_Addrn BAbort_Addrn B. n BIRQ_Addrn BFIQ_Addr异常的处理nUndefined_Addr ;未定义异常n STMFDSP!,R0-R12,lrn BLUndefined_Handlern LDMFDSP!,R0-R12,LR n SUBSPC, LR, #0 nSWI_Addr ;软件中断(管理模式)n STMFDSP!,R0-R12,lrn BLSWI_Handlern LDMFDSP!,R0-R12,LR n SUBSPC, LR, #0nPrefetch_A

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论