Class+06-2+S3C2440+Interrupt+Controller+Programming
- 格式:ppt
- 大小:2.60 MB
- 文档页数:39


中断详解1、S3C2440官方手册最权威:手册是最芯片IP开发者最直接的描述,最准确;但对英文阅读能力要求高、因详细而繁杂;适合参考和深入研究;另外参考网上相关短文较容易入门,并短文是有套路的:基本是围绕几个较优秀的文章(优秀短文要多研读几遍理解透作者的每个心思)。
2、支持60个中断源:S3C2440中断控制器总共支持60个中断源(内部外设和外部管脚):详细数下表中Descriptions中的中断源个数正好60;子中断源分解如下:注:INT_LCD也有两个中断但没有包含在子中断源寄存器中3、一种中断源分类方法:1、独立的外部中断源(EINT0-EINT3):4个;2、合并的外部中断源(EINT4-EINT23):20个,合并后对应EINT4_7和EINT8_23;注意:对应的相关寄存器在IO模块中,手册中的做法有点特殊;3、带子中断的内部中断源:15个中断源,体现为6个bit(INT_WDT_AC97/ INT_CAM/ INT_ADC/ INT_UART2/ INT_UART1/ INT_UART0);4、不带子中断的内部中断源:21个;注意:INT_LCD实际对应两个中断源但是没有作为带子中断的内部中断源(如下图手册中有提到,TMD隐蔽!);综上理解中断过程可以总结为:4、中断优先级解析:优秀的SOC对外设中断的处理都比较用心,基本能照顾到用户的各种场景,和LPC2292以及作者工作期间参与开发的一款SOC相比,作者经历到的三款SOC对中断的处理各有千秋(原谅不细说,因为没有必要);可以总结为易用和特性的平衡,如果极特殊的场景下的实时性得不到满足,那就换个SOC 呗!没有必要使用一款SOC打遍天下,也不可能,而且厂家也没有强迫你呀!言归正传:S3C2440A支持60种中断,多个硬件可能同时产生中断请求,由于CPU只能处理一个中断,中断控制器怎么选择出一个最佳的中断,交给ARM内核进行处理呢?中断控制器采用优先级仲裁比较的方式进行选择,找出优先级最高的中断源。
USB 概述及S3C2440 USB DEVICEUSB 概述USB 主要用于中速和低速的外设。
USB 通过PCI 总线和PC 机的内部系统数据线连接,实现数据的传送。
USB 的网络协议中规定每个USB的系统有且仅有一个HOST。
USB2.0 协议的理论速度是480Mb/s ,现在的USB3.0 协议理论速度能到达4Gb/s。
主要特点:支持即插即用,传输速度快,连接便利,独立供电,低本钱;USB 使用一个4 针插头作为标准插头,通过这个标准插头,承受菊花链形式可以把多达127 个的USB 外设连接起来,全部的外设通过协议来共享USB 的带宽。
组成:USB 标准中将USB 分为五个局部:掌握器、掌握器驱动程序、USB 芯片驱动程序、USB 设备以及针对不同USB 设备的客户驱动程序。
掌握器〔Host Controller〕,主要负责执行由掌握器驱动程序发出的命令,如位于PC 主板的USB 掌握芯片。
掌握器驱动程序(Host Controller Driver) ,在掌握器与USB 设备之间建立通信信道,一般由操作系统或掌握器厂商供给。
USB 芯片驱动程序(USB Driver),供给对USB 芯片的支持,设备上的固件。
USB 设备(USB Device),包括与PC 相连的USB 外围设备。
设备驱动程序(Client Driver Software),驱动USB 设备的程序,一般由USB 设备制造商供给。
传输方式:每次传输会分解成假设干个数据包在USB 总线上传输。
每次传输必需经受两个或三个局部,第一局部是USB 掌握器向USB 设备发出命令,其次局部是USB 掌握器和USB 设备之间传递读写恳求,其方向主要看第一局部的命令式读还是写,其次局部有时可以没有。
第三局部是握手信号。
1.掌握传输方式:负责向USB 设置一些掌握信息,传送这种事务的管道是掌握管道。
在每个USB 设备中都会有掌握管道,也就是说掌握管道在USB 设备中是必需的。
第二章处理器工作模式2.1概述S3C2440采用了非常先进的ARM920T内核,它是由ARM(Advanced RISC Machines) 公司研制的。
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对存储的字,可以按照小端或大端的方式对待。
大端格式:在这种格式中,字数据的高字节存储在低地址中,而字数据的低字节则存放2.4 指令长度指令可以是32位长度(在ARM状态下) 或16位长度(在THUMB状态) 。
数据类型ARM920T支持字节(8位),半字(16位) 和字(32位) 数据类型。
字必须按照4字节对齐,半字必须是2字节对齐。
2.5 操作模式ARM920T支持7种操作模式:● 用户模式(user模式),运行应用的普通模式● 快速中断模式(fiq模式),用于支持数据传输或通道处理● 中断模式(irq模式),用于普通中断处理● 超级用户模式(svc模式),操作系统的保护模式● 异常中断模式(abt模式),输入数据后登入或预取异常中断指令● 系统模式(sys模式),使操作系统使用的一个有特权的用户模式● 未定义模式(und模式),执行了未定义指令时进入该模式]外部中断,异常操作或软件控制都可以改变中断模式。