第6讲 嵌入式操作系统移植和使用.pdf
嵌入式操作系统的移植

嵌入式操作系统的移植——以Linux系统移植为例摘要:本文简述了嵌入式操作系统及其移植的目的,分析了嵌入式操作系统移植的过程与具体操作步骤,提供了移植过程中的剪裁方法,并介绍了多任务实时处理在软件编程中的应用。
0 引言随着科技的发展,微机的硬件规模越来越大,功能越来越强,从而给运行嵌入式操作系统提供了物质基础。
各种操作系统就此应运而生。
嵌入式操作系统,是一种运行在嵌入式硬件平台上,对整个系统及其所操作的部件、装置等资源进行统一配置、协调和控制的系统软件,负责嵌入系统的全部软、硬件资源的分配、调度工作,控制协调并发活动。
与普通的操作系统相比,嵌入式操作系统主要有微型化、可裁剪性、高可靠性、易一致性几个不同点。
按应用范围划分,有通用型和专用型两种。
通用型可用于多种应用环境,如:Windows CE、VxWorks、µCLinux以及µC/OS-Ⅱ等;专用型则有Symbian、Plam OS等。
1 嵌入式操作系统移植的目的在电子技术高速发展的今天,单片机嵌入式技术的应用越来越广泛。
嵌入式实时操作系统在目前的嵌入式应用中,尤其在功能复杂、系统庞大的应用中也愈来愈重要,其能大大提高系统可靠性和开发效率。
市场上单片机的品牌、种类、型号繁多,如:Inter公司的51系列单片机、德州仪器(TI)的 TMS370和MSP430两大系列通用单片机等。
由于嵌入式操作系统的可移植性,我们只需对嵌入操作系统做一些修改,就可以使其运行在不同的硬件平台上,帮助我们去管理和控制不同的硬件资源和调度任务。
这个修改的过程就可以称作移植,对于嵌入式操作系统在实际工程中的推广应用有着重要的意义。
由于嵌入式系统所使用的芯片型号多种多样,很多芯片不能直接兼容,所以通过修改部分代码,把能在甲芯片上运行的程序,也能在与之不完全兼容的乙芯片上正确运行,就叫移植。
系统移植的概念也相近,只是涉及到的芯片更多。
2 嵌入式操作系统移植的方法及具体步骤对不同的操作系统,其移植方法不同。
嵌入式操作系统典型应用资料课件

无人机系统主要由飞行器平台、任务载荷、无线电遥控系统、自动驾驶仪、起飞和降落装置以及 发射和回收装置等组成。
无人机系统应用
无人机系统被广泛应用于军事、民用和科研等领域,如侦察、目标跟踪、航拍、气象观测、地质 勘探等。
智能家居系 统
智能家居系统概述
智能家居系统是指利用先进的计算机技术、网络通信技术、智能云端技术,将与家庭生活相关的各种设施进行集成, 构建高效的住宅设施与家庭日程事务的管理系统。
数据库支持
Windows CE提供了多种开发工具, 包括Visual Studio、Expression Blend等,支持C/C#语言开发。
多媒体支持
Windows CE提供了丰富的多媒体支 持,包括音频、视频、图像等处理功 能。
开发工具
Windows CE内置了轻量级数据库引 擎,支持SQLite等数据库格式。
Linux
开放性
Linux具有完全的开放x可以在多种硬件 平台上运行,包括x86、
ARM、MIPS等。
丰富的软件库
Linux提供了丰富的软 件库和工具,方便进行 软件开发和应用部署。
03
嵌入式操作系统典型应用场 景
无人机系 统
无人机系统概述
无人机系统是一种以无线电遥控或自主控制为主,以飞行器平台为基础,搭载多种任务载荷,在 视距内进行飞行任务的航空器。
能仪表等。
医疗设备
嵌入式操作系统也用于医疗设备, 如医疗影像系统、智能医疗设备
等。
消费电子
嵌入式操作系统在消费电子产品 中得到广泛应用,如智能手机、
平板电脑、电视等。
汽车电子
现代汽车中使用了大量的嵌入式 系统,如发动机控制模块、刹车
嵌入式操作系统移植说明

中断过程,PC、PSW值保存及恢复过程
uCOS操作系统移植
汇编语言
stsr ldsr st.b ld.w ld.w jmp cmp bne 5, r1, r2, 0[r11] , 0[r11] , [lp] 0x1, b r2 r1 5 r11 0[r11] r11 sp lp ;store special register 5 to r1 ; load special register r1 to 5 ; move “OSRunning” address to r11 ; store byte r2 to r11 address
storespecialregisterr1ldsrr1loadspecialregisterr1movosrunningr11moveosrunningaddressr11stbr20r11storebyter2r11addressmovostcbhighrdyr11ldw0r11ldw0r11jarlostaskswhooklpjmplpcmp0x1r2ucos操作系统移植任务状态ucos操作系统移植任务切换从图中可以看出任务切换有两个通路1以定时器中断为基础通过调用osintctxsw来实现任务调度2以ossched调用trap指令来实现软中断为基础通过调用osctxsw来实现任务调度图中带颜色部分均是与移植相关的ucos操作系统移植入栈出栈相关寄存器函数在调用前先将主调函数的寄存器值pcpsw值等保存到栈中然后调用被调函数在被调函数返回时在将之前保存在栈中的内容恢复到相应的寄存器pcpsw中
uCOS 支持芯片类型
Renesas 78K Renesas H8 Renesas M16C Renesas M32C Renesas R32C Renesas RL78 Renesas RX100 Renesas RX200 Renesas RX600 Renesas RX700
第六节-嵌入式操作系统1PPT课件

据类型数 struct Student{
据的集合; int age;
2。占用连 char*name;
续内存空 char sex;
间;
};
使用上的特点:
1。不分类存 放,但用来描 述同一事物; 2。检索速度 快且恒定;
2021
22
操作系统中经常使用 的数据结构(链表)
struct Student{
两个元素的链表
2021
35
μC/OS-II中 的任务管理
2021
36
正在运行的任务,需要
等待一段时间或需要等
待一个事件发生再运行
时,该任务就会把CPU
任务在没有被配备
的使用权让给别的任务
任务控制块或被剥 夺了任务控制块时
。 一个正在运行的
而使任务进入任等务待一状旦态响应中
的状态叫做任务的
断申请就会中止
任务的状态及其转换 睡眠状态
运行而去执行中 断服务程序,这 时任务的状态叫
做中断服务状态
系统为任务配备 了任务控制块且 在任务就绪表中 进行了就绪登记, 这时任务的状态 叫做就绪状态。
2021
处于就绪状态的 任务如果经调度 器判断获得了 CPU的使用权, 则任务就进入运
行状态
37
void MyTask(void *pdata)
切换? 并简单发地:说,由就同是一能用个一处个理处器理并轮器发示过换意程地图
运并行发多(个注程意序,。不或是者同说时是由!多)个
程地运序行轮多班个地程占序的用计处算理机器管理这系个统资。源。 且在占用这个资源期间,并不一
定能够把程序运行完毕。
2021
26
程序的切换(两句话)
嵌入式操作系统及其移植技术

第 2 4卷
第Hale Waihona Puke 1 期 3Ga s c 甘肃科d Te h o o y n u S in e a 技 c n l g e c n
.4 N . 3 2 1
Ju. 2 0 1 08
20 0 8年 7 月
嵌 入 式操 作 系统及 其移 植 技 术
文 以基 于 E 7 1 处 理 器 的 Nulu 嵌 入 式 操 作 系 统 移 植 到基 于 X cl处 理 器 的 硬 件 环 境 中 的过 程 为 例 , 明 了嵌 P 32 ces Sa e 说 入 式操 作 系 统 在 不 同 处 理器 上 移植 的过 程 。 关 键 词 : 入 式 操 作 系 统 ; 植 ; c u 嵌 移 Nul s e
中 图分 类 号 : 9 9 TN 1
I 嵌 入到 开发 的产品 中。用户 还可 以根据 自己 的需 I
1 嵌 入 式操 作 系统
要对 u OS I 进 行 裁 剪 。u OS I 代 码 公 C — I C — I源
随着 现代 化技 术 的 发 展 , 入 式 系统 的应 用 范 开 , 部 分是用 ANSC编写 的 , 嵌 大 I 只有 与 处理 器 硬 件 围越来越 广泛 , 于 嵌入 式 技 术 的产 品从 尖 端 复 杂 相关 的部分是 用 汇便 语 言编 写 的, 基 移植 性相 对 来 说 的航空航 天精密 仪器 、 医疗 器材 到 时 尚的信 息家 电 、 较强 。 u O - I 的稳定 性 、 ,C S I 可靠 性也 得 到 了认 可 ,
使 各种 软件产 品 可 以不 加 改 动地 实 现 移植 , 而 大 从
大缩短 整个软 件 系统 的开 发周期 。
() 1 操作 系统 能 有 效 管理 越 来 越 复 杂 的 系统 资
《嵌入式系统及其应用课件》第六章嵌入式操作系统基础

长安大学电子与控制工程学院
嵌入式系统及其应用
第六章 嵌入式操作系统基础
3. 操作系统的特征和基本结构
(1)操作系统的基本特征
并发性、共享性、虚拟性和不确定性
并发性
并发性(concurrence)是指两个或两个以上的事件或 活动在同一时间间隔内发生。操作系统是一个并发系统,并 发性是它的重要特征,操作系统的并发性指它应该具有处理 和调度多个程序同时执行的能力。
一般认为:操作系操作系统是有效控制和管理计算机硬件和 软件资源,合理地组织工作流程, 以提高资源利用率,并为 用户提供强有力的使用功能和灵活方便的使用环境的程序集 合。由于操作系统的复杂性,我们可以从以下角度来理解操 作系统。
从系统结构层次模型理解操作系统
CHANG’AN UNIVERSITY
长安大学电子与控制工程学院
第六章 嵌入式操作系统基础
(3)设备管理功能
提供设备缓冲管理、设备分配、设备驱动和虚拟设备等功能。
设备缓冲管理
当处理器不能直接访问外围设备时,处理器利用缓冲区来 缓解处理机和外围设备间速度不匹配的矛盾,提高处理机与设 备、设备与设备之间操作的并行程度。
设备分配
系统根据用户程序所请求的设备类型,按分配算法对设备 和设备相应的控制器及通道进行分配,建立从外设到内存之间 传输信息的通路。
存储器管理功能主要包含以下三个方面:
存储器的分配、管理和回收的功能。
内存保护功能,提供存储保护的手段 。
地址映射和扩充功能,提供地址重新定位的能力。
使用户程序与物理存储器地址无关,扩充主存空间, 实现“虚拟存储”的功能。
CHANG’AN UNIVERSITY
嵌入式学习之系统移植步骤

在线学习好工作/嵌入式学习之系统移植步骤移植下面我们就来看下一个内容叫做移植的基本步骤,也就是说我们要现有一个大体的思路,如果说我作为产品开发者,或者说是作为一个系统的整体架构来说,我们拿到一款板子过后我们是如何一步一步把我们的系统用起来呢?它整个系统流程又是什么样的,我们先要有个明确目标,第一个目标是我们要保证PC也就是我们的开发机器跟目标机也就是开发板或者说最终要做成产品的板子的硬件它们俩之间的连接方式。
因为我们在嵌入式开发中有一个很麻烦的事情就是开发板的能力跟PC的能力一般是不平等的,大家都知道PC的功能很强大也很贵而板子很便宜可能一个小系统一个路由器也就几十块钱,但是我们总不能在路由器上接个键盘接个鼠标然后装一个VC,在这里是不现实的,所以说我们一般的开发环境跟ARM讲的内容都是一样的,都是在主机上开发最终把主机编译好的内容跟我们的目标机进行一个数据传输,所以这就涉及到一个非常重要的问题。
数据传输的方式。
因为我们数据无外乎就是高低电平这几种,那么传播有哪些传播方式呢?如图,所以我们如果作为一个产品的研发者来说,你第一个需要考虑的就是我们是怎么连的。
那么给大家来列出了一下,目前来说,我们的PC跟我们的开发板的连接也就大概如上图四种比较常用的方式。
第一种就是我们最经典90%的板子上,都支持的方式叫异部串行接口,也就是我们所说的串口。
那么这个串口传输在我们之前学习ARM的时候也学习到过,其实别看它很简单,其实它的功能很强大。
它既可以输入也可以输出,所以说我们基本上完成了一个输入输出这样数据出和进的功能。
所以说串口是我们比较常用的一个接口。
但是它还是有它的特点就是它的速度比较低,因为比如说我们前面所配的速度是11520那这个其实是很低的,不是很高。
因为他11520B比特也就是传多少位多少个高低电平的字节,所以说这个效率不是很高但是实用性比较强就几个接口就可以。
我们举个典型的例子就是家里的路由器,如果大家有兴趣,就把家里的老路由器拆下来看一下路由器里面一般都有3个架子或4个架子,3个小插针或4个小插针无外乎就几个电压,一个是D一个是电源很多情况下,路由器都会引出这个东西。
嵌入式操作系统

2020/11/25
Embedded Operating Systems
12
4. 同时还应该看到,嵌入式系统本身还是一个外延极 广的名词。凡是与产品结合在一起的具有嵌入式特 点的控制系统都可以叫嵌入式系统,而且有时很难 给它下一个准确的定义。
2020/11/25
Embedded Operating Systems
Palm OS之所以在PDA领域占有70%以上的市场,就是因为 其立足于个人电子消费品,着重发展图形界面和多任务管理 ;
而风河的vxWorks之所以在火星车上得以应用,则是因为其 高实时性和高可靠性。
2020/11/25
Embedded Operating Systems
11
3. 嵌入式系统必须根据应用需求可对软硬件进行裁剪 ,满足应用系统的功能、可靠性、成本、体积等要 求。所以,如果能建立相对通用的软硬件基础,然 后在其上开发出适应各种需要的系统,是一个比较 好的发展模式。目前的嵌入式系统的核心往往是一 个只有几KB到几十KB的微内核,需要根据实际的使 用进行功能扩展或者裁减,但是由于微内核的存在 ,使得这种扩展能够非常顺利地进行。
Embedded Operating Systems
8
什么是嵌入式系统: 国内的经典定义
❖ 嵌入式系统是
“以应用为中心,以计算机技术为基础,并且软硬件 可裁剪,适用于应用系统对功能、可靠性、成本、体 积、功耗有严格要求的专用计算机系统”
❖ 一般由嵌入式微处理器、外围硬件设备、嵌入式 操作系统以及用户的应用程序等部分组成,用于 实现对其他设备的控制、监视或管理等功能。
6
什么是嵌入式系统: 来自IEEE的定义
“Embedded system is devices used to control, monitor, or assist the operation of equipment, machinery or plants”.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.2.2 嵌入式操作系统特点
RTOS是指目标系统在指定的时间内输出结果的实时系统。这不 是指快速处理,而是不能超过指定的时间。RTOS适合实时嵌入式系 统的应用,在响应速度,中断,效率, 可量测性, 轻便等方面具有优秀 的性能。RTOS为了满足实时要求而需要考虑模块化,抢占式多任 务,调度,整合开发环境的支持等因素。实时系统可分为Hard RealTime System和Soft Real-Time System。首先Hard Real-Time System在指定的时间内绝对要输出结果,例如战斗机的飞行控制系 统,核发电所的控制系统,人造卫星的控制系统等如果不能在指定时 间内输出结果则会导致重大损失的情况。Soft Real-Time System即使 在指定的时间内不输出结果也不会像Hard Real-Time System导致致 命的结果。Soft Real-Time System即使超过指定的时间也不会成为系 统错误(system error)。
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4.4 VxWorks 启动过程(1)
VxWorks image 分为在ROM中运行和在RAM中运行两种.两者启 动顺序的区别在于sysInit()函数的调用.该函数在 RAM运行的VxWorks中初始化RAM.
文件romInit.s中的romInit()---->文件bootInit.c中的romStart()---->文件 bootConfig.c中的usrInit()----->sysHwInit()----->usrKernelInit()---->KernelInit(usrRoot,...)
双实科技
6.2.4 嵌入式操作系统简介
常见嵌入式操作系统有: Xinu、uC/OS-II 、eCOS 、LynxOS、
pSOS+、QNX、VRTX、Linux、VxWorks、 Nucleus 、WinCE。
Copyright © 2003-2007 SinoSys. All Rights Reserved
嵌入式系统(embedded system)与一般的系统不同, 设计成为执行特定的操作,但是初期的嵌入式系统比较单 纯,不需要特殊的操作系统,由人来编写程序并顺序执 行,只有当中间发生中断时才会暂时脱离此顺序程序。过 去的嵌入式系统主要与简单而顺序的操作有关,使用操作 系统(OS: Operation System)成为浪费和不必要的举措。 但是最近的嵌入式系统领域中系统本身相当庞大,网络和 多媒体成为系统的基本功能,嵌入式系统要做的事情既多 又复杂,顺序程序的操作变得越来越难。因而在嵌入式系 统中出现了操作系统的概念,要满足其实时(real time)的 要求,进而产生了实时操作系统。
b) 支持VxWorks和硬件驱动通信. c) 使hardware-dependent 和 hardware-independent在 VxWorks系统中很好的结合.
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4.3 VxWorks Image的种类
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.3.2 μC/OS-Ⅱ操作系统的移植条件
要使μC/ OS - Ⅱ正常运行,处理器必须满足5个要 求:
a) 处理器的C 编译器能产生可重入型代码; b) 处理器支持中断,并且能产生定时中断; c) 用C 语言就可以开/ 关中断; d) 处理器能支持一定数量的数据存储硬件堆栈; e) 处理器有将堆栈指针以及其它CPU 寄存器的内
(OS_CPU_C.C) 用汇编语言编写4个与处理器相关的函数
(OS_CPU_a.asm)
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4 VxWorks操作系统移植和使用
6.4.1 VxWorks概述 6.4.2 VxWorks BSP 6.4.3 VxWorks Image的种类 6.4.4 VxWorks 启动过程 6.4.5 VxWorks 移植
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.1 引言
嵌入式系统多种多样,嵌入式操作系统也很 多。如何选择在特定的嵌入式系统中选择、移植 和使用嵌入式操作系统呢?
Copyright © 2003-2007 SinoSys. All Rights Reserved
基于ARM的嵌入式系统 设计与实现
Design and Implementation of ARM Based Embedded Systems
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
基于ARM的嵌入式系统设计与实现
第1讲 嵌入式系统基础 第2讲 基于ARM的板级嵌入式系统硬件平台 第3讲 从软件开发的角度看ARM硬件平台 第4讲 板级嵌入式软件开发与运行环境 第5讲 基于ARM的硬件系统的启动及初始化 第6讲 嵌入式操作系统移植和使用 第7讲 板级嵌入式设备驱动程序 第8讲 嵌入式实时多任务应用软件 第9讲 嵌入式系统的测试与调试 第10讲 嵌入式系统的优化
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4.5 VxWorks 移植
有如下几种类型的VxWorks移植: A. 宿主移植: 将Tornado和VxWorks的开发能力移植到一 个以前不支持的宿主机上。 B. 架构移植: 将VxWorks 和Tornado 调试器移植到一个 以前不支持的目标处理器或架构上。 C. 板级移植: 将VxWorks 移植到一个新的目标板上, 在 此之前应该已经有了宿主移植和架构移植。 D. 升级pre-Tornado BSPs 使之工作于Tornado 平台。 E. 移植一个可选的部件。
商用嵌入式操作系统:数量达100多种,其中自身具有 TCP/IP协议栈的或者通过第三方来支持基本的网络功能的 操作系统超过50种。但是自身支持的架构种类不是很多, 目前多用于网络设备的操作系统大致有6种:LynxOS、 pSOS+、QNX、VRTX、VxWorks、Nucleus。
Copyright © 2003-2007 SinoSys. All Rights Reserved
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
第6讲 嵌入式操作系统移植和使用
6.1 引言 6.2 嵌入式实时操作系统简介 6.3 μC/OS-Ⅱ操作系统移植和使用 6.4 VxWorks操作系统移植和使用 6.5 WinCE操作系统移植和使用 6.6 Linux操作系统移植和使用 6.7 小结 6.8 实验
双实科技
6.3 μC/OS-Ⅱ操作系统移植和使用
6.3.1 μC/OS-Ⅱ概述 6.3.2 μC/OS-Ⅱ操作系统的移植条件 6.3.3 移植工作的内容
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.3.1 μC/OS-Ⅱ概述
Copyright © 2003-2007 SinoSys. All Rights Reserved
双个方面的来源:
免费的或近乎免费的嵌入式操作系统:开发目的主要是为 教育所用,以其代码为免费的或特殊原因非营利目的的操 作系统为免费,营利性的情况下也可以基本上无偿使用源 代码的操作系统。有:Linux、uC/OS-II、eCOS、
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4.1 VxWorks概述
VxWorks 操 作 系 统 是 美 国 WindRiver 公 司 于 1983 年 设 计 开 发 的 一 种 嵌 入 式 实 时 操 作 系 统 (RTOS),是嵌入式开发环境的关键组成部 分。良好的持续发展能力、高性能的内核以及 友好的用户开发环境,在嵌入式实时操作系统 领域占据一席之地。它以其良好的可靠性和卓 越的实时性被广泛地应用在通信、军事、航 空、航天等高精尖技术及实时性要求极高的领 域中 。
Loadable images. ROM-based images---compressed/uncompressed. ROM-Resident images. ROM-Resident image 对一些系统内存RAM资源较少的情
况下,为了节省资源,只拷贝image中的数据部分(data segment)到内存RAM,留下程序部分(text segment)在 ROM中执行。这样空出更多的RAM空间给应用程序。 并不是所有的板型都支持这种VxWorks image.
Copyright © 2003-2007 SinoSys. All Rights Reserved
双实科技
6.4.4 VxWorks 启动过程(2)
BootROM image
最少的系统初始化,主要用于启动装载VxWorks image.一般有压缩和 不压缩两种形式,如bootrom和boot_uncmp.与VxWorks image的区别 在于一个Bootrom调用bootConfig.c,而VxWorks调用usrConfig.c.