第5章 应用系统设计与调试(东北大学嵌入式课件)_第1页
第5章 应用系统设计与调试(东北大学嵌入式课件)_第2页
第5章 应用系统设计与调试(东北大学嵌入式课件)_第3页
第5章 应用系统设计与调试(东北大学嵌入式课件)_第4页
第5章 应用系统设计与调试(东北大学嵌入式课件)_第5页
已阅读5页,还剩180页未读 继续免费阅读

下载本文档

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

文档简介

1、ARM 应用系统设计第五章 应用系统设计佘黎煌东北大学信息科学与工程学院电子信息工程研究所第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.GPIO的控制q5.外扩存储器管理及存储重映射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主面板(应用板):其他所有可外扩的功能模块第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计最小系统的设计q3.ARM应用系统的设计q4.GPIO的控制q5.外扩存储器管理及存储重映射q6.中断的管理W

7、90P710 核心板的设计W90p710核心板的设计W90P710核心板的设计POWERPOWERnLDO是low dropout regulator,意为低压差线性稳压器.CLOCKPLL的设置RTC的设计晶振RESET复位:系统中W90P710和以太网控制芯片DM9161等都需要低电平的复位信号,系统采用STM809芯片来产生复位信号,产生200ms左右的低脉冲用于整个系统复位JTAGn标准的JTAG接口是4线:TMS、TCK、TDI、TDO.分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。用于实现在线编程的功能,如在线调试、对板载FLASH进行编程。存储nBoot flash8

8、/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位的存储器芯片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 EUBL

9、BI 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位存储器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复位后访问的是低地址空间,

10、因此FLASH片选采用nBTCS,默认的地址空间是0 x0000 00000 x00FF FFFF,本系统的FLASH地址为0 x0000 00000 x003F FFFFn系统要上拉SDD12,下拉SDD13,启动FLASH总线宽度为16位nsdram32位宽度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 位宽存储

11、器组连接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 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 E

12、W 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位的存储器芯片O ECSW ECEO EW EUBLBI O 15:0 A a_m :0 D 31:16BLS2CEO EW EUBLB

13、I 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位宽存储器组连接16位的存储器芯片O ECSW ECEO EW EB3B2B1B0I O 31:0 A a_m :0 D 31:0 BLS

14、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 1由1片32位宽度的存储器芯片构成32位存储器由2片16位宽度的存储器芯片构成32位存储器由4片8位的存储器芯片构成32位存储器sdramn系统2片1Mx4Bankx16bit的SDRAM。一片是高16位,一片是低16位,组成16MB的内存空间。 使用UART0通信需要两个引脚,分别为:引脚名称

15、类型描述RxD0输入串行输入,接收数据TxD0输出串行输出,发送数据n使用UART0通信W90P710的I/O电压为3.3V(可承受5V),连接时须注意电平的匹配。与PC机相连时,由于PC机串口是RS232电平,所以连接时需要使用RS232转换器。W90P710其它通信设备W90P710PC机串口232电平转换TxD0RxD0TxD0RxD0TxD0RxD0TxD0RxD0UART的电路原理图n一般都使用最基本的串行通信功能,只需RXD、TXD 和GND 3 根信号线,但由于RS-232-C 标准与W90P710 系统的LV TTL 电路所定义的通信电平幅值完全不同,LV TTL 的标准逻辑“

16、1”对应2V3.3V 电平,标准逻辑“0”对应00.4V电平,而RS-232-C 标准采用负逻辑方式,标准逻辑“1”对应515V 电平,标准逻辑“0”对应515V 电平,所以要把W90P710 的UART 信号转换成RS-232-C 标准的信号,在系统中是通过芯片MAX202C 进行电平转换的,然后再连接至DB9 接口。USB 主机接口电路nUSB 主机接口电路采用A 型USB 接口端子,USB 信号通过D1 + 和D1-两根信号线进行传输。在USB 供电方面采用专用的电源芯片AMC3526H,该芯片能提供500mA 电流的供电能力,具有过载保护功能;CTL1 引脚控制电压的关断和开启;FLG

17、1 引脚能反馈电源芯片当前的工作状态USB设备接口电路nUSB 设备接口采用B 型微小USB 接口。当接到外部USB 主机时,可由外部USB 主机对其供电,并且可以通过系统的复位信号拉低D2+信号,给挂接的外部USB 主机提供一个上电唤醒信号第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计应用系统的设计q4.GPIO的控制q5.外扩存储器管理及存储重映射q6.中断的管理5.3 W90P710主板的设计W90P710主板的设计POWERLCDETHSDSDnCLK:时钟信号nCMD:双向命令和响应信号nDAT0-3:双向数据信号nVDD,VSS:电源和

18、地信号nSD模式下允许有一个主机, 多个从机(即多个卡), 主机可以给从机分别地址. 主机发n命令有些命令是发送给指定的从机,有些命令可以以广播形式发送.nSD模式下可以选择总线宽度, 即选用几根DAT信号线, 可以在主机初始化后设置.SDI2Sn音响数据的采集、处理和传输是多媒体技术的重要组成部分。众多的数字音频系统已经进入消费市场,例如数字音频录音带、数字声音处理器。对于设备和生产厂家来说,标准化的信息传输结构可以提高系统的适应性。I2S(InterIC Sound)总线是飞利浦公司为数字音频设备之间的音频数据传输而制定的一种总线标准,该总线专责于音频设备之间的数据传输,广泛应用于各种多媒

19、体系统。n 1.串行时钟SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据n2. 帧时钟LRCK,(也称WS),用于切换左右声道的数据。LRCK为“1”表示正在传输的是左声道的数据,为“0”则表示正在传输的是右声道的数据。LRCK的频率等于采样频率。n3.串行数据SDATA,就是用二进制补码表示的音频数据。I2SI2CnI2C总线是总线是PHLIPS公司推出的一种串行总线,是具备多主机系公司推出的一种串行总线,是具备多主机系统所需的包括总线裁决和高低速器件同步功能的高性能串行总线统所需的包括总线裁决和高低速器件同步功能的高性能串行总线nI2C总线只有两根双向信号线。一根是数据线总线只

20、有两根双向信号线。一根是数据线SDA,另一根是时,另一根是时钟线钟线SCL。I2CPS2PS2PS2第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.GPIO的控制的控制q5.使用EBI来控制LEDq6.外扩存储器管理及存储重映射q7.中断的管理5.GPIO的控制n需要掌握的内容n1.如何实现GPIO的复用功能?n2.如何控制GPIO的输入输出?ARM芯片(W90P710)ARM核(ARM7)片外存储器(SRAM,SDRAM,FLASH)通用寄存器(37个,R0-R15)片内存储器(SRAM,FLASH)特殊功能寄存器地址线数据线ARM寻址部件,

21、UART,LCD,I2C等1,片内存储器和片外存储器通过统一编址进行访问,比如0 x30000000.2,ARM的各个部件的控制通过读写特殊功能寄存器来实现.3,ARM核用来执行ARM的指令(加,减,乘,除等),通用积存器是ARM核执行指令时所使用的缓存.部件控制寄存器部件控制寄存器部件控制寄存器设计实例(键按下,灯亮)GPIO_CFG0 EQU 0XFFF83000 ;低低10位位GPIO_DIR0 EQU 0XFFF83004;低低5位位GPIO_DATAOUT0 EQU 0XFFF83008 ;低低5位位GPIO_DATAIN0 EQU 0XFFF8300C ;低低5位位P0.0 P0.

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

23、,是用于输入还用于输出nGPIO_DATAOUT,用于输出时的输出寄存器nGPIO_DATAIN,用于输入时的输入寄存器.GPIO_CFG的作用GPIO_CFG的设置(为GPIO功能)nGPIO_CFG0 EQU 0XFFF83000;定义地址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

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

25、GPIO0的电平nSTR R1,R0 n ;将GPIO0输出GPIO_DATAIN的作用GPIO_DATAIN的设置代码nGPIO_DATAIN EQU 0XFFF8300C;定义地址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 0XFFF83000 ;低低10位位GPIO_DIR0 EQU 0XFFF83004;低低5位

26、位GPIO_DATAOUT0 EQU 0XFFF83008 ;低低5位位GPIO_DATAIN EQU 0XFFF8300C ;低低5位位P0.0 P0.1GPIO0GPIO1GPIO的配制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;读

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

28、址到R0LDR R1,= GPIO_DATAOUT0;读读GPIO_DATAOUT0地址到地址到R0LDR R2,R0;读取读取GPIO_DATAIN的值到的值到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 ;循环点亮发光二极管循环点亮发光二极管END设计实例

29、(键按下,两个LED灯同时亮,键松开,同时灭)GPIO_CFG0 EQU 0XFFF83000 ;低低10位位GPIO_DIR0 EQU 0XFFF83004;低低5位位GPIO_DATAOUT0 EQU 0XFFF83008 ;低低5位位GPIO_DATAIN EQU 0XFFF8300C ;低低5位位P0.0 P0.2P0.3GPIO0GPIO2GPIO3LOOP1LDR R0,= GPIO_DATAIN ;读读GPIO_DATAIN地址到地址到R0LDR R1,= GPIO_DATAOUT0 ;读读GPIO_DATAOUT0地址到地址到R0LDR R2,R0 ;读取读取GPIO_DATA

30、IN的值到的值到R1LDR R3,R1 ; GPIO_DATAOUT0TST R2,0X01 ;判断是否有键按下判断是否有键按下ORRNE R3,0X02 ;没有键按下位没有键按下位2置置1BICEQ R3,0X02 ; 有有键按下位有有键按下位2置置0STR R3,R1 ;输出输出 MOV R2,0X20000LOOP2SUBSR2,R2,#01 BNE LOOP2 BLOOP1 ENDGPIO_CFG0 EQU 0XFFF83000 GPIO_DIR0 EQU 0XFFF83004GPIO_DATAOUT0 EQU 0XFFF83008GPIO_DATAIN EQU 0XFFF8300CA

31、REA Start, CODE,READONLY ;设置名称设置名称(Start)及属性及属性ENTRY LDR R0,=GPIO_CFG0 ;读读GPIO_CFG0地址到地址到R0 LDR R1,R0;读取读取GPIO_CFG0的值到的值到R1 BIC R1,0X0F ; 设置为设置为GPIO0:1 STR R1,R0 ;将设置好的值写入寄存器将设置好的值写入寄存器 LDR R0,= GPIO_DIR0 ;读取读取GPIO_DIR0地址到地址到R0 LDR R1,R0 ;读取读取GPIO_CFG0的值到的值到R1 0RR R1,0X02 ;设置设置PORT0的的GPIO1为输出为输出 BIC

32、 R1,0X01 ;设置设置PORT0的的GPIO0为为输入输入 STR R1,R0 ;将设置好的值写入寄存器将设置好的值写入寄存器 GPIO的配制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的值到的值到R1B

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

34、ATAOUT0;读读GPIO_DATAOUT0地址到地址到R0LDR R2,R0;读取读取GPIO_DATAIN的值到的值到R1LDR R3,R1; GPIO_DATAOUT0TST R2,0X01 ;判断是否有键按下判断是否有键按下ORRNE R3,0X06 ;没有键按下位没有键按下位2置置1BICEQ R3,0X06; 有有键按下位有有键按下位2置置0STR R3,R1 ;输出输出 MOV R2,#0X20000LOOP2SUBSR2,R2,#01 BNELOOP2 ;延时子程序延时子程序BLOOP1 ;循环点亮发光二极管循环点亮发光二极管END第5章 目录q0.概述q1.W90P710简

35、介q2.最小系统的设计q3.AM应用系统的设计q4.GPIO的控制q5.使用使用EBI来控制来控制LEDq6.外扩存储器管理及存储重映射q7.中断的管理使用使用EBI来控制来控制LEDn需要掌握的内容n1.理解如何配置EBI的7个BANK的基地址n2.如何实现通过EBI控制LED使用EBI总线外扩ledn控制采用数据总线锁存的驱动方式,CPU 的数据总线低8 位连接到锁存器74HC273 的信号输入端,CPU 外部总线接口(EBI)的nECS0 片选信号连接到锁存器的锁存控制信号,这样当CPU 访问BANK0 的任一地址空间时,数据总线低8 位的数据就将被锁存器锁存后输出,作为控制8 个LED

36、 灯的发光状态的控制信号,使使EBI 的的BANK0 地址空间为地址空间为0 x7800 00000 x783F FFFF。往。往这个地址空间的任一地址写这个地址空间的任一地址写0 xFF,8 个个LED 灯都灭;写灯都灭;写0 x00,则则8 个个LED 灯都点亮。灯都点亮。External I/O write operation timingExternal I/O read operation timing外扩I/O BANK配置寄存器设计LED循环左移程序n控制采用数据总线锁存的驱动方式,CPU 的数据总线低8 位连接到锁存器74HC273 的信号输入端,CPU 外部总线接口(EBI)

37、的nECS0 片选信号连接到锁存器的锁存控制信号,这样当CPU 访问BANK0 的任一地址空间时,数据总线低8 位的数据就将被锁存器锁存后输出,作为控制8 个LED 灯的发光状态的控制信号,使使EBI 的的BANK0 地址空间为地址空间为0 x7800 00000 x783F FFFF。往。往这个地址空间的任一地址写这个地址空间的任一地址写0 xFF,8 个个LED 灯都灭;写灯都灭;写0 x00,则则8 个个LED 灯都点亮。灯都点亮。nREG_EXT0CON EQU 0 xFFF01018 ;EXTBANK0地址nEBI_EXT0_VALUE EQU 0 xF0078003; EXTBAN

38、K0配置n;参数nEBILED_ADDRESS EQU 0 x78000000;LED挂接的地址 AREA Start, CODE,READONLY ;设置名称及属性ENTRY LDR R0,= REG_EXT0CON ;读取EXTBANK0配置 ;寄存器地址 LDR R1,= EBI_EXT0_VALUE;读取EXTBANK0配置参数,设置EXTBANK0的基地址为为0 x78000000 STR R1,R0 LDR R0,= EBILED_ADDRESS MOV R4,#0X01LOOP1 MVN R3,R4;取反取反,输出为输出为”0”灯亮灯亮 STRB R3,R0;往往LED所在的所在

39、的EBI地址发送地址发送1字节字节 MOV R4,R4 LSL 0X01;左移一位左移一位 TST R4,0X100;判断是否移动判断是否移动8次次 MOVNE R4,0X01;如果移动如果移动8次次,从从0 x01重新开始开始重新开始开始 MOV R2,#0X20000;循环一定时间做延迟循环一定时间做延迟LOOP2SUBSR2,R2,#01 BNELOOP2 ;延时子程序延时子程序BLOOP1 ;循环点亮发光二极管循环点亮发光二极管END设计一个循环右移的LED程序nBANK0 的任一地址空间时,数据总线低8 位的数据就将被锁存器锁存后输出,作为控制8 个LED 灯的发光状态的控制信号,使

40、使EBI 的的BANK0 地址空间为地址空间为0 x7800 00000 x783F FFFF(0 x4000 00000 x403F FFFF)。往这个地址空间的任一。往这个地址空间的任一地址写地址写0 xFF,8 个个LED 灯都灭;写灯都灭;写0 x00,则,则8 个个LED 灯都点灯都点亮。亮。nREG_EXT0CON EQU 0 xFFF01018 nEBI_EXT0_VALUE EQU 0 xF0078003nEBILED_ADDRESS EQU 0 x78000000nREG_EXT0CON EQU 0 xFFF01018 ;EXTBANK0地址nEBI_EXT0_VALUE E

41、QU 0 xF0078003; EXTBANK0配置n;参数nEBILED_ADDRESS EQU 0 x78000000n;LED挂接的地址 AREA Start, CODE,READONLY ;设置名称及属性ENTRY LDR R0,= REG_EXT0CON ;读取EXTBANK0配置寄存器地址 LDR R1,= EBI_EXT0_VALUE;读取EXTBANK0配置参数,设置EXTBANK0的基;地址为为0 x78000000 STR R1,R0 LDR R0,= EBILED_ADDRESS MOV R4,#0X01LOOP1 MVN R3,R4;取反取反,输出为输出为”0”灯亮灯亮

42、 STRB R3,R0;往往LED所在的所在的EBI地址发送地址发送1字节字节 MOV R4,R4 LSL 0X01;左移一位左移一位 TST R4,0X100;判断是否移动判断是否移动8次次 MOVNE R4,0X01;如果移动如果移动8次次,从从0 x01重新开重新开始开始始开始 MOV R2,#0X20000;循环一定时间做延迟循环一定时间做延迟LOOP2SUBSR2,R2,#01 BNE LOOP2 ;延时子程序延时子程序BLOOP1 ;循环点亮发光二极管循环点亮发光二极管ENDnREG_EXT0CON EQU 0 xFFF01018 ;EXTBANK0地址nEBI_EXT0_VALU

43、E EQU 0 xF0078003; EXTBANK0配置n;参数EBI_BANK0的地址为0 x78000000n;EBI_EXT0_VALUE EQU 0 x80078003; EXTBANK0配置n;参数0 x40000000nEBILED_ADDRESS EQU 0 x78000000;LED挂接的地址n;EBILED_ADDRESS EQU 0 x40000000;LED挂接的地址AREA Start, CODE, READONLY ;设置名称及属性ENTRY LDR R0,= REG_EXT0CON ;读取EXTBANK0配置 ;寄存器地址 LDR R1,= EBI_EXT0_VA

44、LUE;读取EXTBANK0配置参数,设置EXTBANK0的基地址为为0 x78000000 STR R1,R0n LDR R0,= EBILED_ADDRESS n MOV R4,#0X100LOOP1 MOV R4,R4 LSR 0X01;左移一位左移一位 MVN R3,R4;取反取反,输出为输出为”0”灯亮灯亮 STRB R3,R0;往往LED所在的所在的EBI地址发送地址发送1字节字节 TST R4,0X01;判断是否移动判断是否移动8次次 MOVNE R4,0X100;如果移动如果移动8次次,从从0 x01重新开始开始重新开始开始 MOV R2,#0X20000;循环一定时间做延迟循

45、环一定时间做延迟LOOP2SUBSR2,R2,#01 BNELOOP2 ;延时子程序延时子程序BLOOP1 ;循环点亮发光二极管循环点亮发光二极管END第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理4.外扩存储器管理及存储重映射n需要的掌握的内容1.W90P710(或ARM)在复位的时候,如何来识别外部固态存储器的类型,总线宽度,并读取代码?2. W90P710如何来外扩存储器的,比如,FLASH、SDRAM、SRAM?3.什么是特殊功能寄存器,如何读写?4.内存映射如何实现?5.

46、4.1 W90P710的存储组织nW90P710提供2G 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 BA

47、NK (256KB16MB)2 BANK的SDRAM BANK (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的控制 基地址为基地址为

48、SDCONF0的的31:19左移左移18,相当把低相当把低19位清位清0,整整个数右移个数右移1位位; SDTIME存储重新映射nSDRAM的读写速度比FLASH快nUCLINUX,LINUX都是把代码拷贝到SDRAM中,然后运行n异常向量总是放在0X0地址开始的8个字的存储单元。FLASHSDRAM0X0000_00000X0040_0000SDRAMFLASH0X0000_00000X0100_0000复位时初始化完成EBI控制寄存器基地址为基地址为ROMCON 的的31:19左移左移18,相当把低相当把低19位清位清0,整个数整个数右移右移1位位; 0 x02040084的 基地址为多少

49、?,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 register

50、nSDCONF1EQU0 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 420Mn ADRL r0, Init

51、_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总线(复位

52、之后)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 x00000

53、14B ;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_L

54、oopLDRr3, 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_Sys

55、temMemoryDCD0 x000530C1DCD0 x02040084DCD0 x000090E4DCD0 x200090E4 DCD0 x0000014B DCD0 x0000014BEBICONEQU0 xFFF01000 ROMCONEQU0 xFFF01004SDCONF0EQU0 xFFF01008SDCONF1EQU0 xFFF0100CSDTIME0EQU0 xFFF01010SDTIME1EQU0 xFFF01014n;Initialise the system memoryn;Flash 04Mn;SDRAM 1632MnADRL r0, Init_SystemMemor

56、yn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6nLDR r0, =0 x0;the start address of romnLDRr1, =0 x400000 ;the size of romnLDRr2, =0 x1000000 ;the start address of sdramnCopy_LoopLDRr3, r0, #4nSTRr3, r2, #4nSUBSr1, r1, #4nBNECopy_Loopnn;Remap the system memoryn;Flash 3236Mn;SDRAM 016MnADRL r0, R

57、emap_SystemMemoryn LDMIA r0, r1-r6n LDR r0, =EBICONn STMIA r0, r1-r6 Init_SystemMemoryDCD0 x000530C1DCD0 x00040084DCD0 x020090E4DCD0 x200090E4 DCD0 x0000014BDCD0 x0000014BRemap_SystemMemoryDCD0 x000530C1DCD0 x04040084DCD0 x000090E4DCD0 x200090E4 DCD0 x0000014B DCD0 x0000014BEBICONEQU0 xFFF01000 ROMC

58、ONEQU0 xFFF01004SDCONF0EQU0 xFFF01008SDCONF1EQU0 xFFF0100CSDTIME0EQU0 xFFF01010SDTIME1EQU0 xFFF01014第5章 目录q0.概述q1.W90P710简介q2.最小系统的设计q3.ARM应用系统的设计q4.外扩存储器管理及存储重映射q5.GPIO的控制q6.中断的管理6.中断的管理n需要掌握的内容nW90P710如何识别中断源,即为那个部件引起的中断?nW90P710如何跳到相应的中断服务函数?n中断向量表是如何设定的?n最终的目的学会如何设计ARM的中断处理程序5.6 W90P710的中断控制器(AI

59、C)n向量中断控制器概述 ARM7TDMI内核具有两个中断输入,分别为IRQ中断和FIQ中断。但是芯片内部有许多中断源,最多可以有32个中断输入请求。向量中断控制器的作用就是允许哪些中断源可以产生中断、可以产生哪类中断、产生中断后执行哪段服务程序。ARM7TDMI-SIRQFIQAIC中断请求输入0中断请求输入31. . .W90P710的中断控制器(AIC)nARM7TDMI处理器提供两种中断模式, 快速中断快速中断 (FIQ) 模式用于紧急事件处理,而中断模式中断模式 (IRQ) 用于普通事件处理。n可以处理32个不同的中断源,可独立开启或屏蔽,每个中断源有一个唯一的中断号.n支持8个不同

60、的优先级,当优先级为0时,表示处理的是FIQ中断,为17时,表示的是IRQ中断n支持的中断触发方式n低电平n高电平n下降沿触发n上升沿触发中断的任务n1.判断是产生的中断是IRQ还是FIQ.n2.应该执行的是31个中的那个中断.n3.找到相应的中断服务程序去执行n4.返回,判断下一个中断.几个概念n中断时的电平中断时的电平n中断条件满足标志中断条件满足标志n中断条件满足中断条件满足,并且相应的中断号的使能的并且相应的中断号的使能的n中断条件满足中断条件满足,并且相应的中断号的使能并且相应的中断号的使能,并且优并且优先级最高先级最高n中断屏蔽中断屏蔽(MASK)标志标志n中断屏蔽的设置中断屏蔽的

温馨提示

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

评论

0/150

提交评论