关闭
关闭
首页 > 嵌入式软件 > vxworks

单片机作为嵌入式信息产品的一个重要应用方面,其使用、设计面临着全新的挑战。一方面,人们对嵌入式产品的要求越来越高,稳定可靠、功能丰富、物美价廉的信息产品将成为人们的首选。另一方面,随着微电子工艺水平的发展,单片机处理器的能力不断提高,从最初的8位单片机到16位,进而32位单片机,功能越来越强大,执行速度越来越快,集成度、精确度也越来越高,应用领域进一步拓宽。可以说,单片机芯片的性能已经能够满足现代人们对嵌入式信息产品的更高要求。为了能将二者有效地结合起来,嵌入式RTOS的软件设计方法也取代了以前的前后台(超循环)设计方法,越来越受到重视和应用。

本文引用地址: http://embed.21ic.com/software/vxworks/201711/49330.html

正如分时操作系统中Linux的出现打破了Windows一统天下的局面一样,由美国Jean J.Labrosse先生设计和编写的uC/OS-II(Micro C OS 2)的出现也给国内的RTOS应用者带来了惊喜。uC/OS-II的最大优点与Linux相同,即其源代码全部公开,使人们在应用它的同时能清楚地了解内部的实现细节,并且能够根据自己的需求进行移植和修改。特别重要的是uC/OS-II经过8年的发展,已经成功地在多个行业得到应用,保证了实用性和可靠性。它的出现改变了以前人们在使用RTOS时的态度,减少了经济上的顾虑,对于国内RTOS的研究、推广、应用将起到重要的推动作用。uC/OS-II采用微内核设计,使用C语言编写,追求灵活性,可配置、可裁剪、可扩充、移植性强。需要强调的是 uC/OS-II严格采用优先级抢占式调度方案。在创建任务时,根据任务的重要性给每个任务分配不同的优先级。任务调度时,先执行高优先级的任务,然后按照优先级由高到低执行任务。如果在某个任务执行中,激发了一个优先级更高的任务,那么在该任务执行结束后,将由任务调度器调度去执行所激发的高优先级任务,而不是顺序执行。

下面就uC/OS-II在TI公司生产的MSP430F148芯片上的移植和应用来探讨在单片机上实现RTOS可能遇到的一些问题。

1 MSP430系列单片机简介

MSP430系列单片机是由TI公司开发的16位单片机。其突出特点是超低功耗,非常适合于各种功率要求低的场合。有多个系列和型号,分别由一些基本功能模块按不同的应用目标组合而成。典型应用是流量计、智能仪表、医疗设备和保安系统等方面。由于其较高的性能价格比,应用已日趋广泛。

MSP430F148是TI新近推出的MSP430F14x/13x系列单片机中的一款。相对MSP430系列的其它芯片,主要特点如下:

超低功耗。由于内置了功耗极低的快速闪存,因此,MSP430F14x/13x系列在待机模式下所消耗的电能还少于电池未使用时的自然损耗。在正常的工作状态下,如果工作电压为2.2 V,其典型消耗电流仅为250uA/MIPS,而待机模式下工作电流降至仅1uA以下。

执行速度快。MSP430F13x/14x系列的工作电压范围为1.8~3.6 V,性能可达8 MIPS。

存储容量大。MSP430F148片内内置了48 KB Flash ROM和2 KB RAM。RAM空间是MSP430系列中最大的,基本符合运行RTOS的需要。

高性能A/D。包含了1个具有8个外部通道的12位高性能A/D转换器。利用芯片内置的自动扫描功能,A/D转换器可以不需要中央处理器的协助而独立工作。

集成度高。该器件还包括1个独立的看门狗、2个脉宽调制定时器(PWM)、1个比较器、2个USART口以及48个输入/输出引脚等部件。

在线支持强。MSP430F13x/14x系列均可由MSP-FET430P140闪速仿真工具(FET)提供支持。该FET是一种完整的集成开发环境,包括源代码级调试器、仿真器、汇编/连接器、C编译器、2种*估芯片、目标板、JTAG接口以及编程单元等。

由以上介绍可以看出,MSP430F148属于一种中低端的单片机,只具备运行RTOS的基本条件,所以在它上面运行RTOS所遇见的一些问题,对于一般的单片机而言是具有代表性的。

2 中断堆栈的结构设计

在uC/OS-II中,任务切换分为任务级切换和中断级切换。其中任务级切换是通过发软中断指令或依靠处理器执行陷阱指令来完成的。软中断指令会强制将一些处理器寄存器保存到当前任务的堆栈中,并执行任务调度。其目的是使处于就绪态的任务的堆栈结构看起来就像刚发生过中断并将全部寄存器保存在堆栈的情形一样。如MCS-5l以及x86芯片都有类似的指令,但问题出在有一些单片机芯片中没有软中断指令,并且在发生中断时保存寄存器的情况根据单片机芯片和所使用的编译器的不同而有很大区别。

MSP430F148中就没有软中断指令,所使用的IAR编译器在发生中断时也不保存所有的寄存器,而是只保存几个在中断中使用到的寄存器。所有这些都是不符合uC/OS-II的移植条件的。我们的解决方法是根据具体情况来自己定义一个中断结构,不论是在任务级调度还是中断发生或调度以及任务堆栈的初始化时,都要按照这个结构来执行。代价是必须对所编写的中断程序的汇编代码进行人工修改,使之符合这个中断结构。

为设计一个符合要求的中断堆栈结构,首先必须清楚所使用的单片机在发生中断时执行了哪些操作,即向堆栈中保存了哪些寄存器以及它们的顺序。当MSP430单片机发生中断时,只进行2条基本操作,先将SR(状态寄存器)压入堆栈中保存,然后将中断发生时要执行的下一条指令的PC值压入堆栈保存。其次,要清楚所使用的C编译器在编译C语言编写的中断程序时,进行了哪些默认的操作。通过对所使用的IAR V2.13编译器编译产生的汇编程序进行分析,可以发现,除了以上的2条基本操作以外,在中断程序的开头,还自动保存了 R12~R15四个寄存器,余下的R4~Rll八个寄存器中只保存在中断程序中用到的个别寄存器,而不是全部保存。但在RTOS中必须保存所有的寄存器,这样才能正确保存该任务的状态。通过以上分析,我们定义了MSP430运行uC/OS-II时的中断堆栈结构,如图1所示。

 

1.jpg

3 如何保证单片机的低功耗特性

单片机在嵌入式方面的应用都非常强调单片机的超低功耗特性。MSP430系列的特点也在于此。如果由于运行RTOS而破坏了单片机的低功耗特性是得不偿失的。一般的单片机都规定了几种不同功耗的工作模式,可以根据具体的需求来选择。不同工作模式是通过读写1个或1组寄存器来控制CPU、时钟、晶振以及外围设备的运行来实现的。

换一批

延伸阅读

[疯狂史] 英特尔第一款完整的商业处理器已经44岁了

英特尔第一款完整的商业处理器已经44岁了

英特尔于1971年11月15日宣布了4004处理器及其芯片集,它是芯片巨人第一个完整的单片机和第一个商业微处理器。4004处理器有2300个晶体管,手指甲大小,计算性能与第一代电子计算机相当,但第一代计算机需要占据整间房......

关键字:英特尔 处理器 单片机

[趣科技] 单片机物语

单片机物语

  通用运动控制技术现状、发展及其应用:运动控制技术的发展是制造自动化前进的旋律,是推动新的产业革命的关键技术。运动控制器已经从以单片机或微处理器作为核心的运动控制器和以专用芯片(ASIC)作为核心处理器的......

关键字:单片机 微型处理机

[行业资讯] MCU市场:中国制胜的方法

MCU市场:中国制胜的方法

MCU作为一个成熟的芯片类型,其市场竞争一直非常激烈,特别是在ARM推出的Cortex M系列内核之后,厂家对于实现产品的差异化以取得竞争优势就更加重视了。然而该如何更好地实现产品的差异化呢?记者采访业界主流企业。 ......

关键字:MCU 中国芯 单片机

[行业资讯] 如何选购单片机成品开发板

如何选购单片机成品开发板

为了尽早熟练掌握单片机程序开发,我们在学习单片机的时候,是比较有必要选择一款适合的成品单片机开发板的,毕竟通过自己搭建所有电路的难度比较大的。下面我们来简单介绍......

关键字:开发板 单片机

[行业资讯] 嵌入式技术不断革新的今天,为何8位MCU市场依然潜力巨大?

嵌入式技术不断革新的今天,为何8位MCU市场依然潜力巨大?

今日话题事实上,在工业控制、安防、物联网、消费类电子等诸多领域,8位MCU的身影依然处处可见,而且不断推陈出新。从市场的占有率和销售额来看,8位 MCU的市场份额甚至还......

关键字:嵌入式 MCU 单片机

[行业资讯] 向51单片机说再见

向51单片机说再见

最近在访问论坛时看到好多人在讨论51单片机,有人说51单片机应该学习,它是基础;也有人说51单片机是过时的产品,现在产品应用已经不再选用了,也就失去了学习的必要性。从最......

关键字:51单片机 再见

[行业资讯] 浅谈学习51单片机的四大误区

浅谈学习51单片机的四大误区

大学本科阶段,我们学习单片机课程时,学校和老师一般都是让我们从51单片机入手。在访问电子类相关的技术性论坛时,总能看到许多小伙伴在讨论51 单片机,有人说51单片机应......

关键字:51单片机 四大误区

[新鲜事] 美国黑客入侵156个报警器乱响,Twitter的CEO再离职

美国黑客入侵156个报警器乱响,Twitter的CEO再离职

美国德克萨斯州达拉斯市官员称,由于电脑黑客入侵,达拉斯所有紧急警报系统在夜里鸣叫了90分钟左右,这是至今出现的最大规模警报系统入侵事故。......

关键字:黑客 Twitter
条评论

我 要 评 论

网友评论

大家都爱看

  • 华为的优势,就是自家的各种自研芯片

    CPU即中央处理器,是一块超大规模的集成电路,是一台计算机的运算核心和控制核心。它的功能主要是解释计算机指令以及处理计算机软件中的数据。

    2017-08-16
  • 你不知道Ryzen芯片有多火?来看看AMD的股票吧

    据外媒报道,美银美林认为,AMD最新的Ryzen芯片可能会引发一波销售浪潮,进而推动该股继续上涨。它认为AMD股票还有40%以上的上涨空间。

    2017-08-16
  • 国产芯片:厚积薄发,强势崛起

    关于国产芯片,是近几年才有崛起的势头,可是在几年之前,国产芯片还处于“沉睡”的状态,尤其是手机芯片,几乎大部分都依赖进口,而且国外的市场几乎被高通和联发科所垄断,也就展讯还在市场边…

    2017-08-16
  • 为了数据安全 大疆无人机增加隐私飞行功能

    大疆周一表示,在美国陆军因为“网络缺陷”而要求其成员停用大疆无人机后,这家中国无人机制造商将加强无人机的数据安全性。 大疆政策和法务副总裁布伦丹&middot…

    2017-08-15
  • Intel代工 展讯发布14nm SC9853I手机SoC

    SC9853I采用的Intel的14nm FinFET制程,架构为8核64位Airmont架构,主频1.8GHz,GPU为Mali-T820 MP2,号称面向799~1299元档次的手机。…

    2017-08-15