Chinaunix首页 | 论坛 | 博客
  • 博客访问: 566294
  • 博文数量: 169
  • 博客积分: 2656
  • 博客等级: 少校
  • 技术积分: 1685
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 13:03
文章分类

全部博文(169)

文章存档

2011年(1)

2010年(135)

2009年(33)

我的朋友

分类: 嵌入式

2010-06-16 00:17:47

SDK
2.1 介绍
ML(Media library)是一个源码产品,用户需要配置和编译成库,然后才能集成进用户的vxWorks映像工程中。
你可以用两种不同的方式配置vxWorks映像来包含ML库,您可以使用Wind River Workbench 把ML组件包含到你的vxWorks映像中,也可以手动编辑您的BSP配置文件来包含或者移除ML组件,然后使用命令行方式编译vxWorks.
当你选择配置和编译WindML的系统的方法时,需要考虑如下两个关键点:
。使用Wind River Workbench配置和编译vxworks映像提供了简单而准确的方法来包含必要的组件并确保相关的依赖也被包含进来。
。使用命令行方式配置和编译vxworks需要编辑包含列表和参数的文本文件,调用make命令创建vxWorks映像。这个过程提供了vxWorks编译的自动化,但是你需要 管理组件的依赖关系。

2.1.1 工程的创建过程概览
Ml使用标准的Workbench工程类型,最少需要:
1 vxWorks映像工程
2 DKM(downloadable kernel module)工程,用于创建配置了WindML功能的静态/动态核心态库对偶。
3 用户应用程序工程
如果用户应用程序工程使RTP(real-time process)建立,那么还需要建立第二个ML库对偶,这次将使用RTP工程配置用户态ML功能,该库可连接到Kernel-mode和user-mode应用程序工程中。如果需要关于库的更多信息,参考2.3.2 Building the Media Library Project.
注:为了可读性,本章在某些地方把DKM(downloadable kernel module)版本的ML库简单称作ML库。可选的real-time process版本的库简称作RTP库或者RTP ML库来和DKM库作区分。
本章假定读者已经拥有对Workbench工程类型拥有基本的理解—Kernel Image, DKM, RTP—这些概念已经在Windriver Workbench 用户指南(Wind River Workbench User's Guide) 中有详细的文档讲述。本章将重点描述如何定制和编译相应的WindML库。
2.1.2 ML库类型
本节将讲述ML库应用程序所使用的四种不同的工程类型。如何整合这些工程将在2.2 Choosing a Use Case 讲述。
ML DKM(Media Library Downloadable Kernel)工程
DKM工程可以用来创建核心态ML库档,提供如下功能特性:
。提供所有的核心态SDK DDK ML目标文件,可用于核心态应用程序
。提供了可供核心态(kernel-mode)和用户态(user-mode , RTP)应用程序使用的低级核心态驱动,这些低级驱动程序在其他场合下(如驱动数据库文件) 可能会被称作iodrv。

库档创建后,库档中的目标模块可以被连接到应用程序和vxWorks映像中(如果应用程序和vxWorks 映像单独连接)。
创建和配置DKM库工程必须在Workbench下完成,ML库工程以DKM library工程(而不是DKM应用程序)建立,并被配置为包含低级驱动的实现和初始化代码、以及任何核心态应用程序所需要的特殊功能。库档建立后,这些模块就可以连接到vxWorks映像中,因此库档应当在vxWorks映像工程之前编译完成。

创建和配置ML库文件必须在Workbench下完成(你不能在命令行下完成该步骤),该项目配置保存到文件中,此后剩下的连接和编译操作在Workbench和命令行编译都是同样的了。

vxWorke 映像
vxWorks映像用于配置和编译vxWorks内核映像以启动目标机。核心模块、应用程序、库、数据文件都可以在编译时连接到一个单独的映像中,或者在运行时分别单独下载。
对ML应用程序,映像建立的时候包含上述的库文件。如果设备相关的配置发生了变化,库工程要使用新的配置重新编译。映像文件也需要重新编译以包含这些变化。但不是所有的库变化都需要映像重编译,如果需要详细信息,可以参考2.4 Configuring the VxWorks Image and Configure the Media Library archives..

ML用户应用程序
ML库应用程序可以独立建立,也可以作为vxWorks 映像的一部分。它可以在编译时连接,也可以编译成可下载的模块在运行时连接,可以在核心态空间创建,也可以在用户态空间创建。如何选择以及相关的详细信息,可以参考2.2 Choosing a Use Case.

Real-time Process Library 工程
如果用户应用程序作为RTP工程创建,需要运行在用户空间,那么必须使用RTP工程创建附加的ML库文件对偶。RTP应用程序可以在编译时连接RTP库文件,并在运行时下载。
如果您的ML应用程序是RTP工程,您只需要创建附加的库。如果RTP库文件已经创建,设备类型和设备名字都必须和用于建立vxWorks映像使用的DKM库保持一致,但是设备的特性可以不同,相关描述可见Configure the Media Library archives..。

2.2 选择方案
有几种不同的方案可供选择来建立、连接、编译和运行ML应用程序。 这些配置叫做use case(方案),用于和ML库的配置区分。本节描述的每个方案都包括如下内容:
。关于应用程序如何建立和运行的简单描述
。描述模块关系(点箭头指示链接,实箭头指示输出)的流图
。选择该方案的优缺点
。用于创建和编译该方案工程的步骤
注:对所有的方案,vxWorks 映像在编译时(指编译时,compile time)都要和ML库文件链接,方案之间的不同点在于应用程序是如何链接到ML库的。


2.3 配置和编译ML库
本节详细描述如何创建、链接、编译各种类型的ML工程—库,映像,应用程序。关于详细的步骤,可以参考(2.2 Choosing a Use Case).  。
这些工程通常按照本章所叙述的顺序建立和编译。
1 配置和编译DKM库,如2.3.1 Configuring the Media Library Archives and 2.3.2 Building the Media Library Project.所描述
2 对用户态应用程序,配置和编译RTP库,如2.3.1 Configuring the Media Library Archives and 2.3.2 Building the Media Library Project. 所描述。
3 配置和编译vxWorks映像,如2.4 Configuring the VxWorks Image. 所述
4 创建和编译应用程序,如2.5 Using the Media Library Application Templates 所示。

当创建ML工程的时候,DKM库必须总是第一个被编译的。典型的,映像工程是第二个被编译的,但是顺序也可能会根据所选择的方案而变。
2.3.1 配置ML库
ML库包含:
。所需的低级功能
。其他核心态SDK和DDK
。用户为应用程序配置的其他功能
库文件主要是DKM项目产生的,对于RTP应用程序还需要第二对RTP库对偶,如果要在Workbench下创建、配置和编译两种ML库文件,按照如下步骤进行。
注:你可以选择在命令行里编译库文件,但是你必须在Workbench下创建和配置ML库,因为配置必须在Configuration Editor里完成,可参考Configuration Editor Reference.

第一步 选择方案
参考Choosing a Use Case.  选择自己的方案,后面的操作步骤中的具体选项取决于你所要编译的应用程序类型。
第二步 选择项目选项
项目中所有的模块必须在下面两个选项中配置一致:单处理器UP,对称多处理器(SMP)
从这两种配置中选择一个合适的选项,并在后面的步骤中保持一致。
第三步 创建库工程
1 在Workbench的File > New菜单中选择你所要创建的库类型
   VxWorks Downloadable Kernel Module Project  适用于所有的Media Library 应用程序所需要的DKM库文件,
    VxWorks Real Time Process Project  适用于RTP应用程序所需要的RTP库文件。
2 按照Wind River Workbench User's Guide  文档中创建工程的指令,使用默认选项并在Build Specs  面板中选择合适的Build Spec 。
  如果你正在创建RTP应用,你需要重复执行该步骤两遍,一次是用来配置DKM版本的库工程,一次是用于创建RTP版本的库工程。
第四步 添加Media Library   组件到库工程
下一步,需要添加 Media Library  组件到DKM工程。按照如下步骤:
  1 选择 File > New > Middleware Component 。 在New Component  页面parent project 列表里面,选择你在步骤3中创建的库工程。注意该工程可能默认不会被高亮。
  2  此时出现Select a Component  页面,从Components面板中可用的组件列表中,选择Media Library 5.1。 然后点Next
  3  Select a Component Template  页面出现,从Templates 面板列表中,选择Media Library Component Configuration ,完成后点Finish 。
  这样会创建下面的ML文件,
config.windml  : Media Library 配置文件
windml.makefile 和windml-env.mk    :用于触发Media Library 库编译的顶层makefile

一旦ML库组件添加到工程中,在workbench的工程浏览器的目录树下就会创建并增加一个名叫windml-5.1 的子目录,config.windml 被保存在该子目录下,两个makefile存放在工程目录下。

步骤5 定义SMP(可选)
如果你的工程是用于SMP的,那么你必需定义该选项。如果你的项目是基于UP的,可以跳过该步骤。

高亮库工程(或右键点击上下文菜单)并选择Properties > Build Properties 。选择Build Macros  宏标签。 在Build macro definitions 下,选择New  ,定义新的宏VXBUILD, 取值为SMP 。然后点击OK.

步骤6 配置Media Library 库文件
  如要配置Media Library  文件,需要使用workbench里提供的Media Library 编辑器,该编辑器在用户把WindML添加到工程中时会被自动显示。如下图所示:
阅读(7801) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~