嵌入式开发者社区

标题: TCP_Client中的task调度 [打印本页]

作者: 迷足    时间: 2016-6-1 18:40
标题: TCP_Client中的task调度
我想问下SYS/BIOS所提供的历程Tcp-Client,中定义的一些驱动函数在哪里调用的?
/****************************************************************************/
/*                                                                          */
/*              回调函数 EMAC 初始化                                        */
/*                                                                          */
/****************************************************************************/
// 这个函数被驱动调用 不要修改函数名
void EMAC_initialize()
{
        // 管脚复用配置
        // 使能 MII 模式
        EMACPinMuxSetup();
}

/****************************************************************************/
/*                                                                          */
/*              回调函数 获取 MAC 地址                                      */
/*                                                                          */
/****************************************************************************/
// 这个函数被驱动调用 不要修改函数名
void EMAC_getConfig(unsigned char *pMacAddr)
{
        // 根据芯片 ID 生成 MAC 地址
        bMacAddr[0] = 0x00;
        bMacAddr[1] = (*(volatile unsigned int *)(0x01C14008) & 0x0000FF00) >> 8;
        bMacAddr[2] = (*(volatile unsigned int *)(0x01C14008) & 0x000000FF) >> 0;
        bMacAddr[3] = (*(volatile unsigned int *)(0x01C1400C) & 0x0000FF00) >> 8;
        bMacAddr[4] = (*(volatile unsigned int *)(0x01C1400C) & 0x000000FF) >> 0;
        bMacAddr[5] = (*(volatile unsigned int *)(0x01C14010) & 0x000000FF) >> 0;
        UARTprintf("Using MAC Address: %02X-%02X-%02X-%02X-%02X-%02X\n",
                    bMacAddr[0], bMacAddr[1], bMacAddr[2], bMacAddr[3], bMacAddr[4], bMacAddr[5]);

    // 传递 MAC 地址
    mmCopy(pMacAddr, bMacAddr, 6);
}

/****************************************************************************/
/*                                                                          */
/*              回调函数 获取连接状态                                       */
/*                                                                          */
/****************************************************************************/
// 这个函数被驱动调用 不要修改函数名
void EMAC_linkStatus(unsigned int phy, unsigned int linkStatus)
{
        UARTprintf("Link Status: %s on PHY %d\n",LinkStr[linkStatus],phy);
}

/****************************************************************************/
/*                                                                          */
/*              回调函数 获取 IP 地址                                       */
/*                                                                          */
/****************************************************************************/
void NetGetIPAddr(IPN IPAddr, unsigned int IfIdx, unsigned int fAdd)
{
        if(fAdd)
        {
        UARTprintf("Network Added: ", IfIdx);
        }
        else
        {
                UARTprintf("Network Removed: ", IfIdx);
        }

        char StrIP[16];
        NtIPN2Str(IPAddr, StrIP);
        UARTprintf("%s\r\n", StrIP);
}




还有,任务虽然在NET.c中创建了,但是并未在主函数中调用,他是如何生效的?



作者: 希望缄默    时间: 2016-6-2 09:15
1、NSP
2、NetOpenHook
作者: 迷足    时间: 2016-6-3 21:14
希望缄默 发表于 2016-6-2 09:15
1、NSP
2、NetOpenHook

可以具体一点吗?还是没找到,GUI界面上可以看到吗?
作者: 希望缄默    时间: 2016-6-5 17:10
迷足 发表于 2016-6-3 21:14
可以具体一点吗?还是没找到,GUI界面上可以看到吗?

NSP 需要额外安装
这个函数可以在NDK Globle Hook看到
作者: 迷足    时间: 2016-6-6 09:57
本帖最后由 迷足 于 2016-6-6 09:59 编辑

C:\Users\LJ\Desktop\1.png
我想问下我循环发送2000个字节,为什么发送有问题,我看了发送缓冲区的大小都有8192Bytes。[attach]820[/attach]
我主要修改TCP.c的任务函数。
[attach]821[/attach]


[attach]822[/attach]
C:\Users\LJ\Desktop\2.png
C:\Users\LJ\Desktop\3.png
结果,在服务器接收到的数据不一致,接收的长度都很短。
[attach]823[/attach]
C:\Users\LJ\Desktop\4.png


作者: 750676835    时间: 2016-10-8 16:05
你好,我看了你的帖子,我想在上面程序的基础上修改,实现上位机随时向DSP发送数据时,DSP能正常接收。在没有接收上位机数据的时候,DSP向PC机连续发生数据。请问你有时间回复一下吗?





欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4