- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Vxworks培訓讲稿(嵌入式系统)
第一部分 VxWorks Tornado Overview
绪论
VxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗CPU,VxWorks支持32位的CPU,包括Intel公司的x86、Motorola公司的68k和PowerPC、MIPS、ARM、Intel公司的i960、Hitachi公司的SH。我们设计的这块板子通常没有软件的自开发能力,所以我们需要一台通用机来辅助开发,这台通用机可以是PC或工作站,我们称辅助我们软件开发的通用机为宿主机(Host),用户自己开发的板子为目标机(Target)。宿主机上要有一个集成开发环境(IDE)来辅助我们的软件开发,这套集成开发环境可以运行在Windows95/NT或 UNIX下,包括交叉编译器(Cross Compiler)和交叉调试器(Cross Debugger),所谓交叉编译器就是在宿主机上编译生成可以在目标机上运行的代码IMAGE,交叉调试器就是通过宿主机和目标机之间的某种耦合方式实现前后台调试。我们称宿主机上的这套集成开发环境为Tornado,编译生成的目标机上的可执行代码IMAGE为VxWorks。在系统安装的时候,集成调试环境和VxWorks的原材料(一些obj文件)都安装到宿主机上,编译生成的在目标机上运行的IMAGE内包含操作系统。下面我们分别来介绍这两部分内容。
Serial port
或network
VxWorks
IMAGE的结构
VxWorks的IMAGE有三个层次、四个部分。
其RTOS内核是wind kernel,这个内核有两个特点:
wind kernel是一个微内核,这个特点导致VxWorks有许多的Components
wind kernel对外设不做假设。所谓对外设不做假设是指操作系统不假设用户开发的板子上是否有总线以及有什麽样的总线,也不假设内存的大小及内存如何定位,不假设I/O及有多少I/O。举一个对外设假设的例子:DOS就是一个对外设假设的操作系统,DOS系统的移植中,外设必须符合BIOS标准。wind kernel对外设不做假设的优点就是系统只与CPU有关,移植性好。由于wind kernel对外设不做假设,IMAGE中就要有板级支持包BSP(即驱动程序)来完成对外设的管理。
IMAGE的生成
Tornado host
share
target config
h
src
.
.
Ev2_bsp
.wind
IMAGE各部分的细述
2.3.1 RTOS内核
功能组成:任务的管理与调度、任务的同步与通信、动态内存的管理、软时钟的管理、I/O管理
版本:用户可裁减掉程序员认为没有使用到的功能,直到只剩下最简内核(任务的管理与调度,我们称其为纳核,可以只有8k)。
VxWorks:标准的单CPU版本。
VxFusion:标准的多CPU版本,应用程序在多个CPU上运行,但仍然象在一个CPU 上运行那样进行数据的交换、通信与同步。
IxWorks:
Osek:
3.统一的API:可以从两个角度来理解,即对于VxWorks支持的不同的CPU、VxWorks的不同版本,API都是一样的。VxWorks的API是由操作系统内核提供的服务原语搭建起来的。服务原语,是不可打断的,这样可以保证系统调用的时间尽量小、尽量是常量和可确定。举例:DOS的API是INT21,UNIX的API是System Call。
4.验证性:FAA、FDA。
5.实时性:指操作系统内核采用了一种算法,使tc(context switch)和ts(system call)尽可能小、尽可能是常量和可确定。所谓可确定是指tc和ts有一个上限,而不是一个统计的结果,即不会出现峰值,不会随系统任务的增多而增多。
Tak1 Task
Task2
tc ts
Components
基本模块:
WDB Agent:两种工作模式(中断或查询),支持系统级和任务级调试
Shell:
Loader: 支持动态地下载或卸载模块
WindView支持模块: 支持利用WindView动态调试目标程序
CodeTest支持模块: 支持利用CodeTest测试系统的代码覆盖率和内存使
文档评论(0)