CN103676727A - 基于嵌入式芯片的可抢占、可嵌套中断控制方法 - Google Patents
基于嵌入式芯片的可抢占、可嵌套中断控制方法 Download PDFInfo
- Publication number
- CN103676727A CN103676727A CN201310607435.8A CN201310607435A CN103676727A CN 103676727 A CN103676727 A CN 103676727A CN 201310607435 A CN201310607435 A CN 201310607435A CN 103676727 A CN103676727 A CN 103676727A
- Authority
- CN
- China
- Prior art keywords
- interrupt
- interruption
- embedded chip
- control method
- seizing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种基于嵌入式芯片的可抢占、可嵌套中断控制方法,通过获取当前被触发的多个中断的优先级,屏蔽低优先级开放高优先级的措施实现中断的抢占;通过对高优先级中断的开放和当前运行中断使能的适时开放实现中断的嵌套;通过计数器累计进入中断次数作为条件,禁止中断嵌套时的任务调度,灵活的运用底层代码与嵌入式操作系统代码之间的参数传递,协调了中断处理与任务调度之间的关系,实现嵌入式芯片的中断抢占与嵌套,完善的中断处理机制,满足保护测控装置硬件平台中断处理的需求。
Description
技术领域
本发明涉及电力系统技术领域,具体涉及一种基于嵌入式芯片的可抢占、可嵌套中断控制方法。
背景技术
SPARTAN6芯片是Xilinx公司推出的一款FPGA可编程逻辑器件,此款芯片资源丰富,性能可靠具有PFGA所特有的可灵活配置的特性,各项指标满足在电力系统的保护测控装置中应用,得到了广泛使用,但是SPARTAN6芯片原有的中断控制器资源与所选用UCOS-II操作系统配合不支持中断间的抢占与嵌套,即如果不同优先级的中断同时被触发,原有的中断机制无法区分中断优先级的高低,传统的中断处理方法中当低优先级中断首先被触发,高优先级中断后被触发时,高优先级中断要等待低优先级中断处理结束后,再处理高优先级中断;当高优先级中断首先被触发,低优先级中断后被触发时,低优先级中断要等待高优先级中断处理结束后,再处理低优先级中断。因此,虽然原有的中断控制器上面可以设置多中断的优先级,但是面向硬件的底层代码中却缺乏相应的处理机制,使之前设置的中断优先级失去意义,在应用过程中只能尽量的缩短中断服务程序,力争把中断服务程序执行时间缩到最短,但是实际运用中仍然无法避免多个中断被同时触发的情况发生,严重时可能会导致系统死机,影响保护测控装置的正常工作。
发明内容
本发明所解决的技术问题是克服现有技术的SPARTAN6芯片内的中断控制器,实际运用中无法避免多个中断被同时触发的情况发生,严重时可能会导致系统死机,影响采用SPARTAN6芯片作为保护测控装置的正常工作的问题。
为了解决上述技术问题,本发明所采用的技术方案是:
一种基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:嵌入式芯片的多中断被触发时区分硬件设置的中断优先级,高优先级的中断优先执行打断低优先级中断;多中断实现嵌套,包括以下步骤,
步骤(1),中断被触发后跳入面向硬件操作的底层代码,进行压栈保护现场操作,并禁止任务调度;
步骤(2),获取中断的类型,得到当前被触发中断中最高的优先级;
步骤(3),通过查表处理屏蔽比当前中断优先级低的所有中断;
步骤(4),开启比当前中断优先级高的所有中断,允许比当前中断优先级高的中断对当前中断的抢占;
步骤(5),清除当前中断的标志位,使其重新开放;
步骤(6),跳转出面向硬件的底层程序,将参数传递到嵌入式芯片所处的应用程序与操作系统代码中,恢复之前的中断现场;
步骤(7),应用程序清除中断为下一次进入中断做好准备,重复步骤(1)。
前述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(1)所述的进行压栈保护现场操作为通过计数器计算进入中断次数,进入中断时计数器加1,退出时计数器减1;通过计数器值作为标志位,操作系统判断是否禁止任务调度。
前述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(2)获取中断的类型是通过读取中断使能寄存器与嵌入式芯片硬件设置对照获取当前被触发的中断类型,读取中断向量寄存器获取最高的中断优先级。
前述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(3)或步骤(4)通过对中断使能寄存器相应位的写入控制开启或者屏蔽相应的中断。
前述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(5)通过对中断响应寄存器相应位的写入控制是否清除中断。
本发明的有益效果是:本发明的基于嵌入式芯片的可抢占、可嵌套中断控制方法,通过获取当前被触发的多个中断的优先级,屏蔽低优先级开放高优先级的措施实现中断的抢占;通过对高优先级中断的开放和当前运行中断使能的适时开放实现中断的嵌套;通过计数器累计进入中断次数作为条件,禁止中断嵌套时的任务调度,灵活的运用底层代码与嵌入式操作系统代码之间的的参数传递,协调了中断处理与任务调度之间的关系,实现嵌入式芯片的中断抢占与嵌套,完善的中断处理机制,满足保护测控装置硬件平台中断处理的需求。
附图说明
图1是本发明的基于嵌入式芯片的可抢占、可嵌套中断控制方法的流程图。
具体实施方式
下面将结合说明书附图,对本发明作进一步的说明。
如图1所示,基于嵌入式芯片的可抢占、可嵌套中断控制方法,嵌入式芯片的多中断被触发时区分硬件设置的中断优先级,高优先级的中断优先执行打断低优先级中断;多中断实现嵌套,包括以下步骤,
步骤(1),中断被触发后跳入面向硬件操作的底层代码,进行压栈保护现场操作,并禁止任务调度,通过计数器计算进入中断次数,进入中断时计数器加1,退出时计数器减1;通过计数器值作为标志位,操作系统判断是否禁止任务调度;
步骤(2),获取中断的类型,得到当前被触发中断中最高的优先级,获取中断的类型是通过读取中断使能寄存器与嵌入式芯片硬件设置对照获取当前被触发的中断类型,读取中断向量寄存器获取最高的中断优先级;
步骤(3),通过查表处理屏蔽比当前中断优先级低的所有中断;
步骤(4),开启比当前中断优先级高的所有中断,允许比当前中断优先级高的中断对当前中断的抢占,步骤(3)或步骤(4)通过对中断使能寄存器相应位的写入控制开启或者屏蔽相应的中断;
步骤(5),清除当前中断的标志位,使其重新开放,通过对中断响应寄存器相应位的写入控制是否清除中断;
步骤(6),跳转出面向硬件的底层程序,将参数传递到嵌入式芯片所处的应用程序与操作系统代码中,恢复之前的中断现场,面向硬件的底层程序将当前最高优先级的中断参数传递到应用程序中的中断处理函数以及操作系统中的任务调度函数,应用程序代码获得此最高优先级中断参数后会进入相应的中断处理函数;同时操作系统进行任务切换并重新调用面向硬件的底层程序,恢复现场;
步骤(7),应用程序清除中断为下一次进入中断做好准备,重复步骤(1)。
本发明的基于嵌入式芯片的可抢占、可嵌套中断控制方法,适用于的嵌入式芯片为SPARTAN6芯片,SPARTAN6为 Xilinx的低成本、低功耗FPGA,第六代Spartan系列基于低功耗45nm、9金属铜层、双栅极氧化层工艺技术,以及高级功耗管理技术,操作系统为UCOSII :UCOSII由Micrium公司提供,是一个可移植、可固化的、可裁剪的、占先式多任务实时内核,它适用于多种微处理器,微控制器和数字处理芯片(已经移植到超过100种以上的微处理器应用中)。同时,该系统源代码开放、整洁、一致,注释详尽,适合系统开发。 UCOSII已经通过联邦航空局(FAA)商用航行器认证,符合航空无线电技术委员会(RTCA)DO-178B标准。
综述所述,本发明的基于嵌入式芯片的可抢占、可嵌套中断控制方法,通过获取当前被触发的多个中断的优先级,屏蔽低优先级开放高优先级的措施实现中断的抢占;通过对高优先级中断的开放和当前运行中断使能的适时开放实现中断的嵌套;通过计数器累计进入中断次数作为条件,禁止中断嵌套时的任务调度,灵活的运用底层代码与嵌入式操作系统代码之间的的参数传递,协调了中断处理与任务调度之间的关系,实现嵌入式芯片的中断抢占与嵌套,完善的中断处理机制,满足保护测控装置硬件平台中断处理的需求。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1.一种基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:嵌入式芯片的多中断被触发时区分硬件设置的中断优先级,高优先级的中断优先执行打断低优先级中断;多中断实现嵌套,包括以下步骤,
步骤(1),中断被触发后跳入面向硬件操作的底层代码,进行压栈保护现场操作,并禁止任务调度;
步骤(2),获取中断的类型,得到当前被触发中断中最高的优先级;
步骤(3),通过查表处理屏蔽比当前中断优先级低的所有中断;
步骤(4),开启比当前中断优先级高的所有中断,允许比当前中断优先级高的中断对当前中断的抢占;
步骤(5),清除当前中断的标志位,使其重新开放;
步骤(6),跳转出面向硬件的底层程序,将参数传递到嵌入式芯片所处的应用程序与操作系统代码中,恢复之前的中断现场;
步骤(7),应用程序清除中断为下一次进入中断做好准备,重复步骤(1)。
2.根据权利要求1所述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(1)所述的进行压栈保护现场操作为通过计数器计算进入中断次数,进入中断时计数器加1,退出时计数器减1;通过计数器值作为标志位,操作系统判断是否禁止任务调度。
3.根据权利要求1所述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(2)获取中断的类型是通过读取中断使能寄存器与嵌入式芯片硬件设置对照获取当前被触发的中断类型,读取中断向量寄存器获取最高的中断优先级。
4.根据权利要求1所述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(3)或步骤(4)通过对中断使能寄存器相应位的写入控制开启或者屏蔽相应的中断。
5.根据权利要求1所述的基于嵌入式芯片的可抢占、可嵌套中断控制方法,其特征在于:步骤(5)通过对中断响应寄存器相应位的写入控制是否清除中断。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310607435.8A CN103676727A (zh) | 2013-11-27 | 2013-11-27 | 基于嵌入式芯片的可抢占、可嵌套中断控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310607435.8A CN103676727A (zh) | 2013-11-27 | 2013-11-27 | 基于嵌入式芯片的可抢占、可嵌套中断控制方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103676727A true CN103676727A (zh) | 2014-03-26 |
Family
ID=50314632
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310607435.8A Pending CN103676727A (zh) | 2013-11-27 | 2013-11-27 | 基于嵌入式芯片的可抢占、可嵌套中断控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103676727A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995743A (zh) * | 2014-05-21 | 2014-08-20 | 中国人民解放军国防科学技术大学 | 基于资源预约的两级混合任务调度方法 |
CN106874072A (zh) * | 2015-12-14 | 2017-06-20 | 中国航空工业第六八研究所 | 一种基于PowerPC处理器的嵌入式操作系统分区虚拟中断的处理方法 |
CN109343950A (zh) * | 2018-10-16 | 2019-02-15 | 南京国电南自维美德自动化有限公司 | 一种适用于Xilinx软核处理器的中断通用处理方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
CN111221755A (zh) * | 2019-12-28 | 2020-06-02 | 重庆秦嵩科技有限公司 | 一种FPGA2子模块的io中断控制方法 |
CN112286847A (zh) * | 2020-11-05 | 2021-01-29 | 成都菁蓉联创科技有限公司 | 一种提升系统外部中断响应速度的方法、装置和控制器 |
CN114095589A (zh) * | 2021-12-29 | 2022-02-25 | 诺领科技(南京)有限公司 | 用于物联网芯片的多种通信系统的共存处理方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5687380A (en) * | 1994-09-29 | 1997-11-11 | Nec Corporation | Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions |
CN1655124A (zh) * | 2005-03-04 | 2005-08-17 | 清华大学 | 基于PowerPC处理器的车用操作系统中断管理方法 |
CN1783020A (zh) * | 2005-09-12 | 2006-06-07 | 浙江大学 | 基于PowerPC体系结构的嵌入式操作系统的中断管理方法 |
CN1945542A (zh) * | 2006-11-01 | 2007-04-11 | 北京中星微电子有限公司 | 一种嵌入式软件开发的方法及系统 |
CN102567104A (zh) * | 2010-12-30 | 2012-07-11 | 中兴通讯股份有限公司 | 实时操作系统的软中断实现方法及装置 |
-
2013
- 2013-11-27 CN CN201310607435.8A patent/CN103676727A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5687380A (en) * | 1994-09-29 | 1997-11-11 | Nec Corporation | Macro service processing of interrupt requests in a processing system where a single interrupt is generated for a plurality of completed transactions |
CN1655124A (zh) * | 2005-03-04 | 2005-08-17 | 清华大学 | 基于PowerPC处理器的车用操作系统中断管理方法 |
CN1783020A (zh) * | 2005-09-12 | 2006-06-07 | 浙江大学 | 基于PowerPC体系结构的嵌入式操作系统的中断管理方法 |
CN1945542A (zh) * | 2006-11-01 | 2007-04-11 | 北京中星微电子有限公司 | 一种嵌入式软件开发的方法及系统 |
CN102567104A (zh) * | 2010-12-30 | 2012-07-11 | 中兴通讯股份有限公司 | 实时操作系统的软中断实现方法及装置 |
Non-Patent Citations (4)
Title |
---|
任勇等: "《单片机原理及应用—使用Freescale S12X构建嵌入式系统》", 31 January 2012, 清华大学出版社 * |
舒生亮等: "MatrixDSP中断处理系统的设计与实现", 《计算机工程与科学》 * |
陈云南: "一种基于ARM芯片的实时操作系统中断机制", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
青岛东合信息技术有限公司: "《Cortex-M3开发技术及实践》", 31 July 2013, 西安电子科技大学出版社 * |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103995743A (zh) * | 2014-05-21 | 2014-08-20 | 中国人民解放军国防科学技术大学 | 基于资源预约的两级混合任务调度方法 |
CN106874072A (zh) * | 2015-12-14 | 2017-06-20 | 中国航空工业第六八研究所 | 一种基于PowerPC处理器的嵌入式操作系统分区虚拟中断的处理方法 |
CN109343950A (zh) * | 2018-10-16 | 2019-02-15 | 南京国电南自维美德自动化有限公司 | 一种适用于Xilinx软核处理器的中断通用处理方法 |
CN109343950B (zh) * | 2018-10-16 | 2021-06-08 | 南京国电南自维美德自动化有限公司 | 一种适用于Xilinx软核处理器的中断通用处理方法 |
CN109933549A (zh) * | 2019-01-30 | 2019-06-25 | 中山大学 | 一种适用于risc-v处理器的中断控制器 |
CN111221755A (zh) * | 2019-12-28 | 2020-06-02 | 重庆秦嵩科技有限公司 | 一种FPGA2子模块的io中断控制方法 |
CN112286847A (zh) * | 2020-11-05 | 2021-01-29 | 成都菁蓉联创科技有限公司 | 一种提升系统外部中断响应速度的方法、装置和控制器 |
CN112286847B (zh) * | 2020-11-05 | 2023-03-10 | 成都菁蓉联创科技有限公司 | 一种提升系统外部中断响应速度的方法、装置和控制器 |
CN114095589A (zh) * | 2021-12-29 | 2022-02-25 | 诺领科技(南京)有限公司 | 用于物联网芯片的多种通信系统的共存处理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103676727A (zh) | 基于嵌入式芯片的可抢占、可嵌套中断控制方法 | |
CN107800546B (zh) | 一种广播消息的管理方法及装置 | |
JP5888629B2 (ja) | マルチプロセッサコアシステム内のプロセッサコアをスケジューリングするための方法、装置、およびシステム | |
US9378048B2 (en) | Interruption of chip component managing tasks | |
CN110737534B (zh) | 任务的处理方法、装置和服务器 | |
EP2983086A1 (en) | System fault detection and processing method, device, and computer readable storage medium | |
CN107615250B (zh) | 一种针对应用的处理方法、装置及智能终端 | |
CN103324546B (zh) | 一种延时喂狗的方法及装置 | |
CN109918141A (zh) | 线程执行方法、装置、终端及存储介质 | |
CN108572898B (zh) | 一种控制接口的方法、装置、设备、以及存储介质 | |
CN109582436B (zh) | 基于容器集群平台的细粒度抢占式资源调度系统及方法 | |
US20210334228A1 (en) | Managing network interface controller-generated interrupts | |
Quinton et al. | Typical worst case response-time analysis and its use in automotive network design | |
CN102135912A (zh) | 中断抖动的处理方法和设备 | |
CN105634502A (zh) | 基于状态机的按键扫描的实现方法 | |
CN101276295B (zh) | 避免实时操作系统频繁中断占用过多cpu资源的方法 | |
CN107844365A (zh) | 一种针对智能家庭监控系统的调度方法 | |
CN102339029B (zh) | 一种嵌入式操作系统定时保护的实现方法 | |
CN104391754A (zh) | 一种任务异常的处理方法及装置 | |
CN105808498B (zh) | 非对称多处理器通信方法及装置 | |
CN101753441A (zh) | 消息队列中的消息处理方法 | |
CN108509255A (zh) | 硬件中断的处理方法和装置 | |
CN106933681B (zh) | 一种多对象阻塞方法及其系统 | |
CN111221755B (zh) | 一种FPGA2子模块的io中断控制方法 | |
CN114281492A (zh) | 中断处理方法、装置、芯片、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140326 |
|
RJ01 | Rejection of invention patent application after publication |