嵌入式实时操作系统µC/OS-II内核结构简介

      本文介绍了嵌入式实时操作系统的概念和特点,并简要介绍了嵌入式操作系统µC/OS-II的内核结构。

            关键词    嵌入式实时操作系统,µC/OS-II,中断,任务,优先级

 

1           嵌入式实时操作系统概述[1]

所谓嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。它一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用软件等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。在大型嵌入式应用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定、安全的软件模块集合,用以管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,即嵌入式操作系统。嵌入式操作系统的引入大大提高了嵌入式系统的功能,方便了应用软件的设计,但同时也占用了宝贵的嵌入式系统资源。嵌入式操作系统常常有实时要求,所以嵌入式操作系统往往又是“实时操作系统”。早期的嵌入式系统几乎都用于控制目的,从而或多或少都有些实时要求,所以从前“嵌入式操作系统”实际上是“实时操作系统”的代名词。近年来,由于手持式计算机和掌上电脑等设备的出现,也有了许多不带实时要求的嵌入式操作系统。另一方面,由于CPU速度的提高,一些原先以为是“实时”的反应速度现在已经很普遍了。这样,一些原先需要在“实时”操作系统上才能实现的应用,现在已不难在常规的操作系统上实现。在这样的背景下,“嵌入式操作系统”和“实时操作系统”就成了不同的概念和名词。而实时操作系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行,具有独立性、及时性、可靠性的特点。顾名思义,嵌入式实时操作系统则是在综合了以上的两种操作系统的特点之后形成的,嵌入式实时操作系统没有一般的计算机操作系统的文件管理等庞大内容,一般也没有内存管理,它所拥有的是实时操作系统中最重要的内容,即多任务实时调度和任务的定时、同步操作。其二进制代码的大小通常为几KB到几十KB,是纯粹为嵌入式应用而设计的,具有很短的任务切换时间和很高的实时响应速度。而嵌入式实时操作系统的核心是实时多任务内核。

2           嵌入式实时操作系统µC/OS-II简介[2]

µC/OS-II是著名的源代码公开的实时内核,是一个完整的,可移植、固化、裁剪的占先式实时多任务内核。µC/OS-II是用ANSI C编写的,包含一小部分与微处理器类型相关的汇编语言代码,使之可供不同架构的微处理器使用。虽然µC/OS-II是在PC机上开发和测试的,但µC/OS-II的实际对象是嵌入式系统,并且很容易移植到不同架构的微处理器上。至今,从8位到64位,µC/OS-II已在超过40中不同架构的微处理器上运行。

3           嵌入式实时操作系统µC/OS-II内核结构

3.1 临界区(Critical Sections),OS_ENTER_CRITICAL()OS_EXIT_CRITICAL()

同其他内核一样,µC/OS-II为了处理临界区代码,必须关中断,处理完毕后再开中断。关中断使得µC/OS-II能够避免同时有其他任务或中断服务进入临界区代码。关中断的时间是实时内核开发商应提供的最重要的指标之一,因为这个指标影响用户系统对实时事件的响应特性。µC/OS-II努力使关中断时间降至最短,但就使用µC/OS-II而言,关中断的时间在很大程度上取决于微处理器的结构以及C编译器所生成的代码质量。

微处理器一般都有关中断和开中断指令,用户使用的C编译器必须具有某种机制,能够在C源代码中直接实现关中断/开中断操作。有些C编译器允许在用户的C源代码中嵌入汇编语言的语句,使得关中断/开中断很容易实现;而有些C编译器把从C语言中关中断/开中断的操作放在语言的扩展部分,从而直接从C语言中可以关中断/开中断。

µC/OS-II定义了2个宏来关中断和开中断,以便避免不同C编译器厂商使用不同的方法来处理关中断和开中断。µC/OS-II中的这2个宏分别是OS_ENTER_CRITICAL()OS_EXIT_CRITICAL()。因为这2个宏的定义取决于使用的微处理器,故在文件OS_CPU.H中可以找到相应的宏定义。每种微处理器都有自己的OS_CPU.H文件。

OS_ENTER_CRITICAL()OS_EXIT_CRITICAL()总是成对使用的,把临界区代码封装起来,如以下代码所示:

{

    ……

    ……

    OS_ENTER_CRITICAL();

    /* µC/OS-II临界区代码 */

    OS_EXIT_CRITICAL();

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值