<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > VxWorks網(wǎng)絡(luò )驅動(dòng)配置及分析

VxWorks網(wǎng)絡(luò )驅動(dòng)配置及分析

作者: 時(shí)間:2012-05-10 來(lái)源:網(wǎng)絡(luò ) 收藏

支持兩種形式的,一種是BSD支持通用的BSD4.4,API,結構等和大多數BSD類(lèi)似.另一種是END網(wǎng)絡(luò )驅動(dòng),是獨有的,根據MUX接口編程,不過(guò)END驅動(dòng)在底層也要轉換成BSD的形式.

本文引用地址:http://dyxdggzs.com/article/149105.htm

VxWorks網(wǎng)絡(luò )驅動(dòng)可參見(jiàn)VxWorks網(wǎng)絡(luò )驅動(dòng)

1.BSD4.4網(wǎng)絡(luò )驅動(dòng)設置.

網(wǎng)絡(luò )設備驅動(dòng)的調用主要在/target/src/config/usrNetwork.c文件中,下面說(shuō)明BSD4.4驅動(dòng)在VxWorks系統調用.

主要調用過(guò)程如下:

VxWorks系統執行的第一個(gè)任務(wù)targetconfigallusrConfig.c文件中usrRoot()=======>>targetsrcconfigusrNetwork.c文件中的usrNetInit

()通過(guò)數組表netIf[]初始化相應的BSD網(wǎng)卡驅動(dòng).

在usrNetwork.c中的調用過(guò)程如下:

usrNetInit()函數中調用usrNetIfAttach():

#ifdefINCLUDE_BSD

if(!attached)

{

if((usrNetIfAttach(pNetDev,params.unitNum,pBootString)!=OK))

return(ERROR);

attached=TRUE;

}

#endif/*INCLUDE_BSD*/

usrNetIfAttach()函數中調用數組表usrNetIfTbl

for(pNif=usrNetIfTbl;pNif->ifName!=0;pNif++)

{

if(strcmp(buf,pNif->ifName)==0)

break;

}

網(wǎng)絡(luò )BSD驅動(dòng)數組表usrNetIfTbl在文件/target/src/config/usrNetwork.c中的定義初始化:

...

LOCALNETIFnetIf[]=/*網(wǎng)絡(luò )接口,定義網(wǎng)卡驅動(dòng)*/

{

/*下面是定義包含的各種網(wǎng)絡(luò )驅動(dòng)*/

#ifdefINCLUDE_DC/*從DEC芯片啟動(dòng),即系統有NVRAM存在,現在已過(guò)時(shí)*/

{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/*INCLUDE_DC*/

#ifdefINCLUDE_FEI/*如果定義了INCLUDE_FEI,初始化Intel網(wǎng)卡*/

{fei,feiattach,(char*)FEI_POOL_ADRS,0,0,0,0},

#endif/*INCLUDE_FEI*/

#ifdefINCLUDE_EX/*Excelan網(wǎng)卡*/

{ex,exattach,(char*)IO_ADRS_EX,INT_VEC_EX,INT_LVL_EX,

IO_AM_EX_MASTER,IO_AM_EX},

#endif/*INCLUDE_EX*/

#ifdefINCLUDE_ENP/*CMC網(wǎng)卡*/

{enp,enpattach,(char*)IO_ADRS_ENP,INT_VEC_ENP,INT_LVL_ENP,

IO_AM_ENP},

#endif/*INCLUDE_ENP*/

...

}

設置方法:

從以上可以看出BSD網(wǎng)絡(luò )驅動(dòng)只需在BSP文件config.h中將網(wǎng)絡(luò )(#defineINCLUDE_NETWORK)BSD網(wǎng)卡宏定義(#defineINCLUDE_xxx)和一些I/O參數(一般不需要)加入,則在文件usrNetwork.c中進(jìn)行相應的初始化.

如:在VxWorks加入支持intel的網(wǎng)卡驅動(dòng).在config.h中加入#defineINCLUDE_FEI.

主要網(wǎng)卡定義如下:

#defineINCLUDE_ENE/*includeEagle/NovellNE2000interface*/

#defineINCLUDE_ELT/*include3COMEtherLinkIIIinterface*/

#defineINCLUDE_ESMC/*includeSMC91c9xEthernetinterface*/

#defineINCLUDE_FEI/*includeIntelEtherExpressPRO100BPCI*/

#defineINCLUDE_ELC/*includeSMCElite16interface*/

#defineINCLUDE_EEX/*includeINTELEtherExpressinterface*/

#defineINCLUDE_EEX32/*includeINTELEtherExpressflash32*/

#defineINCLUDE_EX/*includeExcelanEthernetinterface*/

#defineINCLUDE_ENP/*includeCMCEthernetinterface*/

#defineINCLUDE_SM_NET/*includebackplanenetinterface*/

#defineINCLUDE_SM_SEQ_ADDR/*sharedmemorynetworkautoaddresssetup*/

#defineINCLUDE_EL_3C90X_END/*3comfastetherLinkXLPCI*/

#defineINCLUDE_LN_97X_END/*AMD79C972ENDDRIVER*/

....

2.END網(wǎng)絡(luò )驅動(dòng)設置.

END網(wǎng)絡(luò )設備的初始化主要通過(guò)定義在文件configNet.h中的一個(gè)數組表實(shí)現.初始化網(wǎng)絡(luò )時(shí)muxDevLoad()會(huì )按這個(gè)表的定義把end初始化安裝到VxWorks系統.

主要調用過(guò)程:

VxWorks系統執行的第一個(gè)任務(wù)targetconfigallusrConfig.c文件中usrRoot()=======>>targetsrcconfigusrNetwork.c文件(該文件初始化TCP/IP)中usrNetInit(BOOT_LINE_ADRS)(該函數作用是添加MUXEND)========>>pcooki=pCookie=muxDevLoad(pDevTbl->unit,.....)其中pDevTbl在BSP網(wǎng)絡(luò )文件configNet.h中定義.END_TBL_ENTRYendDevTbl[]={...},該表定義了網(wǎng)絡(luò )設備的具體參數.

configNet.h部分定義如下所示:

#defineDEC_LOAD_FUNCdec21x40EndLoad/*定義加載網(wǎng)絡(luò )設備的入口程序*/

#defineDEC_BUFF_LOAN1

/*網(wǎng)絡(luò )設備硬件的物理定義數據串,一般BSP已經(jīng)定義,不到必要時(shí),無(wú)需更改*/

/*

*:::::::

*:

*/

#defineDEC_LOAD_STRING

0x81020000:0x80000000:0x12:0x12:-1:-1:-1:0:0x80800

000

IMPORTEND_OBJ*DEC_LOAD_FUNC(char*,void*);

/*網(wǎng)絡(luò )END設備表*/

END_TBL_ENTRYendDevTbl[]=

{0,DEC_LOAD_FUNC,DEC_LOAD_STRING,DEC_BUFF_LOAN,NULL,FALSE},

{0,END_TBL_END,NULL,0,NULL,FALSE},

};

設置方法:

由以上可看出在VxWorks添加END網(wǎng)絡(luò )驅動(dòng)

在文件config.h中添加#defineINCLUDE_NETWORK和#defineINCLUDE_END.

在configNet.h中加入END驅動(dòng)的入口函數#definexxx_LOAD_FUNCxxxxxEndLoad和一些相關(guān)的初始化字符串.


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>