当前位置:首页 > 嵌入式 > 嵌入式软件
[导读] 1.组件概述VxWorks的配置和裁剪是以组件为基本单位。组件是VxWorks相对独立和完整的一个功能模块,也是系统中最小的、可升级的单元,它通常不再包含子节点。VxWorks用CDF文

 1.组件概述

VxWorks的配置和裁剪是以组件为基本单位。组件是VxWorks相对独立和完整的一个功能模块,也是系统中最小的、可升级的单元,它通常不再包含子节点。

VxWorks用CDF文件来描述系统中的组件。CDF(Common Data Format)称作通用数据格式文件,是一种用于存储数据、访问多维数据集的文件格式。CDF文件的后缀为.cdf,用户可以使用CDF文件非常方便地定义系统的特征参数,描述一个组件,并将其配置到不同的系统中。

使用组件技术,使用用户在开发过程中能够高效构建VxWorks系统,避免传统构造头文件带来的低效、复杂、易出错等缺点。而且,Tornado 2.x的图形配置工具和工程管理工具增强了组件相互依赖的可视性。

2.组件构成

组件实际上是一个功能部件具体实现部分的描述信息,它定义了与组件相关的源代码或目标代码、集成信息以及与组件相关的参数。组件包含以下元素:

(1)NAME:一个可读的名称,在工程组件管理器中出现在组件图标旁边。

(2)SYNOPSIS:对组件的简洁的描述。

(3)MODULES:与组件关联的目标文件。

(4)HDR_FILES:使用该组件时需要用到的相关头文件。

(5)CFG_PARAMS:与组件相关的一些配置参数,通常为一系列的宏。

3.组件描述文件的读取顺序

组件描述文件必须有.cdf后缀。所有的CDF文件名称以两个十进制数字开始(即00xxxx.cdf),开始的这两个数字控制一个目录中CDF文件读取顺序。

组件描述文件通常在工程创建时被读取,如果两个文件描述同一组件的同样特征,则它将读取后一个而不考虑以前的。优先权通常以两种约定方式建立:

(1)CDF文件存放在确定目录下。这些目录以如下顺序读取:

<1>$(WIND_BASE)\target\config\comps\VxWorks:包含一些通用组件;

<2>$(WIND_BASE)\target\config\comps\VxWorks\arch\arch:包含特定体系结构的组件;

<3>$(WIND_BASE)\target\config\bsp:包含特定BSP的组件;

<4>工程目录:包含该工程的一些特定组件。

(2)在同一目录下,文件头部的两个数字决定读取顺序。

4.组件的封装规则

Wind River公司将部分组件安装在其传统位置上。

(1)源码模块可在target/src或target/config目录下找到。

(2)标题头至于target/h中;目标模块在target/lib/objARCH中。

(3)组件描述文件在target/config/comps/VxWorks中。

(4)组件配置文件(源码片段)位于target/config/copms/src。

第三方受限于这些规定,组件元素在组件描述文件中完全给出。建议第三方把组件源和目标元素置于一个特定目录下,如target/config/vendor_name。组件描述文件(CDF)的位置取决于组件集成在系统中的位置。

若要在一个完整系统中集成新的组件,CDF应该置于target/config/comps/VxWorks目录下。凡是在该文件夹下的说明这些配置通用于各种BSP。

若它是一个BSP特定组件,则应该放在BSP目录下,表示它是针对当前BSP的特殊配置。若其特别服务一个单一工程,则它放在工程目录(target/proj/project_name)下。

第三方组件不允许覆盖WindRiver支持的文件,但可在其自身组件描述文件中忽略Wind River的组件描述。

5.组件的可视化

Vxworks通过CDF文件为Tornado配置工具提供了BSP的配置信息。Tornado集成开发环境使用CDF文件把文件夹、组件、参数、选项文件夹等配置项构建成VxWorks系统的配置树,通过VxWorks组件管理器界面供用户查看和修改。

一旦我们创建了一个新的组件,那么在Tornado的VxWorks组件管理器中可以展开组件树,找到新定义的组件,然后选择配置或裁减。

(1)通过选择include/exclude实现裁剪。在开发一个BSP的初期,往往需要裁减掉一些高级功能支持,先构建一个支持时钟中断的最小内核。调试通过后,逐步增加高级功能模块组件支持,最后开发出一个功能相对完整的VxWorks操作系统。

(2)通过修改属性参数(选项)实现配置。例如我们可能要到“VxWorks->hardware->memory->BSPMemory Configuration”中去修改一些内存配置相关的宏。

当然,一切都是代码或脚本描述的,IDE只是一种可视化交互编辑环境。在Tornado运行期间,试图去修改脚本或代码可能不会实时同步体现到Tornado中,此时先关闭Tornado,修改完源文件再开启Tornado重新加载,即可看到修改后的结果。在Tornado IDE中配置或裁减组件,在合适的时候(dependency or build)会反馈到源文件代码中。

Tornado工程配置工具把收集到的用户配置信息反馈体现到工程的相关源文件中,从而实现了VxWorks的自动配置和裁剪。组件包含开关宏(COMPONENTS INCLUDED)和宏参数(PARAMETERS)将体现在动态生成的prjParams.h和prjComps.h文件中。prjParams.h通常被config.h包含,prjComps.h将被target\config\comps\src\configAll.h包含。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭