|
|
- [求助]关于END_OBJ的问题
作者:crescent_30 时间:2008-9-9 9:08:11
我现在想在应用层调用驱动函数直接发数据帧到以太网
驱动中有send函数,但是参数是一个数据结构,里面包括了像END_OBJ这样的量
不知道在应用层中如何获得这个量,希望能给点思路
谢谢了
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:maomaotr 时间:2008-9-10 22:23:17
在驱动里面会有
END_OBJ* motFecEndLoad
(
char *initString /* parameter string */
)
{
DRV_CTRL * pDrvCtrl = NULL; /* pointer to DRV_CTRL structure */
UCHAR enetAddr[6]; /* ethernet address */
MOT_FEC_LOG (MOT_FEC_DBG_LOAD, ("Loading end...\n"), 1, 2, 3, 4, 5, 6);
if (initString == NULL)
return (NULL);
if (initString[0] == 0)
{
bcopy ((char *)MOT_FEC_DEV_NAME, (void *)initString,
MOT_FEC_DEV_NAME_LEN);
return (NULL);
}
/* allocate the device structure */
pDrvCtrl = (DRV_CTRL *) calloc (sizeof (DRV_CTRL), 1);
if (pDrvCtrl == NULL)
return (NULL);
pDrvCtrl->phyInfo = (PHY_INFO *) calloc (sizeof (PHY_INFO), 1);
if (pDrvCtrl->phyInfo == NULL)
{
free ((char *)pDrvCtrl);
return (NULL);
}
#ifdef MOT_FEC_DBG
pDrvCtrlDbg = pDrvCtrl;看这里你弄个全局的在外面《DRV_CTRL * pDrvCtrlDbg = NULL;》这样你就可以motFecStart (pDrvCtrlDbg );!
只要你有了这pDrvCtrlDbg 的参数就可调你的东西了,当然要看你自己的驱动了
#endif /* MOT_FEC_DBG */
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:crescent_30 时间:2008-9-11 12:07:31
谢谢maomaotr,这个问题我已经解决了,不过接下来又碰到问题了
给你描述下我的工程哈:想通过以太网发数据帧,但是不经过协议层,板子上网卡驱动已经写好了
我想用已有的驱动程序来实现数据帧发送,启动后调用muxShow,显示device,unit,Description
和protocol wind debug agent;protocol IP 4.4 ARP;protocol IP 4.4 TCP/IP;
看到书上说需要先Init,然后Start,最后Send,不知道我的理解有没有错?还需要其它的操作么?
现在init这里没有问题,到了start就data abort了,不知道怎么回事,因为start和send都需要DRV_CTRL这个结构,所以之前的问题一直围绕在怎么得到这个结构上。现在我又有点怀疑自己的思路是不是也错了,希望高手们帮帮忙。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:chenlei188 时间:2008-9-10 8:25:51
学习了!~~~
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:maomaotr 时间:2008-9-9 22:47:54
你仔细看看你驱动的挂载就知道了!就在你的驱动里面!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:maomaotr 时间:2008-9-9 11:47:15
我的驱动里面是
LOCAL STATUS motFecSend
(
DRV_CTRL * pDrvCtrl, /* pointer to DRV_CTRL structure */
M_BLK * pMblk /* pointer to the mBlk/cluster pair */
)
DRV_CTRL * pDrvCtrl 你初始化后弄个新的赋值就可以代入使用!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:crescent_30 时间:2008-9-10 17:10:38
我用ethInit了一个DRV_CTRL,但是再用这个值去ethStart的时候出现错误
不好意思,我实在是不是很清楚,能不能麻烦讲清楚点
帮帮我这个菜鸟哦
多谢
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
作者:crescent_30 时间:2008-9-9 13:49:23
你说的初始化是不是指用endLoad()这样的函数啊? 还是muxDevLoad()?
不好意思我是新手,问的问题有可能太弱智了,希望不要介意
muxDevLoad的话我试过了,不过每次执行到这里都被挂起,不知道怎么回事
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
|