2

关于投票
ARM的中断处理过程

1.   首先就是知道ARM状态下的通用寄存器和程序计数器,绿颜色的就是相应模式下的私有寄存器。就是说程序一般运行在系统和用户模式下,使用的是系统和用户模式下的通用寄存器,当有异常发生时,比如FIQ,那么系统将切换到FIQ模式下,相应的就会采用FIQ模式下的寄存器,其中绿颜色的就是只在FIQ模式下才会用到的寄存器。

2.   在模式切换的过程中,要保护系统和用户模式下的通用寄存器状态,以便在异常处理完成之后程序能正常返回。因为FIQ模式下R8-R14为其私有寄存器,所以切换的过程中,系统和用户模式下的通用寄存器的R8-R14就不用保护了,所以减少了对寄存器存取的需要,从而可以快速的进行FIQ处理,故称为FIQ


3. 异常处理的动作。当然这都是内核自己干的。以FIQ为例。
当系统进入
FIQ模式时
第一,将原来执行程序的下一条指令地址保存到
LR中,就是将R14保存到R14_fiq里面。
第二,拷贝CPSRSPSR_fiq
第三,改变
CPSR模式位的值,改到FIQ模式。
第四,改变
PC值,将其指向异常处理向量所指的下一条指令。
离开异常处理的时候
第一,将
LRR14_fiq)赋给PC
第二,将
SPSRSPSR_fiq)拷贝到CPSR
第三,清除中断禁止标志(如果开始时置位了)。


4异常中断向量
异常中断的向量地址
地址
                  异常中断类型             入口时处理器的操作模式
0x00000000        复位               超级用户
0x00000004        未定义指令         未定义
0x00000008        软件中断           超级用户
0x0000000c        中止(预取指)     中止
0x00000010        中止(数据)       中止
0x00000014        保留                              保留
0x00000018        IRQ                                IRQ
0x0000001c        FIQ                                FIQ

异常中断优先级
中断                   优先级
复位
                                     最高
数据异常
   
FIQ
IRQ

预取指异常中断
未定义指令和软件中断
        最低
5当发生IRQ中断时
第一,模式进入到IRQ里面。
第二
PC跳到0x00000018处运行。因为这是IRQ的中断入口。
第三
通过0x00000018LDR  PC, IRQ_ADDR。跳转到相应的中断服务程序。这个里面就有个确定哪个中断源的问题了。那就有优先级的问题了。每个中断源会有自己的中断服务程序。
第四,得到中断源有硬件实现和软件处理两种方式。比如LPC21XX的就是利用硬件方式,为了利用向量中断控制器的优点,IRQ中断向量入口处代码做了修改,变成
        0x00000018LDR  PC, [PC, #-0xff0]
    这条指令从内存映射地址
0xfffff030处获得数据装载到PC,这样就能够直接从硬件中获得中断源。这样就减少了中断延迟。记得,三星的S3C44B0好象采用的是用软件确定中断源,因此要建立中断向量表。好久不用了,记不清了。
第五,得到中断源,就知道要跳到哪个中断服务程序去了。
    一般都是这么定义的。
Timer0_Handler  HANDLER  Timer0 。这种格式是调用一种宏定义,目的是保护现场,跳到中断服务程序。

系统分类: 嵌入式
用户分类: 基本概念
标签: ARM 中断
来源: 原创
发表评论 阅读全文(698) | 回复(1)

2

关于投票
总线

总线就是部件与部件之间传输数据的公共通道。
微机中,如按位置分类,一般有内部总线、系统总线和外部总线
内部总线是微机内部各外围芯片与处理器之间的总线,用于芯片一级的互连。
系统总线是微机中各插件板与系统板之间的总线,用于插件板一级的互连。
外部总线则是微机和外部设备之间的总线,微机作为一种设备,通过该总线和其他设备进行信息与数据交换,它用于设备一级的互连。
一、内部总线
    1
I2C总线。I2CInter-IC)总线。同步通信,主从通信中,可以有多个I2C总线器件同时接到I2C总线上,通过地址来识别通信对象。
    2
SPI总线。串行外围设备接口SPIserial peripheral interface)总线。同步串行接口。
    3
SCI总线。串行通信接口SCIserial communication interface)。通用异步通信接口UART
二、系统总线
    1
ISA总线。ISAindustrial standard architecture)总线标准。
    2
EISA总线。在ISA总线的基础上使用双层插座EISA总线完全兼容ISA总线信号。
    3
VESA总线。VESAvideo electronics standard association)总线,简称为VL(VESA local bus)总线。定义了32位数据线,使用33MHz时钟频率,最大传输率达132MB/s
    4
PCI总线。PCIperipheral component interconnect)总线。它定义了32位数据总线,且可扩展为64位。最大传输速率可达132MB/s,可同时支持多组外围设备。
    5
Compact PCI。在原来PCI总线基础上改造而来。
三、外部总线
    1
RS-232-C总线。一般用于20m以内的通信。
    2
RS-485总线。在要求通信距离为几十米到上千米时,广泛采RS-485 串行总线标准。
    3
IEEE-488总线。并行总线接口标准。最大传输距离为20米,信号传输速度一般为500KB/s,最大传输速度为1MB/s
    4
USB总线。通用串行总线USBuniversal serial bus)。快速是USB技术的突出特点。

    现场总线:现场总线是连接智能现场设备和自动化系统的数字式、双向传输、多分支结构的通信网络,它的关键标志是能支持双向、多节点、总线式的全数字通讯。 目前使用的现场总线有:
1.
基金会现场总线(Foundation Fieldbus 简称FF)。
2. CAN
Controller Area Network 控制器局域网)。
3. Lonworks

4. DeviceNet

5. PROFIBUS

6. HART (Highway Addressable Remote Transducer)

7. CC-Link
Control &Communication Link控制与通信链路系统)
8. WorldFIP

9. INTERBUS

    测量仪器总线从上世纪70年代的GPIB开始,已经经历了数代的发展。如今市场上存在着各种不同的测量仪器总线。
1. GPIB(General Purpose Interface Bus)
总线。GPIB70年代由惠普提出,然后批准成为IEEE488标准
2. VXI(VMEbus eXtensions for Instrumentation)
总线。VXI现在主要用于大型的ATE系统、航空、航天等国防军工领域。
3. PXI(PCI eXtensions for Instrumentation)
总线。199791日,NI发布了一种全新的开放性、模块化仪器总线规范——PXI
4. LXI(LAN eXtensions for Instrumentation)
总线。LXI由安捷伦科技和VXI TECHNOLOGY公司于2004年推出。
5. PCI Exrpess
PC I ExpressPCI相似。它是PCI标准的最新演进版本,相当于高速USBUSB的关系。

系统分类: 测试测量
用户分类: 基本概念
标签: 总线
来源: 整理
发表评论 阅读全文(326) | 回复(0)

2

关于投票
ARM的异常和中断处理

    异常和中断处理,负责处理错误,中断和其他由外部系统触发的事件。
        ARM
7种异常,数据中止、快速中断请求、中断请求、预取址中止、软件中断、复位及未定义指令。
        2
种类型的中断,第一类是由外设引起的,即IRQFIQ。第二类是一条引发中断的特殊指令SWI。两种中断都会挂起正常的程序执行。
   
    异常是需要中止指令正常执行的任何情形,包括
ARM内核产生复位,取指或存储器访问失败,遇到未定义指令,执行了软件中断指令,或者出现了个外部中断等。异常处理就是处理这些异常情况的方法。大多数异常都对应一个软件的异常处理程序,一个在异常发生时执行的软件程序。
    每种异常都导致内核进入一种特定的模式。每个处理器模式都有一组各自的分组寄存器,处理器模式决定了哪些寄存器是活动的以及对cpsr的完全读/写访问。同时,通过编程改变cpsr,可以进入任何ARM处理器模式。用户和系统模式,不通过异常进入,只能修改cpsr
    异常和其模式
异常                                     模式          目的                  
快速中断请求                     FIQ            快速中断请求处理       
中断请求                             IRQ           中断请求处理
SWI
和复位                         SVC           操作系统的受保护模式
预取指中止和数据中止    abort          虚存或存储器保护处理
未定义指令                       undefined  软件模拟硬件协处理器

中断是由ARM外设引起的一种特殊的异常。IRQ异常用于通常的操作系统事物处理。FIQ异常一般是为单独的中断源保留的。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。
    每个外围设备都有一条中断线连接到向量中断控制器
外设功能的中断源,一般有WDT定时器UARTI2CSPIRTCA/D等等。可以通过寄存器设置这些中断的优先级。

系统分类: 嵌入式
用户分类: 基本概念
标签: ARM的异常 中断
来源: 原创
发表评论 阅读全文(1035) | 回复(1)
总共 , 当前 /