Tool之VIP

2019-07-10 15:34:04 浏览数 (1)

VIP,就是VxWorks Image Project,Workbench中最基本的工程了,用于构建系统镜像

在Workbench的Kernel Configuration里,可以通过图形化的方式来配置VIP的组件(Component)。这些组件将预先编译的库文件链接到系统镜像中,来实现不同的系统功能

创建VIP时,一般使用默认的配置;也可以根据特定需求,来选择预定义的一些profile,例如Development等

  • PROFILE_SMALL_FOOTPRINT - 小内存、小内核,基本系统功能
  • PROFILE_COMPATIBLE - 兼容VxWorks 5.5的最小配置
  • PROFILE_DEVELOPMENT - 包含开发/调试组件,及RTP
  • PROFILE_ENHANCED_NET - 典型的网络组件,例如DHCP客户端、DNS、Telnet Server等
  • PROFILE_BOOTAPP - boot loader机制

创建后,还可以使用Bundle来添加一组相关的组件,例如POSIX

在开发过程中,还可以根据需求的变化,动态的调整组件。例如为了方便调试,添加Kernel Shell、EDR等组件

而到了产品交付阶段,为了减少内存消耗、加快引导速度,以及为了安全问题,很可能还会移除那些用于调试的组件,例如INCLUDE_WDB

另外,很多组件之间是有依赖关系的,Kernel Configuration会自动检测并关联它们

VIP中已经包含的组件会用粗体显示

组件的Macro Name多是以INCLUDE_开始的,少数以DRV_为前缀的是VxBus驱动

部分常见组件如下

  • INCLUDE_ANSI_XXX - 多种ANSI C库
  • INCLUDE_BOOTLINE_INIT - 解析引导设备配置信息
  • INCLUDE_CACHE_SUPPORT - Cache的支持
  • INCLUDE_CPLUS - C 的支持
  • INCLUDE_CPLUS_XXX - C 的多种功能
  • INCLUDE_DEBUG - Kernel Shell调试机制
  • INCLUDE_EDR_XXX - EDR机制
  • INCLUDE_DOSFS - DOS兼容文件系统
  • INCLUDE_FLOATING_POINT - 浮点I/O
  • INCLUDE_FORMATTED_IO - 格式化I/O
  • INCLUDE_IPFTPS - FTP服务器
  • INCLUDE_IO_SYSTEM - I/O系统及相关接口,目录与路径相关函数
  • INCLUDE_LOADER - Kernel对象模块加载机制
  • INCLUDE_LOGGING - 日志机制
  • INCLUDE_MEM_MGR_BASIC - 内核内存分区管理
  • INCLUDE_MEM_MGR_FULL - 全功能内存管理
  • INCLUDE_MIB2_XXX - 多种MIB-2选项
  • INCLUDE_MMU_BASIC - MMU的支持
  • INCLUDE_MSG_Q - 消息队列
  • INCLUDE_NETWORK - 网络系统
  • INCLUDE_NFS - 网络文件系统NFS
  • INCLUDE_NFS_SERVER - NFS服务器
  • INCLUDE_PIPES - 管道驱动
  • INCLUDE_POSIX_XXX - 多种POSIX功能
  • INCLUDE_PROTECT_TEXT - 文本段写保护
  • INCLUDE_PROTECT_VEC_TABLE - 像量表写保护
  • INCLUDE_PROXY_CLIENT - Proxy ARP客户端
  • INCLUDE_PROXY_SERVER - Proxy ARP服务器
  • INCLUDE_RAWFS - Raw文件系统
  • INCLUDE_RLOGIN - rlogin远程登录
  • INCLUDE_ROMFS - ROMFS文件系统
  • INCLUDE_RTP - 实时进程RTP
  • INCLUDE_SCSI - SCSI支持
  • INCLUDE_SCSI2 - SCSI-2扩展
  • INCLUDE_SECURITY - 远程登录安全包
  • INCLUDE_SELECT - Select机制
  • INCLUDE_SEM_BINARY - 二进制信号量
  • INCLUDE_SEM_COUNTING - 计数信号量
  • INCLUDE_SEM_MUTEX - 互斥信号量
  • INCLUDE_SHELL - Kernel Shell
  • INCLUDE_XXX_SHOW - 多种系统对象的Show机制
  • INCLUDE_SIGNALS - 信号Signal机制
  • INCLUDE_SM_OBJ - 共享内存对象
  • INCLUDE_SPY - 任务的活跃度监测
  • INCLUDE_STDIO - 标准缓存I/O
  • INCLUDE_SW_FP - 软件浮点
  • INCLUDE_SYM_TBL - 符号表
  • INCLUDE_TASK_HOOKS - Kernel调用的任务钩子
  • INCLUDE_TASK_VARS - 任务变量
  • INCLUDE_IPTELNETS - Telnet远程登录
  • INCLUDE_TFTP_CLIENT - TFTP客户端
  • INCLUDE_TFTP_SERVER - TFTP服务器
  • INCLUDE_TIMEX - 测量函数执行时长的机制
  • INCLUDE_TRIGGERING - 系统与用户事件的Trigger
  • INCLUDE_UNLOADER - Kernel对象模块卸载机制
  • INCLUDE_VXEVENTS - VxWorks事件机制
  • INCLUDE_WATCHDOGS - 看门狗机制
  • INCLUDE_WDB - WDB机制
  • INCLUDE_WDB_TSFS - Target Server文件系统
  • INCLUDE_WINDVIEW - System Viewer机制

除了组件,在VIP中还可以直接包含应用程序

也可以把应用程序编成库(.a文件),然后链接到VIP中。如果有多个.a文件,就用空格间隔开

还可以添加应用程序的头文件路径

Build VIP后,就会在工程目录里生成default/vxWorks文件。这就是最终的系统镜像,被boot loader加载到Target的RAM里执行后,就是VxWorks系统了

有了VIP,接下来就可以开发内核态应用(DKM)、用户态应用(RTP),包含内存文件系统(RomFS),创建共享库(SL)等等。我们的征途是星辰大海,从现在开始,一步步,慢慢来

这正是:

工欲善其事,必先利其器。

跬步至千里,基础VIP。

0 人点赞