预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共35页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第三章ARM9芯片S3C2410片上资源主要内容:3.1S3C2410处理器介绍S3C2410微处理器是一款由Samsung公司为手持设备设计的低功耗、高度集成的基于ARM920T核的微处理器。为了降低系统总成本和减少外围器件这款芯片中还集成了下列部件:16KB指令Cache、16KB数据Cache、MMU、外部存储器控制器、LCD控制器(STN和TFT)、NANDFlash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器以及4个PWM定时器和一个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。现在它广泛应用于PDA、移动通讯、路由器、工业控制等领域其内部结构如图3-1所示。3.1.1AMBA、AHB、APB总线特点AMBA2.0规范包括四个部分:AHB、ASB、APB和TestMethodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线接口与互连功能分离这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。3.1.2S3C2410处理器体系结构3.1.3S3C2410处理器管理系统3.1.4S3C2410处理器存储器映射3.1.5S3C2410处理器时钟和电源管理表3-1时钟源选择S3C2410引脚的OM[3:2]=00时晶体为MPLLCLK和UPLLCLK提供时钟源;OM[3:2]=01时晶体为MPLLCLK提供时钟源EXTCLK为UPLLCLK提供时钟源;OM[32]=10时EXTCLK为MPLLCLK提供时钟源晶体为UPLLCLK提供时钟源;OM[3:2]=11时EXTCLK为MPLLCLK和UPLLCLK提供时钟。3.时钟控制逻辑S3C2410支持HCLK、FCLK和PCLK的按比率选择其比率是通过时钟分频寄存器CLKDIV中的HDIVN和PDIVN控制的如表3-2所示。4.电源管理S3C2410电源管理模块通过4种模式有效地控制功耗即正常(Normal)模式、省电(Slow)模式、空闲(Idle)模式和断电(Power-off)模式。•Normal模式:为CPU和所有的外设提供电源所有的外设开启该模式下的功耗最大。这种模式允许用户通过软件控制外设可以断开提供给外设的时钟以降低功耗。•Slow模式:采用外部时钟生产FCLK的方式此时电源的功耗取决于外部时钟。5.时钟和电源管理寄存器S3C2410通过相应控制寄存器实现对时钟和电源的管理相关寄存器使用参见表3-3。3.2S3C2410处理器片上资源的定义和使用2410addr.h内容包括:Memorycontrol、USBHost、INTERRUPT、DMA、CLOCK&POWERMANAGEMENT、LCDCONTROLLER、NANDflash、UART、PWMTIMER、USBDEVICE、WATCHDOGTIMER、IIC、IIS、I/OPORT、RTC、ADC、SPI、ISR、SDInterface等近20类。3.3参考软件项目2410test.mcp//--------------------------------------------------------------------------------------------------------//引入所有实验所需头文件//-------------------------------------------------------------------------------------------------------#include<stdlib.h>#include<string.h>#include"def.h"#include"option.h"#include"2410addr.h"#include"2410lib.h"#include"2410slib.h"#include"2410etc.h"#include"2410IIC.h"#include"2410iis.h"#include"2410int.h"#include"2410RTC.h"#include"2410swi.h"#include"timer.h"#include"adc.h"#include"dma.h"#include"dma2.h"#include"eint.h"#include"extdma.h"#include"k9s1208.h"#include"mm