| 本帖最后由 Simon21ic 于 2015-4-1 01:55 编辑 
 TCPIP中的ARP,IP,UDP也搞定了,socket方式,目前占用15K flash,估计如果完整的协议栈搞定后,flash占用在25KB+。同样芯片,用lwip的话,代码占用在40KB左右,而且是callback方式。
 
 上一些代码吧:
 vsfshell_printf(output_pt, "UDP test" VSFSHELL_LINEEND);
 
 socket = vsfip_socket(AF_INET, IPPROTO_UDP);
 if (NULL == socket)
 {
 vsfshell_printf(output_pt, "Fail to create socket." VSFSHELL_LINEEND);
 goto handler_thread_end;
 }
 
 dest.sin_addr.size = 4;
 dest.sin_addr.addr.s_addr = SYS_TO_BE_U32(0xC0A80169);        // 192.168.1.105
 dest.sin_port = 10000;
 
 buffer = vsfip_buffer_get(64 + strlen(outmsg) + 1);
 if (NULL == buffer)
 {
 vsfshell_printf(output_pt, "not enough resources." VSFSHELL_LINEEND);
 goto handler_thread_end;
 }
 buffer->start += 64;
 buffer->len -= 64;
 bufptr = vsfip_buffer_ptr(buffer);
 strcpy((char *)bufptr, outmsg);
 local_pt.state = 0;
 vsfsm_pt_entry(pt);
 err = vsfip_udp_send(&local_pt, evt, socket, &dest, buffer);
 if (err < 0)
 {
 vsfshell_printf(output_pt, "Fail to send UDP" VSFSHELL_LINEEND);
 goto handler_thread_end;
 }
 if (err != 0) return err;
 vsfip_buffer_release(buffer);
 
 vsfshell_printf(output_pt, "UDP tested OK" VSFSHELL_LINEEND);
 
 简单的UDP测试代码,建立socket,分配缓冲,设置远程的地址和端口,发送。。。。
 |