达芬奇平台g-bios的网络部分移植好了!

发布于 2022-09-23 14:22:54 字数 5733 浏览 15 评论 0

今天把达芬奇平台g-bios的的网络部分移植好了,现在就剩flash的移植了。

网络接收采用poll的方式,所以在net_core.c的GUdpRecvPacket()函数中重新加进GNetRecvPoll()查询函数,之前被注释掉了,估计后面合并针对不同平台得做些设置。

把socket.c的gethostaddr()函数修改成如下:

struct sockaddr *gethostaddr(const char *sip)
{
    const UINT32 nip;
    struct sockaddr *sockAddr;
    UINT32 cnt = 20;
        
    if(GuStrToIp((BYTE *)&nip, sip))
    {
        printf("%s(): fail to convert ip %s\n", __FUNCTION__, sip);
        return NULL;
    }
    
    while (cnt--)
    {
        UINT32 psr;    
        
        // add by seen.yang

        ArpSendPacket((BYTE *)&nip, NULL, ARP_OP_REQ);

        // add by seen.yang

        while(GNetRecvPoll() <= 0);
        
        IrqDisableSave(psr);
        sockAddr = getaddr(nip);    
        IrqRestore(psr);

        if (sockAddr)
            break;

        // TODO: add re-send code here

        udelay(3);
    }

    return sockAddr;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

花开雨落又逢春i 2022-09-30 14:22:54

seen兄,春节快乐!你达芬奇平台移植到哪一步了?
你暂时可以作这样的修改,其实老版本的网卡驱动基于poll模式;但最好改用中断方式,新版g-bios已启用中断,以支持新的功能(如,ping server端),也为之后的timer和usb驱动作准备。

彩扇题诗 2022-09-30 14:22:54

conke兄,新年好。
各项功能基本移植好,就差nor flash的移植了(我的板子采用的是nor flash)。我没发现flash子系统中有支持nor flash的核心层,只有支持nand的核心层。请conke兄指教。

睡美人的小仙女 2022-09-30 14:22:54

非常抱歉这么久才回复!
NOR Flash的支持已列入目前的g-bios schedule,有兴趣一起参与吗?

白日梦 2022-09-30 14:22:54

我正有此打算呢,

我是男神闪亮亮 2022-09-30 14:22:54

哈 现在做到哪一步了? 剩下的我可以帮你做下davinci平台的移植在gbios我以前试过可以用的

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文