嵌入式实时操作系统vxworks实验教程[1]

合集下载

VxWorks使用说明书

VxWorks使用说明书

VxWorks使用说明书1、概述VxWorks操作系统的集成环境叫Tornado。

T ornado集成环境提供了高效明晰的图形化的实时应用开发平台,它包括一套完整的面向嵌入式系统的开发和调测工具。

Tornado环境采用主机-目标机交叉开发模型,应用程序在主机的Windows环境下编译链接生成可执行文件,下载到目标机,通过主机上的目标服务器(T arget Server)与目标机上的目标代理(Target Agent)的通信完成对应用程序的调试、分析。

它主要由以下几部分组成:VxWorks高性能的实时操作系统;* 应用编译工具;* 交互开发工具;下面对T ornado集成环境的各组件功能分别介绍:* Tornado开发环境Tornado是集成了编辑器、编译器、调试器于一体的高度集成的窗口环境,同样也可以从Shell窗口下发命令和浏览。

* WindConfig:T ornado系统配置通过WindConfig可选择需要的组件组成VxWorks实时环境,并生成板级支持包BSP的配置。

通过修改config.h可以实现WindConfig的所有功能,并且,可以实现WindConfig不能实现的功能。

* WindSh:Tornado外壳WindSh是一个驻留在主机内的C语言解释器,通过它可运行下载到目标机上的所有函数,包括VxWorks和应用函数。

Tornado外壳还能解释常规的工具命令语言TCL。

WindSh不仅可以解释几乎所有的C语言表达式,而且可以实现所有的调试功能。

它主要有以下调试功能:下载软件模块;删除软件模块;产生任务;删除任务;设置断点;删除断点;运行、单步、继续执行程序;查看内存、寄存器、变量;修改内存、寄存器、变量;查看任务列表、内存使用情况、CPU利用率;查看特定的对象(任务、信号量、消息队列、内存分区、类);复位目标机。

* 浏览器Tornado浏览器可查看内存分配情况、任务列表、CPU利用率、系统目标(如任务、消息队列、信号量等)。

以ARM为例的Vxworks开发工具的使用操作流程

以ARM为例的Vxworks开发工具的使用操作流程

以ARM为例的Vxworks开发工具的使用操作流程一.认识Tornado II和VxworksVxWorks是一种嵌入式的实时操作系统,所谓嵌入式系统就是用户自己开发设计板子,板子上通常有一颗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内包含操作系统。

二.Tornado II IDE的主要组成Tornado II IDE的主要组成部分有:1.集成的源代码编辑器(可惜不支持汉字输入)。

2.工程管理工具。

3.集成的C和C++编译器和make工具。

4.浏览器,用于收集可视化的资源,监视目标系统。

5.CrossWind,图形化的增强型调试器。

6.WindSh,C语言命令外壳,用于控制目标机。

7.VxSim,集成的vxworks目标机仿真器。

8.WindView,集成的软件逻辑分析仪。

9.可配置的各种选项,可以改变归Tornado GUI的外观等。

嵌入式实时操作系统VXWORKS6.6集成环境使用指导建议课件

嵌入式实时操作系统VXWORKS6.6集成环境使用指导建议课件

B、在Project Explorer窗口,选择Properties再选 Project References或者选择Project > Properties。然后选择 Project References,之后进行设置。
Workbench确认子工程和超级工程之间的关系是基于工程
类型和目标操作系统的。有些关系是不允许的。比如,
22
境使用指导建议
4.工程结构和编译系统
• 编译先从顶部 开始,再逐层 深入到内部的 枝叶最后回到 顶部,完成编 译
嵌入式实时操作系统VXWORKS6.6集成环
23
境使用指导建议
5.工程结构和共享子工程
一个实际的工程可以关联任意数量的逻辑工程 。产品的升级或者编译共享工程亦或组件的变化, 都会影响到关联共享工程的工程结构。
• 5.透视图(Perspectives)
• 6.视图(Views)
• 7.编辑器(Editors)
• 8.工程( Projects)
• 9.访问和查找workbench上下文关联的帮助 信息
嵌入式实时操作系统VXWORKS6.6集成环
10
境使用指导建议
四、理解Cross-Development(交叉开发)的概念
• 涉及的领域包括: • 过程控制(化工、食品加工); • 机器人(制造、自动操作控制); • 航空电子(飞行管理、GPS、喷气发动机控制); • 军事(武器管理、密码); • 数据处理(采集、信号处理); • 通信(税收机、数字电话); • 家电(微波炉、洗衣机、空调) • 计算机外围设备(打印机、Modem)等。
嵌入式实时操作系统VXWORKS6.6集成 环境使用指导建议
目录
• 第一部分 • 第二部分 • 第三部分 • 第四部分 • 第五部分

嵌入式实时操作系统VxWorks

嵌入式实时操作系统VxWorks

4
• 任务有自己的上下文
• 包括CPU环境、系统资源等
• 任务由系统内核调度运行
• 上下文切换时,任务的上下文保存在任务 控制块(TCB)中
• 一个任务的上下文包括:
• 任务的执行点(程序计数器) • CPU寄存器和浮点计数器
University of Science and Technology of China
• 使用单地址空间 • 所有代码执行在单一、公共的地址空间内 • 因此地址空间不属于任务上下文
• 当选用VxVMI时,每个任务各自的地址空 间需要进行虚拟地址到物理地址的转换
University of Science and Technology of China
7
1.2 任务状态转换
• 任务状态反映任务当前在系统中所处的情 形
10
任务的状态转换图 任务创建时,处于挂起状态
ttaasskkSRuesspuemned(())
挂起
要使刚创建的任务就绪, 要ta激skt活Sasu该ksRp任eens务du(m) e()
taskSuspend() taskResume()/taskActivate()
阻塞
睡眠
就绪
semseTmaGkei(v)e/(m)/smgQsgRQeScenivde(()) 调 抢度 占
执行
taskDelay() 使延用时sp已aw到ning原语,可以直接 创建并激活一个任务
任务可以在任何状态下被删除
University of Science and Technology of China
11
任务状态队列
University of Science and Technology of China

29VxWorks移植实验

29VxWorks移植实验

实验29 VxWorks移植实验一实验原理1 VxWorks内核的特点及BSP简介1.1 VxWorks内核的特点操作系统的实时性是一个相对的概念,一般指的是在相同的环境下、使用相同的输入,会在规定的时间内得到正确的响应。

一个实时操作系统内核需要满足许多特定的实时环境所提出的基本要求,这些内容包括:(1) 多任务由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。

多任务提供了一个较好的对真实世界的模拟,因为它允许对应于许多外部事件的多线程“同时”执行。

系统内核通过适当的策略分配CPU给这些任务来获得并发性。

(2) 抢占调度真实世界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。

基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。

换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。

(3) 任务间的通讯与同步在一个实时系统中,可能有许多任务作为应用的一部分执行。

系统必须提供这些任务间的快速且功能强大的通信机制,内核也要提供同步机制,来有效地共享不可抢占的资源或临界资源。

(4) 任务与中断之间的通信尽管真实世界的事件通常作为中断方式到来,但为了提供有效的排队、优先级和减少中断延时,我们通常希望在任务级处理相应的工作。

所以需要在任务级和中断级之间进行通信,完成事件的传递。

VxWorks就是一个基于抢占式的实时操作系统,已经被广泛的应用到许多行业,VxWorks 操作系统具有很多优点,比如:(1)高度的可靠性操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所以操作系统的可靠性是用户首先要考虑的问题。

而稳定、可靠一直是VxWorks的一个突出优点。

自从对中国的销售解禁以来,VxWorks以其良好的可靠性在中国赢得了越来越多的用户。

(2)优秀的实时性实时性是指能够在限定时间内执行完规定的功能并对外部的异步事件作出响应的能力。

vxworks 程序开发实践

vxworks 程序开发实践

vxworks 程序开发实践VxWorks程序开发实践在现代软件开发领域中,实时操作系统(RTOS)被广泛应用于各种嵌入式系统中。

VxWorks是一个广受欢迎且强大的实时操作系统,它提供了许多功能和工具,可帮助开发人员构建高效可靠的嵌入式应用程序。

本文将深入探讨VxWorks程序开发的实践,详细介绍使用该系统进行开发的步骤和技巧。

第一步:项目准备在开始VxWorks程序开发之前,我们需要准备好所需的硬件和软件资源。

首先,我们需要选择适合项目需求的VxWorks版本。

VxWorks提供了许多不同版本以满足不同的嵌入式应用场景。

在选择版本时,我们应该考虑硬件平台的兼容性和所需要的功能。

其次,我们需要确保拥有适当的开发工具和文档。

VxWorks提供了VxWorks工作台和Tornado IDE等工具,这些工具能够提供强大的开发环境和调试支持。

此外,VxWorks还提供了详细的开发文档,包括用户指南、API参考和示例代码,以帮助开发人员更好地理解和应用系统。

第二步:项目设计在进行VxWorks程序开发之前,我们需要仔细设计我们的项目。

这包括确定项目的需求和功能,以及定义适当的软件架构和模块划分。

我们应该明确每个模块的职责和接口,以便实现高内聚和低耦合的设计。

此外,我们还需要考虑系统的实时性和可靠性需求,以确保我们的设计能够满足这些需求。

我们可以使用UML图或流程图等工具来辅助我们的设计过程。

第三步:开发环境设置在进行VxWorks程序开发之前,我们需要设置好正确的开发环境。

首先,我们需要安装和配置VxWorks工作台或Tornado IDE。

这些工具可以帮助我们创建和管理项目,以及进行代码编译和调试。

其次,我们需要配置正确的目标硬件和连接方式。

这包括选择适当的开发板和连接器,并设置好正确的连接参数。

最后,我们需要设置好合适的编译工具链和编译选项。

这些工具和选项可以确保我们的代码能够正确地编译和链接到目标系统。

西工大嵌入式实验指导书-VxWorks

西工大嵌入式实验指导书-VxWorks

《嵌入式计算机系统》VxWorks实验指导书编写:魏晓敏西北工业大学2013年11月实验一基于VxWorks的多任务设计第一部搭建VxWorks开发环境VxWorks 是专门为实时嵌入式系统设计开发的操作系统软件,为程序员提供了高效的实时任务调度、中断管理、实时的系统资源以及实时的任务间通信。

VxWorks是种功能强大而且复杂的操作系统,仅仅依靠人上编程调试,很难发挥它的功能并设计出可靠、高效的嵌入式系统,必须有与之相适应的开发工具。

Tornado就是为开发基于VxWorks 的应用系统而提供的集成开发环境,Tornado中包含的工具管理软件,可以将用户自己的代码与VxWorks 的核心系统有效地组合起束,从而轻松、可靠地完成嵌入式应用厅发。

Tornado是Windriver 公司开发的嵌入式软件开发环境。

Tornado开发环境的最新版本是2.2 ,它在延续了Tornado2.0 开发环境的基础上,增加了更多易于使用、性能优异的工具,因此在商业上取得了较大成功,获得了用户的好评。

Tornado开发环境是嵌入式实时领域里最新的开发调试环境,是编写嵌入式实时应用程序的完整的软件开发平台。

它给嵌入式系统开发人员提供了一个不受目标机资源限制的超级开发和调试环境a。

它包含3 个高度集成的部分:●运行在宿主机和目标机上的强有力的交叉开发工具和实用程序●运行在目标机上的高性能、可裁剪的实时操作系统VxWorks●连接宿主机和目标机的多种通讯方式,如以太网、串u线、ICE 或ROM 仿真器VxWorks的开发环境为Tornado,我们实验室用的是Tornado2.2。

包括Wind_River_tornado2.2.1_vxworks5.5.1 和Wind_River_vxworks5.5.1_BSP_drivers 两部分,需要分别安装,安装的顺序是先安装VxWorks5.5.1,再安装BSP包。

1.1Tornado安装步骤1.1.1 获取Tornado安装文件Tornado安装文件,包括 TORNADO2.2 和BSP的文件,可以从网上下载(/ShowFile.asp?FileID=62525)。

VxWorks操作指南

VxWorks操作指南

VxWorks操作指南项目\子项目名称:3G BTS平台分系统拟制部门:科技发展部拟制日期:2000.2.28目录1. 实时嵌入式操作系统V X W ORKS (3)2.V X W ORKS和T ORNADO (4)3.T ORNADO的配置 (5)3.1 主机的设置:Tornado Register (5)3.2 目标的设置 (6)4.T ORNADO开发工具的使用介绍 (7)4.1 Editor (7)4.2 Projects(Tornado 2.0版本特有) (7)4.3 Shell (8)4.4 Debugger (9)4.5 Browser (10)4.6 GNU工具 (10)4.7 Target Server (11)5.V X W ORKS的启动过程及相关例程 (12)5.1 VxWorks启动的一般原理 (12)5.2 MSDOS的启动过程 (13)6.V X W ORKS的多任务管理 (14)6.1多任务 (14)6.2任务状态转换 (14)6.3 wind任务的排序(scheduling)机制 (14)6.4 任务控制 (15)6.5 任务的删除和删除安全 (15)6.6 任务异常处理 (16)6.7 VxWorks系统任务 (16)7任务间通信(原语消息的传递) (16)7.1 概述 (16)7.2 互斥 (17)7.3 同步 (18)7.4 删除安全 (19)7.5 中断和任务间的通信 (19)8应用程序的加载 (19)1.实时嵌入式操作系统VxWorksVxWorks操作系统是一种应用广泛的嵌入式实时多任务操作系统。

其内核WIND具有强占式优先级排序的多任务处理能力,提供了任务间同步和通信的机制,支持中断处理、看门狗定时器和内存管理功能。

VxWorks的开发环境是Tornado,应用程序的开发语言是ANSI C和C++。

VxWorks的开发体系是代理-服务器(Agent-Server)结构体系,即驻留在主机(Host)的开发工具Tornado通过目标服务器(Target Server)指示目标上的目标代理(Target Agent)进行目标板上的操作并将结果返回给主机。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

԰㋏㒳VxWorks偠 ⿟Laboratory Tutorial for Embedded Real ˉtime Operating System VxWorks⥟䷀ 㢍 㓪䞡 䗮 ⿟ 䰶2003 10԰㋏㒳VxWorks 偠 ⿟Ⳃ1 ㋏㒳ὖ䗄 (1)1.1 ㋏㒳 (1)1.2 ԰㋏㒳 (7)2 ⧚ MPC860 (16)3 ԰㋏㒳VxWorks 䲚 ⦃ Tornado (25)3.1 ԰㋏㒳VxWorks (25)3.2 Tornado䲚 ⦃ (43)4 VxWorksⱘBootRom (48)5 偠 (55)5.1 偠ϔǃTornadoⱘՓ⫼ (55)5.2 偠Ѡǃ ㋏㒳ὖ ⱘ ゟ (74)5.3 偠ϝǃ ӏ ⿟ ⱘ㓪 (78)5.4 偠 ǃ䆒 ӊㅵ⧚ (101)5.5 偠Ѩǃ ㋏㒳䕃ӊⱘѸ 㓪䆥 (110)5.6 偠 ǃ ㋏㒳䕃ӊⱘѸ 䇗䆩 (116)䰘 A hwa-xpc860 偠 (120)1 ㋏㒳ὖ䗄㋏㒳䅵ㅫ 催䗳 ⱘҞ ˈ䅵ㅫ 䅵ㅫ 䞣 ⫼ Ӏⱘ ⫳⌏ЁDŽ⦄ҷⱘ䅵ㅫ 䍙 䅵ㅫ ⱘὖ ˈ ⊯ ⫼ⱘ 䅵ㅫ (Embebdded computer) Ёϔ⾡DŽ 䅵ㅫ 㗙 ㋏㒳ˈ⑤Ѣ20Ϫ㑾60 ҷˈ ϔ⾡ϡ㹿⫼ 㾝 ⱘϧ⫼䅵ㅫ DŽ1.1.1 ㋏㒳ⱘὖ㋏㒳ˈ 䲒㒭 ⹂ Нˈ ⏅㮣Ѣ Ϯ㋏㒳ǃ℺ ㋏㒳 ϔѯ ⬉Ҿ㸼䆒 ǃ⍜䌍⬉ ㉏ѻ 䚼ˈ ϔ⾡ ⾡⡍ 㛑ⱘ䅵ㅫ ㋏㒳ˈ 䕃⹀ӊⱘ㋻ 㒧 ԧDŽ㉏ԐϢBIOSⱘ ԰ DŽ 䕃ӊҷⷕ ˈ催 㞾 ˈ 䗳 ㄝ⡍⚍DŽ⡍ 䗖 Ѣ㽕∖ ⱘ ӏ ⱘ ⫼ԧ㋏DŽ䖭ѯϧ⫼䅵ㅫ ㋏㒳䎇ҹ 䅵ㅫ Ў Ḍ ˈ 㒩 ⫼㋏㒳ⱘ 㛑ǃ 䴴 ǃ ǃԧ⿃ǃ 㗫ㄝϹḐ㽕∖ 䆒䅵ⱘDŽ ϔ㠀⬅ ⧚ ǃ ⹀ӊ䆒 ǃ ԰㋏㒳ҹ ⡍ ⱘ ⫼⿟ ㄝ Ͼ䚼 㒘 ˈ⫼Ѣ ⦄ Ҫ䆒 ⱘ (control)ǃⲥ㾚Mointer) ㅵ⧚(Managemet)ㄝ 㛑DŽ1.1.2 ⧚㋏㒳ⱘ⹀ӊḌ ⧚ DŽ1.1.2.1 ⧚ ⱘ⡍⧚ ϔ㠀 ҹϟ4Ͼ⡍ ˖1˅ ӏ ⱘ 㛑 ˈ㛑 ӏ Ϩ 䕗ⷁⱘЁ 䯈ˈҢ㗠Փ 䚼ⱘҷⷕ Ḍⱘ 㸠 䯈 Ԣ䰤 DŽ2˅ ⱘ 㛑DŽ䖭 ⬅Ѣ ㋏㒳ⱘ䕃ӊ㒧 ῵ ˈ㗠Ўњ䙓 䕃ӊ῵ П䯈 ⦄ⱘѸ 䫭䇃ˈ䳔㽕䆒䅵 ⱘ 㛑ˈ Ѣ䕃ӊ䆞 DŽ3˅ ⱘ ⧚ 㒧 ˈҹ㛑䖙䗳 ⒵䎇 ⫼ 催 㛑 ⧚ DŽ4˅ ⧚ 乏 㗫 Ԣˈ ⫼Ѣ ⱘ 㒓 ⿏ ⱘ䅵ㅫ 䗮 䆒 Ё䴴⬉∴կ⬉ⱘ ㋏㒳 ℸˈ 䳔㽕 㗫 mW⫮㟇uW㑻DŽ1.1.2.2 ⧚ ㉏Ϣ⦄⢊㋏㒳ⱘḌ 䚼ӊ ⾡㉏ ⱘ ⧚ ˈⳂ ϡ 㒳䅵ˈ Ϫ⬠ ⧚ ⱘ ⾡ 䞣 㒣䍙䖛1000 ⾡ˈ⌕㸠ԧ㋏㒧 30 Ͼ㋏ ˈЁ8051ԧ㋏ⱘ DŽ⫳ѻ8051 ⠛ ⱘ ԧ 20 Ͼˈ 350 ⾡㸡⫳ѻ ˈҙPhilips 䖥100⾡DŽ⦄ Т↣Ͼ ԧ 䗴 䛑⫳ѻ ⧚ ˈ䍞 䍞 ⱘ 㞾 ⱘ ⧚ 䆒䅵䚼䮼DŽ ⧚ ⱘ ぎ䯈ϔ㠀Ң64KB 16ˉ32MBˈ ⧚䗳 Ң0.1MIPS 2000MIPSˈ ⫼ 㺙Ң8Ͼ 㛮 144Ͼ 㛮DŽḍ ⦄⢊ˈ 䅵ㅫ ҹ ϟ䴶 ㉏DŽ1ǃ ⧚ ˄Embedded Microprocessor Unit ˈEMPU˅⧚ ⱘ ⸔ 䗮⫼䅵ㅫ ЁⱘCPUDŽ ⫼Ёˈ ⧚ 㺙䜡 ϧ䮼䆒䅵ⱘ⬉䏃 Ϟˈ ⬭ ⫼ ⱘ↡ 㛑ˈ䖭ḋ ҹ ㋏㒳ԧ⿃ 㗫DŽЎњ⒵䎇 ⫼ⱘ⡍⅞㽕∖ˈ ⧚ 㱑✊ 㛑Ϟ ⧚ Ϟ ϔḋⱘˈԚ ԰⏽ ǃ ǃ 㗫ǃ 䴴 ǃ ㄝ 䴶 Ϯ 䅵ㅫ Ⳍ↨ˈ ⧚ ԧ⿃ ǃ䞡䞣䕏ǃ Ԣǃ 䴴 催ⱘӬ⚍ˈԚ ⬉䏃 Ϟ 乏 ROMǃRAM ǃ ⾡ 䆒ㄝ ӊˈҢ㗠䰡Ԣњ㋏㒳ⱘ 䴴 ˈ г䕗 DŽ ⧚ ǃ 㒓ǃ 䆒ㄝ 㺙 ϔ ⬉䏃 Ϟˈ⿄Ў 䅵ㅫ DŽ STDˉBUSǃPC104ㄝDŽ䖥 ˈ ǃ ⱘϔѯ њ㉏Ԑ“☿ Ⲧ” ⠛ ⱘ 䅵ㅫ ㋏ OEMѻ DŽ ⧚ Ⳃ Џ㽕 Am186/88ǃ386EXǃSCˉ400ǃPower PCǃ68000ǃMIPSǃARM㋏ ㄝDŽ2ǃ ˄Microcontroller UnitˈMCU˅⿄ ⠛ ˈ乒 Нˈ Ͼ䅵ㅫ ㋏㒳䲚 ϔ 㢃⠛ЁDŽ ϔ㠀ҹ ϔ⾡ ⧚ ḌЎḌ ˈ㢃⠛ 䚼䲚 ROM/EPROMǃRAMǃ 㒓ǃ 㒓䘏䕥ǃ /䅵 ǃWatchDogǃI/OǃІ㸠 ǃ㛝 䇗 䕧 ǃA/DǃD/AǃFlashRAMǃEEPROMㄝ ⾡ 㽕 㛑 䆒DŽЎ䗖 ϡ ⱘ ⫼䳔∖ˈϔ㠀ϔϾ㋏ ⱘ ⠛ ⾡㸡⫳ѻ ˈ↣⾡㸡⫳ѻ ⱘ ⧚ Ḍ䛑 ϔḋⱘˈϡ ⱘ 䆒ⱘ䜡㕂 㺙DŽ䖭ḋ ҹՓ ⠛ 䰤 ⫼䳔∖Ⳍ 䜡ˈ 㛑ϡ ϡ ˈҢ㗠 㗫 DŽ ⧚ Ⳍ↨ˈ ⱘ ⡍⚍ ⠛ ˈԧ⿃ ˈҢ㗠Փ 㗫 ϟ䰡ǃ 䴴 催DŽ Ⳃ ㋏㒳 ϮⱘЏ⌕DŽ ⱘ⠛Ϟ 䆒䌘⑤ϔ㠀↨䕗Є ˈ䗖 Ѣ ˈ ℸ⿄ DŽ Ⳃ ⱘ ⾡ 䞣 ˈ↨䕗 ҷ㸼 ⱘ䗮⫼㋏ 8051ǃP51XAǃMCSˉ251ǃMCSˉ96/196/296ǃC166/167ǃMC68HC05/11/12/16ǃ68300ㄝDŽ 䖬 䆌 䗮⫼㋏ ˖ USB ⱘMCU8XC930/931ǃC540ǃC541˗ I2CǃCANˉBusǃLCD ӫ ϧ⫼MCU ㋏ DŽⳂ MCU ㋏㒳㑺70ˁⱘ 乱DŽ⡍ ⊼ ⱘ 䖥 կX86 ⧚ ⱘ㨫 AMD ˈ Am186CC/CH/CUㄝ ⧚ ⿄ПЎMicrocontrollerˈMOTOROLA ҹPower PCЎ ⸔ⱘPPC505 PPC555Ѻ ⠛ 㸠 DŽTI Ѻ TMS320C2XXX㋏ DSP ЎMCU䖯㸠 DŽ3ǃ DSP ⧚ ˄Embedded Digital Signal ProcessorˈEDSP˅DSP ⧚ ㋏㒳㒧 Ҹ䖯㸠њ⡍⅞䆒䅵ˈՓ 䗖 Ѣ 㸠DSPㅫ⊩ˈ㓪䆥 ⥛䕗催ˈ Ҹ 㸠䗳 г䕗催DŽ Ⓒ⊶ǃFFTǃ䈅 ㄝ 䴶DSP ㅫ⊩ℷ 䞣䖯 乚 ˈDSP ⫼ℷҢ 䗮⫼ ⠛ Ёҹ 䗮 Ҹ ⦄DSP 㛑ˈ䖛⏵ 䞛⫼ DSP ⧚ DŽ DSP ⧚ ϸϾ ⑤ˈϔ DSP ⧚ 㒣䖛 ⠛ ǃEMC 䗴ǃ ⠛Ϟ 䆒 Ў DSP ⧚ ˈTIⱘTMS320C2000/C5000ㄝ Ѣℸ㣗⭈˗Ѡ 䗮⫼ ⠛ SOCЁ DSP ⧚ ˈ՟ IntelⱘMCSˉ296 SiemensⱘTriCoreDŽ DSP ⧚ ⱘ ϔϾ ㋴ ㋏㒳ⱘ 㛑 ˈ՟ ⾡ 㛑䘏䕥ⱘ⍜䌍㉏ѻ ˈ⫳⠽ 䆚 㒜ッˈ 㾷 ㅫ⊩ⱘ䬂ⲬˈADSL ǃ 䇁䷇ 㾷㋏㒳ˈ㰮 ⦄ ⼎ㄝDŽ䖭㉏ 㛑 ㅫ⊩ϔ㠀䛑 䖤ㅫ䞣䕗 ˈ⡍ 䞣䖤ㅫǃ 䩜㒓 ㄝ䕗 ˈ㗠䖭ѯℷ DSP ⧚ ⱘ䭓 DŽ DSP ⧚ ↨䕗 ҷ㸼 ⱘѻ Texas InstrumentsⱘTMS320㋏ MotorolaⱘDSP56000㋏ DŽTMS320㋏ ⧚ ⫼Ѣ ⱘC2000㋏ ˈ⿏ 䗮 ⱘC5000㋏ ˈҹ 㛑 催ⱘC6000 C8000㋏ DŽDSP56000Ⳃ 㒣 ЎDSP56000ˈDSP56100 DSP56300ㄝ Ͼϡ ㋏ ⱘ ⧚ DŽ PHILIPS Ҟ г њ Ѣ 䞡㕂㒧 ǃԢ ǃԢ 㗫 Ϟ 䗴ⱘR.E.A.L.DSP ⧚ ˈ⡍⚍ Harvard㒧 Ь/㌃ ˈ ⫼Ⳃ 䞣⍜䌍㉏ѻ DŽ4ǃ ⠛Ϟ㋏㒳˄System On Chip˅䱣ⴔEDIⱘ VLSI䆒䅵ⱘ ˈ ԧ 㡎ⱘ䖙䗳 ˈ ϔϾ⸙⠛Ϟ ⦄ϔϾ Ў ⱘ㋏㒳ⱘ ҷ Јˈ䖭 System On Chip˄SOC˅DŽ ⾡䗮⫼ ⧚ Ḍ ԰ЎSOC䆒䅵 ⱘ ˈ 䆌 ㋏㒳 䆒ϔḋˈ ЎVLSI䆒䅵Ёϔ⾡ ⱘ ӊˈ⫼ ⱘVHDLㄝ乘㿔 䗄ˈ ӊ ЁDŽ⫼ 䳔㽕 Н Ͼ ⫼㋏㒳ˈӓⳳ䗮䖛 ҹ 䆒䅵 Ѹ㒭 ԧ ԰ḋ DŽ䖭ḋ䰸Ͼ ⊩䲚 ⱘ ӊҹ ˈ Ͼ ㋏㒳 䚼 䲚 ϔ 㢃⠛Ё ˈ ⫼㋏㒳⬉䏃 ㅔ⋕ˈ Ѣ ԧ⿃ 㗫ǃ 催 䴴 䴲 DŽSOC ҹ Ў䗮⫼ ϧ⫼ϸ㉏DŽ䗮⫼㋏ SiemensⱘTriCoreˈMotorolaⱘMˉCoreˈ ѯARM㋏ ӊˈ Echelon Motorola 㘨 ⷨ ⱘNeuron㢃⠛ㄝDŽϧ⫼SOCϔ㠀ϧ⫼Ѣ Ͼ ㉏㋏㒳ЁˈϡЎϔ㠀⫼ ⶹDŽϔϾ ҷ㸼 ⱘѻ PhilipsⱘSmart XAˈ XA ⠛ Ḍ 䍙䖛2048ԡ RSAㅫ⊩ⱘCCU ԰ ϔ ⸙⠛Ϟˈ ϔϾ 䕑JAVAC䇁㿔ⱘϧ⫼ⱘSOCˈ ⫼Ѣ ӫѦ㘨㔥 Internet 䴶DŽ1.1.3 ㋏㒳 㾕ⱘ䕃ӊ㒧㋏㒳 㾕ⱘ䕃ӊ㒧(1) ⦃䕂䆶㋏㒳:(Polling Loop)ㅔ ⱘ䕃ӊ㒧 ⦃䕂䆶,⿟ ձ⃵Ẕ ㋏㒳ⱘ↣ϔϾ䕧 ӊˈϔ ӊ ゟ 䖯㸠Ⳍ ⱘ ⧚ 䗮 ⱘ䕃ӊ㒧 ˖initialize()while(true) { checkfor imputif (condition_1) action_1();if (condition_2) action_2(); do some work......if (condition_n) acition_n();1-1 ⦃䕂䆶㋏㒳Ӭ⚍˖¾ Ѣㅔ ⱘ㋏㒳㗠㿔 Ѣ㓪⿟ ⧚㾷¾≵ Ё ⱘ ⿟ 䖤㸠㡃 ϡӮ ⦄䱣 ⱘ䯂乬㔎⚍˖¾ 䰤ⱘ ⫼乚 ⬅Ѣϡ ⹂¾ Ѣ 䞣ⱘI/O ⱘ ⫼ϡ ⦄¾ ⱘ⿟ ϡ Ѣ䇗䆩ℸ 䗖 Ѣ 䗳 䴲 䗳ⱘㅔ ㋏㒳˄2˅ ㋏㒳(Foreground/Background) Ё 偅 ㋏㒳ϔϾ ⦃䕂䆶㋏㒳ϔⳈ 䖤㸠, ⬅ϔѯЁ ⧚䖛⿟㒘 ⱘ ϔ џӊ( 䚼џӊ) ⫳ 䍋Ё ,Ё 䖤㸠䖯㸠 ⧚, ⧚ (䗮 ⿄Џ⿟ )DŽ䖭⾡㋏㒳ⱘϔϾ ッ ϔϾㅔ ⱘ ⦃ϡ ӏԩџ ԰䛑 ⬅Ё ⧚⿟ ⱘԚ Ё ⧚䙷ѯ䳔㽕 䗳 ⱘџӊ Ϩ I/O䆒 ⱘ ⱘ㓧 Ё, , ⱘ ԰⬅ 䖭ѯ 䖯㸠 ⧚ ⼎ ㄝ䖭⾡㋏㒳ⱘ䕃ӊ䖤㸠ⱘ 1-2 ⼎1-2 ㋏㒳䖭⾡㋏㒳䳔㽕㗗㰥ⱘ Ё ⱘ⦄ Ё Ё ⧚䖛⿟ϢЏ⿟ ⱘ 䇗( ѿ䌘⑤)䯂乬㋏㒳ⱘ 㛑Џ㽕⬅Ё 䖳 䯈(Interrupt latency time), 䯈(response time) 䯈(recovery time) ⬏ 1-3 ⼎Ё 䖳 䯈: ҢЁ ⫳ ㋏㒳㦋ⶹЁ , Ϩ 㸠Ё ⿟ 䳔㽕ⱘ ⒲ 䯈DŽ1-3 ㋏㒳ⱘЁ 䯈˄3˅ ӏ ㋏㒳(Multitasking Multi-thread Program Model-ㅔ⿄RTOS) ѢϔϾ ⱘ ㋏㒳 䇈, 䞛⫼Ё ⧚⿟ ϔϾ Џ⿟ 䖭⾡䕃ӊ㒧 䲒ҹ ⱘ ⹂ⱘ 䴴ⱘ , ϔѯѦϡⳌ ⱘ䖛⿟䳔㽕 ϔϾ䅵ㅫ Ё ⧚ , 䳔㽕䞛⫼ ӏ ㋏㒳DŽ1-4 ӏ ㋏㒳Џ㽕⡍⚍˖Ͼ乎 㸠ⱘ⿟ 㸠䖤㸠㾖Ϟⳟ ⱘ⿟ 䖤㸠↣Ͼ⿟ 䖤㸠 㞾 ⣀ゟⱘCPUϞ 䰙Ϟϡ ⱘ⿟ ѿ ϔϾCPU ⹀ӊ ℸ䳔㽕RTOS䖭ѯ ѿⱘ䆒 䖯㸠ㅵ⧚↣Ͼ⿟ 䛑㹿㓪 䰤 ⦃ⱘ⿟ ㄝ ⡍ ⱘ䕧 㸠Ⳍ ⱘӏ ㄝ䖭⾡⿟ ῵ ㋏㒳 Ⳍ ㅔ ⱘⳌѦ ԰ⱘ῵Џ㽕Ӭ⚍˖ⱘ㋏㒳 㾷ЎⳌ ⣀ゟⱘ Ͼ㒓⿟䖒 㗠 ПⱘⳂⱘҢ㗠䰡Ԣ㋏㒳ⱘ 䆕㋏㒳ⱘ㋏㒳ⱘ῵ 催㋏㒳ⱘ 㓈㔎⚍˖䳔㽕䞛⫼ϔѯ ⱘ䕃ӊ䕃ӊ䆒䅵 ⊩䳔㽕 㛑㒓⿟䯈ⱘ 䇗 ℹ 䗮 㛑䳔㽕 ↣ϔϾ ѿ䌘⑤Ѧ㟈㒓⿟䯈ⱘゲѝ䳔㽕Փ⫼RTOSˈ㽕 ㋏㒳ⱘ 䫔ӏ ㋏㒳 䰙Ϟ ⬅ Ͼӏ ϾЁ ⧚䖛⿟ ԰㋏㒳㒘ⱘⳌѦ䗮 ℹг䳔㽕 ԰㋏㒳ⱘRTOSⱘ䳔∖˖z䎇 ⱘ Ϟϟ ㋏㒳䇗⫼ㄝz ⹂ ⱘ 㛑zӏ 䇗 ѢӬ 㑻ⱘz ⱘЁ 䖳z Ԍ㓽 䜡㕂ⱘԧ㋏㒧z 䴴ӏ ㋏㒳ⱘ ⦄ 乏 ӏ ԰㋏㒳ⱘ ԰㋏㒳Џ㽕ӏ ǃӏ 䇗 ǃӏ 䯈䗮 ℹѦ ǃ 䩳ㅵ⧚ǃЁ ㅵ⧚DŽ1.2 ԰㋏㒳1.2.1 ㋏㒳 ԰㋏㒳԰㋏㒳 ⫼䕃ӊⱘ ⸔ DŽⳂ ⫼䖬 䕑 ⠛ ϞⳈ 䖤㸠ˈ≵ RTOS(Real-time Operating System˗ㅔ⿄RTOS)ˈԚҡ㽕 ϔϾЏ⿟ 䋳䋷䇗 Ͼӏ DŽRTOS ϔ↉ Ⳃ ⿟ Ёⱘ⿟ ˈ㋏㒳 ԡ 佪 㸠ˈⳌ Ѣ⫼ ⱘЏ⿟ ˈ⫼ ⱘ ⫼⿟ 䛑 ゟ RTOS ϞDŽϡҙ ℸˈRTOS䖬 ϔϾ ⱘ Ḍˈ CPU 䯈ǃЁ ǃI/Oǃ ㄝ䌘⑤ 㺙䍋 ˈ⬭㒭⫼ ϔϾ ⱘAPI˄System callˈ㋏㒳䇗⫼˅ˈ ḍ Ͼӏ ⱘӬ 㑻ˈ ⧚ ϡ ӏ П䯈 䜡CPU 䯈DŽRTOS 䩜 ϡ ⧚ 䆒䅵Ӭ 催 ⥛ ӏ ḌˈRTOS ҹ䴶 Ͼ㋏ ⱘ ⧚ MPUǃMCUǃDSPǃSOCㄝ կ㉏ ⱘAPI ˈ䖭 RTOS Ѣ䆒 ⣀ゟⱘ ⫼⿟ ⸔DŽ ℸ ѢRTOSϞⱘC䇁㿔 ⱘ ⿏ỡ DŽ ϧ 乘⌟ˈӬ⾔ⱘRTOSϞ䎼 ⧚ ⱘ⿟ ⿏ỡ 䳔 1ˉ4% DŽ RTOS ⸔Ϟ ҹ㓪 ⾡⹀ӊ偅 ⿟ ǃϧ ǃ㸠Ϯ ǃѻ 䗮⫼ ⱘ ⫼⿟ ϔ䍋ˈ ҹ԰Ўѻ 䫔 ˈ 䖯㸠Ϯⶹ䆚ѻ Ѹ⌕ˈ ℸˈRTOS ϔϾ䕃ӊ DŽRTOSⱘ ˈ㾷 њ 䕃ӊ ⱘ䲒乬DŽ䱣ⴔ ㋏㒳Ё䕃ӊ↨䞡ϡ Ϟ ǃ ⫼⿟ 䍞 䍞 ˈ Ҏ ǃ ⫼⿟ ǃ⿟ ḷḜⱘ㒘㒛ㅵ⧚ ЎϔϾ ⱘ䇒乬DŽ RTOSⳌ Ѣ њϔ⾡ ⱘㅵ⧚῵ ˈ Ѣ ԡ Ҏ 䛑 ϔϾ 催DŽ ѢRTOS ⱘ⿟ 䕗催ⱘ ⿏ỡ ˈ ⦄90ˁҹϞⱘ䆒 ⣀ゟˈϔѯ ❳ⱘ䗮⫼⿟ ҹ԰Ўϧ ѻ ⼒ӮDŽЁ 䅵ㅫ ϮϞ㨑 Ѣ㽓 ˈ ⧚ Ϟг ℸDŽԚ ㋏㒳䴶 ⫼ⱘ⡍⚍ њ ⧚ ⫼ ⱘѻ 㽕 Ͼ Ϯⱘ 䚼 ˈ㗠Ϩ ⧚ ԧ ⫼㒧 䖭⾡ⶹ䆚 ˈ 㛑⬅㊒䗮 ⫼㋏㒳ⱘ⫼ DŽ ℸЁ ㋏㒳 䴶 ⴔⳌ ⱘ ӮDŽЁ 㒣⬅10ϛԭ ⠛ ⿟ ˈ Ё Ҏ䛑 䌘 䰤ⱘ ӊϟ䗮䖛 䏉ˈ㊒䗮њ ⠛ ˈ ⷨ њ㞾 ⱘѻ DŽԚ ⱘ Ⳍ↨ˈ ↉ ∈ Ⳍ 䕗Ԣˈ ⿟ ϡ ˈ䞡 䕗 DŽ䖭ѯ䯂乬Џ㽕 ⬅Ѣ ⠛ Ё㔎У ⿟ ǃ ㅵ⧚ˈ㔎 㸠Ϯ㘨 ˈ RTOS ㋏㒳䕃ӊ ⿟ㅵ⧚ ⱘ ˈ㋏㒳 ѻϮ䍄 Ѡ ϔϪ㑾ⶹ䆚㒣⌢ ҷⱘ 䞡㽕ⱘ㒣⌢ 䭓⚍Пϔˈ䖭 ϔϾϡ ⱘ Ϯˈ Ё ⱘ ѻϮ 䇈 ⒵њ 䘛 DŽ Ϯⱘ ⸔ ҹ ⫼ЎЁ ⱘ㢃⠛䆒䅵 䴶 ⫼ⱘ䕃ӊ DŽ ӏ ԰㋏㒳䖯 Ϯⱘ НˈϡѮѢ Ϟ Ẅ Ϯ䞛⫼ϝ㾚 ⱘ ˈ 䕃ӊⱘ 䗳ⶹ䆚 ϔϾ䞠⿟⹥DŽ1.2.2 ԰㋏㒳ⱘὖ ⡍⚍ⱘ Н 㾘 ⱘ 䰤 㛑 Ӵ䗦ℷ⹂ⱘ㒧 ˈ䖳 ⱘ㒧 䫭䇃DŽ ㋏㒳 䴲 “ 䗳”㋏㒳ˈ ㋏㒳 䰤 ⱘ 䯈ˈҢ㗠Փ㋏㒳 乘⌟ DŽ ㋏㒳 ҹ Ў“⹀ ㋏㒳” “䕃 ㋏㒳”DŽѠ㗙ⱘ Ѣ˖ 㗙 ϡ⒵䎇 䰤ǃ ϡ 䖛 ⱘ ϟ䛑Ӯ 㟈♒䲒 ⱘ ˄ 㟾ぎ㟾 ㋏㒳˅˗㗠 㗙 ϡ⒵䎇 䰤 ˈ㋏㒳 㛑䗔 ˈԚ ϡӮ 㟈♒䲒 ⱘ ˄ Ѹ ㋏㒳˅DŽ԰㋏㒳 ˈ㛑 ԰㋏㒳 ԰ⱘ ԰㋏㒳DŽ ԰㋏㒳ⱘ佪㽕ӏ 䇗 ϔ ⫼ⱘ䌘⑤ ӏ ˈ ⃵ ⴔⴐѢ 催䅵ㅫ ㋏㒳ⱘՓ⫼ ⥛ˈ 䞡㽕⡍⚍ 㽕䗮䖛ӏ 䇗 ⒵䎇 Ѣ䞡㽕џӊ 㾘 ⱘ 䯈 ℷ⹂ⱘ DŽӏ ԰㋏㒳Ϣ ӏ ԰㋏㒳 ⴔ ⱘ DŽ ԧⱘ䇈ˈ Ѣ ԰㋏㒳ˈ䕃ӊⱘ 㸠 䯈Ϟⱘ㽕∖ˈ ϡϹḐˈ 䯈Ϟⱘ 䇃 㗙 Ϟⱘ䫭䇃ˈϔ㠀ϡӮ䗴 ♒䲒 ⱘ DŽ㗠 Ѣ ԰㋏㒳ˈЏ㽕ӏ џӊ䖯㸠 ⱘ ⧚ˈ㱑✊џӊ 㛑 ⊩乘ⶹⱘ 䖒ˈԚ ㋏㒳 䋳㥋ϟˈг ℸ——㋏㒳 䯈 ⱘ䍙 ⴔ㟈 ⱘ 䋹DŽ ˈ ԰㋏㒳ⱘ䞡㽕⡍⚍ ㋏㒳ⱘ ⹂ ˈ ㋏㒳㛑 䖤㸠 ⱘ ㄝⱘ 㛑 ㊒⹂ⱘԄ䅵DŽ1.2.3 RTOSⱘ㒧 ⡍⚍RTOSЁˈϔ㠀䞛⫼ Ḍ˄Microkernel˅㒧 ˈ ԰㋏㒳Ё ǃ ㅔ ⱘ 㛑˄ӏ ⱘㅵ⧚Ϣ䇗 ˅㕂Ѣ Ḍ DŽ㗠 䗝 ⱘ 㛑԰Ў⫼ ⱘ ⿟ 偏⬭ Ḍ ˈ⿄ПЎ㒘ӊ˄Components˅DŽ՟ PSOS ⬅PSOS+ Ḍ PROBE+ǃPNA+ǃPHILE+ㄝ㒘ӊ㒘 DŽ⦄ ⱘ ԰㋏㒳䰸Ӵ㒳 ԰㋏㒳ⱘ 㛑 ˈ䖬 㔥㒰 ⧚ 㛑῵ DŽRTOSⱘ Ḍ ԰㋏㒳 㽕ⱘ 㛑 њ ԰㋏㒳 䚼ˈ Ḍ 䆒ϡ԰ 䆒 ϡ 䆒⫼ Ϟ ⬅ 㒓ҹ ҔМḋⱘ 㒓ˈгϡ 䆒 ⱘ ҹ ԩ ԡˈгϡ 䆒I/O I/Oˈ 䆒ⱘㅵ⧚ 㑻 ˄BSP˅ ⱘDŽRTOSⱘ䖭⾡ ǃ῵ ǃ 㺕 ˈḍ 䳔㽕 䳔῵ 㒧 ˈՓ ԰㋏㒳Ḍ ㊒ ǃ催 ǃ 㸠 њ䆌 乱 䫔ˈ 催њ 䗳 ˈ Ϩ ḌՓ ԰㋏㒳 䇗 ˈՓ 催Ӭ 㑻ӏ Ӭ 㸠ˈՓ ㋻ џӊӬ ⧚ˈ Ϩ Ͼ ⫼⿟ ⫼ ˈ㡖ⳕњFLASH DRAM ぎ䯈ˈ䰡Ԣњ DŽ䗮 ԰㋏㒳 ҹϟ Ͼ䴲 ⱘ⡍ ˖ˈ ㋏㒳 乏 䚼џӊ԰ 䗳 ˈϨ ⱘ 䯈 ⹂ ⱘˈϡㅵ 䚼џӊ 䱣 џӊDŽ ЎRTOS ⫼Ѣ 㽕∖ 催ⱘ ㋏㒳DŽϔ㠀 䇈 RTOSⱘ㋏㒳 䯈Ў ⾦DŽRTOSҹӏ 䯈˄Ϟϟ 䯈˅ Ё 䖳 䯈 䗄RTOSⱘ 㛑DŽӏ 䯈 ⱘ 䖤㸠ӏ ⢊ 䆹ӏ Ёˈ 㽕䖤㸠ⱘӏ ⱘ⢊ Ң Ё ⱘ 䯈DŽЁ 䖳 䯈 ⱘ ҢЁ ⫳ ㋏㒳㦋ⶹЁ ˈ Ϩ 㸠Ё ՟⿟˄ISR˅ⱘ㄀ϔ 䇁 䳔ⱘ ⒲ 䯈DŽ䴴 ˈRTOS ⫼⦃ ⡍ ⱘ䳔㽕ˈ㽕∖ 催ⱘ 䴴 DŽ♉⌏ ˈ ЎRTOSⱘ ⫼乚 ˈRTOS 乏 ⱘ♉⌏ DŽ♉⌏ Џ㽕 RTOS 乏 㺕 ǃ 䜡㕂 ㄝ 䴶ҹ䗖 ⡍ ⱘ⹀ӊ⦃ 䕃ӊ⦃ DŽ1.2.4 ԰㋏㒳ⱘ ㅔ70 ҷ 80 ҷ ˈ䖬≵ ⫼ⱘϧ䮼 ˈ䗮 Џ ˄Host˅Ϟ ⫼∛㓪䇁㿔 ⱘ ⫼ҷⷕⱘ㓪䆥 䫒 ˈ䗮䖛І㸠㒓ϟ㺙 Ⳃ ˈⳂ Ϟϔ㠀㺙 ㅔ ⱘⲥ ˈ㋏㒳ⱘ䇗䆩ձ䴴ⲥ ˈ 䕙Пҹ䘏䕥 Ҿ LED ⼎ㄝ ↉ ⦄DŽ80 ҷ ⦄њҹOS-9 VRTXЎҷ㸼ⱘ㄀ϔҷ ԰㋏㒳ˈ䖭ḋ 㗙 ҹ䲚Ё㊒ Ѣ ⫼ 䕃ӊ ˈ㗠ϡ 㑴㓴Ѣ㾷 䇗 ㄝ䯂乬˗ ⫼⿟ ҹ䞛⫼催㑻䇁㿔㓪 ˗ⲥ ⱘ 㛑 ˈ ҹ⫼ 㾖 ㋏㒳Ё Ͼӏ П䯈ⱘⳌѦ԰⫼ˈԚ 䖭⾡∛㓪㑻䇗䆩 Ѣ㾷 Ͼ⫼催㑻䇁㿔㓪 ⱘӏ ⱘ 䱰ҡ✊ ˈ 㗙 ҹ䴴 ⬉䏃ӓⳳ ˄ICE˅ Ͼӏ 䖯㸠⑤ⷕ㑻 䫭ˈԚ Ѣ 䇗䆩 Ͼӏ ҡ✊ 㛑Ў DŽ80 ҷЁ ˈ ⦄њҹVxWorksЎҷ㸼ⱘ㄀Ѡҷ ԰㋏㒳ˈ ԰㋏㒳 䚼 կ ѢTCP/IP 䆂ⱘ㔥㒰 㛑˗ կ ⱘ⑤ⷕ㑻䇗䆩 ˗կ偏⬭Ⳃ ⱘShell ˈՓ ҹ䖯㸠 䗳 䆒䅵 䗳 DŽ䖯 90 ҷҹ ˈ ⦄ҹTornado/VxWorksЎҷ㸼ⱘ㄀ϝҷ ԰㋏㒳DŽ Џ㽕⡍ ˖˄1˅ կ ⾡ ⧚ ԧ㋏ⱘ ⊯ ˗˄2˅ ⱘ ⦃ ˈ 偏⬭Џ ⱘShell ǃ ѢЏ ⱘⳂ ӓⳳ ˗˄3˅ ⱘ䕃ӊ ˈҹ 㦋 ⊯ⱘ㄀ϝ 䕃ӊ ⱘ DŽⳂ ˈ ԰㋏㒳ℷ ㄀ ҷ ˈ Џ㽕Ⳃ ˖ ⾡ ԰㋏㒳 կ ⱘ ⫼ ˄API˅ǃ偅 䕃ӊ ˗ Ң8ԡ 64ԡ ԧ㋏㒧 կ㒳ϔⱘ DŽ1.2.5䆘Ӌ ԰㋏㒳ⱘ 䬂⬅ѢRTOS ⫼Ёⱘ⡍⅞ ԡˈ RTOSⱘⷨおЁ 㛑 ⱘ㽕∖Ⳍ Ѣ 䗮 ԰㋏㒳 䇈 ↨䕗ϹḐˈ԰Ў ԰㋏㒳ⷨおⱘϔϾ䞡㽕 ˈ Ϣϔ㠀 䗮 ӏ ԰㋏㒳˄ UNIX˄POSIX˅ǃWINDOWS LINUXㄝ˅ Ⳍ П ˄ 䛑㛑 կ ӏ ˅ˈг 䆌 ϡ П DŽ Ѣ 䗮 ӏ ԰㋏㒳ˈ Ⳃⱘ ⫼ ㅵ⧚䅵ㅫ 䌘⑤ˈ䗑∖㋏㒳ⱘ ⫼⥛˗㗠RTOS 䗑∖ⱘ ǃ 䴴 ⹂ ㄝDŽ䆘ӋϔϾ ԰㋏㒳ϔ㠀 ҹҢ䖯⿟ㅵ⧚ǃӏ 䇗 ǃ ㅵ⧚ǃӏ 䗮 ǃ 䫔ǃӏ 䯈 Ё ⽕ℶ 䯈ㄝ䅵 㸵䞣 Ӭ DŽ ӏ 䇗 ㅫ⊩RTOSⱘ ӏ 㛑 ⿟ Ϟ Ѣ ⱘӏ 䇗 ㅫ⊩DŽҢ䇗 ㄪ⬹Ϟ 䆆ˈ ЎӬ 㑻䇗 ㄪ⬹ 䯈⠛䕂䕀䇗 ㄪ⬹˗Ң䇗 Ϟ 䆆ˈ Ў ǃϡ 䗝 䇗 ˗Ң 䯈⠛ ⳟˈ Ў Ϣ 䯈⠛䕂䕀䇗 ϸ⾡ DŽϞϟ 䯈˄&RQWH[W 6ZLWFKLQJ 7LPH˅ӏ ㋏㒳ЁˈϞϟ ⱘ ⧚ ⱘ ⬅䖤㸠ӏ 䕀⿏ ϔϾ 㒾ӏ ⫳ⱘ DŽ 䖤㸠ӏ 䕀Ў 㒾ǃ 䍋 䰸 ˈ ϔϾ㹿䗝 ⱘ 㒾ӏ ⿄Ў ӏ DŽϞϟ 䖬 ⱘ⢊ ˈ 䙷Ͼӏ 䖤㸠ˈ 㽕䖤㸠ⱘ䙷Ͼӏ ⱘ⢊ DŽ Ϟϟ ձ䌪ѢⳌ ⧚ ⱘDŽ ℸˈϞϟ 䯈 RTOS 㛑ⱘϔϾ䞡㽕 DŽ⹂԰㋏㒳Ёˈ ϔ ⱘ ӊϟˈ㋏㒳䇗 䖤㸠ⱘ 䯈 ҹ乘⌟ⱘDŽԚ䖭 ϡ ⴔ ⱘ㋏㒳䇗⫼ 㸠ϔϾ 䭓 ⱘ 䯈ˈ㗠ϡㅵ㋏㒳ⱘ䋳䕑 ԩDŽ㋏㒳䇗⫼ⱘ 㸠 䯈 ⱘDŽㅵ⧚䗮 ㅵ⧚ Ўϸ⾡῵ ˖ ῵ ῵ DŽ䫔RTOSⱘ䆒䅵䖛⿟Ёˈ 䫔 ϔϾ 䞡㽕ⱘ ˈ䖭 Ў Ϯ 乚 Ёⱘ ѯ ˄ Ϟϟԡ ㋏㒳ЁⱘϞϟԡ ˅ˈ⬅Ѣ Ѣ䰡Ԣ ⱘ㗗㰥ˈ ⱘ䜡㕂ϔ㠀䛑ϡ ˈ՟ 5000㋏ 5185 ˈ 䜡㕂ҙЎ256K SRAMˇ128K EPROMˈ㗠 䰤ⱘぎ䯈 ϡҙ㽕㺙䕑 ԰㋏㒳ˈ䖬㽕㺙䕑⫼ ⿟ DŽ ℸˈ RTOSⱘ䆒䅵Ёˈ ⫼ ϔϾ 䞡㽕ⱘ DŽ䖭 RTOS䆒䅵Ϣ ԰㋏㒳䆒䅵ⱘ ⱘ ПϔDŽ Ё ⽕ℶ 䯈RTOS䖤㸠 Ḍ 㸠 ѯ㋏㒳䇗⫼ ˈ ϡӮ Ў 䚼Ё ⱘ 㗠Ё 㸠ⱘDŽ RTOS䞡 ⫼ 䚼Ё 䇋∖ˈ䖭ϔ䖛⿟ 䳔ⱘ 䯈 Ё ⽕ℶ 䯈DŽӏ 䯈⬅Ѣ ѯ ՓϔϾӏ 䗔 㸠 ˈRTOS ⱘ䖤㸠⦄ ǃ Ⳍ 䯳 ǃ ḍ ϔ ⱘ䇗 ㅫ⊩䞡 䗝 ϔϾӏ ՓП 䖤㸠ˈ䖭ϔ䖛⿟ 䳔 䯈⿄Ўӏ 䯈DŽϞ䗄 乍Ёˈ Ё ⽕ℶ 䯈 ӏ 䯈 䆘ӋϔϾRTOS 䞡㽕ⱘϸϾ DŽ1.2.6 ԰㋏㒳ⱘ䗝䗝 ԰㋏㒳 㽕㗗㰥ⱘ ㋴ ˈ Ӏ 䖭䞠ҙ Џ㽕 ⱘ䯂乬 ҹ䅼䆎DŽ䭓 ⊯ⱘ ⫼Ӯ ԩՓ⫼ϔϾ ԰㋏㒳 㛑 ❳㒗 ⫼ ⫼ˈ䳔㽕ϔϾⳌ 䭓ⱘ䖛⿟ˈ 䯈 Ҏ Ϟⱘ 䌘 DŽ ℸϔ 䗝⫼њϔϾ ԰㋏㒳ˈ 㛑 ⫼Ѣ ⾡ ⧚ ㋏㒳 ⾡㾘῵ⱘ㋏㒳DŽг 㽕∖ 䗝ⱘ ԰㋏㒳 ⿏ỡ 㾘῵ Ԍ㓽 ˈ䖭ḋ 㛑䱣ⴔџϮⱘ ˈ䗖 ϡ ⱘ ⫼㽕∖ˈ䭓 Փ⫼ϟ DŽ⧚ ⱘ 䍞 䍞 ˈ 㛑䍞 䍞催ˈ Ѣϡ ㉏ ⱘ ⫼ˈ䆒䅵㗙 㛑㽕䗝⫼ϡ ㉏ ⱘ ⧚ ˈ 㗙 ϔ㉏ ϟ䗝⫼ ⱘ DŽЎњ㛑 䭓 Փ⫼ϔϾ ԰㋏㒳ˈ 㽕∖ ⱘ ⧚ ⱘ㉏ 䍞 䍞 DŽЎњ䖒 䖭Ͼ㽕∖ˈ 㽕∖ ԰㋏㒳 㡃 ⱘ ⿏ỡ ˈ㗠Ўњ 㡃 ⱘ ⿏ỡ ˈ ԰㋏㒳 䆹䞛⫼催㑻䇁㿔˄ϔ㠀䛑 C䇁㿔˅ ⦄DŽ䗮 ↣ ⦄ϔϾ ⱘ ⧚ ˈ Ӯ Ⳍ ⱘC㓪䆥 ˈ䞛⫼C䇁㿔ⱘ ԰㋏㒳 㛑䖙䗳 ⿏ỡ 䖭Ͼ ⧚ ϞDŽϔϾ ԰㋏㒳䞛⫼ⱘ∛㓪䇁㿔䍞 ˈ ⧚ ⱘ⿏ỡ 䍞 䲒⫮ ϡ 㛑ˈ䖭ϔ⚍ ѢRISC ⧚ DŽ ϔҷⱘ԰㋏㒳˄՟ VxWorks˅䞛⫼C䇁㿔 ⦄ˈ⿏ỡ ϔϾ ԧⱘ ⧚ П ˈ 㾚䳔㽕 ѯ 䯈㽕∖㢯 ⱘҷⷕ⫼∛㓪䇁㿔Ӭ DŽ԰㋏㒳㽕⫼Ѣ ⾡ ㋏㒳ˈ ϾҎ ㋏㒳ˈ ⧚ ㋏㒳DŽ䖭 㽕∖ ԰㋏㒳ⱘҷⷕ㾘῵ Ԍ㓽 DŽ ԧ 䇈ˈ 㽕∖㋏㒳 㓽 ˈ Ѣ 㾘῵ 䰤ⱘ ㋏㒳ˈ㽕∖ ԰㋏㒳ⱘҷⷕ䭓 㛑㓽 KB⫮㟇 KB㣗 DŽҷⷕ㾘῵ⱘ Ԍ㓽 Џ㽕 ѢϸϾ ㋴DŽϔ ⫼ⱘ䇁㿔ˈ ѢC䇁㿔ⱘ㋏㒳㚃 ϡ Ѣ∛㓪䇁㿔ⱘ㋏㒳㋻ ˈԚЎњ 䗄ⱘ ⿏ỡ ⱘ⧚⬅ˈ䞛⫼催㑻䇁㿔З 䍟ˈ 㛑 㛑 ҹӬ ˈ㓽 ҷⷕ䭓 DŽ ㋏㒳㾘῵ Ԍ㓽 ⱘ㄀ѠϾ ㋴ ԰㋏㒳 䗝⫼ⱘ㒧 DŽⳂ Ў⌕㸠ⱘ 䗨ⱘ ԰㋏㒳㒧 Ḍ㒧 ˈ䖬 䆌 ԰㋏㒳䞛⫼⿄Ў“㉏ Ḍ”ⱘ῵ 㒧 ˈ䖭⾡㒧 Ѣ㺕 ˈ ҹ ⧚㋏㒳ⱘ㾘῵ Ԍ㓽 䯂乬DŽˈ 䭓 ⫼ ⱘ㽕∖ ✊䖬 ⴔ 䗝 ԰㋏㒳ⱘ⫳ѻ 䆹 ϔϾ Ϟ ⱘ ˈ ⲯⱘ⫳ ˈ㛑 ѻ կ䭓 DŽ ѢՓ⫼ ѢϔϾ ԰㋏㒳 ѢՓ⫼ Ѣ ˈⳈ ㋏ⴔѻ ⱘ 䯈DŽ䖭Џ㽕 ҹϟ 䴶˖˄1˅ Ѣ 㺙ˈ Ѣ䜡㕂DŽ˄2˅⫼ ⱘ ⦃ DŽ 䗮⫼ⱘに ⬠䴶 ⏙ ⌕⬙ⱘ ḷDŽ˄3˅Є ⱘ䇗䆩 ӓⳳ DŽ˄4˅Є ⱘ㋏㒳 㛑DŽ ㋏㒳䇗⫼ 䞣ǃ䇗 ㄪ⬹ Ӭ 㑻 䕀䰆 ǃRMA ㄝDŽ˄5˅ ⱘ DŽ Ё ⬅Ѣ 㓬 ㋏ˈЏ㽕㽕∖䗮䖛㔥㒰ⱘ DŽ㛑㸵䞣 ԰㋏㒳ⱘ 㛑ⱘ ˈ Ё Џ㽕ⱘ ҹϟ Ͼ˖* ӏ 䯈ˈ ㋏㒳 ϸϾ⣀ゟⱘ Ѣ▔⌏ ⱘӏ П䯈 䳔ⱘ 䯈DŽ* Ё ㄝ 䯈ˈ ⧚ Ё 䇋∖ 㸠Ё ⿟ ⱘ㄀ϔ Ҹ 䳔 䯈DŽ* ⅏䫕㾷㜅 䯈DŽ㔥㒰 㛑ⱘ ԰㋏㒳 ϡ 㔥㒰 㛑DŽ✊㗠 Ҟ 㔥㒰ⱘϪ⬠ˈϔϾӬ⾔ⱘ ԰㋏㒳 乏 㔥㒰 㛑ˈ催 䴴 催 ⥛ ⦄TCP/IP NFSㄝ 䆂DŽ⿟䅵ㅫ 乚 Ϟ 䞡ˈ 㛑䙉 ⱘ Ё ⱘџ Ϟⱘ DŽⳂ ԰㋏㒳乚 ↨䕗 䅸ⱘ ҢUNIX㋏㒳 㗠 ⱘPOSIX API DŽPOSIX1003.1 Нњ㋏㒳䇗⫼ˈ㗠POSIX1003.1B Нњ ǃ ♃ǃ⍜ 䯳 ㄝDŽPOSIX Ѣ ԰㋏㒳 ✊ϡ ϔϾ 㕢ⱘ ˈϸ ⬅VITA⡉ ˈ ԰㋏㒳 Ϣ ゟϔϾ⿄ЎESSE˄E mbedded System Software Environment ˅ⱘ ˈESSE НϔϾ Ḍⱘ ⫼ ˄API˅ Ѣ 䚼῵ ՟ ӊ㋏㒳 䇗䆩 ⱘ DŽϔѯ䞡㽕ⱘ ԰㋏㒳 ҹ ⬉ 乚 ⱘ 䛑 ESSEˈԚ 㒜ESSEⱘ ԩˈ 㾖 DŽϔϾ Ёⱘ ㋏㒳ԧ㋏㒧 I2O˄Intelligent I/O˅ˈ ⹀ӊ㋏㒳㒧 ԰㋏㒳ϸϾ 䴶ˈ 䞛⫼ 㛑 ⱘ ⊩ 催I/O ㋏㒳ⱘ 㛑ˈ ⃵ Н ḌϢ䆒 偅 П䯈ⱘ DŽ䖭Ͼ г Џ⌕䅵ㅫ ㋏㒳 ⱘ DŽ%63ⱘЄ ⿟԰㋏㒳 ↣ϔ⾡ ⧚ կϔϾBSP˄Board Support Package˅䕃ӊ,ϔϾ⡍ ⱘ ⧚ њⳌ ⱘBSPˈ 㛑 䆹 ԰㋏㒳ϟ 䖤㸠DŽѢ ϡ CPU 㛑 ⱘӕϮ ˈ䗮 䞛⫼⦄ ⱘ ⧚ ゟ㞾 ⱘ ⫼㋏㒳DŽ⬅Ѣ䗮⫼ⱘ Ў⡍ 乚 䆒䅵ⱘ ⧚ 㒣 Є ˈ ⧚ 㛑 ⱘӕϮˈг 㛑 䞛⫼ ⧚ 㓽ⷁѻ ˈ䰡Ԣ DŽℸˈ ԰㋏㒳 ⧚ 㛑 կⱘBSPⱘ䍞Є ˈ ⫼ 㗙 䍞ФѢ䞛⫼DŽ ✊ˈ ԰㋏㒳䛑 կ㞾㸠 BSPⱘ ˈԚ 㞾㸠 BSP ⫼ ⱘ ѻ ⱘ 䯈DŽ1.2.7 ㋏㒳䕃ӊ㋏㒳 ⱘ䖛⿟ϔ㠀 1ˉ5 ⼎˖Ң Ё ⳟ ˈ ㋏㒳ⱘ 䰙Ϟ 䕃⹀ӊѸ 㸠䆒䅵ⱘ䖛⿟DŽԚ ϔ ㋏㒳ⱘԧ㋏㒧 䆒䅵 ˈ䕃⹀ӊ䆒䅵 ⣀ゟ 㸠 䖯㸠њDŽㄝ ϸ㗙ⱘ䆒䅵 ˈ 䲚 ϔԧ䖯㸠䲚 ⌟䆩DŽ䕃ӊ῵ ゟ ӏ Ⳍ Ѣϔ㠀䕃ӊ䆒䅵䖛⿟Ёⱘὖ㽕䆒䅵䰊↉DŽ῵ ゟ 㛑㒭㋏㒳 ゟϔϾ ῵ DŽӏ 䖭Ͼ ῵ ⸔Ϟˈ ✻ϔ ⱘӏ 䗴 ˈ ㋏㒳 㾷 㛑 ⧚ Ⳃ 䗖ⱘӏ 䲚 DŽӏ 䜡 ӏ ✻ϔѯ㾘 㑺 ˈ Ⳍ ⱘ䅵ㅫ ⧚ ЁDŽӏ ⱘ 㸠˗⬅ӏ 䇗 DŽ1-5 ㋏㒳ⱘҢ乊 ϟⱘ ⌕⿟䇁㿔 ⦄䰊↉ ⫼ ϔ䅵ㅫ 䇁㿔 ⦄ӏ 䰊↉ ⱘ↣Ͼ῵ DŽ ↣Ͼ䰊↉ⱘ㒧 㽕䖯㸠Ⳍ ⱘ 㛑 ˈг 䆘Ԅ↣Ͼ䰊↉ⱘ䆒䅵 ⒵䎇 㛑㽕∖ˈ䖒 ϔ ⱘ DŽ 䰊↉ ⱘ㚃 ˈ ϟϔ䰊↉ ҹ乎 䖯㸠ⱘ 䆕DŽϔ 䕃ӊⱘ Ͼ䚼 㒣 ⦄ˈ 䆹䖯 ⌟䆩䰊↉DŽ䕃ӊⱘ⌟䆩 Ў ⌟䆩 䲚 ⌟䆩ˈ 㗙 㓪ⷕ䰊↉䖯 㗙 ⌟䆩ⱘ䕃ӊ 㒘㺙 ϔϾ ⱘ㋏㒳䖯㸠⌟䆩DŽ䕃ӊ ῵ ˖⬅Ѣ ㋏㒳㞾䑿ⱘ⡍⅞ ˈ 䰤Ѣ ㋏㒳㞾䑿䌘⑤Ϣぎ䯈ⱘ䰤 ˈ 䕃ӊ ϔ㠀䞛⫼ Џ ʊʊⳂ Ѹ ῵ ˈ 1ˉ6 ⼎DŽ ⦃ 䖤㸠 Џ ϞDŽ Џ ҹ ԰キǃPc ㄝˈ䖤㸠ⱘ ԰㋏㒳 Ўunixǃmicrosoft windowsㄝ Є ⬠䴶 ⱘ㋏㒳 DŽⳂ Ӏ㽕 ⱘ ⹀ӊ DŽЏ Ⳃ 䗮䖛І㸠 ǃҹ 㔥ǃӓⳳ Ҫ䗮 ↉Ⳍ㘨㋏DŽ⫼ ⱘ ԰ Џ ⦃ ϟ ˈ 㓪ⷕǃ㓪䆥ǃ㘨 ǃϟ䕑 䇗䆩ㄝ ԰DŽ⫳ Ⳃ ⷕ⬅І㸠 ҹ 㔥 Ҫ䗮 䗨 ϟ䕑 Ⳃ ˈ ⫼⿟ Ⳃ Ϟ 㸠ˈ⫼ ҹՓ⫼ ѢЏ ⱘ ⦃ կⱘ䇗䆩 䇗䆩䖤㸠 Ⳃ Ϟⱘ ⫼⿟ DŽ䖭⾡ ⦃ 䰸㛑 ⧚ ⱘ 䚼 㛑ҹ ˈ䖬 ⫼ ⱘDŽ1-6Ѹ ⦃2 ⧚ MPC860MPC860 ↨䕗⌕㸠ǃ 㛑Ⳍ Ӭ䍞ⱘ ⠛䲚 ⧚ DŽ 䚼䲚 њ ⧚ ϔѯ 乚 ⱘ ⫼ 㒘ӊˈ⡍ 䗖 Ѧ㘨㔥㒰 䗮 DŽMPC860䗮 ⧚ ḍ ⫼ ϡ ⱘ㽕∖ կ2̚4ϾІ㸠䗮 ǃϡ 㾘Ḑⱘ Ҹ cacheˈ ⾡㑻 ⱘ㔥㒰 䆂 DŽ䆹ѻ ϧЎ 䆒 䏃⬅ ǃ 䲚㒓 ǃLAN/WANѸ ǃPBX㋏㒳 STM㔥 ㄝ䆒䅵DŽMotorola860 ⫼䗨 ⠛䲚 䗮 ⧚ ˈ ⴔ㡃 ⱘ 㛑 ˈ ⫼ ⾡ ˈ⡍ ⫼ 䗮 䴶DŽ2.1 MPC860ⱘ ḚMPC860 ϝϾ 㛑῵ 㒘 ˖ PowerPc Ḍǃ㋏㒳 ҹ 䗮 ⧚῵ DŽ 㛑Ḛ 2-1 ϟ ⼎DŽ2-1 PowerPc860 㛑Ḛz ⱘPOWER PC Ḍ˄Embedded PowerPC core˅— Power PC⫼ Ҹ㑻ⱘ32ԡ ⱘPower PC Ḍˈ 㕂32Ͼ32ԡⱘ DŽ— ҹ䖯㸠 Ҹ ⱘ乘⌟ ӊ ˈԚϡ㛑 ӊ 㸠DŽ— CPU 䚼ˈ䲚 2Kⱘ cache˄D-Cache˅ 1Kⱘ Ҹ˄I-cache˅ˈ䖭ѯcache ǃ⠽⧚Ϟ ⱘˈ䞠䴶 ⱘ DŽ— ㅵ⧚ ˄MMU Memory Management Unit˅ 4K,16K,256K,512K,8M Bytes ⱘ ⾡义䴶῵ DŽz 䖯ⱘ 㒓ӓⳳ䇗䆩 DŽz 㒓⬅26 䚼 㒓 ˈ32 㒓 8ԡǃ16ԡǃ32ԡⱘ 㒓ˈ 催ԡ ⱘ῵ Ԣԡ ⱘ῵ DŽz㋏㒳 ˄SIU System interface Unit˅—⹀ӊ 㒓ⲥ㾚—ӾЁ ⲥ㾚—䕃ӊⳟ䮼⢫˄Watchdog˅— Ё— 䩳— 䩳 Power PCⱘ—䞡—IEEE 1149.1 JTAG⌟䆩 ッz ˄Memory Controller˅˄8Ͼ㒘˅— DRAMǃSDRAMǃSRAMǃEPROMǃEEPROMǃFLASHㄝ ⾡— 㓪⿟ⱘ 䞣 䗳 ⱘ— 㢃⠛ 䗝8ԡǃ16ԡǃ32ԡ— ⾡ ⱘ ˄Block˅ˈҢ32KByte 256Mbyte— さ ῵z䗮⫼ ˄General-purpose timers˅—4Ͼ16ԡ 㗙2Ͼ32ԡ—䮼⽕ℶǃՓ㛑῵ 䅵zЁ ˄Interrupts˅—8 䚼Ё 䇋∖˄IRQ˅㒓—12Ͼ Ё 㛑 ⱘㅵ㛮—15Ͼ 䚼Ё ⑤—SCC USBП䯈ⱘ 㓪⿟Ӭ— 㓪⿟ 催Ӭ 䇋∖z䗮 ⧚῵ ˄CPM: Communication Processor Module˅—32ԡⱘRISC䗮 ⧚—䆌 ϧЎ 䆂 Нⱘ Ҹ䲚— І㸠䗮䘧Ϟ䖲㓁 䗕 ῵—催䖒8Kbytesⱘ RAM—14ϾІ㸠DMA(SDMA)䗮䘧—3Ͼ 䞞 㛑 ⱘ 㸠I/Oz4Ͼ⣀ゟ⊶⡍⥛ ⫳ ˄BRG: Baud-rate Generators˅— ҹ㹿䖲 ӏ ⱘSCCǃSMCǃUSB— ԰Ё 䆌㹿—㞾 ⊶⡍⥛z4ϾІ㸠䗮 ˄SCC: Serial Communications Controller˅— IEEE 802.3/Ethernet( ⱘ10Mbits/s)—HDLC/SDLC( ⱘ䗮䘧 2Mbit/s)—HDLC 㒓˄ ѢHDLCⱘ 㔥LAN˅— ℹHDLCҹ PPP˄Point-to-Point Protocol˅—AppleTalk— UART(Universal asynchronous receiver transmitter) ℹUART— ⱘ䗣 ˄ Ѣ↨⡍⌕˅z2ϾІ㸠ㅵ⧚ ˄SMC: Serial Managemennt Controllers˅— UART—䗣—䗮⫼⬉䏃 ˄GCI:General Circuit Interface˅— 䖲 䏃 ⫼(TDM)䗮䘧z1ϾSPI˄Serial Peripheral Interface˅ 1ϾCI22.1.1 Power PCԧ㋏ὖ䗄Power PC䞛⫼њ ⧚ 䆒䅵ˈ կњϔϾ⫼԰ ⫼ⱘ催 㛑 Power PCḌ ϔϾ њϧ⫼ⱘ32ԡ䗮 ⧚ ⱘ䗮 ⧚ ῵ DŽŁ Power PC ⧚ ῵Power PC Ḍ 㸠 ⱘ ԰ˈҪϢ 䚼 㒓 䚼 㒓ⱘ 䛑 32ԡˈ Փ⫼ˎϾ Ҹ 䯳 ǃːϾ 䯳 ǃ˒Ͼ Ҹ 㓧 Ϣ 䆒 Ѹ䘧DŽPower PC 䚼䲚 њ32Ͼ32ԡⱘ䗮⫼ ˈ䖭ѯ 㹿⫼ Ҹ 㸠 䳔ⱘ⑤ ԰ Ⳃⱘ ԰ ㄝ DŽPower PC ⧚ г䲚 њMMUǃˎK ҸCache ˍK CacheDŽł SIU 䞡MPC860ⱘ䜡㕂 䗮䖛SIU ⱘˈSIU ㋏㒳 ǃ ǃ Ҹ ԰ 䚼ⱘ㋏㒳 㒓DŽ㋏㒳䜡㕂 㛑 ⴔ Ͼ㋏㒳ˈ կњ 㒓ⲥ㾚 ǃ䕃ӊⳟ䮼⢫ǃ Ё ǃ ㄝ ⾡ 㛑DŽ 䩳 ℹ⬉䏃㛑ѻ⫳ϢSIU ⱘ 䆒 䳔 䩳 ˈЏ㽕ⱘ㋏㒳 䩳 ҹ ˈԚ⊶⡍⥛ѻ⫳ І Փ⫼ ⱘ 䩳DŽㅵPower PC Ḍ 32ԡⱘˈԚ 䚼 㒓г ҹ⫼ ˔ԡ 16ԡˈ 䆎㋏㒳 䆒 ⱘ㋏㒳 㒓 ԡˈ䛑 ҹ ˄г 䇈˔ԡǃ16ԡǃ32ԡⱘ 䆒 ҹ ㋏㒳 㒓Ϟ ˅DŽ 䖒˔Ͼ 㒘ˈ DRAMǃSRAMǃEPROMǃFLASHǃSDRAMǃEDOㄝ ˈг Ң32Kbytes 256Mbytesⱘ义䴶 DŽ ↣ϔϾ 㒘䛑 կˌˉˍˑϾㄝ ˈг կњːϾ 㡖Փ㛑 ˄AT[0-3]˅ǃˍϾ䕧 Փ㛑 ˄OE˅ǃˍϾ ⱘ⠛䗝 ˄BOOT-CS˅DŽMPC860 ϔϾ䞡 ˈҹϟⱘ 䛑 㛑䗴 860䞡 ˖Ϟ⬉ǃ 䚼⹀ ԡǃ 䚼⹀ ԡ˄ 䫕ǃ䕃ӊⳟ䮼⢫䞡 ǃ䇗䆩 ⹀ ˅ǃJTAG䞡 ǃ 䚼䕃 ǃ 䚼䕃 DŽ2.1.2 MPC860ⱘ⹀ӊMPC860ⱘ 㒓z26ԡⱘ 㒓ǃ32ԡⱘ 㒓z TTLⱘz䗮䖛 ˈ ҹ ⱘ䜡㕂 㒓 Ў˔ԡǃ16ԡǃ32ԡz ⱘ 㒓 䩳ⱘϞ ⊓Ł Clock ⥛MPC860ⱘClock ㋏㒳 䫕Ⳍ⦃䏃 ҹ կMPC860⠛ 䚼䆒 䳔ⱘ ⾡ 䩳 ˈ䫕Ⳍ⦃ 乥⬉䏃 ҹ 䚼ⱘԢ乥 䩳⑤ ⠛ ⱘ催乥 䩳⑤ˈ г ⫼ 乥⬉䏃 催乥 䩳 Ԣ乥 䩳ҹ䗖 ⥛ⱘ㽕∖DŽł㛑 ˔Ͼ 䌂 㒘ˈ䖭ѯ 㒘г ḋ GPCM ˄General-Purpose Chip-select Machine˅ UPMs˄User-Programmable Machines˅ⱘ DŽGPCM⬅Ѣϡ さ ˈ ҹ 㛑䕗ԢˈҪ կⱘ կㅔ ǃԢ 㛑ⱘ ҹ Ў ⱘ䆒 Փ⫼ˈЏ㽕⫼ 䕑 䆒 䴲さ ҹ Ў ⱘ䆒 DŽUPM 䚼 㒓Ϟⱘ ⫼ˈѻ⫳ 㓪⿟ⱘ㸠 DRAMˈ㗠⫼ ѻ⫳DRAM 乏ⱘ DŽ2.1.3䗮 ⧚ ῵ ˄CPM˅Ўњ 催䗳 㗫ˈCPM䞛⫼њ㞾䑿⣀ゟⱘRISC䗮 ⧚ ˈҪ ♉⌏ⱘ 㓪⿟ ӊ ⾡䗮 䆂ˈ Ͼ䲚 ⱘ䗮 䗮䘧ˈ 㸠Ԣ㑻ⱘ 䆂 ⧚ DMADŽCPM⫼ҹϟ Ͼ ⊩ Power PC ḌҢ㐕䞡ⱘ䗮 ⧚ӏ Ё㾷 ˖z Ё ⱘ䗳 ˈ Ḍҙ ǃ 䗕 Ё ˈ㗠ϡ ↣ϔϾBit.z Bufferⱘ 㒧 ҹ Ѣ䕃ӊ㓪⿟CPMs ϢMC68360Ⳍ䖥Ԑˈ ҹϟ⡍ ˖z䗮 ⧚ (CP: Communication Processor)— ッ RAM— 䚼ROM—2Ͼ⠽⧚ⱘІ㸠DMA(SDMA) ⦄14ϾSDMA䗮䘧ˈ↣ϾSCCǃSMCǃUSBǃSPIǃCI2 2Ͼ䗮䘧—2Ͼ⣀ゟⱘDMA(IDMA)⫼Ѣ П䯈ⱘ Ӵ䕧z4Ͼ ⱘІ㸠䗮 ˄SCC1ǃSCC2ǃSCC3 SCC4˅ ҹϟ 䆂—UART 䆂—HDLC 䆂—APPLETALK 䆂— ℹHDLC 䆂—BISYNC 䆂—IrDA—IEEE802.3/Ethernet 䆂z2Ͼ ⱘSMC UART GCI 䆂z USB 4ϾҢ῵ USB㒜ッˈ 䗳⥛Ў12Mbpsz CI2 (Inter-intergrated Circuit) 㒓z CPMЁz䗮⫼I/O2.2 MPC860ⱘ ㅵ㛮 㛑MPC860ⱘㅵ㛮 㛑 ϟ 2-2 ⼎2-2 PowerPc860ㅵ㛮 2.2.1 CPMŁ USBㅵ㛮USBRXD:䕧 ˈҢ 䕧 㒓Ϟ ⱘUSBOE:䕧 ˈ 㒓Ϟ䕧 Փ㛑USBTXN,USBTXP:䕧 ˈ 䕧 01 䘏䕥“0”˗10 䘏䕥“1”˗00 ℶUSBRXP,USBRXN:䕧 ˈD+ D-ⱘ䮼 ˈҹ 䗳 DŽ00 ℶ˗01 䗳˗10Ԣ䗳ł SMC1/2SMRXD1/2:䕧 ˈSMCⱘІ㸠 䕧SMTXD1/2:䕧 ˈSMCⱘІ㸠 䕧SMSYN1/2:䕧 ˈSMC ℹŃ SCC2/3RXD2/3:䕧 ˈІ㸠 䕧 SCCⱘTXD2/3:䕧 ˈІ㸠 䗕ҢSCC䕧 ⱘRTS2/3:䕧 ˈ䇋∖ 䗕ˈҹ㸼 SCC 䗕ACTS2/3:䕧 ˈ⏙䰸 䗕ˈ SCC㸼 䗕 ҹ ⱘ䕧CD2/3:䕧 ˈ䕑ԧẔ⌟ˈ㸼 SCC㽕ń IDMDREQ[1-2]:䕧 ˈ ϔϾIDMA䗮䘧 䗕ⱘ䇋∖ˈ IDMAӴ䕧SDACK[1-2]:䕧 ˈCPM Ӵ䕧 ˈ SDACK 㒓㕂ԡŅ Serial InterfaceL1TXDA:䕧 ˈ 䏃 ⫼(TDM)䗮䘧AІ㸠䕧L1TCLKA:䕧 ˈTDM䗮䘧Aⱘ 䗕 䩳L1TSYNCA:䕧 ˈTDM䗮䘧Aⱘ 䗕 ℹ䕧L1RXDA:䕧 ˈ 䏃 ⫼(TDM)䗮䘧AІ㸠䕧L1RCLKA:䕧 ˈTDM䗮䘧Aⱘ 䗕 䩳䕧L1RSYNCA:䕧 ˈTDM䗮䘧Aⱘ 䗕 ℹ䕧L1ST[1-8]:䕧 ˈІ㸠䆒 䗝䗮䕧 ˈ ⫼Ѣ 䩳䗕 ϡ 䚼 䱭 䜡 (TSA)ⱘ 䆒ˈL1ST[1-4]⫼ѢRXRAM,L1ST[5-8]⫼ѢTXRAML1RQA: ˈ 䗕IDL 䇋∖ˈņ SPISPIMISO: ˈSPIЏ䆒 ⱘІ㸠 䕧 ˈSPIҢ䆒 ⱘІ㸠 䕧 SPIMOSI: ˈSPIЏ䆒 ⱘІ㸠 䕧 ˈSPIҢ䆒 ⱘІ㸠 䕧 SPISEL˖䕧 ˈSPIҢ䆒 ⱘ䗝䗮䕧SPICLK˖ ˈSPIЏ䆒 ⱘ 䩳䕧 ˈSPIҢ䆒 ⱘ 䩳䕧ŇCI2I2ⱘCI2SDA: ˈCC I 2SCL: ˈC I 2ⱘ 䩳2.2.2 䚼 㒓Ł 㒓ӆ㺕BR:䕧 ˈ㸼 ϔϾ 䆒㽕∖ 㒓ӆ㺕BG:䕧 ˈ㸼 㒓 㒧 ˈMPC860䅽 㒓BB:䕧 ˈ⬅ 䆒 ˈ㸼 Ⳃ 㒓ℷ TS:䕧 ˈ⬅ 䆒 ˈ㸼 Ӵ䕧 ł 㒓A[6-31]:26ԡ 㒓ŃӴ䕧ⱘTSIZ[0-1]:㸼 ԭⱘ Ӵ䕧ⱘ 㡖 BURST:㸼 Ⳃ Ӵ䕧ⱘ さ BDIP : 㸼 さ Ⳃ ℷ Ӵ䕧ЁBI: 㸼 㒓ϞⱘҢ䆒 ϡ さ ń Ӵ䕧D[0-31]: 㒓DP[0-3]: 㒓Ϟⱘ 偠ˈ↣ ԡϔϾ 偠ԡRD/WR ˖䇏 㒓CS[0-7]: 8Ͼ⠛䗝㒓ˈԢWE[0-3]: ˈ 㒓Ϟⱘ4Ͼ ԡ OE:䕧 Փ㛑Ņ䗮⫼I/O Ё P A [4-15]: A PB[16-19,22-31]:B PC[4-15]: C PD[3-15]: DIRQ[0-7]: 8ϾЁ 㒓ˈԢ2.3 MPC860ⱘ 䖛⿟2.3.1 MPC860 ⱘ䜡㕂MPC860 ḍ ___RSTCONF ㅵ㛮Ϟⱘ⬉ ⹂ ҹҢD[0..31]Ϟ䞛ḋⱘ 䜡㕂MPC860 ⱘ DŽ Ӏⱘ 㗗䆒䅵Ёˈ___RSTCONF ㅵ㛮Ϟ Ԣ⬉ ˈMPC860 ҢD[0..31]Ϟ䞛ḋˈ⫼䞛 ⱘ ԰Ў“ 䜡㕂 ”˄32ԡ˅ˈ䆹“ 䜡㕂 ”ϢMPC860 ⱘ ԧDŽԧ ↉䜡㕂Ϣ⹀ӊ䆒䅵 ⱘ ISB ↉˄7-8ԡ˅ BPS˄4-5ԡ˅ ↉DŽISB ↉˄Initial internal space base select˅ ⫼ Н ˈMPC860 䚼 㒓䇏 䳔㽕ⱘ ⱘ ˄䆹 ↉ 00ˈг 䇈 MPC860ⱘIMMR ⱘBIT[0..15] 0X00000000, Нњ 䚼 ⱘ ˗䆹 ↉ 01ˈ ⱘ 0x00F00000˗䆹 ↉ 10ˈ ⱘ 0xFF000000˗䆹 ↉ 11ˈ ⱘ 0xFFF00000˗˅DŽBPS ↉˄Boot port size˅ ⫼ Н 䆒 ˄ EPROM FLASH˅ ⱘ ˈ 䆹 ↉ 00 ˈ 32Bit˗ 䆹 ↉ 01 ˈ 8Bit˗ 䆹 ↉ 10 ˈ 16Bit˗ 䆹 ↉ 00 ˈ НDŽMPC860 Ң 䚼 Ё䇏 Ҹˈ㗠䆹 ⱘ +0x100ˈ ⬅ 䗄ⱘ ↉ НⱘDŽ2.3.2 MPC860Ϣ 䚼 ⱘ⠛䗝䖲䚼 ⱘ⠛䗝 ⠛ ⱘ䆒䅵Ё Ⳉ ⱘ催ԡ 㒓Ϟˈ Ͼ催ԡ 䗮䖛 䆥ⷕ 䚼 ⱘ⠛䗝Ϟˈ 㒓ⱘԢԡϢ ⱘ 㒓Ⳍ䖲DŽ䖭ḋ 䗮䖛 㒓ⱘ催ԡ䆥ⷕ ϔⱘ 䚼 ˈ ҢЁ䇏 DŽ㒓2-3 PowerPcϢ ⱘ㗠MPC860 䑿 կњCS[0-7]ϔ 8Ͼ⠛䗝 ˈ䖭8Ͼ⠛䗝 ҹ 8Ͼ ҹ Ў ⸔ⱘ 䆒 ˈ ⱘ⠛䗝 ⬅MPC860ⱘ1Ͼ Ёⱘ3ԡ ⱘDŽ 䆹 䖯㸠 ԰ Ӯ MPC860ⱘCS[0-7]ЁⱘϔϾ⠛䗝 Ԣ⬉ ˈ䗝䗮 䚼ⱘ DŽ 䚼 㒓Ϟⱘ ⠛䗝ϔ䍋 ϔ䗝 њϔϾ ˈ ϞW/E ˈ ҹ 䚼 䖯㸠䇏 ԰DŽ3 ԰VxWorks 䲚 ⦃ Tornado3.1 ԰㋏㒳VxWorks3.1.1 ⫼㚠㋏㒳 ⫼Ёˈ⬅ѢՓ⫼16ԡҹϟⱘCPUⱘ䌘⑤䞣䕗 ˈӏ ↨䕗ㅔ ˈ⿟ ҹ ⫼⿟ Ё㞾 ㅵ⧚CPU䌘⑤ˈϡϔ 䳔㽕ϔϾϧ⫼ⱘ㋏㒳䕃ӊˈㅵ⧚CPUDŽ ㋏㒳↨䕗 㗠䞛⫼32ԡCPU ϡ њˈ32ԡCPUⱘ䌘⑤䞣䴲 ˈ ҹ䖒 4GBぎ䯈ˈ ⧚㛑 г䴲 ˈ ҹ ⦄ ӏ ⧚ˈ ℸ ҡ✊⊓⫼ 㓪 CPUㅵ⧚⿟ ˈ䴶 ⱘ ⫼ˈ 䲒 32ԡCPUⱘ ⧚㛑 ˈ 催 䴴ⱘ ⫼㋏㒳DŽㅵ⧚CPUⱘ㋏㒳䕃ӊ ↣ϔϾ㋏㒳 䳔ⱘˈϡ ⱘCPU ˈ DŽ 䛑㽕 ⫼㋏㒳ⱘ 㗙㞾 ˈ䙷М↣⃵䛑㽕䞡 ˈ䗴 ϡ 㽕ⱘ䌘⑤⌾䌍ˈ 䭓њ ˈ њ DŽ㗠ϨCPUㅵ⧚ Ͼ㋏㒳ⱘ ⸔ˈӏԩ㔎䱋䛑 㛑 䍋Ϲ䞡ⱘ䯂乬ˈ䖭ḋˈ Փ 㗙㗫䌍 䞣ⱘ㊒ Ϣ ⫼ ⱘ㋏㒳ㅵ⧚ϞDŽӀⶹ䘧ˈ⫼ Ⲟ ⱘ32ԡ ⧚ ⱘѻ ˈ䳔㽕ϔϾ⫼ 䖲 ѻ ⫼⿟ ⹀ӊⱘ ԰㋏㒳DŽ⫼ ∖ⱘ ԰㋏㒳 䆹 ⱘ 䞡㽕ⱘ⡍⚍ ˖z 䴴 催ⱘ 㛑z ϟ䕑 㒜ѻ ⱘ Ϟ ⱘЄ ♉⌏ⱘ 㛑῵ 䲚Ϣ㓐 䴶ⱘЏ ⦃ ⱘ ԰DŽ3.1.2 VxWorks ㅔҟVxWorks 㕢 Wind River System ˄ҹϟㅔ⿄亢⊇ ˈ WRS ˅ ⱘϔϾ ԰㋏㒳DŽWRS 㒘 Ѣ1981 ˈ ϔϾϧ䮼Ңџ ԰㋏㒳 Ϣ⫳ѻⱘ䕃ӊ ˈ䆹 ԰㋏㒳乚 㹿Ϫ⬠ 䅸Ў 乚 ԰⫼ⱘ DŽVxWorks ԰㋏㒳 㕢 WindRiver Ѣ1983 䆒䅵 ⱘϔ⾡ ԰㋏㒳˄RTOS˅ˈ TornadoII ⦃ ⱘ 䬂㒘 䚼 DŽ㡃 ⱘ 㓁 㛑 ǃ催 㛑ⱘ Ḍҹ ⱘ⫼ ⦃ ˈ ԰㋏㒳乚 䗤⏤ ϔ П DŽ佪 ˈ ♉⌏ˈ 䖒1800Ͼ 㛑 ⱘ ⫼⿟ ˄API˅˗ ⃵ˈ 䗖⫼ 䴶 ˈ ҹ䗖⫼ѢҢ ㅔ ⱘѻ 䆒䅵˗ ⃵ˈ 䴴 催ˈ ҹ⫼ѢҢ䰆 ⅏ 䔺㋏㒳 䰙 ㋶ⱘ 䬂ӏ ˗ ˈ䗖⫼ ˈ ҹ⫼Ѣ ⱘ⌕㸠ⱘCPU VxWorks ϧ䮼Ў ㋏㒳䆒䅵 ⱘ ԰㋏㒳 ḌˈЎ⿟ կњ催 ⱘ ӏ 䇗 ǃЁ ㅵ⧚ˈ ⱘ㋏㒳䌘⑤ҹ ⱘӏ 䯈䗮 DŽ ⾡CPU Ϟ կњ㒳ϔⱘ㓪⿟ ϔ㟈ⱘ䖤㸠⡍ ˈ 㛑ⱘ 㬑њϡ CPUП䯈ⱘ DŽ ⫼⿟ ҹ 㛑 ⱘ㊒ ⫼⿟ 䑿ˈ㗠ϡ ㋏㒳䌘⑤ⱘㅵ⧚DŽ ѢVxWorks ԰㋏㒳ⱘ ⫼⿟ ҹ ϡ CPU Ϟ䕏 ⿏ỡDŽVxWorks ϔϾ䖤㸠 Ⳃ Ϟⱘ催 㛑ǃ 㺕 ⱘ ԰㋏㒳DŽ ҹ 㡃 ⱘ 䴴 䍞ⱘ 㹿 ⊯ ⫼ 䗮 ǃ џǃ㟾ぎǃ㟾 ㄝ催㊒ 㽕∖ 催ⱘ乚 Ёˈ 䗮䆃ǃ џⓨдǃ 䘧 ǃ亲 㟾ㄝDŽ 㕢 ⱘ F-16ǃFA-18 ǃB-2䱤 䕄⚌ ⠅ 㗙 Ϟˈ1997 4 ☿ 㸼䴶ⱏ䰚ⱘ☿ 䏃㗙ϞгՓ⫼њVxWorksDŽVxWorks ϔ⾡ 㛑 㗠Ϩ↨䕗 ⱘ ԰㋏㒳ˈ њ䖯⿟ㅵ⧚ǃ ㅵ⧚ǃ䆒 ㅵ⧚ǃ ӊ㋏㒳ㅵ⧚ǃ㔥㒰 䆂 ㋏㒳 ⫼ㄝ Ͼ䚼 DŽVxWorks ⫼њ ⱘ ぎ䯈ˈ 催 㺕 ˈ 䆕њ㋏㒳㛑ҹ䕗催ⱘ ⥛䖤㸠DŽ ҹˈҙҙձ䴴Ҏ 㓪⿟䇗䆩ˈ 䲒 ⱘ 㛑 䆒䅵 䴴ǃ催 ⱘ ㋏㒳ˈ 乏㽕 ϢПⳌ䗖 ⱘ DŽTornadoII Ў VxWorks ⫼㋏㒳 կⱘ䲚 ⦃ ˈTornadoIIЁ ⱘ ⿟ㅵ⧚䕃ӊˈ ҹ ⫼ 㞾 ⱘҷⷕϢVxWorksⱘḌ ⱘ㒘 䍋 ˈ ҹ ⫼ ⱘ䳔㽕㺕 䜡㕂VxWorks Ḍ˗vxSim ӓⳳ ҹ䅽⿟ ϡ⫼Ⳃ ⱘ ϟˈⳈ ㋏㒳 ˈ԰ ㋏㒳䆘Ԅ˗ 㛑 ⱘCrossWind䇗䆩 ҹ կӏ 㑻 ㋏㒳㑻ⱘ䇗䆩῵ ˈ ҹ䖯㸠 Ⳃ ⱘ㘨䇗˗Ӭ ҹ ⿟ Ң ⾡ ⳳℷ 㾖 ǃ䎳䏾㋏㒳ⱘ䖤㸠ˈ 䰸䫭䇃ˈӬ 㛑DŽ3.1.3 VxWorksЏ㽕ⱘ ⫼乚VxWorks ⊯ ⫼ ҹϟ ϾЏ㽕 䴶˖⍜䌍⬉z Ϟ⬉㛥z 乊Ⲧz 㾚⬉䆱z≑䔺 㟾㋏㒳㟾ぎ㟾z亲㸠῵z㟾⧁ㅵ⧚㋏㒳z 䎳䏾㋏㒳z㟾ぎ⬉ 䆒 䈵䆒z ǃӴⳳzz Ⳍ䗮䆃㔥㒰zѸz䏃⬅z䖰⿟䆓䯂z ATM Ё㒻Ѹ3.1.4 TornadoII ⱘЏz Sun-4: Sun OS 4.1.x; Solaris 2.4/2.5; Solaris 2.5.1/2.6; Solaris 2.7;zHP 9000/700: HP-UX 9.0.7; HP-UX 10.10; HP-X 10.20;zPC: Win95; Win98; WinNT;Win20003.1.5 VxWorks ⱘⳂ CPUz Motorola 68k:68000; 68010; 68020; 68030; 68040; 68060; CPU32; zMotorola ColdFire: MCF51xx ;MCF52xx ;MF53xx Motorola/IBM Power PC:PPC4xx ;PPC6xx ;PPC7xx ;MPC5xx ;MPC8xx ;MPC82x ;z Motorola M-COREz Intel:i386;i486;Pentium ;Pentium -Pro ;z Intel Strong ARM: SA-110; SA-1100; SA-1110; z ARM:ARM7; ARM7T; ARM8ˈARM9;z i960:KA/KB/CA/JX/RP; RP/RD; z NEC:V85x; V83x; z NEC/LSI MIPS:R3K; R4K; Vr41xx; R4700; CW400x; CW4011; R5K;z HITACHI SH: SH-1; SH-2; SH-3; SH-4; SH-DSP; SH3-DSP; zSUN SPARC: UltraSPARC; SPARC3.1.6 VxWorks ԰㋏㒳ⱘ㒧VxWorks ԰㋏㒳 Ḍwind ǃ催㑻ⱘ㔥㒰 ǃ ⱘ ӊ㋏㒳 I/O ㅵ⧚ǃC++ Ҫ ㄝḌ 㛑DŽ䖭ѯḌ 㛑䖬 ҹϢWindRiver ⱘ Ҫѻ ҹ 320ϾWindRiver ⱘ ԰ӭԈⱘѻ 㘨 Փ⫼DŽVxWorks ԰㋏㒳 њ 㑻 BSP (Board Support Package)ǃ䖯⿟ㅵ⧚ǃ ㅵ⧚ǃ䆒 ㅵ⧚ǃ ӊ㋏㒳ㅵ⧚ǃ㔥㒰 䆂 ㋏㒳 ⫼ㄝ Ͼ䚼 DŽϮ z Ҏz ⌟䆩Ϣ⌟䞣䆒z䖛⿟ ㋏㒳䅵ㅫ 䆒z 㔥㒰䅵ㅫ zX 㒜ッz RAID ㋏㒳zI/O 䆒Ѹ䗮䖤䕧z ≑䔺z Ѹ䗮 z催䗳 䔺⬉ 䆒zPBXs ˈACDs z CD Ѹ ㋏㒳z ⿏ 䗮䆃 キz 㳖ぱ ⬉䆱zCable ModemVxWorks ⫼њ ⱘ ぎ䯈ˈ 催 㺕 ˈ 䆕њ㋏㒳㛑ҹ䕗催ⱘ ⥛䖤㸠DŽVxWorks ԰㋏㒳ⱘ 㒧VxWorks ԰㋏㒳ⱘ 䚼ӊЏ㽕 ҹϟѨϾ䚼 ˖z 㑻 BSP(Board Support Package)z Ḍwindz㔥㒰㋏㒳z ӊ㋏㒳z I/O㋏㒳3-1 VxWorksⱘ㋏㒳㒧1ǃ催 㛑ⱘ ḌWind䆒䅵ѢVxWorks ԰㋏㒳Ḍ ⱘ 催 㛑ⱘ ḌwindDŽ䖭Ͼ Ḍ ⱘ ⡍ ˖ 䗳ӏ ǃЁ ǃ 䯈⠛䕂䕀䇗 ㄝDŽ Ḍ䆒䅵 њ㋏㒳 䫔ˈҢ㗠 䆕њ 䚼џӊⱘ 䗳ǃ⹂ ⱘ DŽ䖤㸠⦃ г կњ ⱘӏ 䯈䗮 ˈ 䆌⣀ゟⱘӏ ㋏㒳ЁϢ 㸠 Ⳍ 䇗DŽ 㗙 ⫼⿟ ҹՓ⫼ ⾡ ⊩˖⫼Ѣㅔ ѿⱘ ѿ ǃ⫼Ѣ CPUⱘ ӏ 䯈 Ѹ ⱘ⍜ 䯳 ㅵ䘧ǃ ǃ⫼Ѣ㔥㒰䗮 ⱘ䖰⿟䖛⿟䇗⫼ǃ⫼Ѣ ⧚ џӊⱘ ㄝDŽЎњ 䬂ⱘ㋏㒳䌘⑤ˈ կњϝ⾡ ♃˖Ѡ䖯 ǃ䅵 ǃ Ӭ 㑻㒻 ⡍ ⱘѦ ♃DŽVxWorks ⱘḌ ˈ㹿⿄԰ windˈ ӏ 䇗 ˄䞛⫼Ӭ 㑻 ˅ˈӏ 䯈ⱘ ℹ 䖯⿟䯈䗮 ҹ Ё ⧚ˈⳟ䮼⢫ ㅵ⧚ DŽϔϾ ӏ ⦃ 䆌 ⫼⿟ ҹϔ ⣀ゟӏ ⱘ ㄥˈ↣Ͼӏ ⣀ゟⱘ 㸠㒓⿟ 㞾 ⱘϔ ㋏㒳䌘⑤DŽ䖯⿟䯈䗮 Փ 䖭ѯӏ ⱘ㸠Ў ℹǃ 䇗DŽwindՓ⫼Ё 偅 Ӭ 㑻ⱘ DŽ 㓽ⷁњϞϟ 䕀 ⱘ 䯈 䫔 Ё ⱘ DŽ VxWorks Ёˈӏԩ՟⿟䛑 ҹ㹿 ЎϔϾ ⣀ⱘӏ ˈ 㞾 ⱘϞϟ DŽ䖬 ϔѯ ⱘӏ ҹՓӏ 䍋ǃ㒻㓁ǃ 䰸ǃ Ӭ 㑻DŽwindḌ կ 䞣԰Ўӏ 䯈 ℹ Ѧ ⱘ DŽ wind ḌЁ ⾡㉏ ⱘ 䞣ˈ Ӏ 䩜 ϡ ⱘ ⫼䳔∖˖Ѡ䖯 䞣ǃ䅵 䞣ǃѦ 䞣 POSIX 䞣DŽ ⱘ䖭ѯ 䞣 䗳 催 ⱘˈ Ӏ䰸њ㹿 ⫼ 䆒䅵䖛⿟Ё ˈ䖬㹿 ⊯ ⫼ VxWorks 催 ⫼㋏㒳ЁDŽ Ѣ䖯⿟䯈䗮 ˈwindḌг կњ䇌 ⍜ 䯳 ǃㅵ䘧ǃ ㄝ DŽ2ǃ 㑻 BSP˄Board Support Package˗Hardware Layer Abstract˅ 㑻 ⾡ ⱘ⹀ӊ 㛑 կњ㒳ϔⱘ䕃ӊ ˈ ⹀ӊ ǃЁ ⱘѻ⫳ ⧚ǃ⹀ӊ 䩳 䅵 ㅵ⧚ǃ 㒓 ǃ 䜡ㄝㄝDŽ↣Ͼ 㑻 ϔϾ ROM ˄Boot ROM˅ DŽ3ǃ㓐 ⱘ㔥㒰VxWorks ㄀ϔϾ Ϯ TCP/IPⱘ ԰㋏㒳DŽ ⱘӴ㒳Ԉ䱣ⴔVxWorks TCP/IP 䆂 ˈ ⱘBerkeley㔥㒰⡍ ˈ ˖z IP, IGMP, CIDR, TCP, UDP, ARPz RIP v.1/v.2z Standard Berkeley sockets and zbufsz NFS client and server, ONC, RPCz Point-to-Point Protocolz BOOTP, DNS, DHCP, TFTPz FTP, rlogin, telnet, rsh3-2 VxWorksⱘTCP/IP 䆂WindRiverг 䗝ⱘWindNetѻ ˖SNMP v.1/v.2c, OSPF v.2, STREAMSDŽWindRiver䖬䗮䖛 կ Ϯ㑻 ⊯ⱘ㔥㒰 ⦃ 䖭ѯḌ ˈ䖭Џ㽕 䗮䖛WindLink for TornadoIIӭԈ䅵 ⦄ⱘDŽ催㑻ⱘ㔥㒰㾷 Ḝ䖬 ˖z ATM, SMDS, frame relay, ISDN, SS7, X.25, V5 㔥㔥㒰 䆂z IPX/SPXˈAppleTalkˈSNA 㔥㔥㒰 䆂z 㔥㒰ㅵ⧚ⱘRMONˈCMIP/GDMOˈ ѢWeb㔥ⱘ㾷 Ḝz CORBA 䅵ㅫ ⦃4ǃ ӊ㋏㒳VxWorks կⱘ 䗳 ӊ㋏㒳䗖 Ѣ ㋏㒳 ⫼DŽ ⾡ Փ⫼ 䆒 ˄ ⺕Ⲭ˅ⱘ ӊ㋏㒳DŽ䖭ѯ䆒 䛑Փ⫼ϔϾ ⱘ Ң㗠Փ ӊ㋏㒳㛑 㹿♉⌏ 䆒 偅 ⿟ Ϟ⿏ỡDŽVxWorks г SCSI ⺕ 䆒 ⱘ ӊ㋏㒳DŽVxWorks I/O ԧ㋏㒧 ⫮㟇䖬 ϔϾ ⣀ⱘ VxWorks ㋏㒳Ϟ Ͼϡ ⱘ ӊ㋏㒳DŽVxWorks ⾡ ӊ㋏㒳˖z dosFsz rt11Fsz rawFsz tapeFsDŽϔ 䴶ˈ 䗮 ӊˈ 䚼䆒 䛑㒳ϔ԰Ў ӊ ⧚DŽ Ӏ ⫼ 䴶 Ⳍ ⱘ䇁⊩ НˈՓ⫼Ⳍ ⱘ DŽ䖭ḋ ㅔ њ㋏㒳䆒䅵 Ѣ⫼ Փ⫼DŽ5ǃI/O㋏㒳VxWorks կњϔϾ 䗳♉⌏ⱘϢ A NSI C ⱘ I/O ㋏㒳ˈ z UNIX ⱘ㓧 I/Oz POSIX ⱘ ℹ I/OVxWorks ҹϟ偅 ⿟ ˖z㔥㒰偅zㅵ䘧偅z RAMⲬ偅z SCSI偅z䬂Ⲭ偅z ⼎偅z⺕Ⲭ偅z 偅3.1.7 VxWorks ԰㋏㒳Џ㽕⡍⚍1ǃ Ḍ(wind microkernel)ⱘЏ㽕⡍⚍z催 ⱘӏ ㅵ⧚˖¾ 䰤 Ⳃ ӏ ˈ 256ϾӬ 㑻¾ Ӭ 㑻 䯳 䯈⠛䕂䕀䇗¾ 䗳ⱘǃ⹂ ⱘϞϟz 䗳♉⌏ⱘӏ 䯈䗮䆃˖¾ϝ⾡ ♃˖Ѡ䖯 ǃ䅵 ǃ Ӭ 㑻㒻 ⡍ ⱘѦ ♃¾POSIXㅵ䘧ǃ䆄 䞣ǃ⍜ 䯳 ǃ 䇗¾¾ ѿ (shared memory)z催 ⱘ 㺕z 䞣䖲 䚼ӊ 䕑z 䗳 ⱘЁ џӊ ⧚zӬ ⱘ⍂⚍z ㅵ⧚z㋏㒳 䩳 䅵2ǃ㔥㒰 䴶z BSD 4.4 TCP/IPz IP, IGMP, CIDR, TCP, UDP, ARPz RIP v.1/v.2z Berkeley ,zbufs(zero-copy socket)z SLIP, CSLIP, PPPz BOOTP, DNS, DHCP, TFTPz NFS, ONC, RPCz FTP, rlogin, rsh, telnetz SNTPz MIB㓪䆥 ⱘWindNet SNMP v.1/v.2c ( 䗝)z WindNet OSPF v.2 ( 䗝)z WindNet STREAMS SVR4( 䗝)3ǃ 䗳♉⌏ⱘI/O ӊ㋏㒳z POSIX ℹI/O Ⳃ ㅵ⧚z SCSIz MS-DOC ӊ㋏㒳z Raw disk ӊ㋏㒳z TrueFFS䮾 ӊ㋏㒳z ISO 9660 CD-ROM ӊ㋏㒳z PCMCIA4ǃⳂ ⡍z ANSI C C++ⱘ ⧚ ῵z POSIX 1003.1, .1bzⳂ shellϞⱘѸѦ C㾷䞞zヺ 䇗䆩 ∛㓪z ⱘ 㛑ⲥ㾚 㛑z ⱘ Ḍǃӏ ǃ㋏㒳z 䖲 㺙䕑z䍙䖛1800Ͼ ⫼՟⿟z♉⌏ⱘ ˈ ҹҢROMǃ ⺕Ⲭ 䗮䖛㔥㒰 z催 㺕 䆒䅵 ҹ䗖⫼Ѣ ⊯ⱘ ⫼z䗮䖛ҹ 㔥ǃІ㸠㒓ǃICE ROMӓⳳ ⱘ㋏㒳㑻䇗䆩3.1.8 VxWorks ԰㋏㒳 Ḍⱘ ԰ ⧚VxWorks Ḍ˄wind˅ⱘ 㛑 ҹ Ў ϟ ㉏˖ӏ ㅵ⧚˗џӊ ℹ ˗䞣 ˗⍜ 䯳 ˗ㅵ⧚˗Ё ⿟ ˗䩳ㅵ⧚ ˗䫭 ⧚DŽҹϟ 㡖Ё VxWorks Ḍⱘ ㉏ 㛑 䖯㸠 䗄DŽӏ ㅵ⧚ӏ ҷⷕ䖤㸠ⱘϔϾ 䈵ˈҢ㋏㒳ⱘ㾦 ⳟˈӏ ゲѝ㋏㒳䌘⑤ⱘ 䖤㸠 DŽӏ ҹՓ⫼ ㄝ CPUǃI/O䆒 ぎ䯈ㄝ㋏㒳䌘⑤ˈ ⣀ゟѢ ӏ ˈϢ Ӏϔ䍋 䖤㸠˄ 㾖Ϟ ℸ˅DŽVxWorks ḌՓӏ 㛑 䗳 ѿ㋏㒳ⱘ㒱 䚼 䌘⑤ˈ ⣀ゟⱘϞϟ Ͼ 㒓⿟ⱘ 㸠DŽ3.1.8.1.1ӏ 㒧ӏ 䆒䅵㛑䱣 ℷ 㸠ⴔⱘӏ ˈ 䚼 䚼 ⫳ⱘџӊ ⹂ ⱘ 䯈䞠԰ DŽVxWorks ḌWind կњ ⱘ ӏ ⦃ DŽҢ㸼䴶Ϟ ⳟˈ Ͼӏ ℷ 㸠ˈ 䰙Ϟˈ㋏㒳 Ḍḍ ϔ䇗 ㄪ⬹䅽 ӀѸ 䖤㸠DŽ㋏㒳䇗 Փ⫼ӏ ⱘ 㒧 ˄ㅔ䆄ЎTCB˅ ㅵ⧚ӏ 䇗 㛑DŽӏ ⫼ 䗄ϔϾӏ ˈ↣ϔӏ 䛑ϢϔϾTCB 㘨DŽTCB њӏ ⱘ ⢊ ǃӬ 㑻ǃ㽕ㄝ ⱘџӊ 䌘⑤ǃӏ ⿟ ⷕⱘ䍋 ǃ 䩜ㄝ DŽ䇗 ӏ 㹿▔⌏ ҹ Ңӥ⳴ 䞡 㹿▔⌏ ˈ㽕⫼ 䖭ѯ DŽℸ ˈTCB䖬㹿⫼ ӏ ⱘ"Ϟϟ "˄context˅DŽӏ ⱘϞϟ ϔϾ 㸠Ёⱘӏ 㹿 ℶ ˈ 㽕 ⱘ DŽ ӏ 㹿䞡 㸠 ˈ 乏㽕 Ϟϟ DŽ䗮 ˈϞϟ 䅵ㅫ ⱘ⢊ ˈг Ͼ ⱘ DŽ ⫳Ё 㽕 ⱘ ϔḋDŽ ⫳ӏ ˈ 䖤㸠ⱘӏ ⱘϞϟ 㹿 TCBˈ 㽕㹿 㸠ⱘӏ ⱘϞϟ Ң ⱘTCBЁ ˈ Ͼ ЁDŽѢ 䕀㗠 㸠䖭Ͼӏ ˈ 㸠ⱘ䍋⚍ ⃵ 䖤㸠 㹿Ёℶⱘԡ㕂DŽVxWorksЁˈ ぎ䯈ϡ ӏ Ϟϟ ⱘϔ䚼 DŽ ⱘҷⷕ䖤㸠 ϔ ぎ䯈DŽ ↣ϔӏ 䳔 㞾ⱘ ぎ䯈ˈ䳔 䗝ѻ VxVMIⱘ DŽ3.1.8.1.2ӏ ⢊ ⢊ 䖕⿏㋏㒳ⱘϔϾӏ ⾡⢊ ˈ Ё ⱘ⢊ ⾡˖㒾 ˖ӏ ㄝ ㋏㒳 䜡CPU䌘⑤˗㕂 ˖ӏ 䳔ㄝ ѯϡ ⫼ⱘ䌘⑤㗠㹿䰏 ˗ӥ⳴ ˖ ㋏㒳ϡ䳔㽕 ϔϾӏ ԰ˈ 䖭Ͼӏ Ѣӥ⳴⢊ ˗䖳 ˖ӏ 㹿 䖳 ⢊ ˗㋏㒳 ϔӏ 䖯㸠 ԰ ˈӏ Ңϔ⾡⢊ 䖕⿏ ϔ⢊ DŽ Ѣӏϔ⢊ ⱘӏ 䛑 㹿 䰸DŽ催Ӭ 㑻ӏ ℷ 㸠3-3 VxWorksӏ ⢊ 䎗䖕⢊ 䖕⿏䇗⫼㒾 ----> 㕂 semTake()/msgQReceive() 㒾----> 䖳 taskDelay()㒾 ----> ӥ⳴ taskSuspend()㕂 ----> 㒾 semGive()/msgQSend()㕂 ----> ӥ⳴ taskSuspend()䖳 ----> 㒾 expired delay䖳 ----> ӥ⳴ taskSuspend()ӥ⳴ ----> 㒾 taskResume()/taskActivate()ӥ⳴ ----> 㕂 taskResume()ӥ⳴ ----> 䖳 taskResume()3.1.8.1.3ӏ 䇗 ㄪ⬹ӏ 䇗 乏䞛⫼ϔ⾡䇗 ㅫ⊩ 䜡CPU㒭 㒾 ӏ DŽWind Ḍ䞛⫼ ѢӬ 㑻ⱘ 䇗 ⊩԰Ў ⱘ㔎ⳕㄪ⬹ˈ г կњ䕂䕀䇗 ⊩DŽ ѢӬ 㑻ⱘ 䇗 ˈ Ӭ⚍DŽ䖭⾡䇗 ⊩Ў↣Ͼӏ ϡ ⱘӬ 㑻DŽ≵ Ѣ 㕂 ӥ⳴ ⱘ 催Ӭ 㑻ӏ ϔⳈ䖤㸠ϟ DŽ 催Ӭ 㑻ⱘӏ ⬅ 㒾 䖯 䖤㸠 ˈ㋏㒳 Ḍゟ ӏ ⱘϞϟ ˈ 催Ӭ 㑻ⱘӏ DŽWind Ḍ Ӭ 㑻Ў256㑻˄0~255˅DŽӬ 㑻0Ў 催Ӭ 㑻ˈӬ 㑻255Ў ԢDŽ ӏ 㹿 ˈ㋏㒳ḍ 㒭 䜡ӏ Ӭ 㑻DŽ✊㗠ˈӬ 㑻г ҹ ⱘˈ Ӏ㛑 ㋏㒳䖤㸠 㹿⫼ Փ⫼㋏㒳䇗⫼taskPrioritySet() ҹ ˈԚϡ㛑 䖤㸠 㹿 ԰㋏㒳 DŽ3-4 ѢӬ 㑻ⱘ 䇗䕂䕀䇗 ⊩ 䜡㒭 Ѣ 㒾 ⱘ↣Ͼ Ӭ 㑻ⱘӏ ϔϾⳌ ⱘ 㸠 䯈⠛DŽ 䯈⠛ⱘ䭓 ⬅㋏㒳䇗⫼KernelTimeSlice()䗮䖛䕧 DŽ ˈ↣Ͼӏ 䛑 ϔ䖤㸠 䯈䅵 ˈӏ 䖤㸠 ↣ϔ 䯈Ⓢㄨ 1DŽϔϾӏ ⫼ 䯈⠛П ˈ 䖯㸠ӏ ˈ ℶ 㸠 䖤㸠ⱘӏ ˈ 䯳 䚼ˈ 䖤㸠 䯈䅵 㕂䳊ˈ 㸠 㒾䯳 ЁⱘϟϔϾӏ DŽ 䖤㸠ӏ 㹿 催Ӭ 㑻ⱘӏ ˈℸӏ ⱘ䖤㸠 䯈䅵 㹿 ˈⳈ 䆹ӏ ϟ⃵䖤㸠 DŽ3-5Ѣ 䯈⠛䕂䕀䇗3.1.8.1.4 ⽕ℶWind Ḍ 䗮䖛䇗⫼taskLock() taskUnlock ˄˅ Փ䇗 䍋԰⫼ DŽ ϔϾӏ 䇗⫼taskLock()Փ䇗 ˈӏ 䖤㸠 ≵ ѢӬ 㑻ⱘ ⫳DŽ✊㗠ˈ ӏ 㹿䰏 㕂 ˈ䇗 Ң 㒾䯳 Ё 催Ӭ 㑻ⱘӏ 䖤㸠DŽ 䆒㕂 ⽕ℶⱘӏ 㾷䰸䰏 ˈ ⃵ 䖤㸠 ˈ 㹿⽕ℶDŽ䖭⾡ ⽕ℶ䰆ℶӏ ⱘ ˈԚ Ё ⧚ϡ䍋԰⫼DŽ3.1.8.1.5 ⧚催Ԣ催Ԣ⊼˖㸼⼎ ˈ㸼⼎ӏ DŽ⿟ ҷⷕ ⱘ 䫭ˈ 䴲⊩ Ҹǃ 㒓 䫭䇃ǃ㹿䳊䰸ㄝDŽVxWorks ⧚ ˈϔ㠀 䍋 ⱘӏ ӥ⳴ˈ ӏ 䫭 ⱘ⢊ DŽ Ḍ ӏ 㒻㓁 㸠DŽ⫼ Tornado ˈ ⳟ ӏ ⢊ ˈҢ㗠⹂ 㹿ӥ⳴ⱘӏ DŽ3.1.8.1.6ӏ ㅵ⧚ⱘ㋏㒳䇗⫼VxWorks Ḍⱘӏ ㅵ⧚ կњ ǃ 䰸 ӏ ⱘ 㛑ˈ ԧ ⦄䗮䖛 ϟϔѯ㋏㒳䇗⫼˖taskSpawn() ˄ѻ⫳ ▔⌏˅ ӏ taskInit() ϔϾ ӏ taskActivat e () ▔⌏ϔϾ ⱘӏ taskNam e() ⬅ӏ ID ӏtaskNameToId ˄˅⬅ӏ ӏ ID taskPriorityGe t()㦋 ӏ ⱘӬ 㑻taskIsSuspended()Ẕ ӏ 㹿 㕂taskIsR e ady() Ẕ ӏ 䖤㸠taskTcb() ϔϾӏ ⱘ 䩜taskD e l e t e() Ёℶ ӏ 䞞 ˄ҙӏ ˅taskSaf e () 㹿䇗⫼ӏ taskSusp end() 㕂ϔϾӏ taskR e sum e () ϔϾӏ taskRestart() 䞡 ϔϾӏ taskD elay() 䖳ϔϾӏ 䗮 ǃ ℹ ѦVxWorks ⾡ӏ 䯈䗮 ˈ կњ ḋⱘӏ 䯈䗮 ˈЏ㽕 ϟ ⾡˖y ѿ ˈЏ㽕 ⱘ ѿ˗y 䞣ˈ⫼Ѣ ⱘѦ ӏ ℹ˗y ⍜ 䯳 ㅵ䘧ˈ CPU ⱘ⍜ Ӵ䗕˗y Socket 䖰⿟䖛⿟䇗⫼ˈ⫼Ѣ㔥㒰䯈ӏ ⍜ Ӵ䗕˗yѠ䖯 ˈ⫼Ѣ ⧚DŽ⧚ П䯈ⱘӏ г 䞛⫼ ѿ 䈵 ⦄ӏ 䯈䗮 , ㋏㒳䜡㕂Ϟ ϡ .3.1.8.2.1 ѿӏ 䯈䗮 ⱘ ㅔ ⱘ ⊩ 䞛⫼ ѿ ˈг Ⳍ ⱘ Ͼӏ ѿ Ѣ Ӏⱘ ぎ䯈ⱘ ϔ DŽ Ў ӏ 䛑 Ѣ ϔⱘ㒓 ぎ䯈ˈӏ 䯈 ѿ DŽ 䞣ǃ㒓 䯳 ǃ⦃ 䯳 ǃ䫒㸼ǃ 䩜䛑 㹿䖤㸠 ϡ Ϟϟ ⱘҷⷕ DŽ3.1.8.2.2Ѧϔ ぎ䯈⫼Ѣ Ѹ ˈЎњ䙓 さˈ Ѣ ⱘ䫕 䴲 䞡㽕ⱘDŽϸϾ Ͼӏ 䇏 ѯ ѿ ˈ ⱘ㒧 Ѣӏ 䖤㸠ⱘ㊒⹂ ˈ 㛑 䫭䇃 ˈ䖭ḋ 乏ҹ ⾡ ↉⹂ ϔϾӏ Փ⫼ϔϾ ѿ 䞣 ӊ ˈ Ҫӏ ϡ㛑 ḋⱘ ԰DŽЏ㽕 Ё ǃ ⽕ℶ ⫼ 䞣䫕 䌘⑤ㄝ ⊩DŽϔ㠀 䇈ˈ Ё ⱘ㾷 Ѧ ⱘ ⊩DŽԚ䖭 Ѣ ⫼ 䇈ˈ 䰏ℶ㋏㒳 䚼џӊⱘ ˈ ⊩⒵䎇 ⱘ㽕∖DŽ ḋˈЁ 䖳г ϡ㛑 DŽ3.1.8.2.3 䞣VxWorks 䞣 կ 䗳ⱘӏ 䯈䗮 ˈ Џ㽕⫼Ѣ㾷 ӏ 䯈ⱘѦ ℹDŽ䩜 ϡ ㉏ ⱘ䯂乬ˈ ҹϟϝ⾡ 䞣˖y Ѡ䖯 䞣Փ⫼ ǃ ⊯ˈЏ㽕⫼Ѣ ℹ Ѧ ˗y Ѧ 䞣Џ㽕⫼ѢӬ 㑻㒻 ǃ 䰸 ⒃˗y䅵VxWorks 䖬 կPOSIX 䞣 ⧚ Ϟ 䞣ⱘ ⫼DŽ3.1.8.2.4⍜ 䯳⦄ ⱘ ⫼⬅ϔ㋏ ѦⳌ⣀ゟ ԰ⱘӏ 㒘 DŽ 䞣Ўӏ 䯈 ℹ 䗮 կњ催 ⊩DŽ ⧚ Ёӏ 䯈⍜ ⱘӴ䗕䞛⫼⍜ ⍜ 䯳 DŽ⍜ Փ⫼ϔϾ㹿 䖯⿟ ѿⱘ⍜ 䯳 ˈӏ П䯈㒣⬅䖭Ͼ⍜ 䯳 䗕 ⍜ DŽ3-6ӏ 䯈Փ⫼⍜ 䯳 䖯㸠 䗮2䯳3.1.8.2.5ㅵ䘧ㅵ䘧⫼VxWorks ⱘI/O ㋏㒳 կϔ⾡♉⌏ⱘ⍜ Ӵ䗕 ˈ 偅 pipeDrv ˄VxWorks կ˅ㅵ⧚ⱘ㰮 I/O 䆒 DŽӏ 㛑䇗⫼ ⱘI/O ǃ䇏 ǃ ㅵ䘧DŽ ӏ 䆩 ҢϔϾぎⱘㅵ䘧Ё䇏 ˈ ϔϾ⒵ⱘㅵ䘧Ё ˈӏ 㹿䰏 DŽ ⍜ 䯳 ㉏ԐˈISR 㛑 ㅵ䘧Ё ˈԚϡ㛑ҢЁ䇏 DŽ䈵I/O 䆒 ϔḋˈㅵ䘧 ϔϾ⍜ 䯳 ≵ ⱘӬ ----䇗⫼select()ˈӏ ㄝ ϔ㋏ I/O 䆒 Ϟⱘ DŽ3.1.8.2.6 ⫼ⱘ㋏㒳䇗⫼Wind 䞣 Ѣ ⾡㉏ ⱘ 䞣ⱘ կњ ϔ㾘㣗 ⱘ ˈҙ 㽕⡍ 䞣㉏ DŽs e mBCr e at e() ˄ѻ⫳ ▔⌏˅ϔϾѠ䖯 䞣s e mMCr e at e () ˄ѻ⫳ ▔⌏˅ϔϾѦ 䞣s e mCCr e at e () ˄ѻ⫳ ▔⌏˅ ϔϾ䅵 䞣s e mD e l e t e () Ёℶ 㞾⬅ 䞣semTake ˄˅ 㦋 䞣s e mGiv e () 㒭 䞣s emFlush() 㾷䫕 ℷㄝ ϔ 䞣ⱘӏ Wind ⍜ 䯳 ㅵ⧚˖msgQCr e at e() ˄ѻ⫳ ▔⌏˅⍜ 䯳 msgQD e l e t e() Ёℶ 㞾⬅ 䞣msgQS e nd() ⍜ 䯳 䗕⍜ msgQR e c e iv e() Ң⍜ 䯳 ⍜ 3.1.8.2.7㔥㒰䗮VxWorks կњ ⱘ㔥㒰 㛑ˈ㛑Ϣ 䆌 Џ ㋏㒳䖯㸠䗮 DŽ㔥㒰 4.3BSD ˈг SUN ⱘNFS DŽ䖭⾡ ⊯ⱘ 䆂 Џ VxWorksh Ⳃ П䯈 կњ 㓱ⱘ ԰⦃ ,ӏ 䗮䖛㔥㒰 ㋏㒳ⱘЏ ӊˈ 䖰⿟ ӊ ˈг 䖰⿟䖛⿟䇗⫼DŽ䗮䖛ҹ 㔥ˈ䞛⫼TCP/IP UDP/IP 䆂 ϡ Џ П䯈Ӵ䗕 DŽ3-7 VxWorks ⱘTCP/IP 䆂VxWorks կњ ϟϔѯ㔥㒰 Ӵ䗕˖y Sockets䖤㸠 VxWorks ㋏㒳 ㋏㒳П䯈ӏ ⱘ⍜ Ӵ䗕˗y 䖰⿟䖛⿟䇗⫼˄RPC ˅䆌ӏ 䇗⫼ ϔЏ ˄䖤㸠ⱘ㋏㒳ЎVxWorks ˅Ϟⱘ䖛⿟DŽy 䖰⿟ ӊVxWorks ӏ 䞛⫼NFS ǃRSH ǃFTP ǃTFTP ㄝ 䖰⿟ Џ ӊDŽy ӊ䕧y 䖰⿟ 㸠 ҸVxWorks ӏ 䗮䖛㔥㒰▔⌏Џ ㋏㒳Ёⱘ ҸDŽVxWorks 㔥㒰㒘ӊ㒧 ϟ˖Vxworks ㋏㒳 㔥㒰 䆂ⱘ 䴴 ˄sockets ˅ ⦄ⱘDŽSockets 㾘㣗 ⊯ ⫼ⱘǃ ⱘǃ ⾡ 䆂ⱘ㔥㒰㓪⿟ DŽ䗮䆃ⱘ ⷇ ˈϔϾ䗮䆃 ⱘϔッˈ 䖭ϔッϞԴ ҹ ⱘϔϾ DŽϔϾℷ 㹿Փ⫼ⱘ 䛑 ⱘ㉏ Ϣ Ⳍ ⱘӏ DŽ Ѣ䗮䆃 ЁDŽ䗮䆃 Ўњ ⧚ϔ㠀ⱘ㒓⿟䗮䖛 䗮䆃㗠 䖯ⱘϔ⾡ 䈵ὖ DŽ rlogin telnet SourceDebuggerNFS RSH FTP TFTP X Windows ProtocolRPCZbufi'face Sockets SNMPv1/v2TCPUDP IP+ICMPEthernetBackplane Custom Interface SLIP/CSLIPPPP netDrv䖰⿟ 㸠 Ҹ䖰⿟ ӊ䖰⿟ⱏ䗮 ϔϾ Ёⱘ Ѹ ˄ Ѹ г 㛑こ䍞 ⱘ⬠䰤ˈԚ䖭 ϔ 㽕 㸠 ⾡㾷䞞⿟ ˅DŽ Ͼӏ Փ⫼䖭Ͼ ѦⳌП䯈⫼Internet 䆂 䖯㸠䗮䆃DŽҹḍ 䗮䆃 䋼 ㉏DŽ ⫼⿟ ϔ㠀ҙ ϔ㉏ⱘ 䯈䗮䆃DŽϡ䖛 㽕 ⱘ䗮 䆂 䆌ˈϡ ㉏ ⱘ 䯈г✻ḋ ҹ䗮 DŽ⫼ Ⳃ Փ⫼ϸ⾡ ˈ ⌕ ˄䞛⫼TCP 䆂˅ ˄䞛⫼UDP 䆂˅DŽ⌕ կњ ⱘǃ ⱘǃ 䞡 Ϩ 䆄 䖍⬠ⱘ ⌕ DŽ ⱘ ⌕ˈԚ ϡ 䆕 䴴ǃ ǃ 䞡 ⱘDŽг 䇈ˈϔϾҢ ⱘӏ 㛑 ⦄ 䞡 њˈ 㗙 ⱘ乎 ϡ DŽ ⱘϔϾ䞡㽕⡍⚍ ⬭њ䆄 䖍⬠DŽ Ѣ䖭ϔ⡍⚍ˈ 䞛⫼њϢ⦄ 䆌 Ѹ 㔥㒰˄՟ ҹ 㔥˅䴲 ㉏Ԑⱘ῵ DŽ˄socket ˅䗮 ⱘ Ӭ⚍ ˖䖛⿟䯈ⱘ䗮 ㄝⱘˈϡㅵ㔥㒰Ё䖛⿟ⱘ ԡ Џ 䖤㸠ⱘ ԰㋏㒳DŽϔ㠀 䇈ˈ⌕ կњ 䴴ⱘ䴶 䖲 ⱘ ˈ ⫼䕗 ⊯DŽ ⫼⿟ ϟ˖3-8 䗮 ⱘ ⦄socket()bind()listen()accept()䰏 ˈㄝread()write()close()close()read()write()connect()socket() ⧚ 䇋∖ゟ䫒 䇋∖ ㄨ。

相关文档
最新文档