BSP与VxWorks操作系统的层次结构如下图1所示:

基于PC104总线的板载支持包的设计与开发

基于PC104总线设备的VxWorks操作系统映像开发主要工作有3个方面:

①板载支持包设计与开发

VxWorks实时操作系统的板载支持包的开发通常提供一般模板程序,选择一个相同处理器结构板载支持包进行设计。

②相关外围硬件设备驱动程序

嵌入式系统是针对某一具体应用场合开发的专用系统,因此常常会使用到一些非标准的硬件设备,而VxWorks操作系统并不提供相关的外设驱动程序,使用时需自行开发相应的外设驱动程序。

③操作系统映像配置与生成

对VxWorks操作系统各个功能模块进行配置,使其在满足功能需求的条件下达到代码量最小,同时也减少出错的可能性。

2.2 BSP的基本功能及其启动过程分析

VxWorks板级支持包BSP在功能上包含两个部分:初始化和驱动程序支持。BSP提供了VxWorks同硬件环境的基本接口界面,并在上电时进行硬件初始化(包括中断向量的初始化、定时器初始化、核心内存映象的加载等),支持VxWorks对硬件驱动的访问,将 VxWorks中软件集成到一体,其功能相当于PC机的BIOS。

VxWorks内核的加载分为两个步骤,第一个步骤是PCBIOS对bootrom的加载,第二个步骤是BSP引导映像bootrom对VxWorks操作系统映像加载。基本流程如下所示:

2.3 BSP中函数调用过程分析

BSP启动操作系统的过程中,需要调用一列函数以完成对系统内存映像的加载,整个过程分析如下,RomInit函数初始化处理器,关闭高速缓存,关中断,初始化内存。接着调用RomStart,把映像的数据段拷贝到RAM中去,然后调用usrInit()对Bss段清零,调用intVecBaseSet()设置矢量基地址表,调用excVecInt()初始化中断以及异常的向量表,初始化系统硬件,调用 usrKernelInit()初始化wind内核,最后执行流程执行到kernelInit(),kernelInit启动wind内核。Wind内核的第一个任务是usrRoot它通过调用usrAppInit启动用户的任务,系统可真正启动。

  • UC3846控制芯片工作原理控制图 逆变焊机原理与用途
  • 数字万用表电阻档测试二极管正反向没有阻值(使用万用表测量二极管的正向电阻,为什么各档)
  • 学单片机需要学数电模电吗(学单片机要先学数电模电吗)
  • 电工怎么选择适合自己用的万用表(电工初学者买什么样的万用表好)
  • 单片机需要同时运行多个任务怎么办(单片机怎么同时执行多个任务)
  • 电机保护的方案取决于负载的机械特性
  • 绝缘电阻表正负搭接不复零位是怎么回事
  • 短路怎么用万用表查