当前位置:文档之家› ARM9异常处理过程+软中断

ARM9异常处理过程+软中断

ARM9异常处理过程+软中断
ARM9异常处理过程+软中断

中断异常处理流程

计算机体系结构中,异常或者中断是处理系统中突发事件的一种机制,几乎所有的处理器都提供这种机制。异常主要是从处理器被动接受的角度出发的一种描述,指意外操作引起的异常。而中断则带有向处理器主动申请的意味。但这两种情况具有一定的共性,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。若无特别说明,对“异常”和“中断”都不作严格的区分。本文结合经过实际验证的代码对ARM9中断处理流程进行分析,并设计出基于S3C2410芯片的外部中断处理程序。 1.异常中断响应和返回 系统运行时,异常可能会随时发生。当一个异常出现以后,ARM微处理器会执行以下几步操作: 1) 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。 2)将CPSR复制到相应的SPSR中。 3)根据异常类型,强制设置CPSR的运行模式位。 4) 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。 这些工作是由ARM内核完成的,不需要用户程序参与。异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回: 1)将连接寄存器LR的值减去相应的偏移量后送到PC中。 2)将SPSR复制回CPSR中。 3) 若在进入异常处理时设置了中断禁止位,要在此清除。 这些工作必须由用户在中断处理函数中实现。为保证在ARM处理器发生异常时不至于处于未知状态,在应用程序的设计中,首先要进行异常处理。采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。当ARM处理器发生异常时,程序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理程序。当异常处理完成以后,返回到主程序继续执行。可以认为应用程序总是从复位异常处理程序开始执行的,因此复位异常处理程序不需要返回。 2.异常处理程序设计 2.1 异常响应流程

中断

填空题 (1)51系列单片机5个中断源的中断入口地址分别是INT0:;INTl:;T0:;T1:;串行口:; (2)在CPU未执行同级或更高优先级中断服务程序的情况下,中断响应等待时间最少需要个机器周期,最长需要个机器周期。 (3)中断嵌套与子程序嵌套的区别在于:一是子程序嵌套是在程序中事先安排好的;而中断嵌套是:二是子程序嵌套无次序限制,而中断嵌套只允许。 (4)CPU未执行中断程序,中断响应时间最短需个机器周期,最长需个机器周期. 选择(1)CPU响应中断后,必须用软件清除中断请求标志的有( )。 A. INT0/INT1采用电平触发方式B.INT0/INT1采用边沿触发方式 C.定时/计数器T0/T1中断D.串行口中断TI/RI (2)下列中断优先顺序排列,不可能实现的有( )。 A.T1、T0、。INT0、INT1、串行口B.INT0、T1、T0、INT1、串行口C.INT0、INT1、串行口、T0、T1 D.INT1、串行口、INT0、T0、T1 提示:将中断请求排序分成两部分,如果每部分都满足同级优先次序,则设置能实现,否则设置不能实现。 判断对错 (1)不同中断源之间可以互相中断。( ) (2)不同优先级的中断源之间可以互相中断。( ) (3)INT0、INT1、T0、串行口、T1中断优先排列顺序不能实现。( ) (4)T0、Tl、INT0、INT1、串行口中断优先排列顺序能实现。( ) (5)串行口、TO、INT0、INT1、T1中断优先排列顺序不能实现。( ) (6)串行口、INT0、T0、INTl、T1中断优先排列顺序能实现。( ) (7)INT0、INT1、串行口、T0、T1中断优先排列顺序不能实现。( ) (8)INT0、T1、INT1、T0、串行口中断优先排列顺序能实现。( ) 简答 (1)编写中断程序时,通常需要在中断入口地址区间设置一条跳转指令,跳转到中断服务程序的实际入口处。为什么要这样做? (2)什么叫中断嵌套?中断嵌套有什么限制?中断嵌套与子程序嵌套有什么区别? (3)在51系列单片机5个中断源中,中断请求标志是如何清除的? (4)在5l系列单片机中,哪几个特殊功能寄存器与中断控制有关? (5)中断源中断优先级别设置能否实现,取决于什么因素?并说明理由。 (6)51系列单片机中断优先级和中断优先权有什么区别?如何设置中断优先级? (7)在5l系列单片机中,中断是如何嵌套的? (8)在5l系列单片机中,如果CU正在执行RETI或访问IE、IP指令,则中断不能立即响应,为什么? (9)在51系列单片机中,外中断的触发方式有哪几种?如果采用电平触发方式,需要注意什么?

程序设计异常处理机制

异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错误如果多个地方出现,那么你每个地方都要做相同处理,感觉相当的麻烦!Java 语言在设计的当初就考虑到这些问题,提出异常处理的框架的方案,所有的异常都可以用一个类型来表示,不同类型的异常对应不同的子类异常(这里的异常包括错误概念),定义异常处理的规范,在1.4版本以后增加了异常链机制,从而便于跟踪异常!这是Java语言设计者的高明之处,也是Java语言中的一个难点,下面是我对Java异常知识的一个总结,也算是资源回收一下。 一、Java异常的基础知识 异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误https://www.doczj.com/doc/a713929544.html,ng.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出https://www.doczj.com/doc/a713929544.html,ng.ArithmeticException的异常。 有些异常需要做处理,有些则不需要捕获处理,后面会详细讲到。 天有不测风云,人有旦夕祸福,Java的程序代码也如此。在编程过程中,首先应当尽可能去避免错误和异常发生,对于不可避免、不可预测的情况则在考虑异常发生时如何处理。Java中的异常用对象来表示。Java对异常的处理是按异常分类处理的,不同异常有不同的分类,每种异常都对应一个类型(class),每个异常都对应一个异常(类的)对象。 异常类从哪里来?有两个来源,一是Java语言本身定义的一些基本异常类型,二是用户通过继承Exception类或者其子类自己定义的异常。Exception 类及其子类是Throwable的一种形式,它指出了合理的应用程序想要捕获的条件。 异常的对象从哪里来呢?有两个来源,一是Java运行时环境自动抛出系统生成的异常,而不管你是否愿意捕获和处理,它总要被抛出!比如除数为0的异常。二是程序员自己抛出的异常,这个异常可以是程序员自己定义的,也可以是Java语言中定义的,用throw 关键字抛出异常,这种异常常用来向调用者汇报异常的一些信息。 异常是针对方法来说的,抛出、声明抛出、捕获和处理异常都是在方法中进行的。 Java异常处理通过5个关键字try、catch、throw、throws、finally进行管理。基本过程是用try语句块包住要监视的语句,如果在try语句块内出现异常,则异常会被抛出,你的代码在catch语句块中可以捕获到这个异常并做处理;还有以部分系统生成的异常在Java运行时自动抛出。你也可以通过throws关键字在方法上声明该方法要抛出异常,然后在方法内部通过throw抛出异常对象。finally语句块会在方法执行return之前执行,一般结构如下: try{ 程序代码 }catch(异常类型1 异常的变量名1){ 程序代码 }catch(异常类型2 异常的变量名2){ 程序代码 }finally{ 程序代码 } catch语句可以有多个,用来匹配多个异常,匹配上多个中一个后,执行catch语句块时候仅仅执行匹配上的异常。catch的类型是Java语言中定义的或者程序员自己定义的,表示代

异常处理流程

异常处理流程及注意事项 1.发现不良; (1)确认所采用标准的完整性和有效性; (2)熟练掌握检验所涉及之相关标准或其他文件; (3)严格按抽样标准取样,注意均匀,来料检验须注意来料的不同时间,批号,生产班次等; (4)了解以往的品质状况及其品质履历; (5)掌握品管之检验技巧; 2.标示,区分,隔离; (1)标示,隔离须涉及到具体的不良品和可疑批次,不合格标示要完整且必要时要口头或书面知会先相关人员,以避免他人 混淆误用为原则; (2)不合格标示,隔离须注明不合格原因,检验员,检验日期,进料检验另须注明检验单号,并知会相关人员; 3.初步分析判断,并知会相关单位及现场领导; (1)确定不良等级,异常比率,影响度和影响面,必要时须及时知会相关单位之人员; (2)针对制程或成品类异常,要及时研拟临时对策; (3)进料之异常可能涉及组装或功能之不良,需通过试组装来确定其严重性和影响度,必要时可请工程部帮忙确认; 4.异常提报; (1)异常提报时要注意时效性和准确性,异常单的填写需准确完

整,成品异常要确认追溯批号,PO#与数量; (2)须标示和提供不良品; (3)会签的填写和勾选须正确完整; 5.跟催各相关单位签单状况,根据会签结果处理异常; (1)品管必须跟催会签状况,有迟迟未签之单位必须及时跟催,如多次跟催无效,可请领导协助,以避免异常处理的时效; (2)有签核S物料时,按S物料作业流程处理,并将处理结果维护到异常单中; (3)当物料急上线,且部门领导有同意采用,而高级主管又不在厂内,无法立即签核S单时,可询问品质经理,先输S物料, 以便后续作业; (4)当会签单位处理意见不一致时,需反映部门领导,并确认最终处理结果; 6.确认处理结果; (1)全检或重工后的,需重新确认品质状况,成品类有拆箱之异常,需填写成品不合格处置报表; (2)S物料须对其品质进行跟踪,有异常要及时提报; 7.追踪改善措施; (1)注意改善措施回文必须由责任单位之领导签核,并且要在7个工作日内完成改善措施回文; 8.确认改善结果; (1)评估改善措施之有效性,必要时须修改相关品质系统文件或

异常处理机制

异常的基本概念 异常是导致程序终止运行的一种指令流,如果不对异常进行正确的处理,则可能导致程序的中断执行,造成不必要的损失。 在没有异常处理的语言中如果要回避异常,就必须使用大量的判断语句,配合所想到的错误状况来捕捉程序中所有可能发生的错误。 Java异常处理机制具有易于使用、可自行定义异常类、处理抛出的异常同时又不会降低程序运行的速度等优点。因而在java程序设计时应充分地利用java的异常处理机制,以增进程序的稳定性及效率。 当程序中加入了异常处理代码,所以当有异常发生后,整个程序并不会因为异常的产生而中断执行。而是在catch中处理完毕之后,程序正常的结束。 在整个java异常的结构中,实际上有两个最常用的类,分别为Exception和Error 这两个类全都是Throwable的子类。 Exception:一般表示的是程序中出现的问题,可以直接使用try……catch处理。 Error:一般值JVM错误,程序中无法处理。 Java异常处理机制。 在整个java的异常处理中,实际上也是按照面向对象的方式进行处理,处理的步骤如下: 1)一旦产生异常,则首先会产生一个异常类的实例化对象。 2)在try语句中对此异常对象进行捕捉。 3)产生的异常对象与catch语句中的各个异常类型进行匹配,如果匹配成功则执行catch语句中的代码。 异常处理 在定义一个方法时可以使用throws关键字声明,表示此方法不处理异常,而交给方法的调用处进行处理,在方法调用处不管是否有问题,都要使用try……catch块进行异常的捕获与处理。 如果在主方法中使用throws关键字,则程序出现问题后肯定交由jvm处理,将导致程序中断。 与throws关键字不同的是,throw关键字人为的抛出一个异常,抛出时直接抛出异常类的实例化对象即可。 Exception在程序中必须使用try……catch进行处理。RuntimeException可以不使用try……catch进行处理,但是如果有异常产生,则异常将由JVM进行处理。(建议RuntimeException的子类也使用try……catch进行处理,否则产生的异常交给jvm处理会导致程序中断。) 继承关系: Exception》RuntimeException》lllegalArgumentException》NumberFormatException; 异常类必须继承于Exception 建议:继承Exception一般要添加全部父类型一样的构造器! class NameOrPwdException extends Exception { public NameOrPwdException() {

品质异常处理流程及方法

品质异常处理流程及方法 摘要:品质人员的工作职责之一就是要及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果,保证只有合格的产品才能转入下一道工序,生产出高质量的产品. 品质人员的工作职责 1、熟悉所控制范围的工艺流程 2、来料确认 3、按照作业指导书规定进行检验(首检、巡检) 4、作相关的质量记录 5、及时发现反馈生产中的品质异常状况,并督促现场执行改善措施、追踪其改善效果 6、特殊产品的跟踪及质量记录 7、及时提醒现场对各物料及成品明显标识,以免混淆 8、及时纠正作业员的违规操作,督促其按作业指导书作业 9、对转下工序的产品进行质量及标识进行确认 品质异常可能发生的原因 生产现场的品质异常主要指的是在生产过程中发现来料、自制件批量不合格或有批量不合格的趋势。品质异常的原因通常有: A. 来料不合格包括上工序、车间的来料不合格 B. 员工操作不规范,不按作业指导书进行、新员工未经培训或未达到要求就上岗 C. 工装夹具定位不准 D. 设备故障 E. 由于标识不清造成混料 F. 图纸、工艺技术文件错误。 品质异常一般处理流程 1、判断异常的严重程度(要用数据说话) 2、及时反馈品质组长及生产拉长并一起分析异常原因(不良率高时应立即开出停线通知单) 3、查出异常原因后将异常反馈给相关的部门 (1)来料原因反馈上工序改善 (2)人为操作因素反馈生产部改善 (3)机器原因反馈设备部 (4)工艺原因反馈工程部 (5)测量误差反馈计量工程师 (6)原因不明的反馈工程部 4、各相关部门提出改善措施,IPQC督促执行 5、跟踪其改善效果,改善OK,此异常则结案,改善没有效果则继续反馈 怎样做才能尽可能的预防品质异常 SPC是一款专门分析品质异常的工具,它主要是应用统计分析技术对项目过程进行实时监控,区分出过程中

TIM2定时中断嵌套sytick定时器中断异常

现象: TIM2设置10Ms定时中断,运行delay(2),程序就停滞了 分析: Sytick滴答定时器中断优先级是占线式的(实践的出来的血的经验),因为中断优先级组配置为0时,虽然TIM2的响应式优先级为2,应该说sycik的优先级已经是0了,可以走delay中断的,但是还是不行。 把中断优先级类型配置为4,即全部是抢占式优先级式,TIM2也开始走了,delay也开始走了。 这个折腾很久的,systick在R008文档中说的太少,网友的博客说了很多,只是提到systick 的中断优先级可以改,但是么有说他是抢占式的。 static __INLINE uint32_t SysTick_Config(uint32_t ticks) { if (ticks > SysTick_LOAD_RELOAD_Msk) return (1); /* Reload value impossible */ SysTick->LOAD = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; /* set reload register */ // NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1); /* set Priority for Cortex-M0 System Interrupts */ NVIC_SetPriority (SysTick_IRQn, 0); SysTick->VAL = 0; /* Load the SysTick Counter Value */ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0); /* Function successful */ } NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1 ; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; NVIC_Init( &NVIC_InitStructure);

异常情况处理制度及流程

山西煤炭运销集团 蒲县昊锦塬煤业有限公司异常情况处理制度为认真贯彻落实国家、省、市关于集中开展安全生产大检查的工作安排要求,加强我矿信息监控系统管理水平,做好矿井生产过程中井下环境参数的有效监控,保障矿井安全生产,加强煤矿安全生产管理水平及抗灾能力,特制定本矿异常情况处理制度如下: 一、值班人员按《中心岗位责任制》规定,浏览查询煤矿安全信息,发现异常情况及时处理,并认真填写《异常情况报告处理表》,传真至县监控中心。 二、监控室值班人员发现系统发出异常报警后,值班人员必须立即通知监控室主任、分管领导,同时立即通知矿井调度部门,由监控室主任或分管领导组织相关人员对本次异常报警进行原因分析,并按规定程序及时报上一级网络中心。处理结果应记录备案。调度值班人员接到报警、断电信息后,应立即向矿值班领导汇报,矿值班领导按规定指挥现场人员停止工作,断电时撤出人员。处理过程应记录备案。当系统显示井下某一区域瓦斯超限并有可能波及其他区域时,矿井有关人员应按瓦斯事故应急预案手动遥控切断瓦斯可能波及区域的电源。值班人员接到网络中心发出的报警处理指令后,要立即处理落实,并将处理结果向网络中心反馈。 当工作面瓦斯浓度达到报警浓度时,值班人员应立即通知矿值班领导及监控室主任,并填写异常情况处理报告表传真上报至

县监控中心

;由分管领导或监控室主任安排相关人员进行原因分析,按照瓦斯超限分析原则:①按人工检测值与甲烷传感器对比分析; ②按报警地点的历史曲线对比分析;③按报警地点上风侧检测值对比分析。根据分析结果立即将处理措施下达至矿调度中心按处理措施严格执行。报警期间要采取安全措施,报警消除后将报警的起止时间、分析报告、采取措施和处理结果上报县监控室并存档备案。 三、当煤矿通讯中断、无数据显示时,值班人员要通过传真(或电话)向县监控中心报告,并查明原因,恢复通讯。情况紧急的,由值班人员立即向矿领导汇报,对因故造成通讯中断未及时上报的,要通过电话联系移动公司或长途线务局进行抢修。

STM32中EXTI(外部中断)和NVIC(嵌套向量中断)的关系

STM32中EXTI(外部中断)和NVIC(嵌套向量中断)的关 系 NVIC 是Cortex-M3 核心的一部分,关于它的资料不在《STM32 的技术参 考手册》中,应查阅ARM 公司的《Cortex-M3 技术参考手册》Cortex-M3 的向 量中断统一由NVIC 管理EXTI 是ST 公司在其STM32 产品上扩展的外中断控 制。它负责管理映射到GPIO 引脚上的外中断和片内几个集成外设的中断 (PVD,RTC alarm,USB wakeup,ethernet wakeup),以及软件中断。其输出最终被映射到NVIC 的相应通道。因此,配置EXTI 中断的过程必然包含对 NVIC 的配置,例如下面配置EXTI0 的过程,就要首先配置EXTI 控制器(使 能相应的中断线,选择中断/事件模式,触发边沿极性),然后再配置NVIC 控 制器(EXTI0 映射在NVIC 上的通道号,中断优先级,中断屏蔽状态): GPIO_EXTILineConfig(GPIO_PortSourceGPIOB, GPIO_PinSource0); EXTI_InitStructure.EXTI_Line = EXTI_Line0;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling; // or RisingEXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure); NVIC_InitStructure.NVIC_IRQChannel = EXTI0_IRQn;// EXTI0_IRQn is defined in stm32f10x.hNVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;NVIC_Init(&NVIC_InitStructure); EXTI0_IRQn 的值,其实就是EXTI0 中断向量在中断向量表中的位置 (STM32 技术参考手册中断向量表Position 栏中的数值)

如何使用异常处理机制

如何使用异常处理机制 《PHP核心技术与最佳实践》第1章面向对象思想的核心概念,本章将就面向对象一些概念展开讨论,其中重点讨论PHP特色的面向对象的风格和语法,并通过相互借鉴和对比,使读者认识PHP自身的特点,尤其是和其他语言中不同的地方。本节为大家介绍如何使用异常处理机制。 1.6.1 如何使用异常处理机制(1) 异常的思想最早可以追溯到20世纪60年代,其在C++、Java中发扬光大,PHP则部分借鉴了这两种语言的异常处理机制。 PHP里的异常,是程序运行中不符合预期的情况及与正常流程不同的状况。一种不正常的情况,就是按照正常逻辑不该出错,但仍然出错的情况,这属于逻辑和业务流程的一种中断,而不是语法错误。PHP里的错误则属于自身问题,是一种非法语法或者环境问题导致的、让编译器无法通过检查甚至无法运行的情况。 在各种语言里,异常(exception)和错误(error)的概念是不一样的。在PHP里,遇到任何自身错误都会触发一个错误,而不是抛出异常(对于一些情况,会同时抛出异常和错误)。PHP一旦遇到非正常代码,通常都会触发错误,而不是抛出异常。在这个意义上,如果想使用异常处理不可预料的问题,是办不到的。比如,想在文件不存在且数据库连接打不开时触发异常,是不可行的。这在PHP里把它作为错误抛出,而不会作为异常自动捕获。 以经典的除零问题为例,如代码清单1-16所示。 代码清单1-16 exception.php 1.// exception.php 2.getMessage(); 9.$a=-1; 10.}

制程异常处理流程91589

1.目的 规定当制程出现异常时的处理流程及各相关部门的责任,使异常能够得到及时解决,确保生产正常运行。 2.适用范围 适用于制程出现异常时的处理。 3.定义: 无。 4.职责 4.1各生产车间:当生产过程中制程出现异常时发出《不合格品报告单》通知IPQC 4.2 品质部IPQC:对制程异常现象进行确认,并通知QE或PE来现场进行原因分析与处理 4.3品质部QE:对制程异常进行原因分析并确认责任部门,并对责任部门制订的改善对策进行验证4.4工程部PE:对功能及结构性制程异常进行原因分析并确认责任部门 4.5责任部门:负责制定异常的临时对策与永久对策并实施。 5.作业程序 5.1制程异常发出的时机: 5.1.1 当同一不良现象重复出现且不良率超出备损率时; 5.2 制程异常的发出、确认及通知: 5.2.1由车间生产线根据不良现象与事实填写《不合格品报告单》,填写内容包括:订单号、产品 型号、生产数量、不良数量、不良率、提出部门、提出时间、订单交期、不良现象描述。经车间主管(经理)审核后给车间IPQC确认; 5.2.2 IPQC在收到车间发出的《不合格品单》后,对异常现象、不良数量、不良率进行确认,并将 确认结果填写在“IPQC确认”栏。如果确认结果与车间填写的内容不相符时,可退回车间重新填写。 5.2.3 IPQC确认后以电话形式通知以下人员到发生异常的现场进行原因分析: 5.2.3.1 如果就是外观异常,电话通知制程QE工程师到现场进行原因分析; 5.2.3.2如果就是功能与结构性异常,电话通知QE工程师与工程部PE工程师到现场进行原因 分析; 5.2.3.3如果电话联络不到相关产品的QE工程师或PE工程师时应通知其直接上司做出相应 安排。 5.3原因分析: 5.3.1制程QE工程师与PE工程师接到通知后,应在第一时间到异常发生的车间现场进行确认与 原因分析。 5.3.2问题分析时应运用5WHY、5M1E、8D、QC七大手法、IE手法等问题分析技术分析异常 的根本原因(Root Cause),根据根本原因确认责任部门及提出临时对策。

设备故障处置过程中的九大错误与解决办法

设备故障 处置过程中的九大错误与解决办法设备故障处理是设备管理和维修人员经常会面对的问题之 O 维修人员在日常的设备故障检查处理过程中,外部受时间、环境、人员等方面的压力,内部受维修人员本身的技术水平、经验、设备熟悉程度、人员身体精神状态等的影响,这些因素,会对故障快速、准确的处置造成一定的影响。 维修人员对设备故障的排查和处置不当,会导致故障处置时间、人力、成本等的增加,或为下次故障留下隐患。 问题一.不能正确判断分析故障,盲目大拆大卸 1、现象: —些维修人员由于对机械结构、原理不清楚,未认真分析清楚故障原因,不能准确判断故障部位,凭着〃大概、差不多〃的思想盲目对机械大拆大卸,结果不但原故障未排除,而且由于维修技能和工艺较差,又出现新的问题。 2、解决办法: 当机械出现故障后,要通过检测设备进行检测,如无检测设备,可通过"问、看、查、试〃等传统的故障判断方法和手段,结合工程机

械的结构和工作原理,确定最可能发生故障的部位。在判定工程机械故障时,一般常用〃排除法〃和〃比较法",按照从简单到复杂、先外表后内部、先总成再部件的顺序进行,切忌"不问青红皂白,盲目大拆大卸"。 问题二■盲目更换零部件,一味"换件修理" 1、现象: 有些维修人员一贯采用换件试验的方法,不论大件小件,只要认为可能是导致故障的零部件,一个一个更换试验,结果非但故障没排除,且把不该更换的零部件随意更换了,增加了消费者的开支。还有些故障零部件完全可以通过修理恢复其技术性能,不需要复杂修理工艺即可修复,但维修人员却要求用户更换新件,一味采取〃换件修理"的方法,造成严重的浪费。 2、解决办法: 在维修时,应根据故障现象认真分析判断故障原因及部位,对能修复的零部件要采取修理的方法恢复技术性能,杜绝盲目更换零部件的做法。 问题三、不检查新件质量,装配后出现故障 1、现象: 在更换配件前,有些维修人员对新配件不做技术检查,皇来后直接安装到设备上,这种做法是不科学的。目前市场上出售的零配件质量良

中断嵌套

中断嵌套 是指中断系统正在执行一个中断服务时,有另一个优先级更高的中断提出中断请求,这时会暂时终止当前正在执行的级别较低的中断源的服务程序,去处理级别更高的中断源,待处理完毕,再返回到被中断了的中断服务程序继续执行,这个过程就是中断嵌套。其实就是更高一级的中断的“加塞儿”,处理器正在执行着中断,又接受了更急的另一件“急件”,转而处理更高一级的中断的行为! 中断优先级?? ?在说到中断之前,我先来定义一下优先级,明白了什么是优先级,后面的阐述就容易明白了。实际上很多人都是混淆了优先级的含义,所以才觉得糊里糊涂。优先级高的中断源可以中断优先级低的中断服务程序,这就形成了中断服务程序中套着中断服务程序的情况,即形成了所谓的中断嵌套。MCU暂停现行程序而转去响应中断请求的过程称为中断响应;为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程序,硬件将中断源分为若干个级别,称作中断优先级;中断的优先级有两个:查询优先级和执行优先级。什么是查询优级呢?我们从datasheet或书上看到的默认(IP寄存器不做设置,上电复位后为00H)的优先级:外部中断0> 定时/计数器0 > 外部中断1 > 定时/计数器1 > 串行中断或int0,timer0,int1,timer1,serial port 或INT0、T0、INT1、T1、UART 或PX0>PT0>PX1>PT1>PS>...... 其实都是查询优级。首先查询优先级是不可以更改和设置的。这是一个中断优先权排队的问题。是指多个中断源同时产生中断信号时,中断仲裁器选择对哪个中断源优先处理的顺序。而这与是否发生中断服务程序的嵌套毫不相干。当CPU查询各个中断标志位的时候,会依照上述5个查询优先级顺序依次查询,当数个中断同时请求的时候,会优先查询到高优查询先级的中断标志位,但并不代表高查询优先级的中断可以打断已经并且正在执行的低查询优先级的中断服务。例如:当计数器0中断和外部中断1(按查询优先级,计数器0中断>外部中断1)同时到达时,会进入计时器0的中断服务函数;但是在外部中断1的中断服务函数正在服务的情况下,这时候任何中断都是打断不了它的,包括逻辑优先级比它高的外部中断0计数器0中断。而中断的执行优先级就是你对IP寄存器的设置了。在2个优先级的情况下,某位为1,则相应的中断源为高优先级;为0,则为低优先级。关于中断的优先级有三条原则:1、CPU同时接收到几个中断时,首先响应优先级最高的中断请求;2、正在进行的中断过程不能被新的同级或低行优优先级的中断请求所中断;3、正在进行的低行优优先级中断服务,能被高行优优先级中断请求中断;若:同一执行优先级中的中断申请不止一个时,则有一个中断优先权排队问题。同一执行优先级的中断优先权排队,由中断系统硬件确定的自然优先级形成,优先权自高到低的顺序即:外部中断0>定时/计数0>外部中断1>定时/计数1>串行接口例如:设置IP =0x10,即设置串口中断为最高优先级,则串口中

异常情况处理流程说明

异常情况处理流程说明 一、“异常情况”包括 1、质量不合格问题。主要包括制程质量问题、售后质量问题、技术设计或图纸下发后出现问题、调试中 质量问题、外购设备物资质量问题等; 2、交货期延误问题、采购交期延误问题及其他有关生产进度的问题等; 3、生产物料损耗异常问题; 4、生产设备损坏问题; 5、员工违纪问题; 6、其它异常问题。 二、员工出现异常问题,应及时按规定报于部门领导; 三、企管部(质检部)在日常工作中发现员工出现异常问题时,应作出《整改通知》或《整改报告》,由 责任部门签收; 四、员工所属部门部长应及时落实责任人并对问题组织处理。责任人是指直接或间接造成各类问题发生的 员工包括各级管理人员。 五、责任部门部长应督促责任人填写《异常情况处理报告》,责任人应根据问题发生的原因、经过、问题 的现象或后果、问题发生的时间和发现时间,进行详细如实填写,并随后签字确认; 六、责任人填写完毕交直接主管进行原因分析,提出解决措施,并填写《异常情况处理报告》,上交部门 负责人。 1、责任人的直接主管为班长的,该班长应根据问题的具体情况认真分析,确定属于哪种原因,并分析自 己在问题中所负的责任,必须认真填写明白,不得包庇、隐瞒; 2、责任人的直接主管为部长的,则由责任人所属部门部长填写; 3、责任人为部长的,责任人可以不填写此栏,只填写“问题描述”和“责任部门处理意见”; 4、责任人为副总的,责任人填写“问题描述”和“处理意见”; 七、责任人所属部门部长应详细调查、分析问题,确定解决措施,并填写处理报告,依据公司的有关规定 并分析自己在问题中所负的责任,做出公平、公正的处理意见;该部长应本着认真客观的态度对待问题,反思自己工作的欠缺,及时纠正并预防问题的再次发生。 八、责任部门将报告交分管副总,分管副总分析问题发生原因和相关负责人的处理意见,根据公司的有关 规定,对责任人做出处理意见;并由责任部门部长将报告交企管部(质检部); 九、企管部长(质检部长)实施监督职责,本着公平、公正地原则,对问题深入分析,不确定的问题应重 新调查,并分析责任部门的处理建议是否符合公司的有关规定。若符合规定则填写问题处理报告,做出企管部(质检部)的处理意见;若不符合有关规定,或责任部门的处理意见有失公平、公正,则需

最新java异常处理作业(1113132845)

Java异常处理作业 孙月巧 1、参考下面的程序,试修改程序,捕获相关异常,使得程序能正常运行。【提示:用错误数据测试,即可得到异常类名,运行时主方法参数输入abc 测试】 package November; import java.util.Scanner; public class StringIndexOutOf{ public static void main(String args[]){ System.out.println("请输入一个字符串:"); try{ Scanner reader=new Scanner(System.in); String str = reader.nextLine(); System.out.println("第四个字符为 " + str.charAt(3)); int aa = Integer.parseInt(str); System.out.println("平方为 " + aa * aa); } catch(StringIndexOutOfBoundsException e){ System.out.println("您输入的数值下标越界"); } catch(NumberFormatException nfe){ System.out.println("您输入的不是数字"); } } } 2、从命令行得到5个整数,放入一整型数组,然后打印输出,要求:如果输入数据不为整数,要捕获Integer.parseInt()产生的异常,显示“请输入整数”,捕获输入参数不足5个的异常(数组越界),显示“请输入至少5个整数”。 package November; public class Test2 { public static void main(String[] args) { System.out.println("请输入五个整数:"); try {

关于ARM9的中断嵌套

NoInt EQU 0x80 //禁止IRQ中断 USR32Mode EQU 0x10 //用户模式 SVC32Mode EQU 0x13 //管理模式 SYS32Mode EQU 0x1f //系统模式 IRQ32Mode EQU 0x12 //中断模式 FIQ32Mode EQU 0x11 //快速中断模式 ;引入的外部标号在这声明 //IMPORT表示引用外部的信息 IMPORT OSIntCtxSw ;任务切换函数//引用外部的函数 IMPORT OSIntExit ;中断退出函数 IMPORT OSTCBCur ;UC/OS II正在运行的任务指针 IMPORT OSTCBHighRdy ; UC/OS II任务就绪表中级别最高的优先级 IMPORT OSIntNesting ;中断嵌套计数器 IMPORT StackUsr ;用户模式堆栈 IMPORT OsEnterSum ;开关中断的次数 CODE32 AREA IRQ,CODE,READONLY MACRO $IRQ_Label HANDLER $IRQ_Exception_Function EXPORT $IRQ_Label ; 输出的标号 IMPORT $IRQ_Exception_Function ; 引用的外部标号 $IRQ_Label SUB LR, LR, #4 ; 计算返回地址 //进入中断后,它的返回地址该怎么计算呢,可以这样来理解,因为它的指令流水线是3级的,即执行进入中断函数时,PC已经指向欲取值的指令即当前执行的地址+8;当已进入中断时,LR里面装的是PC,所以要想中断返回到正确的地址处,就必须把LR-4。 STMFD SP!, {R0-R3, R12, LR} ; 保存任务环境 //这里面为什么只把R0-R3,R12,LR保存呢,其它不用吗,是这样的,我们可以从你装的ADS1.2目录下的PDF文件夹里面的ADS_DeveloperGuide_D.PDF文件的2.2就可以发现r4-r11装的是局部变量,在进行函数跳转时,编译器它会自动保护它们的。 MRS R3, SPSR ; 保存状态 STMFD SP, {R3, SP, LR}^ ; 保存用户状态的R3,SP,LR,注意不能回写,前面一个SP 是IRQ模式的,后面一个SP是用户模式的,为什么不能回写呢,如果你回写的话,那么它保存的是用户的SP,显然是不行的。不知这样理解对不对。这里保存SP和LR的目的是为了嵌套, ; 正是因为没有回写,所以后面调整了SP ,调整指令是SUB SP, SP, #4*3 LDR R2, =OSIntNesting ; OSIntNesting++ 中断嵌套数+1 ;(相当于调用了一次中断进入函数OSIntEnter(),与后面的BL OSIntExit 形成呼应)LDRB R1, [R2] ADD R1, R1, #1 STRB R1, [R2] SUB SP, SP, #4*3 ;由于前面SP没有回写,保存了3个32位的寄存器,这里调整指针 ;做好弹出这三个数据的准备

[重点]设备异常处理流程及规定

[重点]设备异常处理流程及规定 设备异常处理流程 序流程图责任人表单作业内容号 班组长/线长不能处生产异常出现时,生产部门/设备生产异常理或异常会导致停产时间超过30分钟 1 相关部门/ 时,应立即上报,或开出《生产异常发现者报告单》进行处理。 生产部负责人接到报告后应在10分钟生产部门/内赶赴现场;必要时可同时通知相关相关人员 2 相关部门/ 部门负责人,相关部门负责人接到通赶赴现场负责人知后应在10分钟内赶到现场( 相关部门负责人到达现场后立即对异相关部门异常分析 3 常进行分析,若部门负责人不能到场负责人应在10分钟内派人到达现场( 如不能立即处理应作出是否停产的意确定是总经办/总4 见,并注明预计恢复生产的时间(停否停产经理产应由总经理批准( 相关部门负责人针对问题应在30分钟制定应急相关部门生产异常 5 内制定出应急处理措施,制定措施时处理措施负责人报告单应尽可能地降低影响生产部门生产异常生产部门按应急措施进行生产按照处理6 负责人报告单调整生产措施生产 生产部/品 质部 NG 应急措施的有效性由生产部与品质部生产异常责任人措施7 共同验证,如验证不符合则重新制定报告单验证相关措施( YES 验证结果符合生产及品质相关要求,生产部负责恢复正8 可以在恢复生产后由品质部和生产部人常生产对异常进行跟进确认(

相关责任部生产恢复正常后相关部门应对问题的生产异常 9 制定长期门深层次的原因加以分析,并在两个工报告单预防措施负责人作日内制定出长期预防措施( 生产部生产异常生产部应协同品质部对责任部门的长10 负责人报告单期预防措施执行结果进行跟踪预防措施跟踪 异常处理规定 1(目的 为了更好的规范和完善公司生产异常处理作业,使生产问题发生后,各部门人员迅速、有效的处理,减免停工时间,提高生产效率,特制定本流程。 2(适用范围 适用于公司所有生产异常的处理。 3(职责 3(1 生产部门负责生产异常的反馈和处理措施验证。 3(2 品质部负责品质异常的处理及验证。 3(3 设备组负责设备异常的处理。 3(4 计控部负责物料异常的处理。 3(5 技术部负责技术、关键工序设备、工装模具、工艺异常的处理。 4(作业规范 4.1 生产异常反馈 4.1.1 当生产发生异常或有出现异常的趋势时,生产部发现人员和现场管理人员(如班组长)应即时给予分析,并主动积极寻求解决方法,包括与相关人员联系,如能及时解决则不在本流程规定内。

多级嵌套的中断试验

一.实验目的 (1)掌握中断在计算机系统中的作用; (2)了解可以响应中断请求的条件和时刻,响应中断的过程和实现方案;理解使用中断隐指令的必要性; (3)了解中断处理的完整过程,开中断,关中断操作的作用,保存现场信息和恢复现场信息必须确保完整完成的含义和可行措施; (4)掌握确定中断向量,设计中断处理程序的操作步骤和实现方法;二.实验原理 1.1中断电路 TH-union教学机中断电路的总体组成,如下图所示: 图中IRQ0—IRQ2是3个中断请求源信号,分别对应实验箱上的三个中断请求 按钮,实验时,按下某个按钮表示发出相应的中断请求信号。这三级中断的 优先次序从低到高为IRQ0到IRQ2。 1.2中断处理在教学机中的具体实现 教学机的中断线路主要包括2片GAL、3个无锁按键、2片74LS374和若干插针。下面分别对这几部分进行简要介绍。 (1)3个无锁按键,提供中断请求的源信号 教学机支持3级中断发,这3个无锁按键作为3个中断源,从右到左依次为一、二、三级中断,对应的中断优先级编码P1、P0依次为01、10、11,优先级也依次升高。这3个无锁按键的引脚作为INTS GAL 和INTP GAL 的输入。

(2)INTS GAL,接受并记忆通过无锁按键给出的中断请求源信号 该芯片的输入信号除了3个无锁按键的6个引脚外,还有控制信号DC23、/GIR及系统时钟CK1。输出信号只有3个分别表示取指时3个无锁按键是否被按下,如果被按下,则相应的输出信号为高电平,否则为低电平。这3个输出信号被送至INTP GAL 。 该芯片实现的功能是,在每次取指前一拍(用DC2-3=1指示),将3个输出信号全部置零;在每次取指时(/GIR信号指示),都检测是否有中断请求(即是否有无锁按键被下),并用这3个输出引脚表示;在取指后以及整个指令执行过程中,这3个输出信号都将保持不变。 (3)INTP GAL,在条件成立时,向CPU 发出中断请求信号/INT(低电平有效) 该芯片实现的功能是: 1)对INTS GAL 送来的3个信号进行中断优先级编码,得到新请求的中断优先级,并与当前中断优先级P1、P0比较; 2)设置中断允许位INTE,该信号高电平表示允许中断,低电平表示禁止中断。当控制信号DC12~DC10=110时,INTE被置为1;DC12~DC10=111 时,INTE被置为0。 3)产生中断请求信号/INT,该信号低电平表示有(更高优先级)中断请求需要响应。 在中断允许位INTE=1时,如果新的中断优先级比当前中断优先级高,则给出中断请求信号/INT=0,否则/INT=1。 P1、P0也是状态寄存器的2个输入信号,可随同状态标志(C、Z、V、S)压入/弹出栈。 P1、P0也是INTVTL74LS374的2个输入信号,用来形成当前中断优先级在中断向量表中的首地址。 4)通过中断向量寄存器INTVTH 74LS374、INTVTL 74LS374硬性设置的中断向量分别为16进制的2104、2108和210C,对应的中断优先级分别是1、2、3。 三.实验内容及步骤 1.实验内容 (1)读懂教材中有关中断的概念,中断响应和中断处理的内容,了解这些功能在教学计算机中是如何实现的; (2)如果所用的教学计算机的基本指令集合中尚未实现中断隐指令,与处理中断有关的EI,DI和IRET三条指令,则需要首先实现中断隐指令和扩 展这三条指令;如果在基本指令集中已经实现了上述内容,则直接跳过 这一实验步骤。 (3)确定中断向量表地址。这个向量表是以XXX4为首地址的一段内存区(为每一个中断保留4个字的空间),用于存放对应每一个中断源的中 断处理程序的首地址,要在中断隐指令中把这里的选定的一个地址传送 到程序计数器PC中,之后就进入响应中断处理程序的执行过程。常用 的可行方案是在这里保存一条转移指令,实现依据不同的中断源转移到 不同的中断处理程序。教学机设置了3个中断源并为每个中断源分配了 不同的优先级,则3个终端程序入口地址分别为16进制的XXX4,XXX8

相关主题
文本预览
相关文档 最新文档