vxWorks END驱动添加与配置指南

需积分: 12 15 下载量 154 浏览量 更新于2024-10-07 收藏 155KB PDF 举报
"vxWorks以太网协议编程手册" 在VxWorks操作系统中,以太网协议的编程涉及到END(Enhanced Network Driver,增强型网络驱动)的使用,这是数据链路层的一个实现,它通过MUX(Multiplexer,多路复用器)函数与网络服务进行交互。END驱动是VxWorks网络架构的关键组成部分,允许系统连接到以太网并处理网络数据包。 ### END驱动的添加与配置 1. **驱动集成到VxWorks** 将END驱动添加到VxWorks系统的过程类似于添加其他应用。首先,你需要编译驱动代码并将它包含在VxWorks映像构建中。VxWorks支持多个网络设备,因此在`target/config/bspname/configNet.h`文件中,需要对每个设备的配置进行定义。 2. **配置常量** - `MOT_FCC_LOAD_FUNC`: 这个宏定义了驱动的加载函数入口点,例如`endLoad()`。在本例中,如果`endLoad()`的入口点是`sysMotFccEndLoad()`, 那么在`configNet.h`中应设置`#define MOT_FCC_LOAD_FUNC sysMotFccEndLoad`。 - `MOT_FCC_LOAD_STRING`: 这个宏定义了一个字符串,该字符串在初始化时传递给`muxDevLoad()`作为`initString`参数,并且也会传递给`endLoad()`函数。具体内容根据驱动的需求而定。 3. **更新`endDevTbl`** `endDevTbl`是一个END设备表,其中包含了所有要加载的END驱动的详细信息。例如: ```c END_TBL_ENTRY endDevTbl[] = { {0, LOAD_FUNC_0, LOAD_STRING_0, BSP_0, NULL, FALSE}, {1, LOAD_FUNC_1, LOAD_STRING_1, BSP_1, NULL, FALSE}, {0, END_TBL_END, NULL, 0, NULL, FALSE}, }; ``` - 第一个参数是设备号。 - `LOAD_FUNC_X`对应`MOT_FCC_LOAD_FUNC`定义的加载函数。 - `LOAD_STRING_X`对应`MOT_FCC_LOAD_STRING`定义的加载字符串。 - `BSP_X`通常指的是板级支持包(Board Support Package)的标识符。 - 最后的`FALSE`表示驱动尚未被处理;加载成功后,该值将更改为`TRUE`。若要禁用自动加载,可以将其设为`TRUE`。 ### END驱动的操作流程 END驱动的操作主要包括以下几个步骤: - **初始化**:系统启动时,`endLoad()`函数会被调用,它负责初始化网络设备,包括分配资源、配置硬件等。 - **数据传输**:当网络数据包到达或需要发送时,END驱动会处理这些数据包,进行必要的协议转换,并通过MUX函数与上层的IP或其他网络服务通信。 - **中断处理**:硬件中断通常用于通知END驱动有新的数据到达或需要发送数据,驱动会处理这些中断事件。 - **状态维护**:驱动还需要维护设备的状态,如连接状态、错误状态等。 ### 结论 在VxWorks中,正确配置和编写END驱动是实现以太网功能的关键。理解如何在`configNet.h`中定义设备配置,以及如何利用`endDevTbl`管理驱动加载,对于开发和调试网络功能至关重要。通过END驱动,开发者能够充分利用VxWorks的网络能力,实现高效可靠的以太网通信。