基于STR7 ARM微控制器的IRQ中断防御体系

发布者:星辰耀眼最新更新时间:2015-04-20 来源: eechina关键字:STR7  ARM微控制器  IRQ  中断防御体系 手机看文章 扫描二维码
随时随地手机看文章
1 引言 

ARM7TDMI体系的中断向量的地址是动态分配在中断向量控制器的寄存器中,例如,意法半导体(ST)公司生产的STR71x系列ARM微控制器,其增强型的中断控制器(EIC)的EIC_IVR寄存器(中断向量寄存器)、EIC_SIRn寄存器(源中断寄存器)都是用于存储相关中断通道的中断服务程序在存储器中的地址,内核响应IRQ中断后,再根据当前对应的中断通道的中断向量进行散转,执行相应的中断服务程序。对于一般的8位MCU,通常是将向量中断人口固定分配ROM中,例如MCS-51单片机各个中断的人口地址是固定的。两者相比,ARM的中断体系具有较大的灵活性,但却降低了安全性和可靠性;MCU的中断向量体系虽然失去了灵活性,但确保了系统的安全性和可靠性。  

在系统长时间运行和强干扰的作用下,保存在寄存器中的ARM的各个中断地址很容易受干扰信号的影响。当中断向量地址被改写后,程序必定跑飞,这种情况是无法忍受的,特别是在工控系统中。针对这种情况,本文提出了基于STR71x系列ARM微控制器将中断向量固化到ROM的思路,可以提高系统的安全性和可靠性。  

2 STR71x结构分析  

STR71x系列是意法半导体(ST)公司生产的基于ARM7TDMI内核的微控制器,片上集成高达256 KB+16 KB的Flash和64 KB的RAM,拥有丰富的外设和增强的I/O功能,具有高性价比。STR71x内部有一个独立的增强型中断控制器,可完成多个中断通道的硬件处理、中断优先级决策和自动产生中断向量等功能,如图1所示。  

1.jpg 

EIC中的优先级解码器是一个不断计算挂起IRQ最高优先级的组合模块,当决策出最高优先级中断后,它把EIC_IVR寄存器(中断向量寄存器)更新为最高优先级中断服务程序的地址,并且拉低nIRQ内部信号。软件读取EIC_IVR寄存器的内容后。获得当前中断通道所对应的中断服务程序的地址,从而散转执行对应的中断服务程序。而在读取EIC_IVR寄存器值的一个时钟周期后,EIC_CICR寄存器(当前中断通道寄存器)被更新为当前响应的IRQ中断通道的标号,EIC_CIPR寄存器(当前中断优先级寄存器)被更新为当前响应的IRQ中断通道的优先级。  

中断向量寄存器EIC_IVR是一个32位的寄存器,其中,高16位IVR[31:16]不依赖于当前响应的中断。对于所有的IRQ中断通道来说,这16位都是相同的,它是在初始化时由用户程序配置的。而低16位IVR[15:0]则依赖于当前响应的中断(即当前具有最高优先级的有效中断),并且它是当前系统响应的中断通道所对应的EIC_SIR寄存器中源中断向量(SIV)的副本。EIC_SIRn是通道n的源中断寄存器,其高16位SIV[31:16]是中断通道n对应的中断服务程序的存储器地址的低16位。EIC_IVR寄存器的高16位IVR[31:16]与EIC_SIRn的高16位SIV[31:16]构成了中断通道n对应的中断服务程序的存储器地址的首址。  

3 IRQ中断防御体系的构建  

根据上面的分析可知,STR71x ARM中各个IRQ中断通道的中断服务程序入口地址是动态存放在EIC_IVR、EIC_SIRn等可读写的寄存器中,即存放在RAM中的,这样很容易受干扰信号影响。当这些寄存器中的中断服务程序地址被干扰信号改写,产生中断时,系统肯定无法正确进入相应的中断服务程序,系统程序必定跑飞。所以,保护各个IRQ中断通道的中断服务程序入口地址就显得相当必要。  

软件根据EIC_IVR寄存器中存放的地址去散转执行对应的中断服务程序的具体实现代码。下面列举了ST公司公布的标准固件代码中关于IRQ中断部分处理的代码:  






在上述程序中,系统响应中断后,首先把R0~R12、SPSR等寄存器入栈保护,然后再通过读取E-IC_IVR寄存器获得当前响应的中断通道所对应的中断服务程序入口地址。  [page]

由前面的分析可知,EIC_CICR寄存器是存储当前响应的IRQ中断通道的标号,EIC_CICR寄存器在此成为构建防御体系的关键,利用它可将中断向量固化到ROM中。  

在构建的防御体系中,EIC响应IRQ中断,软件读取一次EIC_IVR后,EIC_CICR寄存器更新当前响应的IRQ中断通道的标号,然后获取此标号的值,跳转到固化在ROM的对应当前中断通道的中断服务程序入口,执行所响应的中断通道的中断服务程序。在上述所列出代码的基础上,修改了代码如下,实现防御体系的构建。  



比较修改前后的代码,修改后每次执行的代码只比原来增加了5条指令,中断响应处理的实时性有所下降,但是,在高速的ARM微控制器上,牺牲5条指令周期的时间来换取系统的可靠和安全是完全值得的。  

一般情况下,程序员不会对未使能的中断通道编写中断服务程序,故此,在32个IRQ中断通道散转向量表中,可以把没有使能的中断通道直接链接到复位向量进行强行复位,代码如下:  



4 结束语  

本文提出的IRQ中断防御体系的构建,通过了Kell ARM3.04的开发环境调试。并成功应用在基于STR71x ARM微控制器的某数控切割加工的控制系统。在持续一个月的系统运行测试中,对在程序中没有构建IRQ中断防御体系的系统(简称“A系统”)和构建了IRQ中断防御体系的系统(简称“B系统”)相比较,发现A系统曾经出现过两次的程序跑飞现象,而B系统的运行稳定,未出现程序跑飞的情况。可见,采用了该防御体系后,大大提高ARM微控制器的抗干扰能力,增强了系统的可靠性和安全性。
关键字:STR7  ARM微控制器  IRQ  中断防御体系 引用地址:基于STR7 ARM微控制器的IRQ中断防御体系

上一篇:AT91RM9200处理器同步串口SSC的特性分析与应用
下一篇:基于ARM+uClinux的嵌入式系统的开发

推荐阅读最新更新时间:2024-03-16 13:58

基于ARM MCU通过AV端口对显示器的控制
设计背景 ARM处理器是世界上最流行的嵌入式处理器,广泛应用于个人通信等嵌入式领域。本文探讨的是基于普通ARM7核的CPU,在需要通过AV端口的显示器进行显示的方法,如在医疗监视器的显示等。 概述 采用基于ARM7核的LPC2104芯片,通过直接连接显示器的AV端口,由LPC2104的GPIO通过电平转换,输出显示器所需要的控制信号,在显示器显示声音和图像。系统有相应的按键,进行相应的菜单控制。 系统分析 通过AV端口在普通显示器要能显示图像,最主要的是能产生如图1所示的场同步脉冲。 图1 场同步脉冲 它必须要有64μs,4.7μs,5.8μs,1.5μs等精确定时信号。本系统采用LPC2104芯片,工作频率为11.0592
[电源管理]
基于<font color='red'>ARM</font> <font color='red'>MCU</font>通过AV端口对显示器的控制
基于ARM单片机的自动测高测距小车的研究与设计
摘要:生活中许多目标的高度和水平距离需要进行测量。目前主要的测量方法,仍以传统的皮尺丈量为主,测量效率不高,有时还很不方便,没有技术成熟的数字式测高测距产品。以基本的数学方法为理论依据,利用遥控小车做为载体,采用角度传感器测量角度、霍尔传感器测量水平距离等,通过单片机LM3S615进行数据计算,实现了对待测目标物体的高度、水平距离等数据的快速、精确和数字式的测量,高度测量精度可达99.06%,水平测量精度则可迭98.06%。 关键词:测高;测距;LM3S615;角度传感器;霍尔传感器;LCD液晶显示 目前,国内外对于测高、测距的研究主要集中在基于对卫星、雷达等信号进行的处理,其应用范围主要集中在军事、海洋或地质等数据的测量及勘
[单片机]
基于<font color='red'>ARM</font><font color='red'>单片机</font>的自动测高测距小车的研究与设计
基于ARM7的单片机实现32位系统
随着全球化工业生产的发展与深入,终端产品功能的多样化,8位或8051的工程师在设计工业控制器和模块时,越来越需要复杂的以RISC(精简指令系统)为基础的微处理器。由于有机能源的短缺和全球气候变暖,对电子设备能耗的要求越来越高。意法半导体的STR7系列单片机内置闪存存储器,寄存器以一种很简单的方式排列。STR7可以很方便地连接各种外部设备。ST提供丰富的应用笔记和例行程序,有效地降低了应用和学习的入门门槛。目前意法半导体提供三种评估板,STR710、STR720和STR730。 图1. 评估板 有效地用好用熟一款单片机,最大限度地发挥硬件的效能是每一个工程师的目标;首次接触ARM的系统,要想达到上述目标,对于一个用惯8位或1
[单片机]
基于<font color='red'>ARM</font>7的<font color='red'>单片机</font>实现32位系统
14位A/DMAX194在ARM单片机系统中的设计
引言 为了实现计算机的自动测量与控制,越来越多的领域采用了A/D转换技术。随着大规模集成电路芯片技术的发展,速度更快、精度更高、使用更方便的集成电路芯片层出不穷。本文介绍了一种笔者使用后取得良好效果的新型A/D转换芯片—MAX194。另外,由于32位处理器的价格不断下降,用户已可以大量使用,而32位RISC处理器则更是受到青睐,并将在某些领域替代原来的8位单片机。其中,ARM嵌入式微处理器系列处于领先地位。笔者所介绍的数据采集系统中采用的是PHILIPS公司生产的以ARM7处理器作为内核的LPC2104单片机。 1 MAX194简介 MAX194是MAXIM公司推出的一种逐次逼近型模数转换器(ADC),具有高速、高
[单片机]
瑞萨RA系列32位Arm Cortex-M MCU让IoT时代更安全
全球半导体解决方案供应商瑞萨电子集团宣布, RA产品家族32位Arm® Cortex®-M微控制器(MCU)获得PSA 2级认证和IoT平台安全评估标准(SESIP)认证。 配备灵活配置软件包(FSP)的RA6M4 MCU已通过PSA 2级认证,在RA4和RA6系列MCU获得PSA 1级认证的基础上进一步进行扩展。瑞萨RA6M3、RA6M4和RA4M2 MCU产品群均已通过“物理和逻辑攻击者”防护认证的SESIP1标准。 除被广泛认可的行业认证外,瑞萨RA MCU还通过在Armv8-M的Arm TrustZone®基础上结合经NIST CAVP认证的安全加密引擎,为客户打造先进的物联网安全性。RA产品家族融合了基于硬
[单片机]
瑞萨RA系列32位<font color='red'>Arm</font> Cortex-M <font color='red'>MCU</font>让IoT时代更安全
μC/OS-Ⅱ在ARM单片机S3C44B0x上的移植
目前,嵌入式系统在工业控制、家用电器、移动通信、PDA等各种领域得到了越来越广泛的应用。由于用户对嵌入式产品的性能要求越来越高,程序设计也变得越来越复杂,这就需要一个通用的嵌入式实时操作系统来对其进行管理和控制。对移植了操作系统的嵌入式系统进行设计和开发,可以大大减小程序员的负担,对于不同的应用可以按照相同的步骤来完成系统的设计。 μC/OS-Ⅱ是一种简单高效、源代码公开的嵌入式实时操作系统,具有良好的可扩展性和可移植性,被广泛的应用到各种嵌人式处理器上。μCOS-Ⅱ操作系统拥有可固化,可裁剪,可剥夺性的实时内核,可同时管理64个系统任务。利用移植μCOS-Ⅱ操作系统的嵌入式微处理器来设计和开发产品,对于提高产品的性能,减少产
[单片机]
μC/OS-Ⅱ在<font color='red'>ARM</font><font color='red'>单片机</font>S3C44B0x上的移植
富士通半导体推出采用ARM Cortex-M4和M0+内核的32位微控制器系列产品
上海,2012年11月15日 – 富士通半导体(上海)有限公司今日宣布,推出其新的基于ARM® Cortex™-M4处理器内核的FM4系列32位通用RISC微控制器,以及新的采用Cortex-M0+内核的FM0+系列。富士通计划在2013年提供这些新微控制器产品的批量样片,在年内晚些时候这些产品将全部投产。加上目前的FM3系列微控制器,采用Cortex-M4、M3和M0+处理器内核的产品组将有超过700款不同的产品。这些架构一致、使用灵活的产品将能够更广泛地满足用户对更高性能和更低功耗的日益增长的需求。 富士通推出采用ARM Cortex-M4和M0+内核的完整系列32位微控制器,增强现有的FM3系列 富士通半导体在20
[单片机]
富士通半导体推出采用<font color='red'>ARM</font> Cortex-M4和M0+内核的32位<font color='red'>微控制器</font>系列产品
ARM9微控制器LPC3180的软硬件平台设计
摘要 介绍以Philips LPC3180微控制器为核心的嵌入式软硬件平台设计;对系统设计的硬件部分和软件部分进行详细的分析,并针对LPC3180芯片特性着重讨论了其软件系统构建以及系统启动流程。实验结果表明,LPC3180嵌入式系统平台结合片内硬件浮点运算单元,具有高性能的浮点运算处理能力,可满足复杂的嵌入式应用场合的要求。 关键词 LPC3180 ARM9 软硬件平台 嵌入式应用系统设计包括硬件平台和软件平台两部分。前者是以嵌入式微控制器/微处理器为核心的硬件系统;后者则是围绕嵌入式操作系统构建的软件系统。两者在设计上是密不可分的,并且需要在设计之间进行权衡优化,根据实际应用进行外扩和裁剪。 基于ARM92
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved