本篇文章,我们该谈到Wind内核的内存管理模块了,嵌入式操作系统中, 内存的管理及分配占据着极为重要的位置, 因为在嵌入式系统中, 存储容量极为有限, 而且还受到体积、成本的限制, 更重要的是其对系统的性能、可靠性的要求极高, 所以深入剖析嵌入式操作系统的内存管理, 对其进行优化及有效管理, 具有十分重要的意义。在嵌入式系统开发中, 对内存的管理有很高的要求。概括地说, 它必须满足以下三点要求:

本文将分析VxWorks的初始化,VxWorks的初始化可以分成两个部分:

  1. 具体处理器平台相关的硬件初始化:包括CPU内部寄存器、堆栈寄存器的初始化,外设初始化;
  2. VxWorks内核初始化:包括核心数据结构的初始化、初始任务的创建,启动多任务等等。

本文将以Pentium平台为例,来分析VxWorks的初始化过程。

6.1 处理器平台相关的初始化

这部分代码初始化CPU内部寄存器,是VxWorks在内存中的入口代码。其主要工作是关中断,初始化CPU内部寄存器,特别是栈寄存器,分配栈空间。为运行第一个C函数usrInit()建立环境。

具体代码如下:

本文介绍了VxWorks Workbench开发环境相关的快速教程

1. 启动Wind River Workbench

可以按照如下步骤来启动Wind River Workbench IDE(Integrated Develoment Environment),从菜单选择,Applications men -> Development -> Wind River Workbenche, 或者从命令行运行/opt/WindRiver/workbench-4/startWorkbench.sh,下面的窗口将会询问并让我们选择工作空间workspace。

WRS Workspace How To

这儿的Workspace是你的项目存放的地方,建议将workspace放置到你的Home目录下(/home.nfs/)。

为了实现应用层程序的平台无关性,操作系统为应用层提供了一套标准的接口函数,这些接口函数在所有的平台上都保持一致,只是随着平台的变化,底层驱动或接近驱动部分操作系统中间层可能会随着调整。这样可以使用户程序独立于具体的硬件平台,增加了应用层开发的效率,避免了重复编码。通用操作系统GPOS(General Purpose Operating System)比如Unix,Linux,将这套提供给应用层的标准接口函数从操作系统中独立出来,专门以标准库的形式存在,增加了应用程序的平台无关性,平台之间的差别完全被操作系统屏蔽。

5.3 AM79C97X驱动的动态配置安装及使用过程

5.3.1 AM79C97X驱动的动态配置安装过程

上一节分析了网卡驱动的数据结构与系统中不同的层次数据结构的相互关系,作为驱动程序的主要目的,就是要建立一个符合系统要求的数据结构关联,只有建成了完整的数据结构关联,系统才能够使用网卡驱动。本节从网卡驱动相关的数据结构的动态创建过程出发,了解驱动程序的配置安装过程。

对网卡来说,该安装过程首先分为两部步:第一步,对各个PCI设备挨个进行检查,发现其中的AM79C97X网络芯片设备,其过程如图5.15所示。