vxWorks开发环境构建步骤及开发资源

合集下载

Vxworks BSP开发流程

Vxworks BSP开发流程

Vxworks BSP开发1.板级支持包的介绍2.VxWorks映象及启动顺序3.VxWorks预内核初始化4.BSP的配置5.BSP的开发6.VxWorks下设备驱动程序概述板级支持包的介绍一.板级支持包简述在VxWorks系统中,对BSP的简单描述为:介于底层硬件环境和VxWorks之间的一个软件接口,它的主要功能是在系统加电后初始化目标机硬件、初始化操作系统、提供部分硬件的驱动程序。

具体功能包括:(1)初始化。

所谓初始化就是指从系统上电复位开始,到VxWorks开始初始化用户应用(即系统执行到usrAppInit函数处)的一段时间内系统所执行的过程。

这个过程主要包括三个部分的工作:·CPU初始化。

初始化CPU的内部寄存器。

·目标机初始化。

初始化控制芯片的寄存器,I/O设备的寄存器,为整个软件系统提供底层硬件环境的支持。

·系统资源初始化。

为操作系统及系统的正常运行做准备,进行资源初始化,如空间分配等等。

(2)使VxWorks能够访问硬件驱动程序。

这主要是指VxWorks包含必要的设备驱动程序和相关设备的初始化。

(3)在VxWorks系统中,集成了与硬件相关的软件和部分与硬件无关的软件。

二.板级支持包与VxWorks从上面的图中,我们可以看到,BSP不是设备驱动程序,因为设备驱动程序可以访问硬件设备,同时,相同设备的驱动程序可以不作修改的从一个环境移植到另外一个环境当中去,而BSP只能在特定的环境下面运行。

简单地说,BSP开发人员要完成两个方面的工作:(1)完全支持BSP管理设备(2)通用设备驱动程序的集成工作三.BSP的组成BSP包含的程序是提供VxWorks访问目标机硬件环境的主要接口。

BSP主要由下面几类文件组成。

1.源文件主要是由C语言编写的代码所组成的文件,也有一小部分由汇编语言编写而成。

2.头文件包含针对CPU板的硬件定义以及内存定位定义的文件。

3.Make file文件控制构造所有类型映象的文件4.派生文件由其他文件衍生而成的文件。

以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的外观等。

vxWorks的BSP开发

vxWorks的BSP开发

VxWorks的BSP开发1BSP概述一个成熟的商用操作系统,其被广泛应用的必要条件之一就是能够支持众多的硬件平台,并实现应用程序的硬件无关性。

一般来说,这种无关性都是由操作系统实现的。

但对于嵌入式系统来说,它没有像PC机那样具有广泛使用的各种工业标准,各种嵌入式系统其不同的应用需求就决定了它一般都选用了各自定制的硬件环境,这种诸多变化硬件的环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。

因此各种商用实时操作系统,都采用了分层设计的方法,它将系统中与硬件直接相关的一层软件独立出来,称之为Board Support Package即简称BSP。

顾名思义,BSP是针对某个单板而设计的,并且它对于用户(指开发者)也是开放的,用户可以根据不同的硬件需求对其作改动或二次开发,而操作系统本身仅仅提供了CPU内核的无关性。

BSP在系统中的角色,很相似于BIOS在PC系统中的地位。

定义BSP就是为软件操作系统正常运行提供最基本、最原始的硬件操作的软件模块,它和操作系统息息相关,但又不属于操作系统的一部分。

BSP可以分为三大部分:1:系统上电时的硬件初始化。

2:为操作系统访问硬件驱动程序提供支持。

3:集成的硬件相关和硬件无关的操作系统所需的软件模块。

BSP的表现形式BSP主要以两种形式来表现:1:源代码(C代码、汇编代码)、系统编译连接依靠文件。

2:二进制的目标代码和目标代码库。

BSP在软件系统中的位置BSP在软件系Array统中的位置可以用下图来表示,BSP为操作系统和硬件设备的互操作建了一个桥梁,操作系统通过BSP来完成对指定硬件的配置和管理。

2 vxWorks系统中的BSP 目录结构BSP软件与其他软件的最大区别在于BSP软件有一整套模板和格式,开发人员必须严格遵守,不允许任意发挥。

在BSP软件中,绝大部分文件的文件名和所要完成的功能都是固定的。

所以,BSP软件的开发一般来说都是在一个基本成型的BSP软件上进行修改,以适应不同单板的需求。

vxWorks开发入门教程索引

vxWorks开发入门教程索引
内存泄漏检测与回收
vxWorks还提供了内存泄漏检测功能,以帮助用户发现并及时处理内存泄漏问题。同时,vxWorks还支持内 存回收功能,可以自动回收不再使用的内存空间。
03 开发环境搭建与 配置
安装与配置开发环境
安装Wind River Workbench
下载并安装适用于您的操作系统的Wind River Workbench,这是开发vxWorks应用程序的集成开发环境( IDE)。
vxWorks开发入门教程索 引
contents
目录
• 引言 • vxWorks基础知识 • 开发环境搭建与配置 • 驱动程序开发与调试 • 中间件及组件应用 • 系统优化与性能提升 • 项目实战:基于vxWorks的智能家居控
制系统设计
01 引言
vxWorks概述
01
vxWorks是一款实时操作系统(RTOS),专为嵌入式系统设计 ,具有高性能、可确定性和低延迟等特点。
日志和跟踪工具
使用vxWorks提供的日志和跟踪工具来记录应用程序的运行状态和错误信息。这有助于 分析和解决问题。
04 驱动程序开发与 调试
设备驱动模型概述
01
设备驱动模型组成
包括设备、驱动和服务等组件, 用于实现硬件设备的抽象和访问 控制。
02
设备驱动模型作用
提供统一的设备访问接口,屏蔽 底层硬件细节,简化驱动开发流 程。
关键模块代码实现及讲解
设备驱动模块
展示设备驱动模块的代码实现,包括 设备初始化、数据读写等操作。
通信协议模块
介绍通信协议模块的实现,包括协议 的选择、封装和解封装等过程。
应用功能模块
展示应用功能模块的代码实现,如远 程控制、自动化场景设置等。

vxworks 程序开发实践

vxworks 程序开发实践

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VMware平台的使用和Vxworks开发环境的建立

VMware平台的使用和Vxworks开发环境的建立

VMware平台的使用和Vxworks开发环境的建立(航天504所数字信号处理室邢进)1 前言在嵌入式开发中使用Vxworks开发平台时,都需要有Host主机和Target目标机才能进行真实的开发平台或测试工作,Vxworks的IDE开发环境中虽然带有Simulator,但是该环境下只能进行简单的运行,并不能代表真实的环境。

在Vxworks开发中的上层应用开发,需要具备和真实设备基本类似的平台来进行调试、开发和测试工作,这对于Vxworks上层应用软件和底层硬件驱动的并行开发有着很重要的意义。

近几年来,由于虚拟计算机技术的发展,在一台主机上既能完成Host的IDE(集成开发环境)开发,又能利用主机所带的操作系统(典型为Windows 2000/XP)的多任务功能虚拟一台完全类似于开发目标机的思路逐渐为广大开发人员所接受。

另外由于多核处理器的发展,今后的调试平台的发展方向也可能是主机运行在一个处理器核上,另外虚拟计算机运行在另外一个处理器核上,充分利用处理器强大的性能有效的提高嵌入式应用软件的开发和测试效率。

本文就将对使用Vmware平台组建一个基于Tornado2.2的开发平台做详细的介绍。

2 Vmware WorkStation介绍2.1 Vmware功能综述Vmware Inc是虚拟计算机机领域的著名公司,其产品包括Vmware WorkStaion/Server等,它可以广泛用于测试新的操作系统或者应用程序环境,向用户推介新的操作系统,在教育研讨期间共享已经配置的环境,等等。

VMware Workstation 允许操作系统和应用程序在一台虚拟机内部运行。

虚拟机是独立运行主机操作系统的离散环境。

在 VMware Workstation 中,你可以在一个窗口中加载一台虚拟机,它可以运行自己的操作系统和应用程序。

你可以在运行于桌面上的多台虚拟机之间切换,通过一个网络共享虚拟机(例如一个公司局域网),挂起和恢复虚拟机以及退出虚拟机 — 这一切不会影响你的主机操作和任何操作系统或者它正在运行的应用程序。

西工大嵌入式实验指导书-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开发教程
数。
任务删除
使用`taskDelete()`函数删除 指定任务,释放任务所占用的
资源。
任务状态转换
通过`taskSuspend()`和 `taskResume()`函数实现任务
的挂起与恢复,通过 `taskDelay()`函数实现任务延
时。
任务优先级调度策略
优先级抢占式调度
01
高优先级任务可抢占低优先级任务的执行,确保关键任务得到
TCP/IP通信实例分析
通过分析一个简单的基于TCP/IP协议栈的通信实例,加深对网络通信编程的理解和掌握。
无线通信模块集成与调试经验分享
01
02
无线通信模块概述
介绍常见的无线通信模块类型及其特点, 如Wi-Fi模块、蓝牙模块、ZigBee模块 等。
模块集成步骤与注意 事项
详细讲解无线通信模块与VxWorks系 统的集成步骤,包括硬件连接、驱动程 序开发、协议栈配置等,并分享一些实 用的调试技巧和经验。
套接字编程基本流程
包括创建套接字、绑定地址、监听连接、接受连接、发送和接收数据等步骤。
基于TCP/IP协议栈网络通信实现
TCP/IP协议栈概述
介绍TCP/IP协议栈的基本概念和层次结构,以及各层的主要功能和协议。
网络通信编程接口
讲解VxWorks提供的网络通信编程接口,如socket()、bind()、listen()、accept()、send()、recv()等函数 的使用方法和注意事项。
中断控制器识别中断源,并将其传递 给CPU。
中断类型及响应过程
3. 中断处理
CPU保存当前执行上下文,跳转到中 断处理程序执行。
4. 中断返回
中断处理程序执行完毕后,CPU恢复保 存的上下文并继续执行原程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

vxWorks开发环境构建步骤及开发资源技创科技(Technique Innovator Inc.) 一、Tornado集成开发环境构成Tornado是集成开发环境的名称,主要由帮助及参考文档、操作系统vxWorks、开发工具(编译器、调试器、编辑器、target server等,据统计,挂接在Tornado下的可选工具和第三方有数百个)等三部分构成,分别对应三个目录:i.docs/ 所有文档都集中在该目录中, books.html是根索引,入门级开发请务必查看以下文档:●如果要熟悉使用界面及Tornado使用、创建工程,请参考:Tornado用户手册及Tornado集成开发环境的HELP->content调出来的联机帮助文档;●vxWorks的编译是使用标准GNU Makefile来编译连接的,要了解Makefile语法请参考”GNU Make”;具体的Make rules存放在target/h/make/目录下。

●如何调试?请参考“Debugging with GDB”●vxWorks构成、特点及kernel,编程等:请参考:VxWorks Programmer's Guide,系统调用、库函数接口标准等,请参考:VxWorks Reference Manual●有关BSP(board support package)的构成、初始化、底层驱动等,请参考“BSPReference”●网络应用编程指南(socket编程): “VxWorks Network Programmer's Guide”ii.host/ 该部分存放主机端(开发机)的工具,如Tornado.exe,make.exe,编译器、调试器及TCL命令解释器等等,开发中要用到的工具都存放在目录host\x86-win32\bin 下,部分命令是.exe文件,部分是.bat的,其中有torvars.bat文件,是设置Tornado集成开发环境的环境变量用的,在使用其他工具前,要运行它设置正确的环境变量及可执行文件搜索路径。

iii.target/ vxWorks操作系统、源码、BSP、设备驱动、头文件、配置文件等config/ BSP的存放地方,底层开发者绝大部分时间在该目录下度过,该目录下除了all/和comps/外,其他每个目录对应一种硬件板的BSP,开发者在做BSP开发时,原则上除了对应BSP目录能修改外,target/目录下的其他所有目录都不应该作出改动,否则会影响到其他BSP,常用BSP有:pid7t/ →ARM公司推出的pid7 ARM7TDMI评估板的BSPintegratorX/ →ARM公司推出的integratorXXX评估板的BSPtk4510a/ →我们要使用的S3C4510B板的BSPSNDS100/ →三星公司推出的SNDS100(KS3C50100/S3C4510B)板的BSPh/ 头文件存放地点,包括vxWorks的及所有其他组件的arch/arm/ ARM体系结构相关头文件make/ 编译连接时要用到的规则都存放在这里vxWorks.h wind Kernel(vxWorks的核心”Wind Kernel”的API及常量说明)lib/ vxWorks是一个商用操作系统,其不开放源码部分的.o文件及.a(库文件)文件存放在这里(当然,除了config/目录外,所有其他目录下的*.c源码在编译库时产生的*.o文件也存放在这里),基本上每种CPU对应一个库文件如:libARM7TDMIgnuvx.a 等,该文件是objARM7TDMIgnuvx/目录下的*.o文件的打包proj/ 每种BSP对应一个downloadable proj,存放在该目录下。

通过使用图示化定制工具,可以生成高度定制过的kernel:”vxWorks”,该image一般在开发时使用,供上电后板上固化的bootrom通过网口或者串口下载该已经定制过的kernel到板上运行。

用户自己添加的PROJ也可以存放在该目录下。

src/ 提供C源代码的驱动程序、提供C源码的系统软件组件存放在这里。

(注意:编译该目录产生的*.o文件被加到对于的/target/lib/*.a文件中去)src/drv 开放源码的vxWorks设备驱动程序C源码存放目录,及不开放源码的驱动的参数设置C文件unsupported/ WindRiver公司不提供技术支持的一些应用代码、驱动代码、网络协议代码,及contribute代码。

二、开发步骤●安装Tornado 2 for ARM●安装BSP:COPY tk4510a/ 到config/目录下●编译BOOTROM:cd tk4510amake bootrom_uncmp.bin●用烧写器烧写bootrom_uncmp.bin 到ROM片选0 (nRCS0)对应的FLASH(SST39VF040)片子●编译vxWorks image(内核文件)cd tk4510amake vxWorks●配置FTP server:打开及配置FTP SERVER,创建一用户(用户名和密码都是“target”),主目录指向target/config/tk4510a,以便目标板上电后能通过FTP client连接到主机取上一步编译好vxWorks 映像文件●连接CONSOLE:用两端都是FEMALE的DB9串口线连接目标板的UART1到主机的COM2。

注意要使用平行线,不能使用交叉线!打开超级终端,设置连接到COM2,38400波特率,8-N-1,无流控;●加电配置目标板启动(或者称引导)参数:在“auto boot download count”自动启动倒数到0之前按下RETURN 键,进入“(2)高级引导交互”,配置好以下参数:'.' = clear field; '-' = go to previous field; ^D = quitboot device : secEnd0processor number : 0host name : techorfile name : vxWorks ;要引导的内核文件路径和文件名inet on ethernet (e) : 192.168.0.200 ;目标板的IP地址inet on backplane (b):host inet (h) : 192.168.0.80 ;运行FTP SERVER的主机IP地址gateway inet (g) :user (u) : target ;FTP 用户名ftp password (pw) (blank = use rsh): target ;FTP 用户密码flags (f) : 0x0target name (tn) : tk4510startup script (s) :other (o) : secEnd●引导目标系统运行vxWorks系统:在上一步配置好启动参数后,命令行上运行”@”命令引导xWorks系统:@ ;按“@”后按回车如果vxWorks引导成功,则出现以下画面:]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] ]]]] ]]]]]]]]]] ]] ]]]] (R) ] ]]]]]]]]] ]]]]]] ]]]]]]]] ]] ]]]]]] ]]]]]]] ]]]]]]]] ]]]]]] ] ]] ]]]]]]] ]]]]] ] ]]] ] ]]]] ]]] ]]]]]]]]] ]]]] ]] ]]]] ]] ]]]]]]]]] ]]] ]] ] ]]] ]] ]]]]] ]]]]]] ]] ]]]]]]] ]]]] ]] ]]]]]]]]] ] ]]]] ]]]]] ]]]]]]]] ]]]] ]] ]]]] ]]]]]]] ]]]]]]]]]] ]]]]] ]]]]]] ] ]]]]] ]]]] ]] ]]]] ]]]]]]]] ]]]]]]]]]]] ]]]]] ] ]]]]]] ] ]]] ]]]] ]] ]]]] ]]]] ]]]] ]]]]]]]]]]]] ]]]]] ]]] ]]]]]]] ] ]]]]]]] ]]]] ]]]] ]]]] ]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] Development System]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]] VxWorks version 5.4]]]]]]]]]]]]]]]]]]]]]]]]]] KERNEL: WIND version 2.5]]]]]]]]]]]]]]]]]]]]]]]]] Copyright Wind River Systems, Inc., 1984-1999CPU: KS32C50100 FOR SNDS100 Ver 1.0. Processor .Memory Size: 0x1000000. BSP version 1.2/0.WDB: Ready.“WDB: Ready”表示目标系统包含WDB debug agent,有下载调试的能力,否则表示无下载调试能力。

到这里,一个独立的包含Wind Kernel、网络组件、网络连接、CONSOLE连接、FTP client,调试代理WDB agent的基本vxWorks系统就已经建立了,下一步工作就是开发用户的应用程序,利用目标板的FTP client和WDB agent 提供的动态加载/卸载功能,动态加载编译生成的*.o文件或*.out文件到内存中运行、静态调试及动态分析与调试。

三、开发资源连接●随机文档:$WIND_BASE/docs/books.html●最COOL的vxWorks 邮件列表:/pipermail/vxwexplo/●评估板制造者连接:/●风河公司:一些有用文档:●vxWorks操作系统指南(中文版):●一些技术文章:●●风河公司vxWorks BSP 培训教材:。

相关文档
最新文档