资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第三章 ARM9芯片S3C2410片上资源ppt课件(全),*,第三章 ARM9芯片S3C2410片上资源,第三章 ARM9芯片S3C2410片上资源ppt课件(全),主要内容:,3.1 S3C2410处理器介绍,3.2 S3C2410处理器片上资源的定义和使用,3.3 参考软件项目2410test.mcp,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1 S3C2410处理器介绍,本节介绍S3C2410处理器的体系结构、特点和应用领域,AMBA、AHB、APB总线特点和应用,存储器存储空间映射等,。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),S3C2410微处理器是一款由Samsung公司为手持设备设计的低功耗、高度集成的基于ARM920T核的微处理器。为了降低系统总成本和减少外围器件,这款芯片中还集成了下列部件:16KB指令Cache、16KB数据Cache、MMU、外部存储器控制器、LCD控制器(STN和TFT)、NAND Flash控制器、4个DMA通道、3个UART通道、1个I2C总线控制器、1个I2S总线控制器,以及4个PWM定时器和一个内部定时器、通用I/O口、实时时钟、8通道10位ADC和触摸屏接口、USB主、USB从、SD/MMC卡接口等。现在它广泛应用于PDA、移动通讯、路由器、工业控制等领域,其内部结构如图3-1所示。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),图3-1 S3C2410X结构框图,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1.1 AMBA、AHB、APB 总线特点,AMBA规范主要包括AHB(Advanced High performance Bus)系统总线和APB(Advanced Peripheral Bus)外围总线。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),AMBA 2.0规范包括四个部分:AHB、ASB、APB和Test Methodology。AHB的相互连接采用了传统的带有主模块和从模块的共享总线,接口与互连功能分离,这对芯片上模块之间的互连具有重要意义。AMBA已不仅是一种总线,更是一种带有接口模块的互连体系。下面将简要介绍比较重要的AHB和APB总线。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1.2 S3C2410处理器体系结构,.,ARM920T核,16位/32位RISC结构和ARM精简指令集;,.,ARM MMU,支持Windows CE,Linux等操作系统;,.,指令Cache、数据Cache、写缓冲;,.,支持ARM调试结构,片上ICE支持JTAG调试方式,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1.3 S3C2410处理器管理系统,.,支持大端(Big Endian)/小端(Little Endian)模式;,.地址空间为每个内存块128MB(一共1CB),每个内存块支持8/16/32位数据总线编程;,.8个内存块,6个用于ROM、SRAM和其它,2个用于ROM/SRAM/SDRAM;,.1个起始地址和大小可编程的内存块(Bank7);,.7个起始地址固定的内存块(Bank0Bank6);,.所有内存块可编程寻址周期;,.支持SDRAM自动刷新模式;,.支持多种类型ROM启动,包括NOR/NAND Flash、EEPROM等。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1.4 S3C2410处理器存储器映射,S3C2410的存储空间映射如图3-2所示。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),图3-2 S3C2410存储区地址映射,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.1.5 S3C2410处理器时钟和电源管理,1时钟,S3C2410的主时钟由外部晶振或者外部时钟提供,选择后可以提供3种时钟信号,,分别是CPU使用的FCLK、AHB总线使用的HCLK和APB总线使用的PCLK。,2.时钟源选择,对时钟源的选择是通过OM1:2实现的,如表3-1所示,。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),表3-1 时钟源选择,第三章 ARM9芯片S3C2410片上资源ppt课件(全),S3C2410引脚的OM3:2=00时,晶体为MPLL CLK和UPLL CLK提供时钟源;OM3:2=01时,晶体为MPLL CLK提供时钟源,EXTCLK为UPLL CLK提供时钟源;OM32=10时,EXTCLK为MPLL CLK提供时钟源,晶体为UPLL CLK提供时钟源;OM3:2=11时,EXTCLK为MPLL CLK和UPLL CLK提供时钟。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.,时钟控制逻辑,S3C2410支持HCLK、FCLK和PCLK的按比率选择,其比率是通过时钟分频寄存器CLKDIV中的HDIVN和PDIVN控制的,如表3-2所示。,表3-2 分频设定表,第三章 ARM9芯片S3C2410片上资源ppt课件(全),4.电源管理,S3C2410电源管理模块通过4种模式有效地控制功耗,即正常(Normal)模式、省电(Slow)模式、空闲(Idle)模式和断电(Power-off)模式。,Normal模式:为CPU和所有的外设提供电源,所有的外设开启,该模式下的功耗最大。这种模式允许用户通过软件控制外设,可以断开提供给外设的时钟以降低功耗。,Slow模式:采用外部时钟生产FCLK的方式,此时电源的功耗取决于外部时钟。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),5.时钟和电源管理寄存器,S3C2410通过相应控制寄存器实现对时钟和电源的管理,相关寄存器使用参见表3-3。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.2 S3C2410处理器片上资源的定义和使用,和开发MCS-51单片机一样,S3C2410在头文件2410addr.h中,将S3C2410的所有硬件资源都进行了定义,我们在编写S3C2410的驱动程序时必需引用这个头文件。,2410addr.h将系统所有的资源进行了宏定义,宏的名称就是所定义的寄存器的名字前面加一个小写的“r”,方便记忆。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),2410addr.h内容包括:Memory control、USB Host、INTERRUPT、DMA、CLOCK&POWER MANAGEMENT、LCD CONTROLLER、NAND flash、UART、PWM TIMER、USB DEVICE、WATCHDOG TIMER、IIC、IIS、I/O PORT、RTC、ADC、SPI、ISR、SD Interface等,近20类。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),3.3 参考软件项目2410test.mcp,在随书提供的资料中,有一个2410test.mcp项目,里面包括几乎所有S3C2410硬件驱动的C语言例子和头文件,仔细阅读这些程序对我们编程有很大参考价值,应熟悉这些程序。,项目主要部分列出如下,并做必要解释:,第三章 ARM9芯片S3C2410片上资源ppt课件(全),/-,/引入所有实验所需头文件,/-,#include,#include,#include def.h,#include option.h,#include 2410addr.h,#include 2410lib.h,第三章 ARM9芯片S3C2410片上资源ppt课件(全),#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 mmu.h,第三章 ARM9芯片S3C2410片上资源ppt课件(全),#include nwait.h,#include sdi.h,#include stone.h,#include ts_auto.h,#include ts_sep.h,#include usbfifo.h,#include IrDA.h,#include lcd.h,#include lcdlib.h,#include glib.h,#include palette.h,#include spi.h,#include uart0.h,#include uart1.h,#include uart2.h,#include etc.h,#include flash.h,#include idle.h,#include pd6710.h,第三章 ARM9芯片S3C2410片上资源ppt课件(全),#include pll.h,#include power.h,#include pwr_c.h,#include stop.h,/-,/定义一个二维的指针数组,数组中第一列是函数名,第二列是函数功能提示,/-,void*function2=,/ADC,TSP,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Test_Adc,ADC ,(void*)Test_DMA_Adc,ADC with DMA ,(void*)Ts_Sep,ADC TSP Seperate ,(void*)Ts_Auto,ADC TSP Auto ,/DMA,(void*)Test_DMA,DMA M2M ,(void*)Test_DMAWorst,DMA Worst Test ,(void*)Test_Dma0Xdreq,External DMA ,/EINT,(void*)Test_Eint,External Interrupt ,/IIC,(void*)Test_Iic,IIC(KS24C080)INT ,(void*)Test_Iic2,IIC(KS24C080)POL ,/IIS,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Record_Iis,Reco IIS UDA1341 ,(void*)Test_Iis,Play IIS UDA1341 ,/Interrupt,(void*)Test_Fiq,FIQ Interrupt ,(void*)Change_IntPriorities,Change INT Priority,/IrDA,(void*)Test_IrDA_Rx,UART2 IrDA Rx ,(void*)Test_IrDA_Tx,UART2 IrDA Tx ,/LCD,(void*)Test_Lcd_Stn_1Bit,STN 1Bit ,(void*)Test_Lcd_Stn_2Bit,STN 2Bit ,(void*)Test_Lcd_Stn_4Bit,STN 4Bit ,(void*)Test_Lcd_Cstn_8Bit,CSTN 8Bit ,(void*)Test_Lcd_Cstn_8Bit_On,CSTN 8Bit On ,(void*)Test_Lcd_Cstn_12Bit,CSTN 12Bit ,(void*)Test_Lcd_Tft_8Bit_240320,TFT240320 8Bit ,(void*)Test_Lcd_Tft_8Bit_240320_On,TFT240320 8Bit On ,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Test_Lcd_Tft_16Bit_240320,TFT240320 16Bit ,(void*)Test_Lcd_Tft_1Bit_640480,TFT640480 1Bit ,(void*)Test_Lcd_Tft_8Bit_640480,TFT640480 8Bit ,(void*)Test_Lcd_Tft_16Bit_640480,TFT640480 16Bit ,(void*)Test_Lcd_Tft_8Bit_640480_Bswp,TFT640480 BSWP ,(void*)Test_Lcd_Tft_8Bit_640480_Palette,TFT640480 Palette ,(void*)Test_Lcd_Tft_16Bit_640480_Hwswp,TFT640480 HWSWP ,/Memory,/MPLL,(void*)Test_PLL,MPLL Change ,(void*)ChangePLL,MPLL MPS Change ,(void*)Test_PllOnOff,MPLL On/Off ,/PMS,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Test_SlowMode,PMS Slow ,(void*)Test_HoldMode,PMS Hold ,(void*)Test_IdleMode,PMS Idle ,(void*)Test_MMUIdleMode,PMS Idle(MMU),(void*)Test_IdleModeHard,PMS Idle Hard ,(void*)Test_InitSDRAM,PMS SDRAM Init ,(void*)Test_StopMode,PMS STOP ,(void*)Test_PowerOffMode,PMS Power-Off STOP ,(void*)Test_PowerOffMode_100Hz,PMS Power-Off 100Hz,(void*)MeasurePowerConsumption,PMS Measure Power ,/RTC,(void*)Test_Rtc_Alarm,RTC Alarm ,(void*)Display_Rtc,RTC Display ,(void*)RndRst_Rtc,RTC Round Reset ,(void*)Test_Rtc_Tick,RTC Tick ,第三章 ARM9芯片S3C2410片上资源ppt课件(全),/SDI,(void*)Test_SDI,SDI Write/Read ,/SPI,(void*)Test_Spi_MS_int,SPI0 RxTx Int ,(void*)Test_Spi_MS_poll,SPI0 RxTx POLL ,(void*)Test_Spi_M_Tx_DMA1,SPI0 Master Tx DMA1,(void*)Test_Spi_S_Rx_DMA1,SPI0 Slave Rx DMA1 ,(void*)Test_Spi_M_Rx_DMA1,SPI0 Master Rx DMA1,(void*)Test_Spi_S_Tx_DMA1,SPI0 Slave Tx DMA1 ,(void*)Test_Spi_M_Int,SPI0 Master RxTx INT,(void*)Test_Spi_S_Int,SPI0 Slave RxTx INT,/Timer,(void*)Test_TimerInt,Timer Interrupt ,(void*)Test_Timer,Timer Tout ,/UART,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Test_Uart0_Int,UART0 Rx/Tx Int ,(void*)Test_Uart0_Dma,UART0 Rx/Tx DMA ,(void*)Test_Uart0_Fifo,UART0 Rx/Tx FIFO ,(void*)Test_Uart0_AfcTx,UART0 AFC Tx ,(void*)Test_Uart0_AfcRx,UART0 AFC Rx ,(void*)Test_Uart1_Int,UART1 Rx/Tx Int ,(void*)Test_Uart1_Dma,UART1 Rx/Tx DMA ,(void*)Test_Uart1_Fifo,UART1 Rx/Tx FIFO ,(void*)Test_Uart1_AfcTx,UART1 AFC Tx ,(void*)Test_Uart1_AfcRx,UART1 AFC Rx ,(void*)Test_Uart2_Int,UART2 Rx/Tx Int ,(void*)Test_Uart2_Dma,UART2 Rx/Tx DMA ,(void*)Test_Uart2_Fifo,UART2 Rx/Tx FIFO ,/USB,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)Test_USBFIFO,USB FIFO Test ,/WDT,(void*)Test_WDT_IntReq,WDT INT Request ,/ETC,(void*)Test_XBREQ,External Bus Reqest,(void*)Test_NonalignedAccess,NonAlgined Access ,(void*)Test_PD6710,PC Card(PD6710),(void*)ReadPageMode,Read Page Mode ,(void*)Test_SwiIrq,SWI ,(void*)Test_WaitPin,External Wait ,(void*)Test_ISram,Stone Test ,(void*)Test_NecInterrupt,ETC NEC Int ,(void*)Test_BattFaultInterrupt,nBATT_FAULT int ,/NAND,NOR Flash,(void*)K9S1208_PrintBadBlockNum,NAND View Bad Block,(void*)K9S1208_PrintBlock,NAND View Page ,第三章 ARM9芯片S3C2410片上资源ppt课件(全),(void*)K9S1208_Program,NAND Write ,(void*)TestECC,NAND ECC ,(void*)ProgramFlash,NOR Flash Program ,0,0,;,/-,/主程序,/-,void Main(void),int i;,MMU_Init();/内存管理初始化,ChangeClockDivider(1,1);/定义FCLK、HCLK,PCLK比例,/1:2:4,ChangeMPllValue(0 xa1,0 x3,0 x1);/FCLK=202.8MHz,Port_Init();/I/O口初始化,Isr_Init();/中断初始化,Uart_Init(0,115200);/选串口0与上位机通信,波特率115200,第三章 ARM9芯片S3C2410片上资源ppt课件(全),Uart_Select(0);/选串口0,Check_PowerOffWakeUp();/唤醒电源进入正常工作状态,while(1),i=0;,while(1),Uart_Printf(%2d:%s,i,functioni1);/在超级终端上显示主菜单,i+;,if(int)(functioni0)=0)/显示结束跳出,第三章 ARM9芯片S3C2410片上资源ppt课件(全),Uart_Printf(n);,break;,if(i%4)=0),Uart_Printf(n);/每行显示4项,Uart_Printf(nSelect the function to test:);/提示:选择某项实验,i=Uart_GetIntNum();/读实验项目号放i中,Uart_Printf(n);/超级终端上显示内容回车换行,rGPGCON=(rGPGCON/GPG4做输出,rGPGDAT=(rGPGDAT /GPG4输出1控制LCD显示开,if(i=0&(i(sizeof(function)/8),/指针数组function中每行二列指针,每指针占4字节,总实验项数是sizeof(function)/8,(void(*)(void)(functioni0)();,/将functioni0转化为函数的指针并执行该函数,参数为0。,第三章 ARM9芯片S3C2410片上资源ppt课件(全),
展开阅读全文