S3C2440A中文手册

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第一章产品概述S3C2440A采用ARM920T内核,集成如下片上功能:●1.2V内核,1.8V/2.5V/3.3V储存器,3.3V扩展I/O,16KB指令Cache(I-Cache)/16KB数据Cache(D-Cache)●外部储存控制器(SDRAM控制盒片选逻辑)●集成LCD专用DMA的LCD控制器(支持最大4K色STN和256K色TFT)●4路拥有外部请求引脚的DMA控制器●3路URAT(IrDA1.0,64-ByteTxFIFO,64ByteRxFIFO)●2路SPI●IIC总线接口(多主支持)●IIS音频编解码器接口●AC`97编解码器接口●1.0版SD主接口,兼容2.11版MMC接口●2路USB主机控制/1路USB期间控制(ver1.1)●4路PWM定时器/1路内部定时器/看门狗定时器●8路10位ADC和触摸屏接口●具有日历功能的RTC●摄像头接口(支持最大4096x4096的输入,2048x2048缩放输入)●130个通用I/O,24个外部中断源●电源控制:正常,慢速,空闲,睡眠模式●带PLL的片上时钟发生器工作电压:内核:300MHZ@1.20V400MHZ@1.30V储存器:1.8V/2.5V/3.0V/3.3VI/O:3.3V操作频率:Fclk:400MHZHclk:136MHZPclk:68MHZ接下来的Table1-1位管脚的位置及名称,在Figure1-2管脚分配图上横坐标为数字,纵坐标为字母,交叉点坐标为PinNumber,在表中被分配了不同的名字。Table1-2为引脚在CPU各状态下所处的状态与功能。表1-2的说明:1、@BUSREQ显示了管脚在外部总线时的状态,此时总线被其他总线控制器控制。2、'-'表示在总线请求状态中无变化。3、Hi-z或Pre表示高阻或先前的状态,由设置MISCCR决定。4、AI/AO表示模拟输入/模拟输出。5、P,I,O分别表示电源,输入和输出。6、‘I/Ostate@nRESET’表示nRESET处于低电平下管脚状态Table1-3为S3C2440的总线信号说明,有总线控制器、SDRAM/SRAM、NANDFlash、LCD控制单元、摄像机接口、DMA、UART、ADC、IIC-Bus、AC`97、触摸屏、USB主机、USB从机、SPI、SD、通用口、定时器/PWM、JTAG、复位,时钟,电源几个部分。这个表大概就是介绍每个管脚的作用了吧。我认为这三张表对于硬件设计应该是很重要的,不过背下来好像不可能哦,太多了。以前一直为怎么把ARM当单片机来用纳闷这么多脚怎么控制呢?原来它是有总线的,而且有个通用I/O口(GPn)呵呵就像单片机的I/O口一样的操作。Table1-4为S3C2440特殊寄存器的说明比较重要啦,不过太多没必要记下来,记住页码55哈哈!!哈哈在这里找到了I/O口的寄存器了:GPACON-PortA控制,GPADAT-PortA数据,看来只要对这两个寄存器操作就可以动用I/O口了,当然还有PortB,PortC等等,好像ARM裸奔和单片机一样简单哦。注意要大小端模式必须使用相对的大小端的地址,按照推荐方式对寄存器进行操作,除了ADC,RTC,UART寄存器外其他寄存器必须以字为单位进行读写。://hexun.com/longfan/default.html第二章编程模式从编程者的角度看,ARM920T可以处于下面两种状态中的一种:●ARM状态:执行32位字对齐的ARM指令集●THUMB状态:可以执行26位半字对齐的THUMB指令集。在这种状态下PC用位1在半字间选择。注意:在两种状态间切换不影响处理器状态和寄存器的内容。转换状态进入THUMB状态a、在操作数寄存器状态位(bit0)置位的情况下执行BX指令可以进入THUMB状态b、如果在THUMB状态发生中断,从中断返回时将自动进入THUMB状态进入ARM状态a、在操作数寄存器状态位(bit0)清零的情况下执行BX指令可以进入THUMB状态b、在处理器进入中断时。此时,PC值被放在中断模式连接寄存器中,然后跳到中断的向量地址执行命令存储格式ARM920T将存储体堪称是从0开始的字节集合。0~3字节放第一个储存字,4~7字节放第二个等等。字的存储方式有Big-Endian(大端)和Little-Endian(小端)两种类型。指令长度:32位的ARM指令或16位的THUMB指令。七种操作模式User、FIQ、IRQ、Supervisor、Abortmode、System、UndefinedARM状态寄存器分配THUMB状态寄存器分配ARM和THUMB状态寄存器对应关系CPSR寄存器V、C、Z、N为条件位,算术和逻辑运算可以改变它的值,其值也用来做指令的执行条件。控制位:T:反映操作的状态1:THUMB状态I、F:中断禁止位1:禁止IRQ,FRQ中断响应M0~M4:不同的组合决定处理器的操作模式注意改变PSR中标志时不要改变了保留位。关于寄存器更具体的说明可以查看杜雷春编的《ARM体系结构与编程》异常处理器暂时中止正常的流水线。进入异常处理的步骤:1、保存下一条指令地址到相应的连接寄存器。2、将CPSR拷贝到SPSR3、设置CPSR中模式位为相应的模式4、从相关中断向量中取得下一条指令地址若发生异常时处理器正处在THUMB状态,将自动切换到ARM状态。离开异常状态:1、将LR减去一个适当的偏移量后放入PC2、拷贝SPSR到CPSR3、清除进入异常时设置的终端禁止注意从THUMB进入异常返回后不需要转换回THUMB状态,因为从SPSR恢复的CPSR已经设置了T位。Table2-2总结了进入异常时保存在R14中的PC值,和推荐的从异常返回的指令。FIQ快速中断请求通过保持nFIQ输入引脚的低电平可以产生FIQ中断。ISYNC引脚能决定nFIQ和nIRQ的同步异步状态。ISYNC为低时nFIQ和nIRQ被看作是异步的。当CPSR中F标志为‘0’时ARM920T在每条指令的结束检查FIQ同步器输出的低电平。IRQ普通中断请求通过拉低nIRQ输入引脚产生,有限级低于FIQ。RESET重启当nRESER为低电平时,ARM920T放弃执行的指令,然后接着从增加的字地址取指令。当nRESER回到高电平时,ARM920T拷贝当前PC、CPSR到R14_svc和SPSR_svc,然后将M[4:0]设为10011(特权模式),置位I,F标志位,PC从0x00开始取指令,恢复到ARM状态。中断向量表:中断优先级:从高到低为:重启,数据中止,FIQ,IRQ,指令中止,未定义指令和SWI第二章处理器工作模式2.1概述S3C2440采用了非常先进的ARM920T内核,它是由ARM(AdvancedRISCMachines)公司研制的。2.2处理工作状态从程序员的角度上看,ARM920T可以工作在下面两种工作状态下的一种:●ARM状态:执行32位字对齐的ARM指令●THUMB状态:执行16位半字对齐的THUMB指令。在这种状态下,PC寄存器的第一位来选择一个字中的哪个半字注意;这两种状态的转换不影响处理模式和寄存器的内容。2.3切换状态进入THUMB状态进入THUMB状态,可以通过执行BX指令,同时将操作数寄存器的状态位(0位)置1来实现。当从异常(IRQ,FIQ,UNDEF,ABORT,SWI等)返回时,只要进入异常处理前处理器处于THUMB状态,也会自动进入THUMB状态。进入ARM状态进入ARM状态,可以通过执行BX指令,并且操作数寄存器的状态位(0位)清零来实现。当处理进入异常(IRQ,FIQ,RESET,UNDEF,ABORT,SWI等)。这时,PC值保持在异常模式下的link寄存器中,并从异常向量地址处开始执行处理程序。存储空间的格式ARM920T将存储器空间视为从0开始由字节组成的线性集合,字节0到3中保存了第一个字节,字节4到7中保存第二个字,以此类推,ARM920T对存储的字,可以按照小端或大端的方式对待。大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中,因此字节0存储在数据的24到31行里1高地址3124231615870字地址89101145670123低地址●大多数重要的字节在低地址处●字的地址是在大多数重要的字节的字节地址处的图2-1以大端格式存储字数据小端格式:与大端格式相反,在小端存储格式中,低地址中存放的是字数据的低字节,高地址存放的是字数据的高字节。高地址3124231615870字地址11109876543210低地址●少数重要的地址是在低地址处●字的地址是在少数重要的字节的字节地址处的图2-2以小端格式存储字数据2.4指令长度指令可以是32位长度(在ARM状态下)或16位长度(在THUMB状态)。数据类型ARM920T支持字节(8位),半字(16位)和字(32位)数据类型。字必须按照4字节对齐,半字必须是2字节对齐。2.5操作模式ARM920T支持7种操作模式:●用户模式(user模式),运行应用的普通模式●快速中断模式(fiq模式),用于支持数据传输或通道处理●中断模式(irq模式),用于普通中断处理2●超级用户模式(svc模式),操作系统的保护模式●异常中断模式(abt模式),输入数据后登入或预取异常中断指令●系统模式(sys模式),使操作系统使用的一个有特权的用户模式●未定义模式(und模式),执行了未定义指令时进入该模式]外部中断,异常操作或软件控制都可以改变中断模式。大多数应用程序都是在用户模式下进行,进入特权模式是为了处理中断或异常请求或操作保护资源服务的。2.6寄存器ARM共有37个32位的寄存器,其中31个是通用寄存器,6个是状态寄存器。但在同一时间,对程序员来说并不是多有的寄存器都可见。在某一时刻存储器是否可见,是由处理器当前的工作状态和工作模式决定的。ARM状态寄存器在ARM状态下,任何时刻都可以看到16个通用寄存器,1个或2个状态寄存器。在特权模式(非用户模式)下会切换到具体模式下的寄存器组,其中包括模式专用的私有(banked)寄存器。图2-3显示了在每个模式下哪种寄存器是可见的;私有寄存器上都有一个黑三角标记。ARM状态寄存器系列中含有16个直接操作寄存器:R0到R15。除了R15外其他的都是通用寄存器,可用来存放地址或数据值。除此之外,实际上有17个寄存器用来存放状态信息。寄存器14专职持有返回点的地址,在系统执行一条“跳转并链接”(BL)指令的时候,R14将收到一个R15的拷贝。其他时候,它可以用作一个通用寄存器。相应的私有寄存器R14_svc,R14_irq,R14_fiq,R14_abt和R14_und都同样用来保存在中断或异常发生时,或在中断和异常时执行了BL指令时,R15的返回值。寄存器15这个寄存器是程序计数器(PC)。在ARM状态下,R15的bits[1:0]为0,bist[31:2]保存了PC的值。在Thumb状态下,bits[0]为0同时bits[31:1]保存了PC值。寄存器16这个寄存器是CPSR(当前程序状态寄存器),用来保存当前代码标志和当前模式位。3FIQ模式拥有7个私有寄存器R8-14(R8_fiq-R14_fiq)。在ARM状态下,多数FIQ处理都不需要保存任何寄存器。用户、中断、异常中止,超级用户和未定义模式都拥有2个私有寄存器,R13和R14。允许这些模式都可拥有1个私有堆栈指针和链接寄存器。图2-3ARM状态下的寄存器结构THUMB状态寄存器THUMB状态寄存器是ARM状态寄存器的一个子集。程序员可以直接操作8个通用寄存器R0-R7,同样可以这样操作程序计数器(PC),堆栈指针寄存器(SP),链接寄存器(LR),和CPSR。它们都是各个特权模式下的私有寄存器,链接寄存器和程序状态寄存器(SPSRs)。如图2-44ARM和THUMB状态寄存器间的关系:●THUMB状态下R0-R7和ARM状态下R0-R7是等同

1 / 181
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功