
我的板子为神州IV,,,调试UDP client时,调用udp_send(upcb, p)之后,server端也能接收到发送的内容,,但是程序指针跑到了void HardFault_Handler(void)死循环中,,,不知道什么引起的,求解????2 j3 u: X& ?/ o$ D9 y1 b void client_init(void) { struct udp_pcb *upcb; struct pbuf *p;& x0 A2 i+ a" n s) ^& m err_t ret;9 p( `) v# A$ z9 a0 K7 b9 L uint8_t Sent[]="fanqh test udp client\r\n"; /* Create a new UDP control block */ upcb = udp_new(); 7 G* w" s3 R% p6 D /* Connect the upcb */! J/ U3 x( \* ^' T( Y" L B4 a udp_connect(upcb, IP_ADDR_BROADCAST, UDP_SERVER_PORT); 8 x0 s0 }/ a1 k5 ^/ B1 C p = pbuf_alloc(PBUF_TRANSPORT, 0, PBUF_RAM); p->payload = Sent;; k4 s h, r# n, _& v3 U# w3 j p->tot_len=p->len = sizeof(Sent); /* Send out an UDP datagram to inform the server that we have strated a client application */$ q2 K+ i9 o. ^. T$ D* H- s% ? udp_send(upcb, p); /////////////////////////////////////////////////程序执行到这个函数后调到死循环HardFault_Handler{}中& k3 d* e$ R, `/ }/ @+ { /* Reset the upcb */9 }" D1 `1 y! u0 [8 Y" N7 Y udp_disconnect(upcb);: c- E. V# b) F T2 d; o /* Bind the upcb to any IP address and the UDP_PORT port*/( s2 w* j+ {+ e% i& Z$ Q ret = udp_bind(upcb, IP_ADDR_ANY, UDP_CLIENT_PORT); /* Set a receive callback for the upcb */ udp_recv(upcb, udp_client_callback, NULL);; G: r5 k8 S0 ~* C0 M ) ^/ |% v) \! {7 F/ j /* Free the p buffer */ pbuf_free(p); 9 G& a! z4 Y5 _0 I8 ` } : X; Z, s" A; b9 {" ?$ h t) l) n |
楼主要学会自己解决问题。
谢谢!!!