VxWorks网络驱动配置及分析
来源:互联网 发布:数据新闻案例分析 编辑:程序博客网 时间:2024/05/20 21:05
VxWorks网络驱动可参见VxWorks网络驱动
1.BSD4.4网络驱动设置.
网络设备驱动的调用主要在/target/src/config/usrNetwork.c文件中,下面说明BSD4.4驱动在VxWorks系统调用.
主要调用过程如下:
VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中usrRoot()=======>>target\src\config\usrNetwork.c文件中的 usrNetInit
( )通过数组表netIf[]初始化相应的BSD网卡驱动.在usrNetwork.c中的调用过程如下:
usrNetInit()函数中调用usrNetIfAttach():
#ifdef INCLUDE_BSD
if (!attached)
{
if ((usrNetIfAttach (pNetDev,params.unitNum, pBootString) !=OK))
return (ERROR);
attached =TRUE;
}
#endifusrNetIfAttach ()函数中调用数组表usrNetIfTbl
for (pNif =
usrNetIfTbl;pNif->ifName != 0; pNif++)
{
if (strcmp(buf, pNif->ifName) == 0)
break;
}
网络BSD驱动数组表usrNetIfTbl在文件/target/src/config/usrNetwork.c中的定义初始化:
...
LOCAL NETIF netIf []=
{#ifdefINCLUDE_DC
{"dc", dcattach, (char*)IO_ADRS_DC, INT_VEC_DC,INT_LVL_DC,
DC_POOL_ADRS, DC_POOL_SIZE, DC_DATA_WIDTH, DC_RAM_PCI_ADRS,
DC_MODE},
#endif
#ifdefINCLUDE_FEI
{"fei", feiattach,(char*)FEI_POOL_ADRS, 0, 0, 0, 0},
#endif
#ifdefINCLUDE_EX
{"ex", exattach,(char*)IO_ADRS_EX, INT_VEC_EX, INT_LVL_EX,
IO_AM_EX_MASTER, IO_AM_EX },
#endif
#ifdefINCLUDE_ENP
{"enp", enpattach,(char*)IO_ADRS_ENP, INT_VEC_ENP, INT_LVL_ENP,
IO_AM_ENP},
#endif...
}
设置方法:
从以上可以看出BSD网络驱动只需在BSP配置文件config.h中将网络(#define
INCLUDE_NETWORK)BSD网卡宏定义(#define INCLUDE_xxx)和一些I/O参数(一般不需要)加入,则在文件usrNetwork.c中进行相应的初始化. 如:在VxWorks加入支持intel的网卡驱动.在config.h中加入"#define
INCLUDE_FEI".
主要网卡定义如下:
#define
INCLUDE_ENE
#defineINCLUDE_ELT
#defineINCLUDE_ESMC
#defineINCLUDE_FEI
#defineINCLUDE_ELC
#defineINCLUDE_EEX
#defineINCLUDE_EEX32
#defineINCLUDE_EX
#defineINCLUDE_ENP
#defineINCLUDE_SM_NET
#defineINCLUDE_SM_SEQ_ADDR
#defineINCLUDE_EL_3C90X_END
#defineINCLUDE_LN_97X_END
....
2.END网络驱动设置.
END网络设备的初始化主要通过定义在文件configNet.h中的一个数组表实现.初始化网络时muxDevLoad()会按这个表的定义把end初始化安装到VxWorks系统. 主要调用过程:
VxWorks系统执行的第一个任务target\config\all\usrConfig.c文件中usrRoot()=======>>target\src\config\usrNetwork.c文件(该文件初始化TCP/IP)中usrNetInit(BOOT_LINE_ADRS)(该函数作用是添加MUXEND)========>>pcooki= pCookie =muxDevLoad(pDevTbl->unit,.....)其中pDevTbl在BSP网络配置文件configNet.h中定义.END_TBL_ENTRYendDevTbl[]={...},该表定义了网络设备的具体参数.
configNet.h部分定义如下所示:
#define DEC_LOAD_FUNCdec21x40EndLoad
#define DEC_BUFF_LOAN 1
# define DEC_LOAD_STRING
"0x81020000:0x80000000:0x12:0x12:-1:-1:-1:0:0x80800
000"
IMPORT END_OBJ* DEC_LOAD_FUNC (char*, void*);END_TBL_ENTRY endDevTbl [] =
{ 0, DEC_LOAD_FUNC, DEC_LOAD_STRING, DEC_BUFF_LOAN, NULL,FALSE},
{ 0, END_TBL_END, NULL, 0, NULL, FALSE},
};设置方法:
由以上可看出在VxWorks添加END网络驱动
- 在文件config.h中添加"#define
INCLUDE_NETWORK"和"#define INCLUDE_END".
- 在configNet.h中加入END驱动的入口函数"#define
xxx_LOAD_FUNC xxxxxEndLoad "和一些相关的初始化字符串.
这样就会在生成BSP包含END/MUX,系统网络初始化调用函数muxDevLoad()会更据这个表初始化END网络.
文件configNet.c关于END驱动初始化的主要内容:
#ifdef INCLUDE_END
IMPORTint ipAttach ();
IMPORT END_TBL_ENTRYendDevTbl[];
#endif..........
#ifdef INCLUDE_END
int count;
END_TBL_ENTRY* pDevTbl;
END_OBJ* pCookie = NULL;
END_OBJ* pEnd;
#endif#if defined(INCLUDE_END)
muxMaxBinds =MUX_MAX_BINDS;
if (muxLibInit() == ERROR) ..........
关于DEFAULT_BOOT_LINE 的解释
这一行对配置网络,连通Target Server及下载调试程序非常重要
DEFAULT_BOOT_LINE
的原意是为没有NVRAM的target设计的,这样用户就不需要在每次系统启动是手工输入这些参数了. 系统启动网络时xxxEndLoad()会解释这一行并按这一行的定义进行加载.
Emac(0,0) : 启动设备,可是是软盘,硬盘,PCMCIA卡等 其他的设备名称如:
fd为软盘,(0,0)表示第一个软驱,3.5寸盘.
dc则表示从DEC 21x4x 芯片启动,即系统有NVRAM存在,这种方式现在已不采用.
elpci表示启动设备为3COM EtherLink XL PCI网卡.
fei:Intel 82559 EtherExpress网卡.
ene: NE2000网卡
ELT: 3COM以太网卡
EEX: Intel网卡
ata: ATA/IDE 硬盘 ............405GP: 主机名
vXworks 从主机加载的VxWorks文件
h=172.16.1.159主机的IP地址 e=172.16.254.52 目标机的IP地址,若网络启动Target Server时,这个IP必须和主机上TargetServer配置的Target IP地址一致,且设置Back End选项为wdbrpc
u=xxx用户名,pw=xxx 密码:若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同
tn=vxTarget 目标机名称*/
#define DEFAULT_BOOT_LINE \
"Emac(0,0)405GP:vxWorks h=172.16.1.159 e=172.16.254.52 \
u=xxx pw=xxx tn=vxTarget"
- VxWorks网络驱动配置及分析
- VxWorks网络驱动配置及分析
- VxWorks网络驱动配置及分析
- VxWorks网络驱动配置及分析 来源:http://www.cublog.cn/
- vxWorks硬盘驱动加载分析。。。待续
- 关于VXworks网络配置报错问题。
- VxWorks消息队列分析及应用
- VxWorks系统的网络驱动(END)(转载…
- VxWorks系统的网络驱动(END)(转载…
- 【转】PowerPC VxWorks BSP分析5——VxWorks设备驱动
- S3C2440 VxWorks移植随笔--LCD驱动及WindML
- linux网络驱动分析
- imx6ul linux4.1.15 LED驱动配置及heartbeat源码分析
- NetMos 9845 VxWorks驱动
- pl2303 VxWorks驱动
- VxWorks串口驱动概述
- vxworks pci驱动
- vxWorks驱动架构
- S3C2440 VXWORKS 移植笔记(转载,…
- S3C2440 VXWORKS 移植笔记(转载,…
- 嵌入式实时系统中的优先级反转问题
- 嵌入式实时系统中的优先级反转问题
- VxWorks网络驱动配置及分析
- VxWorks网络驱动配置及分析
- 购物系统
- VxWorks系统的网络驱动(END)(转载…
- VxWorks系统的网络驱动(END)(转载…
- 以太网与以太网帧格式-详解
- 以太网与以太网帧格式-详解
- 以太网帧格式
- 以太网帧格式
- IMPDP 导入时报ORA-39014 ORA-39029 ORA-31671 ORA-04030 ORA-06512错误