欢迎来到天天文库
浏览记录
ID:24137796
大小:51.50 KB
页数:4页
时间:2018-11-12
《wince eboot中的网络函数》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、WinCEEboot中的网络函数 一般使用EBOOT下载ON模块中完成的,它会调用OEMReadData函数来下载数据,OEMReadData由用户来实现,一般如果是网络下载,都会在OEMReadData中直接调用EbootEtherReadData函数来从网络读取数据,该函数由微软实现,这个函数会再调用OEMEthGetFrame函数从网卡读取数据,这个函数是要用户根据自己使用的网卡芯片实现的网卡驱动部分。 不知道我上面说明白了没有,实际上在EBOOT中,BLMON是最上层,为了实现下载,我们需要实现相关的OEM下载函数,而这些OEM函数会调用函数要用户来实现的。 先来介绍一下EBOO
2、T下载的相关OEM函数: 1.LPBYTEOEMMapMemAddr(D的缓冲区,就是将Flash地址映射到RAM中,这样下载的数据先被放在RAM缓冲区中,然后再写入Flash里面。该函数会被OEMSho) 该函数用于显示下载进度,主要是给用户一个信息。可以在该函数里面打印串口信息或者操作LED来告诉用户当前下载的状态。d为当前已经下载的packet数。 下面来介绍一下网络控制函数: 1.BOOLEbootEtherReadData(DReadData调用,cbData为要读取的字节数,pbData是一个Buffer,返回TRUE为成功。 2.BOOLEbootInitEtherTr
3、ansport(EDBG_ADDR*pEdbgAddr,LPDajor,UCHARVersionMinor,char*szPlatformString,char*szDeviceName,UCHARCPUId,Dajor和VersionMinor为版本号。szPlatformString为平台名称。szDeviceName为设备名称,在下载的时候会在PlatformBuilder中显示。CPUId为处理器的Id。dBuilder的连接,并接收用于相关服务的IP地址和端口号的信息,也包括KITL标记位,该函数会被OEMLaunch函数调用。pDevAddr为设备端的地址信息,包括IP地址,MAC
4、地址和端口号。pHostAddr为Host端的地址信息,包括IP地址,MAC地址和端口号。返回的是一个EDBG_OS_CONFIG_DATA结构,其中包含各个服务的地址信息配置和用户设置等信息。 下面介绍一下实现网卡驱动的OEM函数: 1.BOOLOEMEthSendFrame(BYTE*pData,DWORDde(BYTE*pData,UINT16*pwLength) 该函数用于接收一帧数据,它会被eboot.lib调用来接收网卡上的数据。pData为数据buffer,dwLength为长度。返回TRUE为成功。 WinCE为网卡驱动提供了一个模板,一般开发EBOOT中的网卡驱动都会
5、按照该模板来封装相关的函数,具体网卡驱动函数模板定义如下:PFN_EDBG_INIT pfnEDbgInit; //初始化网卡PFN_EDBG_ENABLE_INTS pfnEDbgEnableInts; //打开网卡中断PFN_EDBG_DISABLE_INTS pfnEDbgDisableInts; //禁用网卡中断PFN_EDBG_GET_PENDING_INTS pfnEDbgGetPendingInts; //读网卡中断标记PFN_EDBG_GET_12下一页——感谢阅读这篇文章,..,FRAME pfnEDbgGetFrame;
6、 //接收一帧数据PFN_EDBG_SEND_FRAME pfnEDbgSendFrame; //发送一帧数据PFN_EDBG_READ_EEPROM pfnEDbgReadEEPROM; //读网卡外接的eepromPFN_EDBG_ pfnEDbg; //写网卡外接的eeprom 上述定义可以在halether.h文件中找到,就是一些函数指针,当然还有一些没有列出,那些用于支持KITL,这里不做介绍。一般在EBOOT中网卡驱动在ether.c文件中实现,根据需要实现上述模板中的相关的实体函数。实际上OEMEthSendFrame和OEMEthGetFrame
7、可以直接调用pfnEdbgSendFrame和pfnEdbgGetFrame两个函数指针指向的函数,目前在大多数BSP中也是这样实现的。pfnEdbgInit所指向的函数用于初始化网卡一般会在OEMPlatformInit中被调用。上一页12——感谢阅读这篇文章,..,
此文档下载收益归作者所有