基于LPC2292硬件平台实现操作系统硬件抽象层的构建方法

发布者:bln898最新更新时间:2023-04-06 来源: elecfans关键字:LPC2292  硬件平台  操作系统  硬件抽象层 手机看文章 扫描二维码
随时随地手机看文章

为了便于操作系统在不同硬件结构上进行移植,美国微软公司首先提出了将底层与硬件相关的部分单独设计成硬件抽象层(Hardware Abstraction Layer,HAL)的思想。硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能。


1 μC/OS-II简介

μC/OS-II实时操作系统是一种开发源码的实时操作系统,可固化,可剪裁,具有高稳定性和可靠性。它最鲜明的特点就是源码公开,便于移植和维护。目前μC/OS-II版本2.52,通过了美国航空管理局的安全认证,其稳定性和可用性是经过实践的。μC/OS-II的应用已经覆盖了诸多领域,如照相机、医疗器械、音像设备等。


2 硬件抽象层简介

硬件抽象层隐藏特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。它通过硬件抽象层接口向操作系统以及应用程序提供对硬件进行抽象后的服务。它主要有以下特点:

① 硬件相关性。作为操作系统与硬件之间的接口,硬件抽象层(HAL)必须为操作系统提供具体操作硬件的方法。

② 操作系统相关性。不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。

硬件抽象层是一个处于硬件之上,操作系统之下的软件层次。它主要功能包括:

① 对系统硬件进行初始化;

② 为操作系统提供各种操作硬件的接口函数。

系统硬件的初始化方法,主要由硬件厂家提供;操作系统的各种硬件接口函数和宏定义,则需要通过硬件和操作系统的使用者在熟悉了操作系统和硬件平台后自行编写。μC/OS-II需要完成的硬件接口主要包括:类型的定义、任务上下文切换、中断处理、任务堆栈初始化和定时处理。


图1为硬件抽象层的功能示意图。

图1 硬件抽象层功能示意图


3 在LPC2292上构建硬件抽象层

3.1 LPC2292简介

LPC2292/LPC2294 微控制器是基于一个支持实时仿真和嵌入式跟踪的16/32 位ARM7TDMIS CPU,带有256 KB 嵌入的高速Flash 存储器。128 位宽度的存储器接口和独特的加速结构使32 位代码能够在最高时钟速率下运行。对代码规模有严格控制的应用可使用16 位Thumb 模式将代码规模减小30%以上,而性能的损失却很小。


由于LPC2292/LPC2294 的144 脚封装、极低的功耗、多个32 位定时器、8 通道10 位ADC、2/4 (LPC2292/LPC2294)高级CAN、PWM 通道以及多达9 个外部中断引脚,使它们特别适用于汽车、工业控制应用以及医疗系统和容错维护总线。LPC2292/LPC2294 含有76(使用了外部存储器)到112 个(单片)可用GPIO 口。由于内置了宽范围的串行通信接口,它们也非常适合于通信网关、协议转换器以及许多其他的应用中。


3.2 类型定义

在将μC/OS-II移植到LPC2292处理器上时,首先进行基本配置和数据类型定义。重新定义数据类型是为了增加代码的可移植性,因为不同的编译器所提供的同一数据类型的数据长度并不相同,例如int型,在有的编译器中是16 位,而在另外一些编译器中则是32 位。所以,为了便于移植,需要重新定义数据类型。μC/OS-II类型定义如下:

3.3 任务堆栈初始化

在μC/OS-II中,函数OSTaskStkInit()对任务堆栈进行初始化,在LPC2292中,任务堆栈空间由高到低依次为PC ,LR,R12 ,R11,…,R1,R0,CPSR,SPSR。 在进行堆栈初始化以后,OSTaskStkInit ( ) 返回新的堆栈栈顶指针。图2为任务堆栈增长的方向。其初始化过程如下:

图2 堆栈增长的方向

3.4 任务上下文切换

任务上下文管理负责嵌入式操作系统内核中任务管理部分对任务寄存器上下文的创建、删除以及切换等操作。任务的寄存器上下文是操作系统内核所管理的任务的重要组成部分,是CPU内核的寄存器中内容的映像,因此上下文管理的实现依赖于CPU 内核中寄存器的组织,是与体系结构密切相关的。通用硬件抽象层的任务上下文管理统一定义体系结构中的寄存器上下文的保护格式,提供了任务管理对任务上下文的基本操作的API接口。


μC/OS-II的任务切换其实就是通过改变PC中的内容来实现的。将PC指向新任务开始运行的地方,同时将当前任务(被抢占任务)环境保存到相应的任务堆栈中,将新任务环境从任务堆栈中恢复到相应的寄存器中。


μC/OS-II用OS_TASK_SW()完成任务级切换。将μC/OS-II移植到LPC2292上,其任务切换代码如下:

3.5 中断结构和中断处理程序的设计

中断结构和中断处理程序的设计是嵌入式操作系统HAL中最重要的组成部分。中断机制是操作系统内核实现与外部设备通信、任务系统调用、进行出错处理,以及实现对任务的实时调度的重要手段。因此,硬件抽象层中断系统的管理部分是整个硬件抽象层中的关键。


μC/OS-II采用了二次跳转的办法。首先在ARM处理器定义的中断向量处安放跳转指令,跳转到指定位置后,再进行位置的第二次映射。其中位置的映射是通过一个汇编定义的宏来实现的。将μC/OS-II移植到LPC2292中,其宏汇编的定义如下:

;/************************************************

;比较当前任务控制块和最高优先级任务控制块是否一致,如果一致则直接恢复任务环境;否则,在中断退出时需要进行任务切换,CPU将运行优先级最高的任务,而不是中断前运行的任务

为了使用ISR的汇编宏,每个受μC/OS-II管理的ISR都必须按宏汇编要求的格式,在文件IRQ.S中定义:

XXXX_HANDLERHANDLERXXXX_Exception

其中:

XXXX_HANDLER是ISR的起始地址,即汇编宏的起始地址,在初始化向量中断控制器时作为中断向量的地址使用。用户按中断源来命名,即把其中的XXXX换为具体的中断源名称。

XXXX_Exception是用户用C语言实现编写的功能函数名。该函数供汇编宏调用,用户可以按实际的中断源来命名,即把XXXX换为具体的中断源名称。


3.6 定时管理

μC/OS-II需要一个周期性的中断源来产生系统时钟节拍。μC/OS-II利用了LPC2292的Timer0作为定时器产生时钟节拍。其实现步骤为:

添加中断句柄Timer0_HandlerHANDLER Timer0_Exception配置中断源定时器T0IR = 0xffffffff;T0TC = 0;T0TCR = 0x01;T0MCR = 0x03;T0MR0 = (Fpclk / OS_TICKS_PER_SEC);配置向量中断控制器extern void Timer0_Handler(void);VICVectAddr0 = (uint32)Timer0_Handler;VICVectCntl0 = (0x20 | 0x04);使能中断VICIntEnable = 1<<4;


4 总结

硬件抽象层的出现,使得嵌入式操作系统的设计者不需要考虑嵌入式系统硬件环境差异较大的问题,可以专心设计通用的操作系统,而将与硬件的接口部分留给硬件抽象层来实现,这样大大提高了嵌入式操作系统在不同硬件平台之间的移植能力。本文基于LPC2292硬件平台,详细介绍了μC/OS-II的硬件抽象层的构建方法,对其向其他平台的移植提供了参考。


关键字:LPC2292  硬件平台  操作系统  硬件抽象层 引用地址:基于LPC2292硬件平台实现操作系统硬件抽象层的构建方法

上一篇:基于嵌入式处理器LPC2129的矿用摄像机设计
下一篇:基于LPC900系列单片机和红外技术实现拍照防盗系统的设计

推荐阅读最新更新时间:2024-10-10 18:10

Strategy Analytics:谷歌助手将取代Alexa成为领先的智能家居操作系统
 消费者对声控音箱需求的激增打响了全球主要科技巨头为争夺未来联网家居计算平台的最新战役。休闲就随手机便携小编一起来了解一下相关内容吧。 Strategy Analytics最新发布的研究报告《智能家居音箱打响争夺操作系统霸主地位的最新战役》总结道,尽管亚马逊的Alexa如今占主导地位,但谷歌助手将会以其在搜索、机器学习和生态系统规模的优势在未来成为主要的平台。2022年44%的全球智能家居音箱用户群将会使用谷歌的人工智能语音助手。 Strategy Analytics联网家庭研究总监David Watkins表示,“亚马逊的Alexa正处在声控先行计算革命的第一线,并希望其当前的Echo用户群将会把该平台融入到自己的日常生活中,
[手机便携]
关于RTX51 TINY的分析与探讨
1 概述   RTX51 TINY是一种应用于MCS5l系列单片机的小型多任务实时操作系统。它完全集成在Keil C5l编译器中,具有运行速度快、对硬件要求不高、使用方便灵活等优点,因此越来越广泛地应用到单片机的软件开发中。它可以在单个CPU上管理几个作业(任务),同时可以在没有扩展外部存储器的单片机系统上运行。   RTX51 TINY允许同时“准并行”地执行多个任务:各个任务并非持续运行,而是在预先设定的时间片(time slice)内执行。CPU执行时间被划分为若干时间片,RTX51 TINY为每个任务分配一个时间片,在一个时间片内允许执行某个任务,然后RTX51 TINY切换到另一个就绪的任务并允许它在其规定的时间片内
[单片机]
关于RTX51 TINY的分析与探讨
嵌人式操作系统中USB双向通信的设计与实现
      USB作为一种串行通信总线,采用主从式通信方式,从设备只能被动响应来自主设备的请求,不能主动发起请求。随着嵌入式系统技术的发展,对交互性操作要求越来越迫切,而采用USB 双向通信 可以很好地解决上述问题。本文介绍一种基于S1C33L11芯片利用嵌入式操作系统的同步机制通过对循环队列及自定义控制包的操作来实现双向通信的方法。       1嵌入式操作系统中USB双向通信系统整体层次结构   嵌入式操作系统中USB双向通信系统整体层次结构如图1所示。   2硬件系统   2.1S1C33L11及其USB BLOCK简介   S1C33L11是EPSON公司的32位高速,低功耗,低电压MCU。他是
[嵌入式]
全球手机操作系统市场五雄并起
    近日美国著名媒体《商业周刊》网络版刊登专栏作家彼得伯罗斯(Peter Burrows)的文章指出,当前的全球手机操作系统市场是五雄并起,而苹果iPhone和谷歌Android手机将引领这场手机大战。   最近两周,全球手机市场硝烟四起。通过多年努力,Verizon无线终于获得了iPhone在美国市场的经销权;惠普也推出了收款Palm智能手机;而作为全球最大手机厂商的诺基亚更是放弃自身开发的塞班系统而选择与微软合作,并将围绕后者的Windows Phone操作系统展开产品开发战略。    操作系统市场五雄并起   全球手机操作系统市场的争夺战已经进入了一个崭新的五雄并起时代。诺基亚之所以要放弃市场占有率已达37%的塞班系统,
[手机便携]
基于Motorola 68VZ328硬件平台的LINUX嵌入式操作系统草案
基于Motorola 68VZ328硬件平台的LINUX嵌入式操作系统草案 一、选用LINUX操作系统做为系统平台的优势。 首先,其内核的源码开放,而且许多技术问题可以在嵌入式LINUX的网站上得到解答,支持能够很好,同时可以省下买其它操作系统源码的开销及相应支持的费用;其次,LINUX操作系统和编译器掌握起来较容易,对于标准C支持较好,省去熟悉操作系统和编译所花费的时间;最后,通过对LINUX系统的开发,以后很容易开发出属于自己平台的产品,安全性方面有所提高,避免很多操作系统留有后门的问题。 二、采用LINUX平台的程序运行描述。 在CPU上电或复位后,需有bootloader这个引导程序将系统引导起来,系统再将GUI的图形界面调
[嵌入式]
风河稳居边缘计算操作系统市场第一
新闻亮点 • VDC Research的最新报告显示,风河公司依然保持边缘计算操作系统市场领先地位 • 风河在实时操作系统和商用嵌入式Linux市场继续保持全球市场第一 • 各行各业领先企业越来越关注软件定义的未来,而Wind River Studio则满足了边缘计算市场不断发展的需求。 全球领先的关键任务智能系统软件提供商风河公司继续保持其在嵌入式实时操作系统(RTOS)和商用嵌入式Linux市场第一地位,再次由最新发布的VDC Research报告所确认。此项排名的依据是风河公司推出的边缘计算操作系统平台,包括VxWorks®、Wind River Helix Virtualization Platf
[嵌入式]
SWAGELOK® MPC 配置工具为设计完善的工艺分析仪和取样操作系统提供了增强型工具
更新后的 Swagelok® MPC 配置工具提供了 3-D 计算机辅助设计 (CAD) 输出、实时流量测定和集成的流量数据,使用户能够更轻松地设计完善的工艺分析仪和取样操作系统。该程序为工程师提供了一套交互式工具,帮助他们在采购流程之前构建和装配符合 ANSI/ISA 76.00.02 的小型模块化设计。网站 www.swagelok.com.cn 提供该软件的下载,同时,世伟洛克授权的销售与服务中心也提供该软件的安装 CD。 世伟洛克公司分析仪表市场经理 Doug Nordstrom 说:“利用 MPC 配置工具,工程师可以在‘购买前试验’自己的系统设计。您可以使用我们的这套工具挑选元件、平台布局甚至以流体
[半导体设计/制造]
SWAGELOK® MPC 配置工具为设计完善的工艺分析仪和取样<font color='red'>操作系统</font>提供了增强型工具
基于ARM7支持触摸屏和实时操作系统的开发与应用
  概述   随着信息技术的发展,支持图形界面的触摸操作和实时操作系统相结合的应用系统已经越来越广泛地应用到航空航天、军事、消费类电子、通讯设备等领域。mC/OS-II操作系统是一种占先式、实时操作系统(RTOS),由于其内核可拆减、可剥离性,使得它在实时控制领域中有着广泛的应用。它不仅减小了因为系统硬件设计缺陷带来的不可靠因素,而且增强了系统的控制实时性,从软件方面进一步增强了ARM控制系统的性能。另外,新版本的mC/OS-II已经通过了FAA认证,很适合应用于对实时性要求很高的嵌入式工业控制领域,如目前应用较广泛的军用战斗机、攻击机和火控系统等。   支持图形界面操作(mC/GUI)是一种较为流行的人机交互系统,它能够提供
[单片机]
基于ARM7支持触摸屏和实时<font color='red'>操作系统</font>的开发与应用
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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