null3.4.2 S3C2410A的I/O口寄存器3.4.2 S3C2410A的I/O口寄存器在S3C2410A中,大多数的引脚端都是复用的,所以对于每一个引脚端都需要定义其功能。
为了使用I/O口,首先需要定义引脚的功能。每个引脚端的功能通过端口控制寄存器(PnCON)来定义(配置)。
与配置I/O口相关的寄存器包括:端口控制寄存器(GPACON~GPHCON)、端口数据寄存器(GPADAT~GPHDAT)、端口上拉寄存器(GPBUP~GPHUP)、杂项控制寄存器以及外部中断控制寄存器(EXTINTN)等。
在掉电模式,如果GPF0~GPF7和GPG0~GPG7用作为唤醒信号,那么这些端口必须配置为中断模式。3.4.2 S3C2410A的I/O口寄存器3.4.2 S3C2410A的I/O口寄存器
如果端口配置为输出口,数据可以写入到端口数据寄存器(PnDAT)的相应位中;
如果将端口配置为输入口,则可以从端口数据寄存器(PnDAT)的相应位中读出数据。
端口上拉寄存器用于控制每组端口的上拉电阻为使能/不使能。如果相应位设置为0,则
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示该引脚的上拉电阻使能;为1,则表示该引脚的上拉电阻不使能。
如果使能了端口上拉寄存器,则不论引脚配置为哪种功能(输入、输出、DATAn、EINTn等),上拉电阻都会起作用。
3.4.2 S3C2410A的I/O口寄存器3.4.2 S3C2410A的I/O口寄存器杂项控制寄存器用于控制数据端口的上拉电阻、高阻状态、USB Pad和CLKOUT的选择。
24个外部中断通过不同的信号方式被请求。EXTINTn寄存器用于配置这些信号对于外部中断请求采用的是低电平触发、高电平触发、下降沿触发、上升沿触发还是双边沿触发。有8个外部中断有数字滤波器。仅16 EINT引脚端(EINT[15:0])用来作为唤醒源。
所有GPIO寄存器的值在掉电模式下都会被保存。
相关寄存器的设置分别描述如下:
3.5 S3C2410A的中断控制3.5 S3C2410A的中断控制3.5.1 ARM系统的中断处理
在ARM系统中,支持复位、未定义指令、软中断、预取中止、数据中止、IRQ和FIQ 7种异常,每种异常对应于不同的处理器模式,有对应的异常向量(固定的存储器地址)。3.5.2 S3C2410A的中断控制器3.5.2 S3C2410A的中断控制器S3C2410A采用ARM920T CPU内核,ARM920T CPU的中断包含有IRQ和FIQ
IRQ是普通中断,FIQ是快速中断,FIQ的优先级高于IRQ。
FIQ中断通常在进行大批量的复制、数据传输等工作时使用。3.5.2 S3C2410A的中断控制器3.5.2 S3C2410A的中断控制器S3C2410A通过对程序状态寄存器(PSR)中的F位和I位进行设置控制CPU的中断响应。
如果设置PSR的F位为1,则CPU不会响应来自中断控制器的FIQ中断;
如果设置PSR的I位为1,则CPU不会响应来自中断控制器的IRQ中断。
如果设置PSR的F位或I位设置为0,同时将中断屏蔽寄存器(INTMSK)中的相对应位设置为0,CPU响应来自中断控制器的IRQ或FIQ中断请求。
3.5.2 S3C2410A的中断控制器3.5.2 S3C2410A的中断控制器中断屏蔽寄存器用于指示中断是否禁止。
如果设置中断屏蔽寄存器中的相对应屏蔽位为1,表示相对应的中断禁止;
如果设置为0,表示中断发生时将正常执行中断服务。
如果发生中断时相对应的屏蔽位正好为1,则中断挂起寄存器中的相对中断源挂起位将置1。3.5.2 S3C2410A的中断控制器3.5.2 S3C2410A的中断控制器
S3C2410A有SRCPND(中断源挂起寄存器)和INTPND(中断挂起寄存器)两个中断挂起寄存器。SRCPND和INTPND两个挂起寄存器用于指示某个中断请求是否处于挂起状态。当多个中断源请求中断服务时,SRCPND寄存器中的相应位设置为1,仲裁过程结束后INTPND寄存器中只有1位被自动设置为1。
3.5.2 S3C2410A的中断控制器3.5.2 S3C2410A的中断控制器S3C2410A中的中断控制器能够接收来自56个中断源的请求,这些中断源来自DMA控制器、UART、I2C及外部中断引脚等。从表3.5.1可以看出,S3C2410A共有32个中断请求信号。S3C2410A采用了中断共享技术,INT_UARTO、INT_UART1、INT_UART2、EINT8_23和EINT4_7为多个中断源共享使用的中断请求信号。中断请求的优先级逻辑是由7个仲裁器组成的,其中包括6个一级仲裁器和1个二级仲裁器,如图3.5.1所示。每个仲裁器是否使能由寄存器PRIORITY[6:0]决定。每个仲裁器可以处理4~6个中断源,从中选出优先级最高的。优先级顺序由寄存器PRIORITY[20:7]的相应位决定。