LPC1700 第6章 嵌套向量中断控制器
- 格式:pdf
- 大小:45.84 KB
- 文档页数:4
一、引言Nvic嵌套向量中断控制器(Nested Vectored Interrupt Controller)是一种常见的中断控制器,它在嵌入式系统中扮演着重要的角色。
本文将介绍Nvic的工作原理,帮助读者更好地理解这一关键的硬件组件。
二、Nvic的基本概念Nvic是一种硬件组件,用于管理和分发系统中的中断请求。
在嵌入式系统中,当发生外部事件或者特定的处理器状态发生变化时,需要立即中断当前的程序执行,执行特定的中断服务程序。
而Nvic就是用来协调这些中断请求的,确保它们按照优先级和顺序得到正确的处理。
三、中断控制器的作用1.管理中断请求中断是在嵌入式系统中的一种重要的事件响应机制。
当外部设备(如传感器、通信接口等)产生需要处理的事件时,会向处理器发送中断请求。
而中断控制器就是负责接收、管理和分发这些中断请求的硬件组件。
2.中断优先级在一个嵌入式系统中,可能同时出现多个中断请求,此时中断控制器需要根据中断请求的优先级决定哪个中断将被优先处理。
Nvic通过优先级编码的方式,能够准确地确定中断的优先级,确保高优先级的中断能够得到及时处理。
四、Nvic的工作原理1.中断向量表Nvic通过中断向量表来实现对中断请求的管理。
中断向量表是一张表格,每个中断都有一个特定的中断向量号。
当中断控制器接收到中断请求时,根据中断向量号可以迅速定位到对应的中断服务程序的入口位置区域,从而进行中断处理。
2.中断优先级编码Nvic使用中断优先级编码的方式来确定中断的优先级。
在Nvic中,中断请求会按照其具体的中断向量号进行编码,从而确定其优先级。
当多个中断请求同时到达时,Nvic会根据优先级编码来决定哪个中断会被优先处理。
3.嵌套中断Nvic支持嵌套中断的机制,即在一个中断服务程序的执行过程中,如果遇到了更高优先级的中断请求,Nvic可以暂停当前中断服务程序的执行,转而处理更高优先级的中断请求。
这种机制可以确保高优先级的中断能够得到及时处理,提高系统的响应速度。
一文读懂LPC中的中断处理LPC中的中断处理小结近来在LPC的中断过程上看了点文献,作为一个初学者感觉这个内容与其它的处理器还是有很大的区别,比如说三星的S3C4510B,两者在中断的处理上理念是完全不同的,个人感觉LPC的要难一些,很多地方感觉上是在和ARM的规范打擦边球,下面具体说一下相关内容。
基础知识:LPC2294的EXT中断分为了三类,包括FIQ,Vectored IRQ,non-- Vectored IRQ,其中,以FIQ的优先级最高,而以non-- Vectored IRQ的优先级最低,系统一共提供了27个中断源,并且给这27个中断源进行了固定的编号,但是注意,这个编号和优先级没有任何的关系,并非是编号在前面的优先级就越高,见下面说明。
关键内容:两套控制渠道,第一套:在ARM体系中,本来有SWI,FIQ,IRQ等这些中断的定义,并且已经定义了这些中断的开关控制位,就是在CPSR寄存器中,该寄存器包含了一个I位和一个F位,I位用于控制IRQ中断的开关,F用于控制FIQ的开关,但是值得注意的是CPSR的读取和修改在用户模式下是不能完成的,必须要通过SWI指令进入到特权模式下才可以进行修改。
第二套:在LPC的SFR(特殊功能寄存器)中,也提供了一套寄存器用于控制相应的中断的进行,这组控制器叫做VIC寄存器(都以VIC开头),改组寄存器包括了所有的与中断有关的设置,开启,分类等功能,仅仅是将外部中断引脚对应的部分功能分离出去,由EXT系列的寄存器来处理,因此,对这一个系列的寄存器的掌握是非常重要的!两者间的关系:仅仅在第二套控制渠道下打开FIQ,IRQ中断是不够的,如果ARM内核没有开中断的话,整个系统就不会有中断产生,因此,常见的做法是这样:先将第二套渠道的控制内容处理好,然后通过SWI软件中断指令,将ARM 处理器的模式切换为特权模式,在特权模式下,对CPSR进行读出-修改-写回的操作,将中断打开,然后在返回到用户模式。
第一章思考与练习1、举出3个书本中未提到的嵌入式系统的例子。
答:红绿灯控制,数字空调,机顶盒2、什么叫嵌入式系统嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。
嵌入式微处理器(Embedded Microprocessor Unit, EMPU)嵌入式微控制器(Microcontroller Unit, MCU)嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP)嵌入式片上系统(System On Chip)4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。
其次,提高了开发效率,缩短了开发周期。
再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。
第二章1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。
识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。
提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。
执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,分析项目偏差,采取必要措施以实现目标。
结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。
2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。
需求风险;时间风险;资金风险;项目管理风险3、何谓系统规范?制定系统规范的目的是什么?规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。
中断控制系统学习笔记说到中断,这里先介绍和中断密切相关的一个控制器--NVIC。
嵌套向量中断控制器是Cortex_M3处理器的一个内部器件,它与CPU内核紧密耦合,共同完成对中断的响应,降低了中断延时,使得最新发生的中断可以得到高效处理。
嵌套向量中断控制器与内核的关系如图4.33所示,所有中断包括内核异常都由NVIC管理。
NVIC的寄存器以存储器映射的方式来访问,除了包含控制寄存器和中断控制逻辑之外,NVIC还包括SysTick定时器和调试控制模块。
NVIC理论上支持1~240个外部中断输入,但具体的数值有芯片厂商在设计芯片时决定,LPC1700系列Cortex_M3处理器支持35个嵌套向量中断和32个可编程的中断优先级。
此外NVIC还支持一个不可屏蔽中断(NMI)输入。
NVIC的访问地址是0XE000E000,所有NVIC的中断控制/状态寄存器都只能在特权级下访问。
但有一个例外-软件触发中断寄存器可以在用户级下访问以产生软件中断。
所有的中断控制/状态寄存器均可按字/半字/字节的方式进行访问,特殊功能寄存器只能通过MRS、MSR或CPS指令来访问。
LPC1700系列Cortex_M3处理器NVIC模块特性如下:1.Cortex_M3内部包含有嵌套向量中断控制器;2.与内核紧密联系的中断控制器,支持低中断延时;3.可与系统异常和外设中断进行控制;4. 支持35个嵌套向量中断;5.硬件优先级屏蔽;6.支持向量表重定位;7.支持不可屏蔽中断;8.软件中断功能。
一.中断源表4.78列出了每一个外设所对应的中断源。
每个外围设备可以有一条或者几条中断线连接到NVIC,多个中断源也可共用一条中断线。
此外NVIC也用于处理不可屏蔽中断(NMI)。
在用作不可屏蔽中断功能时,外部信号必须连接到芯片的p2.10(ISP/EINT0/NMI)引脚,逻辑高电平将会触发产生不可屏蔽中断。
二.寄存器描述中断信号可分为外设中断和系统异常两类,NVIC寄存器组主要包含控制寄存器、状态寄存器、挂起设置/清除寄存器、使能/除能寄存器、优先级设置寄存器、活动状态寄存器和特殊功能寄存器。
目录
第6章嵌套向量中断控制器 (1)
6.1特性 (1)
6.2描述 (1)
6.3中断源 (1)
第6章嵌套向量中断控制器
6.1特性
?ARM Cortex-M3内部包含有嵌套向量中断控制器;
?与内核紧密联系的中断控制器,可支持低中断延时;
?可对系统异常和外设中断进行控制;
?支持33个嵌套向量中断;
?32个可编程的中断优先级;
?硬件优先级屏蔽;
?可重定位的向量表;
?不可屏蔽中断;
?软件中断功能。
6.2描述
嵌套向量中断控制器(NVIC)是Cortex-M3的一个内部器件。
与CPU紧密结合,降低了中断延时,让新进中断可以得到高效处理。
可参考《ARM®Cortex TM-M3技术参考指南》来获取NVIC操作的详细描述。
6.3中断源
表6.1列出了每一个外设功能所对应的中断源。
每一个外围设备可以有一条或几条中断线连接到向量中断控制器。
多个中断源也可以共用一条中断线。
除过ARM内核指定的某些标准外,哪一条中断线连接到哪一个中断源是无关紧要的或没有优先级的。
表6.1连接到向量中断控制器(VIC)的中断源。