版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章 基于S3C44B0X嵌入式系统应用开发实例6.1S3C44B0X处理器介绍6.2S3C44B0X存储控制器功能及应用开发6.3S3C44B0XI/O端口功能及应用开发6.5S3C44B0XUART接口功能及应用开发6.6S3C44B0X中断控制器功能及应用开发6.16基于S3C44B0X的S3CEV40开发介绍第六章 基于S3C44B0X嵌入式系统应用开发实例6.1S6.1S3C44B0X处理器介绍6.1.1SamsungS3C44B0X简介6.1.2SamsungS3C44B0X特点6.1.3S3C44B0X功能结构框图6.1.4S3C44B0X引脚信号描述6.1S3C44B0X处理器介绍6.1.1Samsung6.1.1SamsungS3C44B0X简介SamsungS3C44B0X微处理器片内集成ARM7TDMI核,采用0.25μmCMOS工艺制造,并在ARM7TDMI核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。片上集成的主要功能如下:片上在ARM7TDMI基础上增加8KB的Cache;外部扩充存储器控制器(FP/EDO/SDRAM控制,片选逻辑);LCD控制器(最大支持256色的DSTN),并带有1个LCD专用DMA通道;2个通用DMA通道/2个带外部请求管脚的DMA通道;2个带有握手协议的UART,1个SIO;6.1.1SamsungS3C44B0X简介1个多主的IIC总线控制器;1个IIS总线控制器;5个PWM定时器及1个内部定时器;看门狗定时器;71个通用可编程I/O口,8个外部中断源;功耗控制模式:正常、低、休眠和停止;8路10位ADC;具有日历功能的RTC(实时时钟);片上集成PLL时钟发生器。1个多主的IIC总线控制器;6.1.2SamsungS3C44B0X特点一、S3C44B0X体系结构S3C44B0X是基于ARM7TDMI的体系结构,ARM7TDMI是ARM公司最早为业界普遍认可且赢得了最为广泛的应用的处理器核。6.1.2SamsungS3C44B0X特点一、S3C4二、系统(存储)管理支持大、小端模式(通过外部引脚来选择);地址空间:包含8个地址空间,每个地址空间的大小为32M字节,总共有256M字节的地址空间;所有地址空间都可以通过编程设置为8位、16位或32位宽数据对准访问;8个地址空间中,6个地址空间可以用于ROM、SRAM等存储器,2个用于ROM、SRAM、FP/EDO/SDRAM等存储器;7个起始地址固定及大小可编程的地址空间;1个起始地址及大小可变的地址空间;所有存储器空间的访问周期都可以通过编程配置;提供外部扩展总线的等待周期;在低功耗的情况下支持DRAM/SDARM自动刷新;支持地址对称或非地址对称的DRAM。二、系统(存储)管理三、Cache和片内SRAM4路组相联统一的8KB指令/数据Cache;未作为Cache使用的0/4/8KbytesCache存储空间可作为片内SRAM使用;Cache伪LRU(最近最少使用)的替换算法;通过在主内存和缓冲区内容之间保持一致的方式写内存;具有四级深度的写缓冲;当缓冲区出错时,请求数据填充。三、Cache和片内SRAM四、时钟和功耗管理低功耗;片上PLL使得MCU的工作时钟最高为66MHz;时钟可以通过软件选择性地反馈回每个功能块;功耗管理模式为:正常模式:正常运行模式;低速模式:不带PLL的低频时钟;休眠模式:只使CPU的时钟停止;停止模式:所有时钟都停止。EINT[7:0]或RTC警告中断可使功耗管理从停止模式中唤醒。四、时钟和功耗管理五、中断控制器30个中断源(1个看门狗定时器中断,6个定时器中断,6个UART中断,8个外部中断,4个DMA中断,2个RTC中断,1个ADC中断,1个IIC中断,1个SIO中断);矢量IRQ中断模式减少中断响应周期;外部中断源的电平/边沿模式;可编程的电平/边沿极性;支持紧急中断请求的FIQ(快速中断请求)。五、中断控制器六、带PWM的定时器(脉宽可调制)5个16位带PWM的定时器,1个16位基于DMA或基于中断的内部定时器;可编程的工作周期、频率和极性;死区(Dead-zone)产生器;支持外部时钟源。六、带PWM的定时器(脉宽可调制)七、实时时钟RTC全时钟特点:毫秒、秒、分、时、天、星期、月、年;运行于32.768KHz;CPU唤醒的警告中断;时间滴答(Timetick)中断。八、通用输入/输出端口8个外部中断端口;71个(多功能)复用输入/输出口。七、实时时钟RTC九、UART2个基于DMA或基于中断的UART;支持5位、6位、7位、8位串行数据传送/接收;在传送/接收时支持硬件握手;波特率可编程;支持IrDA1.0(115.2kbps);用于回环测试模式;每个通道有2个用于接收和发送的内部32字节FIFO。九、UART十、DMA控制器2路通用的无CPU干涉的DMA控制器;2路桥式DMA(外设DMA)控制器;支持I/O到内存、内存到IO、IO到IO的桥式DMA传送,有6种DMA请求方式:软件、4个内部功能块(UART、SIO、实时器、IIS)和外部管脚;DMA之间优先级次序可编程;突发传送模式提高了FPDRAM、EDODRAM和SDRAM的传送率;支持内存到外围设备的fly-by模式和外围设备到内存的传送模式。十、DMA控制器十一、A/D转换8通道多路ADC;最大转换速率100KSPS/10位。十二、LCD控制器支持彩色/单色/灰度LCD;支持单扫描和双扫描显示;支持虚拟显示功能;系统内存可作为显示内存;专用DMA用于从系统内存中提取图像数据;可编程屏幕大小;灰度:16级;彩色模式:256色。十一、A/D转换十三、看门狗定时器16位看门狗定时器;定时中断请求或系统超时复位。十四、IIC总线接口1个基于中断操作的多主的IIC总线;8位双向串行数据传送器能够工作于100Kbps的标准模式和400Kbps的快速模式。十五、IIS总线接口1路基于DMA操作的音频IIS总线接口;每通道8/16位串行数据传送;支持MSB可调整的数据格式。十三、看门狗定时器
十六、SIO(同步串行I/0)1路基于DMA或基于中断的SIO;波特率可编程;支持8位SIO的串行数据传送/接收操作。十七、操作电压范围内核:2.5V; I/O:3.0V~3.6V。
十八、运行频率最高达66MHz。
十九、封装160LQFP/160FBGA。十六、SIO(同步串行I/0)6.1.3S3C44B0X功能结构框图S3C44B0X的体系结构的功能框图如图6-1所示。图6-1S3C44B0微处理器体系结构框图6.1.3S3C44B0X功能结构框图6.1.4S3C44B0X引脚信号描述S3C44B0X引脚按以下几种功能详细列表描述信号功能。6.1.4S3C44B0X引脚信号描述S3一、总线控制信号S3C44B0的X总线控制信号的引脚一、总线控制信号S3C44B0的X总线控制信号的引脚二、DRAM/SDRAM/SRAM
二、DRAM/SDRAM/SRAM三、LCD控制信号
三、LCD控制信号四、TIMER/PWM控制信号
四、TIMER/PWM控制信号五、中断控制信号
五、中断控制信号六、DMA控制信号的引脚
六、DMA控制信号的引脚6.2S3C44B0X存储控制器功能及应用开发6.2.1S3C44B0X存储控制器概6.2.2S3C44B0X存储器空间划分简述6.2.3S3C44B0X存储控制器功能描述6.2.4S3C44B0X存储控制器的特殊功能 寄存器6.2.5S3C44B0X存储器应用编程6.2S3C44B0X存储控制器功能及应用开发6.2.16.2.1S3C44B0X存储控制器概 在基于ARM核的嵌入式应用系统中可能包含多种类型的存储器件,如Flash、ROM、SRAM和SDRAM等。而且不同类型的存储器件要求不同的速度、数据宽度等,为了实现对这些不同速度、类型、总线宽度的存储器进行管理,存储器管理控制器是必不可少的。在基于S3C44B0X处理器的嵌入式系统开发中,也是通过存储控制器为片外存储器访问提供必要的控制信号,管理片外存储部件。6.2.1S3C44B0X存储控制器概 在基于ARM核的6.2.2S3C44B0X存储器空间划分简述特殊功能寄存器位于0x01C00000到0x02000000的4M空间内;Bank0-Bank5的起始地址和空间大小都是固定的;Bank6的起始地址是固定的,空间可以配置为2/4/8/16/32M。参考表6-16可访问区域4M特殊功能寄存器Bank7的空间大小和Bank6一样是可变的,也可以配置为2/4/8/16/32M。6.2.2S3C44B0X存储器空间划分简述特殊功能寄存6.2.3S3C44B0X存储控制器功能描述6.2.3S3C44B0X存储控制器功能描述基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.2.4S3C44B0X存储控制器的特殊功能寄存器6.2.4S3C44B0X存储控制器的特殊功能寄存器6.2.5S3C44B0X存储器应用编程 下面给出了存储器的几个编程实例,包括存储控制寄存器的配置、存储器的读写,通过一个简单例子,使学生对存储器的应用编程有一定的了解。6.2.5S3C44B0X存储器应用编程 下面给13个存储控制寄存器的配置示例13个存储控制寄存器的配置示例 观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布在从0x01c80000开始的连续地址空间,所以上面的程序先将各个寄存器需要配置的值从起始地址为SMRDATA的区域取出来,然后可以利用指令“stmiar0,{r1-r13}”实现将配置好的寄存器的值依次写入到相应的寄存器中,这就完成了存储器13个控制寄存器的配置。 观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布6.3S3C44B0XI/O端口功能及应用开发6.3.1S3C444B0XI/O功能概述6.3.2S3C444B0X端口功能配置6.3.3S3C444B0X端口功能控制描述6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.5S3C444B0XI/O端口应用编程6.3S3C44B0XI/O端口功能及应用开发6.3.16.3.1S3C444B0XI/O功能概述S3C44B0X有71个通用可编程多功能输入输出引脚,可分为以下7类端口:两个9位输入输出端口(PortE和PortF);两个8位输入输出端口(PortD和PortG);一个16位输入输出端口(PortC);一个10位输出端口(PortA);一个11位的输出端口(PortB)。6.3.1S3C444B0XI/O功能概述S3C6.3.2S3C444B0X端口功能配置每个端口都可以通过软件设置来满足各种各样的系统设置和设计要求。每个端口的功能通常都要在主程序开始前被定义。如果一个引脚的多功能没有使用,那么这个引脚将被设置为I/O端口。在引脚配置以前,需要对引脚的初始化状态进行设定来避免一些问题的出现。6.3.2S3C444B0X端口功能配置6.2.3S3C44B0X存储控制器功能描述I/O端口的各种功能主要是通过对端口各个寄存器进行设置而实现的,下面通过对各个寄存器的说明来分别介绍I/O端口所能完成的功能。端口配置寄存器(PCONA-G):在S3C44B0X里,大多数的引脚都是多功能引脚。因此,应当为每个引脚选择功能。端口控制寄存器(PCONn)决定了每一个引脚的功能。如果PG0-PG7在掉电模式下被用做唤醒信号,则在中断模式里这些端口必须被设定。端口数据寄存器(PDATA-G):如果这些端口被设定为输出端口,输出数据可以被写入到PDATn的相应的位;如果被设定为输入端口,输入数据可以被读到PDATn的相应的位。端口上拉寄存器(PUPC-G):端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端。当相应的位被设为0时,引脚接上拉电阻;当相应的位为1时,引脚不接上拉电阻。6.2.3S3C44B0X存储控制器功能描述I/O端口的特殊的上拉电阻控制寄存器(SPUCR)数据线D[15:0]引脚的上拉电阻能够通过SPUPCR寄存器控制。在STOP/SL-IDLE模式里,数据线(D[31:0]或D[15:0])处于高阻状态(Hi-zstate)。由于I/O端口的特征,在STOP/SL-IDLE模式里,数据线上拉电阻可以降低功耗。D[31:16]引脚的上拉电阻能够通过PUPC寄存器来控制;D[15:0]引脚上拉电阻能够通过SPUCR寄存器来控制。在STOP模式中,为了保护存储器不出现错误功能(mal-function),存储器控制信号通过在特殊的上拉电阻控制寄存器里设置HZ@STOP区域来选择高阻状态(Hi-zstate)或先前的状态。特殊的上拉电阻控制寄存器(SPUCR)外部中断控制寄存器:8个外部中断可以用各种信号所请求。外部中断寄存器为外部中断设置了信号触发方法选择位,也设置了触发信号的极性选择位。外部中断请求信号触发的方法有以下几种:低电平触发、高电平触发、下降沿触发、上升沿触发、双沿触发。 8个外部中断寄存器的具体设置情况请详见I/O的特殊功能寄存器。 因为每个外部中断引脚都有一个数字滤波器,这让中断控制器能够识别长于3个时钟周期的请求信号。外部中断控制寄存器:外部中断挂起寄存器(EXTINTPND) 外部中断请求(4/5/6/7)对于中断控制器来说是“或”的关系。EINT4、EINT5、EINT6、EINT7共享在中断控制器里同一个中断请求队列。如果外部中断请求的4位中的任何一位被激活的话,那么EXTINPNDn将会被设置为1。外部挂起条件清除以后,中断服务程序必须清除中断挂起状态。通过EXTINPND对应位写1来清除挂起条件。外部中断挂起寄存器(EXTINTPND)6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.5S3C444B0XI/O端口应用编程6.3.5S3C444B0XI/O端口应用编程基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.5S3C44B0XUART接口功能及应用开发6.5.1S3C444B0XUART概述6.5.2S3C444B0XUART的操作6.5.3S3C444B0XUART的特殊功能寄存器6.5.4S3C444B0XUART应用编程6.5S3C44B0XUART接口功能及应用开发6.5.1S3C444B0XUART概述S3C44B0X的UART单元提供两个独立的异步串行I/O口((AsynchronousSerialI/O,SIO)),每个通信口均可工作于中断和或DMA模式。也即UART能产生内部中断请求或DMA请求,在CPU和串行I/O口之间传送数据。它支持高达115.2Kbps的传输速率,每一个UART通道包含了两个16位的分别用于接收和发送信号的FIFO(先进先出)通道。S3C44B0X的UART单元特性包括:波特率可编程基于DMA或中断操作的RxD0、RxD1、TxD0、TxD1;UART通道0支持红外发送与接收;UART通道1支持红外发送与接收;支持握手方式传输与发送。6.5.1S3C444B0XUART概述S3C44B6.5.2S3C444B0XUART的操作数据传输数据接收自动流控制AFC(AutoFlowControl)非自动流控制(nRTS和nCTS由S/W所控制)中断/DMA请求的产生UART错误状态FIFO波特率的产生回环(Loop-back)模式红外模式6.5.2S3C444B0XUART的操作数据传输6.5.3S3C444B0XUART的特殊功能寄存器在UART操作中,主要是通过对UART特殊寄存器进行设置来对UART操作进行控制。UART的特殊功能寄存器包括UART的控制寄存器、状态寄存器、保持寄存器、波特率分频寄存器等等。6.5.3S3C444B0XUART的特殊功能寄存器6.5.4S3C444B0XUART应用编程6.5.4S3C444B0XUART应用编程基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.6S3C44B0X中断控制器功能及应用开发6.6.1S3C444B0X中断概述6.6.2S3C444B0X中断控制器的操作6.6.3S3C444B0X中断源6.6.4S3C444B0X矢量中断模式(仅针对IRQ)6.6.5S3C444B0X矢量中断模式的程序举例6.6.6S3C444B0X中断控制器的特殊功能寄存器6.6.7S3C444B0X中断控制器应用编程6.6S3C44B0X中断控制器功能及应用开发6.6.16.6.1S3C444B0X中断概述S3C44B0X的中断控制器可以接受接收来自30个中断源的中断请求。这些中断源来自DMA、UART、SIO等这样的芯片内部外围或接口芯片的外部引脚。在这些中断源中,有4个外部中断(EINT4/5/6/7)是逻辑或的关系,它们共用一条中断请求线。UART0和UART1的错误中断也是逻辑或的关系。中断控制器的任务是在片内外围和外部中断源组成的多重中断发生时,经过优先级判断选择其中一个中断通过FIQ或IRQ向ARM7TDMI内核发出FIQ或IRQ中断请求。实际上最初ARM7TDMI内核只有FIQ(快速中断请求)和IRQ(通用中断请求)两种中断,其它中断都是各个芯片厂家在设计芯片时定义的,这些中断根据中断的优先级高低来进行处理。例如,如果你定义所有的中断源为IRQ中断(通过中断模式设置),当同时有10个中断发出请求时,可以通过读中断优先级寄存器来确定哪一个中断将被优先执行。一般的中断模式在进入所需的服务程序前需要很长的中断反应时间,为了解决这个问题,S3C44B0X提供了一种新的中断模式叫做矢量中断模式,它具有CISC结构微控制器的特征,能够减少中断反应时间。换句话说S3C44B0X的中断控制器硬件本身直接提供了对矢量中断服务的支持。6.6.1S3C444B0X中断概述S3C44B0X的6.6.2S3C444B0X中断控制器的操作程序状态寄存器的F位和I位如果CPSR程序状态寄存器的F位被设置为1,那么CPU将不接受接收来自中断控制器的FIQ(快速中断请求);如果CPSR程序状态寄存器的I位被设置为1,那么CPU将不接受接收来自中断控制器的IRQ(中断请求)。因此,为了使能FIQ和IRQ,必须先将CPSR程序状态寄存器的F位和I位清零,并且中断屏蔽寄存器INTMSK中相应的位也要清零。中断模式(INTMOD)ARM7TDMI提供了2种中断模式:FIQ模式和IRQ模式。所有的中断源在中断请求时都要确定使用哪一种中断模式。6.6.2S3C444B0X中断控制器的操作程序状态寄中断挂起寄存器(INTPND)用于指示对应的中断是否被激活。当中断挂起位被设置时,只要相应的标志I或标志F被清零,相应的中断服务程序都将会被执行。中断挂起寄存器是只读寄存器,所以在中断服务程序中必须加入对I_ISPC和F_ISPC写1的操作来清除挂起条件。中断屏蔽寄存器(INTMSK)当INTMSK寄存器的屏蔽位为1时,对应的中断被禁止;当INTMSK寄存器的屏蔽位为0时,则对应的中断正常执行。如果一个中断的屏蔽位为1,在该中断发出请求时挂起位还是会被设置为1。如果中断屏蔽寄存器的全局屏蔽位(globalbit)设置为1,那么在中断发出请求时相应的中断挂起位会被设置,但所有的中断请求都不被执行。中断挂起寄存器(INTPND)6.6.3S3C444B0X中断源在30个中断源中,对于中断控制器来说有26个中断源是单独的,4个外部中断(EINT4/5/6/7)是逻辑或的关系,它们共用同一个中断源,另外两个UART错误中断(UERROR0/1)也是共用同一个中断控制器。6.6.3S3C444B0X中断源6.6.4S3C444B0X矢量中断模式(仅针对IRQ) S3C44B0X支持矢量中断模式,可以减少中断的反应时间。通常情况下ARM7TDMI内核收到来自中断控制器的IRQ中断请求,ARM7TDMI会在0x00000018地址处执行一条指令。但是在矢量中断模式下,当ARM7TDMI从0x00000018地址处取指令的时候,中断控制器会在数据总线上加载分支指令,这些分支指令使程序计数器能够对应到每一个中断源的向量地址。这些跳转到每一个中断源向量地址的分支指令可以由中断控制器产生。例如,假设EINT0是IRQ中断,EINT0的向量地址为0x20,所以中断控制器必须产生从0x18到0x20的分支指令。因此,中断控制器产生的机器码为0xea000000。在各个中断源对应的中断向量地址中,存放着跳转到相应中断服务程序的程序代码,在相应向量地址处分支指令的机器代码是这样计算的:6.6.4S3C444B0X矢量中断模式(仅针对IRQ矢量中断模式的指令机器代码=0xea000000+((<目标地址>-<向量地址>-0x8)>>2)例如,如果Timer0中断采用矢量中断模式,则跳转到对应中断服务程序的分支指令应该存放在向量地址0x00000060处。中断服务程序的起始地址在0x10000,下面就是计算出来放在0x60处的机器代码:机器代码@0x00000060:0xea000000+((0x10000-0x60-0x8)>>2)=0xea000000+0x3fe6=0xea003fe6通常机器代码都是反汇编后自动产生的,因此不必真正象上面这样去计算。矢量中断模式的指令机器代码=0xea000000+((<6.7.2S3C444B0X时钟电源管理器功能描述时钟发生器时钟源选择PLL(PHASE-LOCKED-LOOP锁相环)时钟控制逻辑电源管理6.7.2S3C444B0X时钟电源管理器功能描述时钟6.7.3S3C444B0X时钟发生器&电源管理特殊功能寄存器PLL控制寄存器(PLLCON)Fpllo=(m*Fin)/(p*2s)m=(MDIV+8),p=(PDIV+2),s=SDIV注意:Fpllo必须大于20Mhz,小于66Mhz。例子如果Fin=14.318Mhz,Fout=60Mhz,计算出的结果如下所示;MDIV=59,PDIV=6,SDIV=1PLL值选择向导Fpllo*2s必须小于170MHz。S的值应该尽可能的大。(Fin/p)建议等于或大于1Mhz,但必须满足(Fin/p)<2Mhz.6.7.3S3C444B0X时钟发生器&电源管理特殊功6.16基于S3C44B0的S3CEV40开发介绍6.16.1S3CEV40基本功能介绍6.16.2S3CEV40X外围接口硬件资源简介6.16基于S3C44B0的S3CEV40开发介绍6.166.16.1WL-S3C44B0基本功能介绍S3CEV40板的电源:由变压器或经由USB接PC,通过PC的5V电源供电,经稳压管输出3.3V、2.5V电压,分别给I/O口和CPU内核供电,同时设有电源指示LED.2个串口DB9,其中一个为简单接口,一个为全接线接口,可跳接RS232MODOM;一个复位开关;一个IDE接口;一个LCD;一个20针JTAG接口;一个USB接口;一个4×1键盘接口;6.16.1WL-S3C44B0基本功能介绍S3CEV44个2×20针的CPU扩展接口;一个RJ45以太网接口,支持10MBps是传输速率;一个音频信号输出口,可接双声道扬声器(SPEAKER);一块1M×16位的多功能(Multy-purpose)Flash;一块4×1M×16位SDRM;支持IICBUS的4Kbit的串行EEPROMS;4个2×20针的CPU扩展接口;6.16.2WL-S3C44B0外围接口硬件资源简介片选信号设置6.16.2WL-S3C44B0外围接口硬件资源简介片选信二.外围地址空间分配二.外围地址空间分配三.44B0XI/O口分配及结构、地址。PortA:PCONA 地址: 0x01D20000PDATA 地址: 0x01D20004PCONA 复位值:0x1FF三.44B0XI/O口分配及结构、地址。PCONA 地PortB:PCONB 地址: 0x01D20008PDATB 地址: 0x01D2000CPCONB 复位值:0x04FPortB:PCONB 地址: 0x01D20008PortCPCONC 地址: 0x01D20010PDATC 地址: 0x01D20014PUPC 地址: 0x01D20018PCONC 复位值:0x0FF0FFFFPortCPCONC 地址: 0x01D20010PortDPCOND 地址: 0x01D2001CPDATD 地址: 0x01D20020PUPD 地址: 0x01D20024PCOND 复位值:0xAAAAPortDPCOND 地址: 0x01D2001CPortEPCONE 地址: 0x01D20028PDATE 地址: 0x01D2002CPUPE 地址: 0x01D20030PCONE 复位值:0x25529PortEPCONE 地址: 0x01D20028PortFPCONF 地址: 0x01D20034PDATF 地址: 0x01D20038PUPF 地址: 0x01D2003CPCONF 复位值:0x09256APortFPCONF 地址: 0x01D20034PortGPCONG 地址: 0x01D20040PDATG 地址: 0x01D20044PUPG 地址: 0x01D20048PCONG 复位值:0x5FFFPortGPCONG 地址: 0x01D200406.17S3C44B0启动程序设计本节详细讲述S3C44B0启动程序设计。
6.17S3C44B0启动程序设计本节详细讲述S3C44B
下面的代码是S3C44B0的启动程序源代码及其解释,为节省篇幅,部分相似的中断入口定义和函数宏定义被省略,省略部分以……代替并加上了注释,读者如果要使用下面的源代码作为启动程序必须自行添加省略部分。
#***************************************************************** #文件名:INIT.S #说明:S3c44B0启动文件 * #***************************************************************** 下面的代码是S3C44B0的启动程序源代码及其 #==========================================================#寄存器定义及其位定义 #========================================================== .equ INTMSK, 0x01e0000c .equ WTCON, 0x01d30000 .equ CLKCON, 0x01d80004 .equ LOCKTIME, 0x01d8000c .equ FIQMODE, 0x11 .equ IRQMODE, 0x12 .equ SVCMODE, 0x13 .equ ABORTMODE, 0x17 .equ UNDEFMODE, 0x1b .equ MODEMASK, 0x1f .equ NOINT, 0xc0 #============================#================================================== #中断处理宏 #==================================================.macroHANDLERHandleLabelsub sp,sp,#4 @栈空间递减保存跳转地址stmfdsp!,{r0} @保存工作寄存器r0到栈ldr r0,=\HandleLabel @载入中断入口地址所在位置到r0ldr r0,[r0] @载入中断入口地址到r0str r0,[sp,#4] @保存中断入口地址到栈ldmfdsp!,{r0,pc} @恢复工作寄存器并跳转到中断函数.endm#==========================================================#=============================#设置ARM7中断和异常向量#==========================================================ENTRY:b ResetHandler @S3C44B0复位后从此处执行b HandlerUndef @未定义异常向量b HandlerSWI @软中断向量b HandlerPabort @取指异常向量b HandlerDabort @取数据异常向量b . @保留b HandlerIRQ @中断向量b HandlerFIQ @快速中断向量#==========================================================#设置ARM7中断和异常向量 #设置44B0中断向量表 #========================================================== VECTOR_BRANCH: ldrpc,=HandlerEINT0 @mGAH/Winterrupt vectortable ldrpc,=HandlerEINT1 @ …… @省略 ldrpc,=HandlerADC @mGKB …… @省略 b.#==========================================================#中断向量处理宏 #设置44B0中断向量表#========================================================== HandlerFIQ: HANDLERHandleFIQHandlerIRQ: HANDLERHandleIRQHandlerUndef: HANDLERHandleUndefHandlerSWI: HANDLERHandleSWIHandlerDabort: HANDLERHandleDabortHandlerPabort: HANDLERHandlePabortHandlerADC: HANDLERHandleADC …… @省略HandlerEINT1: HANDLERHandleEINT1HandlerEINT0: HANDLERHandleEINT0#=============================#========================================================== #中断向量处理宏#==========================================================ResetHandler:ldr r0,=WTCON @看门狗禁止ldr r1,=0x0 str r1,[r0]ldr r0,=INTMSKldr r1,=0x07ffffff @所有中断禁止str r1,[r0] #==================================================#=============================#设置时钟控制控制器 #==================================================ldr r0,=LOCKTIMEldr r1,=0xfffstr r1,[r0]ldr r0,=CLKCON ldr r1,=0x7ff8 @所有模块的时钟开启str r1,[r0] #================================================== #设置存储区控制器 #==================================================ldr r0,=SMRDATAldmiar0,{r1-r13}ldr r0,=0x01c80000stmiar0,{r1-r13} #==================================================#设置时钟控制控制器#初始化栈空间 #==================================================ldr sp,=SVCStack @切换到超级用户栈空间bl InitStacks #================================================== #引入外部符号,符号定义在链接脚本文件中 #================================================== .externImage_RO_Limit @只读区域大小.externImage_RW_Base@可读写存储区域起始地址.externImage_ZI_Base @清零区域起始地址.externImage_ZI_Limit @清零区域大小#初始化栈空间#================================================== #初始化C代码需要使用的存储区 #================================================== LDRr0,=Image_RO_Limit @获取只读区域大小 LDRr1,=Image_RW_Base @获取可读写区域起始地址 LDRr3,=Image_ZI_Base @获取清零区域起始地址 CMPr0,r1@比较只读区域和可读写区域是否重叠 BEQLOOP1LOOP0: CMPr1,r3@拷贝程序中.data数据段内容到读写区域LDRCCr2,[r0],#4STRCCr2,[r1],#4BCCLOOP0LOOP1:LDRr1,=Image_ZI_Limit @从清零区域顶部开始MOVr2,#0#=============================LOOP2: CMPr3,r1 @清零 STRCCr2,[r3],#4 BCCLOOP2 #=========================== #进入C语言程序入口 #===========================#.extern__main#BL__main#==========================================================#初始化栈空间的函数#==========================================================LOOP2:InitStacks:mrs r0,cpsrbic r0,r0,#MODEMASKorr r1,r0,#UNDEFMODE|NOINTmsr cpsr_cxsf,r1 ldr sp,=UndefStack @设置未定义异常栈空间
orr r1,r0,#ABORTMODE|NOINTmsr cpsr_cxsf,r1 ldr sp,=AbortStack @设置异常栈空间orr r1,r0,#IRQMODE|NOINTmsr cpsr_cxsf,r1 ldr sp,=IRQStack @设置中断栈空间InitStacks:orr r1,r0,#FIQMODE|NOINTmsr cpsr_cxsf,r1 ldr sp,=FIQStack @设置快速中断栈空间bic r0,r0,#MODEMASK|NOINTorr r1,r0,#SVCMODEmsr cpsr_cxsf,r1ldr sp,=SVCStack @设置超级用户栈空间mov pc,lr @函数返回
#==========================================================#存储区相关寄存器设置值#====================================================orr r1,r0,#FIQMODE|NOINSMRDATA: .long0x11110101 @存储区访问宽度控制寄存器 .long0x00000600 @BANK0控制寄存器 .long0x00007FFC @BANK1控制寄存器 .long0x00007FFC @BANK2控制寄存器 .long0x00007FFC @BANK3控制寄存器 .long0x00007FFC @BANK4控制寄存器 .long0x00007FFC @BANK5控制寄存器 .long0x00018000 @BANK6控制寄存器 .long0x00018000 @BANK7控制寄存器 .long0x00860459 @SDRAM刷新控制寄存器 .long0x10 @SDRAM存储区大小 .long0x20 @BANK6SDRAM模式寄存器 .long0x20 @BANK7SDRAM模式寄存器SMRDATA:equ STARTADDRESS, 0xc7fff00#==========================================================#栈空间定义#==========================================================.equ UserStack, STARTADDRESS-0x500 @c1(c7)ffa00.equ SVCStack, STARTADDRESS-0x500+256 @c1(c7)ffb00.equ UndefStack, STARTADDRESS-0x500+256*2 @c1(c7)ffc00.equ AbortStack, STARTADDRESS-0x500+256*3 @c1(c7)ffd00.equ IRQStack, STARTADDRESS-0x500+256*4 @c1(c7)ffe00.equ FIQStack, STARTADDRESS-0x500+256*5 @c1(c7)fff00#=========================================================equ STARTADDRESS, 0xc7fff00#ARM中断向量入口定义#==========================================================.equ HandleReset, STARTADDRESS.equ HandleUndef, STARTADDRESS+4.equ HandleSWI, STARTADDRESS+4*2.equ HandlePabort, STARTADDRESS+4*3.equ HandleDabort, STARTADDRESS+4*4.equ HandleReserved, STARTADDRESS+4*5.equ HandleIRQ, STARTADDRESS+4*6.equ HandleFIQ, STARTADDRESS+4*7#==========================================================#ARM中断向量入口定义#S3C44B0中断向量入口定义#==========================================================.equ HandleADC, STARTADDRESS+4*8…… @省略.equ HandleEINT4567, STARTADDRESS+4*29.equ HandleEINT3, STARTADDRESS+4*30.equ HandleEINT2, STARTADDRESS+4*31.equ HandleEINT1, STARTADDRESS+4*32.equ HandleEINT0, STARTADDRESS+4*33 @0xc1(c7)f#S3C44B0中断向量入口定义第六章 基于S3C44B0X嵌入式系统应用开发实例6.1S3C44B0X处理器介绍6.2S3C44B0X存储控制器功能及应用开发6.3S3C44B0XI/O端口功能及应用开发6.5S3C44B0XUART接口功能及应用开发6.6S3C44B0X中断控制器功能及应用开发6.16基于S3C44B0X的S3CEV40开发介绍第六章 基于S3C44B0X嵌入式系统应用开发实例6.1S6.1S3C44B0X处理器介绍6.1.1SamsungS3C44B0X简介6.1.2SamsungS3C44B0X特点6.1.3S3C44B0X功能结构框图6.1.4S3C44B0X引脚信号描述6.1S3C44B0X处理器介绍6.1.1Samsung6.1.1SamsungS3C44B0X简介SamsungS3C44B0X微处理器片内集成ARM7TDMI核,采用0.25μmCMOS工艺制造,并在ARM7TDMI核基本功能的基础上集成了丰富的外围功能模块,便于低成本设计嵌入式应用系统。片上集成的主要功能如下:片上在ARM7TDMI基础上增加8KB的Cache;外部扩充存储器控制器(FP/EDO/SDRAM控制,片选逻辑);LCD控制器(最大支持256色的DSTN),并带有1个LCD专用DMA通道;2个通用DMA通道/2个带外部请求管脚的DMA通道;2个带有握手协议的UART,1个SIO;6.1.1SamsungS3C44B0X简介1个多主的IIC总线控制器;1个IIS总线控制器;5个PWM定时器及1个内部定时器;看门狗定时器;71个通用可编程I/O口,8个外部中断源;功耗控制模式:正常、低、休眠和停止;8路10位ADC;具有日历功能的RTC(实时时钟);片上集成PLL时钟发生器。1个多主的IIC总线控制器;6.1.2SamsungS3C44B0X特点一、S3C44B0X体系结构S3C44B0X是基于ARM7TDMI的体系结构,ARM7TDMI是ARM公司最早为业界普遍认可且赢得了最为广泛的应用的处理器核。6.1.2SamsungS3C44B0X特点一、S3C4二、系统(存储)管理支持大、小端模式(通过外部引脚来选择);地址空间:包含8个地址空间,每个地址空间的大小为32M字节,总共有256M字节的地址空间;所有地址空间都可以通过编程设置为8位、16位或32位宽数据对准访问;8个地址空间中,6个地址空间可以用于ROM、SRAM等存储器,2个用于ROM、SRAM、FP/EDO/SDRAM等存储器;7个起始地址固定及大小可编程的地址空间;1个起始地址及大小可变的地址空间;所有存储器空间的访问周期都可以通过编程配置;提供外部扩展总线的等待周期;在低功耗的情况下支持DRAM/SDARM自动刷新;支持地址对称或非地址对称的DRAM。二、系统(存储)管理三、Cache和片内SRAM4路组相联统一的8KB指令/数据Cache;未作为Cache使用的0/4/8KbytesCache存储空间可作为片内SRAM使用;Cache伪LRU(最近最少使用)的替换算法;通过在主内存和缓冲区内容之间保持一致的方式写内存;具有四级深度的写缓冲;当缓冲区出错时,请求数据填充。三、Cache和片内SRAM四、时钟和功耗管理低功耗;片上PLL使得MCU的工作时钟最高为66MHz;时钟可以通过软件选择性地反馈回每个功能块;功耗管理模式为:正常模式:正常运行模式;低速模式:不带PLL的低频时钟;休眠模式:只使CPU的时钟停止;停止模式:所有时钟都停止。EINT[7:0]或RTC警告中断可使功耗管理从停止模式中唤醒。四、时钟和功耗管理五、中断控制器30个中断源(1个看门狗定时器中断,6个定时器中断,6个UART中断,8个外部中断,4个DMA中断,2个RTC中断,1个ADC中断,1个IIC中断,1个SIO中断);矢量IRQ中断模式减少中断响应周期;外部中断源的电平/边沿模式;可编程的电平/边沿极性;支持紧急中断请求的FIQ(快速中断请求)。五、中断控制器六、带PWM的定时器(脉宽可调制)5个16位带PWM的定时器,1个16位基于DMA或基于中断的内部定时器;可编程的工作周期、频率和极性;死区(Dead-zone)产生器;支持外部时钟源。六、带PWM的定时器(脉宽可调制)七、实时时钟RTC全时钟特点:毫秒、秒、分、时、天、星期、月、年;运行于32.768KHz;CPU唤醒的警告中断;时间滴答(Timetick)中断。八、通用输入/输出端口8个外部中断端口;71个(多功能)复用输入/输出口。七、实时时钟RTC九、UART2个基于DMA或基于中断的UART;支持5位、6位、7位、8位串行数据传送/接收;在传送/接收时支持硬件握手;波特率可编程;支持IrDA1.0(115.2kbps);用于回环测试模式;每个通道有2个用于接收和发送的内部32字节FIFO。九、UART十、DMA控制器2路通用的无CPU干涉的DMA控制器;2路桥式DMA(外设DMA)控制器;支持I/O到内存、内存到IO、IO到IO的桥式DMA传送,有6种DMA请求方式:软件、4个内部功能块(UART、SIO、实时器、IIS)和外部管脚;DMA之间优先级次序可编程;突发传送模式提高了FPDRAM、EDODRAM和SDRAM的传送率;支持内存到外围设备的fly-by模式和外围设备到内存的传送模式。十、DMA控制器十一、A/D转换8通道多路ADC;最大转换速率100KSPS/10位。十二、LCD控制器支持彩色/单色/灰度LCD;支持单扫描和双扫描显示;支持虚拟显示功能;系统内存可作为显示内存;专用DMA用于从系统内存中提取图像数据;可编程屏幕大小;灰度:16级;彩色模式:256色。十一、A/D转换十三、看门狗定时器16位看门狗定时器;定时中断请求或系统超时复位。十四、IIC总线接口1个基于中断操作的多主的IIC总线;8位双向串行数据传送器能够工作于100Kbps的标准模式和400Kbps的快速模式。十五、IIS总线接口1路基于DMA操作的音频IIS总线接口;每通道8/16位串行数据传送;支持MSB可调整的数据格式。十三、看门狗定时器
十六、SIO(同步串行I/0)1路基于DMA或基于中断的SIO;波特率可编程;支持8位SIO的串行数据传送/接收操作。十七、操作电压范围内核:2.5V; I/O:3.0V~3.6V。
十八、运行频率最高达66MHz。
十九、封装160LQFP/160FBGA。十六、SIO(同步串行I/0)6.1.3S3C44B0X功能结构框图S3C44B0X的体系结构的功能框图如图6-1所示。图6-1S3C44B0微处理器体系结构框图6.1.3S3C44B0X功能结构框图6.1.4S3C44B0X引脚信号描述S3C44B0X引脚按以下几种功能详细列表描述信号功能。6.1.4S3C44B0X引脚信号描述S3一、总线控制信号S3C44B0的X总线控制信号的引脚一、总线控制信号S3C44B0的X总线控制信号的引脚二、DRAM/SDRAM/SRAM
二、DRAM/SDRAM/SRAM三、LCD控制信号
三、LCD控制信号四、TIMER/PWM控制信号
四、TIMER/PWM控制信号五、中断控制信号
五、中断控制信号六、DMA控制信号的引脚
六、DMA控制信号的引脚6.2S3C44B0X存储控制器功能及应用开发6.2.1S3C44B0X存储控制器概6.2.2S3C44B0X存储器空间划分简述6.2.3S3C44B0X存储控制器功能描述6.2.4S3C44B0X存储控制器的特殊功能 寄存器6.2.5S3C44B0X存储器应用编程6.2S3C44B0X存储控制器功能及应用开发6.2.16.2.1S3C44B0X存储控制器概 在基于ARM核的嵌入式应用系统中可能包含多种类型的存储器件,如Flash、ROM、SRAM和SDRAM等。而且不同类型的存储器件要求不同的速度、数据宽度等,为了实现对这些不同速度、类型、总线宽度的存储器进行管理,存储器管理控制器是必不可少的。在基于S3C44B0X处理器的嵌入式系统开发中,也是通过存储控制器为片外存储器访问提供必要的控制信号,管理片外存储部件。6.2.1S3C44B0X存储控制器概 在基于ARM核的6.2.2S3C44B0X存储器空间划分简述特殊功能寄存器位于0x01C00000到0x02000000的4M空间内;Bank0-Bank5的起始地址和空间大小都是固定的;Bank6的起始地址是固定的,空间可以配置为2/4/8/16/32M。参考表6-16可访问区域4M特殊功能寄存器Bank7的空间大小和Bank6一样是可变的,也可以配置为2/4/8/16/32M。6.2.2S3C44B0X存储器空间划分简述特殊功能寄存6.2.3S3C44B0X存储控制器功能描述6.2.3S3C44B0X存储控制器功能描述基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.2.4S3C44B0X存储控制器的特殊功能寄存器6.2.4S3C44B0X存储控制器的特殊功能寄存器6.2.5S3C44B0X存储器应用编程 下面给出了存储器的几个编程实例,包括存储控制寄存器的配置、存储器的读写,通过一个简单例子,使学生对存储器的应用编程有一定的了解。6.2.5S3C44B0X存储器应用编程 下面给13个存储控制寄存器的配置示例13个存储控制寄存器的配置示例 观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布在从0x01c80000开始的连续地址空间,所以上面的程序先将各个寄存器需要配置的值从起始地址为SMRDATA的区域取出来,然后可以利用指令“stmiar0,{r1-r13}”实现将配置好的寄存器的值依次写入到相应的寄存器中,这就完成了存储器13个控制寄存器的配置。 观察上面寄存器介绍中的寄存器地址可以发现,13个寄存器分布6.3S3C44B0XI/O端口功能及应用开发6.3.1S3C444B0XI/O功能概述6.3.2S3C444B0X端口功能配置6.3.3S3C444B0X端口功能控制描述6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.5S3C444B0XI/O端口应用编程6.3S3C44B0XI/O端口功能及应用开发6.3.16.3.1S3C444B0XI/O功能概述S3C44B0X有71个通用可编程多功能输入输出引脚,可分为以下7类端口:两个9位输入输出端口(PortE和PortF);两个8位输入输出端口(PortD和PortG);一个16位输入输出端口(PortC);一个10位输出端口(PortA);一个11位的输出端口(PortB)。6.3.1S3C444B0XI/O功能概述S3C6.3.2S3C444B0X端口功能配置每个端口都可以通过软件设置来满足各种各样的系统设置和设计要求。每个端口的功能通常都要在主程序开始前被定义。如果一个引脚的多功能没有使用,那么这个引脚将被设置为I/O端口。在引脚配置以前,需要对引脚的初始化状态进行设定来避免一些问题的出现。6.3.2S3C444B0X端口功能配置6.2.3S3C44B0X存储控制器功能描述I/O端口的各种功能主要是通过对端口各个寄存器进行设置而实现的,下面通过对各个寄存器的说明来分别介绍I/O端口所能完成的功能。端口配置寄存器(PCONA-G):在S3C44B0X里,大多数的引脚都是多功能引脚。因此,应当为每个引脚选择功能。端口控制寄存器(PCONn)决定了每一个引脚的功能。如果PG0-PG7在掉电模式下被用做唤醒信号,则在中断模式里这些端口必须被设定。端口数据寄存器(PDATA-G):如果这些端口被设定为输出端口,输出数据可以被写入到PDATn的相应的位;如果被设定为输入端口,输入数据可以被读到PDATn的相应的位。端口上拉寄存器(PUPC-G):端口上拉寄存器控制着每一个端口组的上拉寄存器的使能端。当相应的位被设为0时,引脚接上拉电阻;当相应的位为1时,引脚不接上拉电阻。6.2.3S3C44B0X存储控制器功能描述I/O端口的特殊的上拉电阻控制寄存器(SPUCR)数据线D[15:0]引脚的上拉电阻能够通过SPUPCR寄存器控制。在STOP/SL-IDLE模式里,数据线(D[31:0]或D[15:0])处于高阻状态(Hi-zstate)。由于I/O端口的特征,在STOP/SL-IDLE模式里,数据线上拉电阻可以降低功耗。D[31:16]引脚的上拉电阻能够通过PUPC寄存器来控制;D[15:0]引脚上拉电阻能够通过SPUCR寄存器来控制。在STOP模式中,为了保护存储器不出现错误功能(mal-function),存储器控制信号通过在特殊的上拉电阻控制寄存器里设置HZ@STOP区域来选择高阻状态(Hi-zstate)或先前的状态。特殊的上拉电阻控制寄存器(SPUCR)外部中断控制寄存器:8个外部中断可以用各种信号所请求。外部中断寄存器为外部中断设置了信号触发方法选择位,也设置了触发信号的极性选择位。外部中断请求信号触发的方法有以下几种:低电平触发、高电平触发、下降沿触发、上升沿触发、双沿触发。 8个外部中断寄存器的具体设置情况请详见I/O的特殊功能寄存器。 因为每个外部中断引脚都有一个数字滤波器,这让中断控制器能够识别长于3个时钟周期的请求信号。外部中断控制寄存器:外部中断挂起寄存器(EXTINTPND) 外部中断请求(4/5/6/7)对于中断控制器来说是“或”的关系。EINT4、EINT5、EINT6、EINT7共享在中断控制器里同一个中断请求队列。如果外部中断请求的4位中的任何一位被激活的话,那么EXTINPNDn将会被设置为1。外部挂起条件清除以后,中断服务程序必须清除中断挂起状态。通过EXTINPND对应位写1来清除挂起条件。外部中断挂起寄存器(EXTINTPND)6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.4S3C444B0XI/O端口的特殊功能寄存器6.3.5S3C444B0XI/O端口应用编程6.3.5S3C444B0XI/O端口应用编程基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.5S3C44B0XUART接口功能及应用开发6.5.1S3C444B0XUART概述6.5.2S3C444B0XUART的操作6.5.3S3C444B0XUART的特殊功能寄存器6.5.4S3C444B0XUART应用编程6.5S3C44B0XUART接口功能及应用开发6.5.1S3C444B0XUART概述S3C44B0X的UART单元提供两个独立的异步串行I/O口((AsynchronousSerialI/O,SIO)),每个通信口均可工作于中断和或DMA模式。也即UART能产生内部中断请求或DMA请求,在CPU和串行I/O口之间传送数据。它支持高达115.2Kbps的传输速率,每一个UART通道包含了两个16位的分别用于接收和发送信号的FIFO(先进先出)通道。S3C44B0X的UART单元特性包括:波特率可编程基于DMA或中断操作的RxD0、RxD1、TxD0、TxD1;UART通道0支持红外发送与接收;UART通道1支持红外发送与接收;支持握手方式传输与发送。6.5.1S3C444B0XUART概述S3C44B6.5.2S3C444B0XUART的操作数据传输数据接收自动流控制AFC(AutoFlowControl)非自动流控制(nRTS和nCTS由S/W所控制)中断/DMA请求的产生UART错误状态FIFO波特率的产生回环(Loop-back)模式红外模式6.5.2S3C444B0XUART的操作数据传输6.5.3S3C444B0XUART的特殊功能寄存器在UART操作中,主要是通过对UART特殊寄存器进行设置来对UART操作进行控制。UART的特殊功能寄存器包括UART的控制寄存器、状态寄存器、保持寄存器、波特率分频寄存器等等。6.5.3S3C444B0XUART的特殊功能寄存器6.5.4S3C444B0XUART应用编程6.5.4S3C444B0XUART应用编程基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)基于SCBX嵌入式系统应用开发实例(中嵌教育嵌入式linux开发课件)(阅读)6.6S3C44B0X中断控制器功能及应用开发6.6.1S3C444B0X中断概述6.6.2S3C444B0X中断控制器的操作6.6.3S3C444B0X中断源6.6.4S3C444B0X矢量中断模式(仅针对IRQ)6.6.5S3C444B0X矢量中断模式的程序举例6.6.6S3C444B0X中断控制器的特殊功能寄存器6.6.7S3C444B0X中断控制器应用编程6.6S3C44B0X中断控制器功能及应用开发6.6.16.6.1S3C444B0X中断概述S3C44B0X的中断控制器可以接受接收来自30个中断源的中断请求。这些中断源来自DMA、UART、SIO等这样的芯片内部外围或接口芯片的外部引脚。在这些中断源中,有4个外部中断(EINT4/5/6/7)是逻辑或的关系,它们共用一条中断请求线。UART0和UART1的错误中断也是逻辑或的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年山东济南一中高一下学期期中化学试题含答案
- 2024-2025学年江苏百校联考高一下学期5月检测历史试题含答案
- 肝癌合并腔静脉癌栓手术护理
- 新生儿水肿的护理课件
- 胃癌病人护理专项考试试题
- 肿瘤二科用药错误防范与处理考核试题
- 2026年工业数据分析算法的轻量化部署与边缘计算融合实践
- 2026年心理咨询师认证培训协议
- 2025年AI驱动的产品设计企业定制服务
- 工地值班协议书
- 《经络与腧穴》课件-足太阳膀胱经
- 学位英语4000词(开放大学)
- GB/T 9799-2024金属及其他无机覆盖层钢铁上经过处理的锌电镀层
- DZ∕T 0348-2020 矿产地质勘查规范 菱镁矿、白云岩(正式版)
- 儿童慢性咳嗽的诊治指南
- 产品漏装改善报告
- 悬挑式卸料平台监理实施细则
- 铸件(原材料)材质报告
- 提货申请单表
- 脑与认知科学概论PPT(第2版)完整全套教学课件
- 【初中化学】中国化学家-李寿恒
评论
0/150
提交评论