您现在的位置: 通信界 >> IT >> 技术正文  
 
μC/OSII下的ARM7中断过程分析及优化方法
[ 通信界 / 维库开发网 / www.cntxj.net / 2010/9/27 11:22:00 ]
 

引言

目前,在嵌入式处理器芯片中,以ARM7为核心的处理器是应用较多的一种。它具有多种工作模式,并且支持两种不同的指令集(标准32位ARM指令集和16位Thumb指令集)。μC/OSII是专为嵌入式应用设计的抢占式、多任务实时操作系统,可用于各类8位、16位和32位单片机或DSP。μC/OSII向ARM7移植具有得天独厚的优点,所以“μC/OSII+ARM7”成为广泛应用的一款平台。

不管是哪种型号的ARM处理器,也无论该嵌入式系统中是否有操作系统,在计算机与外界实时交互的过程中,中断技术都是一项关键的技术。当外部事件发生时,CPU必须及时响应中断以实现对相应事件的处理,因此能否中断嵌套是影响嵌入式系统实时性能的主要因素。

1  ARM7的中断处理

ARM7处理器的中断主要有两种,本文主要讨论IRQ中断异常的响应机制。当中断请求IRQ到来使CPU进入中断响应时,CPU将会自动完成下列工作:首先,将PC、CPSR的当前值存入中断模式的LR、SPSR中;然后,操作CPSR中的运行状态位,使CPU进入中断模式并关闭中断;最后将PC的值改成0x00000018,从而使CPU的执行跳转到IRQ中断入口0x00000018处。异常向量表中的0x00000018处使用一条“LDR PC,[PC,#0xff0]”指令,在IRQ处使用的这条指令与其他向量不同。当CPU执行这条指令但还没有跳转时,PC的值为0x00000020(因为ARM7TDMI内核是三级流水结构),0x00000020减去0x00000FF0为0xFFFFF030,这是VIC的特殊寄存器VICVectAddr的地址单元。这个寄存器保存当前将要服务的IRQ的中断服务程序的入口,故读取VICVectAddr寄存器的值,然后放入PC程序指针,即跳转到相应中断服务程序,从而使CPU开始执行中断服务程序。

2  Handler宏分析

“μC/OSII+ARM7”系统中,只使用了ARM7的IRQ中断。由于不同的ARM芯片的中断系统并不完全一样,因此不可能编写出对所有使用ARM核的处理器通用的中断及时钟节拍移植代码。但是,为了使用户用C语言编写中断服务程序时不必为处理器的硬件区别而困扰,这里根据μC/OSII对中断服务程序的要求以及ARM7体系结构和ADS编译器的特点,编写了一个适用于所有基于ARM7核处理器的汇编宏--Handler。这个宏实现了“μC/OSII+ ARM7”中断服务程序的汇编语言代码与C语言函数代码之间的通用接口。其作用是对用户的C语言中断处理程序进行包装,只有通过这个包装之后,系统才能执行用户的中断处理程序。

中断服务程序流程如图1所示。在进入Handler宏中,首先保存LR、SPSR以及相关寄存器的值于中断模式下的堆栈中,以便于断点恢复。然后使记录系统中断次数的全局变量OSIntNeSTing加1并关中断切换到系统模式,调用C语言中断处理程序。在执行完中断处理程序后,调用出中断函数,以获取最高优先级就绪任务的任务控制块指针和任务优先级。返回中断模式后,通过比较当前任务与待切换任务的优先级,判断是否进行任务切换,最后返回断点。

图1  中断服务程序流程

IRQ异常处理代码的汇编部分--Handler宏:

MACRO

$IRQ_Label HANDLER $IRQ_ExcepTION_Function

EXPORT $IRQ_Label;输出的标号

IMPORT $IRQ_Exception_Function;引用的外部标号

$IRQ_Label

SUB LR, LR, #4;计算返回地址

STMFD SP!, {R0R3, R12, LR};保存任务环境

MRS R3, SPSR;保存状态

STMFD SP, {R3,SP,LR}^;保存用户状态的R3、SP、LR

;OSIntNesting++

LDR R2,=OSIntNesting

LDRB R1, [R2]

ADD R1, R1, #1

STRB R1, [R2]

SUB SP, SP, #4*3

MSR CPSR_c, #(NoInt | SYS32Mode)

;切换到系统模式以便对相关寄存器进行操作

 

 

作者:维库开发网 合作媒体:维库开发网 编辑:顾北

 

 

 
 热点技术
普通技术 “5G”,真的来了!牛在哪里?
普通技术 5G,是伪命题吗?
普通技术 云视频会议关键技术浅析
普通技术 运营商语音能力开放集中管理方案分析
普通技术 5G网络商用需要“无忧”心
普通技术 面向5G应运而生的边缘计算
普通技术 简析5G时代四大关键趋势
普通技术 国家网信办就《数据安全管理办法》公开征求意见
普通技术 《车联网(智能网联汽车)直连通信使用5905-5925MHz频段管理规定(
普通技术 中兴通讯混合云解决方案,满足5G多元业务需求
普通技术 大规模MIMO将带来更多无线信道,但也使无线信道易受攻击
普通技术 蜂窝车联网的标准及关键技术及网络架构的研究
普通技术 4G与5G融合组网及互操作技术研究
普通技术 5G中CU-DU架构、设备实现及应用探讨
普通技术 无源光网络承载5G前传信号可行性的研究概述
普通技术 面向5G中传和回传网络承载解决方案
普通技术 数据中心布线系统可靠性探讨
普通技术 家庭互联网终端价值研究
普通技术 鎏信科技CEO刘舟:从连接层构建IoT云生态,聚焦CMP是关键
普通技术 SCEF引入需求分析及部署应用
  版权与免责声明: ① 凡本网注明“合作媒体:通信界”的所有作品,版权均属于通信界,未经本网授权不得转载、摘编或利用其它方式使用。已经本网授权使用作品的,应在授权范围内使用,并注明“来源:通信界”。违反上述声明者,本网将追究其相关法律责任。 ② 凡本网注明“合作媒体:XXX(非通信界)”的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。 ③ 如因作品内容、版权和其它问题需要同本网联系的,请在一月内进行。
通信视界
华为余承东:Mate30总体销量将会超过两千万部
赵随意:媒体融合需积极求变
普通对话 苗圩:建设新一代信息基础设施 加快制造业数字
普通对话 华为余承东:Mate30总体销量将会超过两千万部
普通对话 赵随意:媒体融合需积极求变
普通对话 韦乐平:5G给光纤、光模块、WDM光器件带来新机
普通对话 安筱鹏:工业互联网——通向知识分工2.0之路
普通对话 库克:苹果不是垄断者
普通对话 华为何刚:挑战越大,成就越大
普通对话 华为董事长梁华:尽管遇到外部压力,5G在商业
普通对话 网易董事局主席丁磊:中国正在引领全球消费趋
普通对话 李彦宏:无人乘用车时代即将到来 智能交通前景
普通对话 中国联通研究院院长张云勇:双轮驱动下,工业
普通对话 “段子手”杨元庆:人工智能金句频出,他能否
普通对话 高通任命克里斯蒂安诺·阿蒙为公司总裁
普通对话 保利威视谢晓昉:深耕视频技术 助力在线教育
普通对话 九州云副总裁李开:帮助客户构建自己的云平台
通信前瞻
杨元庆:中国制造高质量发展的未来是智能制造
对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 杨元庆:中国制造高质量发展的未来是智能制造
普通对话 对话亚信科技CTO欧阳晔博士:甘为桥梁,携"电
普通对话 对话倪光南:“中国芯”突围要发挥综合优势
普通对话 黄宇红:5G给运营商带来新价值
普通对话 雷军:小米所有OLED屏幕手机均已支持息屏显示
普通对话 马云:我挑战失败心服口服,他们才是双11背后
普通对话 2018年大数据产业发展试点示范项目名单出炉 2
普通对话 陈志刚:提速又降费,中国移动的两面精彩
普通对话 专访华为终端何刚:第三代nova已成为争夺全球
普通对话 中国普天陶雄强:物联网等新经济是最大机遇
普通对话 人人车李健:今年发力金融 拓展汽车后市场
普通对话 华为万飚:三代出贵族,PC产品已走在正确道路
普通对话 共享退潮单车入冬 智享单车却走向盈利
普通对话 Achronix发布新品单元块 推动eFPGA升级
普通对话 金柚网COO邱燕:天吴系统2.0真正形成了社保管