电子工程师的网站
首 页 |  新闻资讯 | 最新产品 | 解决方案 | 技术参数
设计应用
电路图 | 技术资料 | 芯片资料 | 技术论坛
  现在位置: 首页 > 设计应用 > 嵌入式系统/ARM技术 > 详细信息
嵌入式系统/ARM技术:μC/OS-II在LPC213X上的多种移植方案
来源: 21ic   时间: 2007-9-30 11:22:30    
   μC/OS-II是可移植、适用于对安全性要求苛刻的剥夺型实时多任务嵌入式系统,简单易学,在工程应用和嵌入式系统教学中很受欢迎。LPC213X是Philips公司推出的基于ARM7TDMI-S核的32位RISC微处理器,也适合于ARM学习开发平台和工程应用。

1 与μC/OS-II移植工作相关的主要特性
  
ARM体系结构分为7种运行模式,ARM和Thumb两种工作状态。LPC213X的编程模型就是标准的ARM7体系结构;同时LPC213X也具备ARM的标准异常模式IRQ和FIQ。稍具特色的是其VIC向量中断控制器。分别对IRQ、FIQ、非向量中断和软件中断进行了分类,具有对32个中断输入的可编程分配机制。这对于μC/OS-II的移植至关重要。

  芯片内部的RTC实时时钟可由独立的32 MHz晶振或基于VPB时钟的可编程预分频提供,作为实时系统的时钟节拍来源。

2 μC/OS-II移植的主要工作
  
移植工作分为编译器相关和处理器相关两部分。前者主要涉及数据类型定义、代码格式、头文件组织、条件编译选项及混合编程等;后者主要涉及开关中断、堆栈方向、任务栈结构初始化、任务调度、中断控制和响应、时钟节拍处理和高优先级任务执行等。

  主要是编写3个文件:OS_CPU.H、OS_CPU_C.C和OS_CPU_A.S。其中l主要包含以下几个重要函数;OSTaskStkInit()、OSStartHighRdy()、OSCtxSw()、OS-IntCtxSw()和OSTickISR()等。另外,还须编写配置文件、引导及初始化代码和调试等。

3 两个可行的移植方案
  
针对ARM所具有的7种不同运行模式,移植μC/OS-II系统时采用的处理器模式方案是多样的。例如,可以让系统运行在SVC管理模式,SWI软中断也用SVC模式,其他为异常模式;也可以使μC/OS-II运行在SYS系统模式;还可以使μC/OS-Il运行于用户模式,任务或中断切换时将其从SVC模式或IRQ、FlQ模式切换到SYS模式处理堆栈。在此形成以下两种方案,并结合移植过程进行简要分析。

  方案一:系统运行于SVC管理模式,异常运行于异常模式。
  ①开关中断。设置这种方案中OS_CRITICAL_METHOD为3,则开中断过程为先保存CPSR寄存器值到RO,通过设置CPSR6、CPSR7两位禁止FIQ和IRQ,关中断则恢复原先开中断时保存在R0中的CPSR。
  ②任务切换。因为非异常任务都运行在SVC模式,所以任务切换要做的只是保存旧任务的寄存器状态到堆栈,并且恢复新任务的堆栈状态到寄存器当中,相关函数为OSCtxSw()。要注意在这里上下文切换中无须对SPSR负责,因为SPSR是备份CPSR寄存器,只有当模式切换从FIQ、IRQ模式退出时才发生作用。换句话讲,SPSR总是在中断禁止时才发生作用。
  ③中断级任务切换和相应中断机制。中断异常分为FIQ和IRQ异常。IRQ的中断级任务切换过程OS_CPU_IRQ_ISR()如图1所示。

  由图1可知,该函数作为μC/OS-II系统的中断调度函数,进入中断IRQ模式后立即返回SVC模式保存原先任务状态;再回到IRQ执行用户级中断处理代码OS_CPU_IRQ_ISR_Handler();完成后返回SVC模式运行最高优先级任务。

  LPC213X具有VIC向量中断控制器,把所有中断分为FIQ、向最中断和非向量中断。FIQ从中断向量表处开始处理程序,直接在用户中断处理代码OS_CPU_FTQ_ISR_Handler()里调用中断处理程序;而向量中断IRQ在响应时会在VICVectAddr(0xFFFFF030)寄存器上出现该中断处理程序的首地址。所以作为μC/OS-II的IRQ的用户中断处理代码,必须进行如下处理:

   
  ④中断向量表。在该方案的中断向量表中,FIQ和IRQ中断向量填写的是程序跳转指令。其中FIQ跳到OS_CPU_FIQ_ISR(),IRQ跳到OS_CPU_IRQ_ISR()。
  ⑤时钟节拍的产生。μC/OS-II时钟节拍需要lO~100ms一次的精确间隔。LPC213X使用11 MHz的外部晶振,外设时钟与系统时钟频分比设为l,而RTC设置外设时钟为时钟源,然后把Timer0作为向量中断IRQ,编写时钟中断处理程序实现时钟节拍。

   
  方案二:系统运行于SYS系统模式,异常服务程序处理在SYS系统模式下执行,软中断处理在管理模式下执行。
  ①开关中断。该方案下OS_CRITICAL_METHOD为2,具体过程不直接从汇编代码实现,而是通过软件中断SWI系统服务来实现。开关中断在SVC管理模式下进行,因为ARM决定CPSR可以在任意模式下被访问。
  ②任务切换。任务切换包括任务级调度切换和中断处理程序调度切换。任务级切换采用软中断SWI方式实现,需要注意的是此时SWI中断处理程序并不返回,所以每次SWI中断一开始就重新初始化SVC管理模式的堆栈地址空间,否则会造成内存泄漏或溢出。其流程如图2所示。

  图2中,第一步为软件中断通用处理过程,是每一个软件中断都必须运行的代码;而后几步为任务调度所要做的代码,具体调度由OSCtxSw实现上下文切换。整体利用宏OS_TASK_SW()实现,在OS_CPU.H中定义该宏为软中断,并分配中断号0。
  ③中断级任务切换。根据LPC213X处理器的VIC控制特点,采用前后台系统的传统处理方法进行中断处理程序调用,只是每个中断处理程序都加上相同的任务上下文切换相关代码,这些代码采用宏汇编的方法实现。具体流程如图3所示。从图中可以看出,保存上下文和恢复就绪任务都是在IRQ模式下进行的,而用户级处理程序在SYS模式下进行的,与前一种方案刚好相反。但是,这样设计中断调度并利用宏汇编实现使得当系统中断处理调用较多时重复代码量增加。
  ④中断向量表。在该方案的中断向量表中,FIQ和IRQ等中断向量填写的是宏汇编函数相对应的中断处理服务程序的名字,不作特殊处理。

  ⑤时钟节拍的产生。该方案的时钟节拍与前一方案的产生方法相同。


4 系统启动和引导过程
  
除了以上这些移植代码,系统启动还有很多工作要做,其流程如图4所示。

  图4中中断向量表的配置要根据以上两种方案分别做工作,而初始化模式堆栈则是不同模式都必须完成的工作。用户级的初始化代码可以写在外围设备初始化中。

5 移植代码调试过程
  
多任务系统移植代码调试有时不能单步调试,时钟节拍的引入令系统比前后台系统复杂得多,所以要有好的调试方法。可以采用以下调试步骤:
  ①关闭时钟节拍,即关闭时钟中断单步调试,看系统会不会进入Taskldle任务;
  ②关闭时钟节拍,同时分别调试FIQ和IRQ中断代码;
  ③开时钟节拍,单独调试时钟中断ISR;
  ④编写简单的多任务程序(1个或2个),同时在每一个任务中调用OSTimaDly(1)函数,查看具体的进程调度过程。(多种方案的移植代码见本刊网站www.mesnet.com.cn——编者注)

6 总 结
  
在各种系统的移植过程中发生问题最多的是内存泄赫,这常常导致芯片发生代码预取或数据中止异常。对应用系统来说,应该对这类中止异常做相应的提示。

  μC/OS-II移植综合性较强,在移植前必须领会多任务切换原理和系统内核结构,熟悉ARM汇编语言和编程模型,了解启动代码内容、编译器及芯片中断系统等。该丁作看似简单但其实内容丰富,需要较全面的软硬件知识。

  本文给出的两种移植方案切实可行,运行效率较高,在其他ARM7TDMI核的芯片上做小改动后也可以应用;同时,对其他嵌入式系统在不带MMU内存管理模块处理器上的移植也有很好的参考价值。免费提供本文相关代码,请联系wlazhenqian@hotmail.com。

宁波大学 吴振谦

相关信息
发表评论
打印本页 关闭本页
数字电源管理芯片ZL2105的性能及性能测试设计
  Zilker Labs的ZL2105新型数字DC/DC转换器电源管理芯片通过数字实施的监控提供传统模拟方案的高效率,无需进行编程,很适合需要3A电流且空间受限的应用。本文介绍该芯片的性能及性能测试设计。 ZL2105将ZL2005的数字电源管理功能、简单的可配置性及高效率特性集成到非常适用于低功耗应用的单个器件中。具有全数字电源管理功能的ZL2105尺寸小、元件数较少,用户可将多个数字直流(Digital...
>>详细内容
基于C8051F041的电力变压器非电量保护装置
  1 引言 电力变压器是电力系统中应用相当普遍而又十分重要的电气设备,它运行较为可靠,故障机率小。但是在运行中,还是可能发生箱内故障、箱外故障及出现不正常工作状态。其中,箱内故障是非常危险的,因为短路电流产生的电弧不仅会破坏绕组绝缘,烧坏铁芯,还可能使绝缘材料和变压器油受热而产生大量气体,引起变压器油箱爆炸。一旦发生故障,将给电力系统的运行带来严重的后果。 为...
>>详细内容
微机继电保护实验系统的研究与实现
  1 引 言 随着电力工业的迅速发展,对电力系统继电保护的要求也越来越高,传统的继电保护产品已不能适应这些要求,正在被逐步淘汰,各种类型的微机装置由于具有诸如反应故障速度快、运行灵活、无动作死区等一系列独特的优点,在电力系统保护中得到了广泛的应用,如由微机控制的集测量、控制、保护、远动、五防等功能于一体的无人值守变电站的广泛应用就是明显的例证。 基于这种状况,为...
>>详细内容
基于USB接口的VoIP手柄设计
  引 言 VoIP是指将语音信号进行编码、压缩和分包等处理,通过IP网络进行传输,实现计算机-计算机、普通电话-普通电话、计算机与普通电话之间进行话音通信的技术。现代数字信号处理技术和语音压缩编码技术的进步,在技术上保证了IP电话在Internet网上传输的可行性;而H.323标准的颁布和SIP协议的应用,使得IP语音业务能够在Internet网上迅速开展起来,并有望成为一种核心和关键技术。这种...
>>详细内容
数码相框(数字相框)专题介绍
  1. 世平集团研发强打3.5'&7'NXP低成本数码相框解决方案 世平集团应用技术处ATU部门配合“数字相框”近期引起的市场高观注,自2006年底着手研发数码相框解决方案,于日前正式推出低成本3.5'&7'NXP数码相框(DPF解决方案,将于3/15-3/21德国Cebit展展出,此外,挟其众多优势,并已获客户进行应用量产。 方案功能简单,操作简便。方案优势: 在目前市面上众多DPF方案中,...
>>详细内容
直流电机监控闭环转速系统的实现
  1 引言 直流电机监控系统是机电产品中的重要环节,其控制性能反映了机电设备的控制质量。灵活、方便、准确、实时的监控需要对电机的转速信号进行测量和处理,以达到精确控制转速的目的。 2 系统总体设计 ARM/DSP/FPGA虽精度高、速度快,但设计复杂,价格也一直居高不下。本系统采用一种适用于小容量存储器单片机(如PIC系列)系统且功能强大的RTOS—Salvo。无需扩展大量的RAM和ROM,...
>>详细内容
已有(
)位对此新闻感兴趣的网发发表了看法 >>更多评论
内 容:
     
 
热点新闻
一周排行
关于我们 | 服务项目 | 付款方式 | 广告服务 | 联系我们 | 友情链接 | 投诉 建议 合作 | 网站地图 | 加入收藏
Copyright © 2007-2008 WEEQOO.COM Corp.All Rights Reserved. 版权所有 经营许可证编号:浙B2-20050339 法律声明
维库电子旗下网站:维库电子市场网 | ChinaICMart | 维库电子开发网 | 维库电子人才网
总部:杭州市下城区朝晖路182号国都发展大厦1号楼80A
电话:0571-85889139-8007 QQ:303939539 | MSN:zh1226@hotmail.com |  邮箱:laz8258@163.com dzsc51@163.com