VxWorks kernal programmers guide 联系客服

发布时间 : 星期六 文章VxWorks kernal programmers guide更新完毕开始阅读73f45dfea0116c175f0e48a7

2.4.2 VSB原型

VSB原型提供提供了一个方便的定义一组VSB选项的方法用于创建设计用于具体目的的操作系统设备。一个VSB原型做如下事情:

? 展示一组供用户改变的VSB选项。

? 隐藏和原型目的无关的其它选项或用户不能改变的选项。 ? 为原型目的设置所有默认选项。

如,参考2.5.2 Configuring Small Footprint VxWorks。

2.4.3 使用VSB工程创建VxWorks系统基本步骤

使用VSB工程来配置和构建VxWorks,涉及如下基本步骤(使用Workbench或vxprj命令行工具):

1. 创建一个VSB工程,选择期望的VSB选项,之后编译工程创建具体VxWorks库版本和使用其它优化;

2. 基于VSB工程创建有一个VIP。

3. 使用VIP,用期望的组件配置VxWorks,之后基于专门的库版本编译工程,创建系统镜像。

注:工具配置防止增加用VSB工程创建的定制库不支持的组件。

2.4.4 针对VSB系统开发内核应用

因为用VSB工程创建的系统包含标准VxWorks库版本,趋向于运行在那些系统上的内核应用必须带编译时连接到版本库。相关信息,参考Wind River Workbench by Example guide和

VxWorks

Command-Line Tools User’s Guide。

2.5 小型化Vxworks配置

VxWorks可以使用一个小型化原型配置产生一个携带小型化内存的最小内核。

注:所有体系结构不支持VxWorks的小型化配置。关于支持的信息,参考VxWorks

Architecture

Supplement和VxWorks BSP Reference。

2.5.1

2.5.2

2.5.3

2.5.4

2.5.5

2.5.6

关于小型化VxWorks 配置小型化VxWorks

针对小型化VxWorks的配置和编译步骤 针对小型化VxWorks开发应用 应用例子

调试小型化VxWorks

2.6 电源管理

开始于VxWorks 6.2版本,增强电源管理设备由因特体系结构(IA)提供。早期版本针对其它体系结构提供的设备保持不变。针对其它体系结构提高的新设备在以后发布。参考2.6.1 Power Management for IA Architecture和2.6.2 Power Management for Other Architectures。

2.6.1 针对IA体系结构的电源管理

2.6.2 针对其他体系结构的电源管理

2.7 VxWorks镜像类型

不同的VxWorks镜像类型可以用于不同的引导方法,存储,加载和执行场景。如下镜像的默认版本在VxWorks安装中被提供。可以创建由不同组件组成的定制版本。

仅vxWorks镜像类型——有时值一个可下载镜像——需要一个boot loader。这种方法在开发环境下最通用(最实际),因为不需要每次修改的时候重新烧录到flash或拷贝到目标存储媒介。镜像通常存储在主机系统中。

其它镜像类型——有时指独立镜像——不需要一个独立的boot loader。通常用于生产系统,存在在flash中。独立镜像需要配置非默认启动参数(参考2.7.3 Boot Parameter Configuration for Standalone VxWorks Images)。

不同的VxWorks镜像类型,用法,行为描述如下: vxWorks

VxWorks镜像类型目的是开发过程中使用,通常指downloadable。在生产系统下也非常用于,boot loader 和系统镜像被存储在磁盘上。在开发环境中,镜像通常存储在主机系统(或网络服务器上),通过boot loader下载到目标系统,并加载到RAM。特征表在主机上维持(vxWorks.sym文件),用于主机开发工具。保存特征表在主机上减少了要加载到目标机上的镜像大小,减少了启动时间。

若VxWorks配置了INCLUDE_STANDALONE_SYM_TBL组件,特征表包含在VxWorks镜像中。

vxWorks_rom

一个存储在目标机上非易失性设备上的VxWorks镜像。它拷贝本身到RAM,之后切换处理器到RAM执行。因为镜像没有压缩,所有比基于ROM镜像大,因此有一个比较慢的启动时间;但是比vxWorks_romResident镜像执行时间快。关于启动参数配置信息,参考2.7.3 Boot Parameter Configuration for Standalone VxWorks Images。

vxWorks_romCompress

一个存储在目标机上非易失性设备上的VxWorks镜像。几乎整个压缩,有很小未压缩部分在设备上电或复位时处理器立即执行。这一部分代码负责解压缩ROM镜像中压缩部分到RAM,切换处理器到RAM执行。因为是压缩镜像和其它镜像比需要更小的存储空间,但是解压缩延长启动时间。和vxWorks_rom比启动时间更长,使用的ROM空间少。和vxWorks_rom有同样的运行速度。关于启动参数的配置,参考2.7.3 Boot Parameter Configuration for Standalone VxWorks Images。

vxWorks_romResident

一个存储在目标机上ROM中的VxWorks镜像。启动时仅拷贝dss段到RAM;text段

仍保持在ROM中。因此描述为ROM-resident。启动比较快,使用RAM很小,但是运行比较慢,因为ROM访问提取指令比RAM提取指令慢。对于有内存限制的系统比较有用。启动参数配置信息,参考2.7.3 Boot Parameter Configuration for Standalone VxWorks Images。

2.7.1 默认VxWorks镜像

默认VxWorks镜像文件在installDir/vxworks-6.x/target/proj/projName下。如: /home/moi/myInstallDir/vxworks-6.x/target/proj/wrSbc8260_diab/default_rom/vxWorks_rom

2.7.2 针对开发和生产系统的VxWorks镜像

对于很多生产系统通常必须在ROM中存储一个和VxWorks链接的内核应用模块。VxWorks要配置在启动时自动执行应用。系统镜像可以见到存储应用模块允许被其它函数调用,或被终端用户交互使用(如,诊断程序)。

为了生产一个基于ROM的系统,你必须链接模块到v xWorks,并编译为适合ROM的系统镜像类型。相关信息,参考4.12 Configuring VxWorks to Run Applications Automatically。若你想在启动时自动启动应用,你必须配置VxWorks如下(4.12 Configuring VxWorks to Run Applications Automatically)。或参考4.13 Image Size Considerations。

注明,开发过程中,VxWorks必须配置WDB目标代理通讯接口,用于连接主机和目标机系统(网络,串口等)。默认,配置为一个增强网络驱动(END)连接。更多信息,参考D. WDB Target Agent。注明在使用主机开发工具之前,如shell和debugger,必须启动一个目标服务器,配置为通讯的相同模式。

关于配置带不同操作系统工具的VxWorks的信息,参考2.3.2 Device Driver Selection。 若你想在flash在存储镜像,想使用用户TrueFFS,参考13.3.6 Reserving a Region in Flash for a Boot Image。

2.7.3 单独VxWorks镜像启动参数配置

依赖系统需求,你可能需要为一个独立的镜像静态的重新配置启动参数——也就是说,不需要一个boot loader——指所有的系统镜像,除了downloadable vxWorks镜像。如一个网络目标机大多数需要设置本身的IP地址为一些默认的信息。

使用INCLUDE_BSP_MACROS组件的DEFAULT_BOOT_LINE配置参数设置启动参数。针对vxWorks的配置过程和boot loader的配置过程一样。关于boot loader的信息,参考3.5.2 Description of Boot Parameters。关于静态配置的信息,参考3.7.3 Configuring Boot Parameters Statically。

3 Boot Loader

3.1 介绍

一个VxWorks boot loader是一个应用,目的是加载一个VxWorks image到目标机。有时

VxWorks

Bootrom,但是这个词不推荐使用(合并应用和媒介)。如VxWorks,boot loader可以用

不同的工具配置,如命令行工具动态设置启动参数,一个网络loader,和一个文件系统loader。 相同的boot loader VxWorks 配置用于单处理器(UP),对称多处理器(SMP),和非对称多处理器(AMP)。

在一个开发环境中,boot loader对于从一个主机系统加载一个VxWorks镜像时非常有用的,在主机系统上,VxWorks可以快速修改和编译。当boot loader和操作系统都存储在磁盘

上或其它媒介上时,也可以用于生产系统。

Self-booting (standalone) VxWorks images不要求一个boot loader。这些镜像通常用于生产系统(存储在non-volatile设备上)。更多信息,参考2.7 VxWorks Image Types。

常常,boot loader被烧录到一个non-volatile设备(flash内存或EEPROM)上具体地址处,这个地址是目标机上电或重新启动后,处理器执行的第一条代码处。获取烧录在non-volatile设备上的boot loader,或写入到一个磁盘的方法取决于目标机,在BSP参考文档中描述。

VxWorks产品安装包括针对每一个安装BSP的默认boot loader。若它们不满足要求,你可以创建定制boot loaders。如,你可能需要使用一个不同的网卡驱动通过网络来加载Vxworks镜像,或你为了部署系统删除boot loader shell。

本章涉及的信息,特别是关于安装一个cross-development环境的信息,参考Wind River Workbench by Example。

3.2 使用默认boot loader

默认boot loader设计用于一个网络目标,必须配置相关参数,如主机和目标网络地址,加载文件全目录和文件名,用户名等。为了使用默认boot loader,你必须使用boot loader shell交互式的改变默认参数,以至于loader可以找到主机上的VxWorks镜像,并加载到目标机。

进入引导参数后,目标机启动VxWorks镜像。大多数目标机,新的设置会保存(在non-volatile设备或磁盘上),所有你可以直接启动目标机,不需要重新设置默认参数。

在一个终端控制台上,可以和boot loader shell交互,这个终端控制台,通过串口连接主机和目标机,在主机上启动一个终端应用程序。建立通讯的具体信息,参考相关文档。

默认boot loade镜像位于installDir/vxworks-6.x/target/config/bspName。Boot loader命令和参数在3.4.1 Boot Loader Shell Commands描述和3.5 Boot Parameters。提供不同的Boot loader镜像类型,如3.3 Boot Loader Image Types描述。

3.3 Boot Loader Image类型

Boot loader镜像可以存储在ROM,flash,磁盘,或存储在网络上。Boot loader镜像是ELF个数。二进制版本(.bin)用于磁盘,16进制文件版本(.hex)用于烧录non-volatile设备。什么样的目标机选择什么样的boot loader,参考BSP相关文档。

下面描述了boot loader的不同版本。下面列出的每一组镜像的第一个镜像是通过PROFILE_BOOTAPP配置原型产生的,第二个通过传统的bspDir/config.h方法。关于编译方法的更多信息,参考3.7 Configuring and Building Boot Loaders。

Compressed Image

vxWorks_romCompress 和 bootrom 文件 这个镜像几乎是整个压缩的。有一小部分未压缩部分,在设备上电或复位之后处理器立即运行。这部分初始化内存和解压缩压缩部分(存储在非易失性设备上)到RAM,导致处理器切换到RAM执行。压缩镜像比其他boot loader镜像小,因此使用比较小的非易失性存储空间。然而,解压缩增加了启动时间。

Uncompressed Image

vxWorks_rom 和 bootrom_uncmp 文件 这个镜像没有压缩。拷贝本身到RAM,处理器切换到RAM执行。因为镜像没有压缩,所以比压缩镜像大。然而,启动时间比较快,因为不需要要求的解压缩操作。

Resident in Non-Volatile Storage

vxWorks_romResident 和 bootrom_res 文件