导 航┆主 站┆文 章┆资 料┆下 载┆美 食┆读 书┆笑 话┆博 客┆论 坛
>> Tony嵌入式开发论坛静态版首页
查看完全版本:Tony嵌入式开发论坛

 

    [求助]关于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的话我试过了,不过每次执行到这里都被挂起,不知道怎么回事

    -------------------------------------------------------------------------------------------------------------------------------------------------------------------



查看完全版本:Tony嵌入式开发论坛
Copyright 2006-2008 Cevx.Com Cevx.Net 制作 版权所有
网友发帖仅代表个人观点,与本论坛立场无关