20130305

    今天主要做lwip协议栈中的DHCP部分。学会了一个用数组来轮询的方法。1.将函数指针当成数组的一个元素 2.参数等都可以当变量 3.使用判断条件for循环就能轮询的调用这些函数了。

 

  
  
  
  
  1. last_time = cur_time; 
  2. for(idxtimer=0; 
  3.     idxtimer < (sizeof(timers_table)/sizeof(timers_info)); 
  4.     idxtimer ++) 
  5.     ptmr_inf = &timers_table[idxtimer]; 
  6.     ptmr_inf->timer += time_diff; 
  7.     if (ptmr_inf->timer > ptmr_inf->timer_interval) 
  8.     { 
  9.         if (ptmr_inf->timer_func) 
  10.             ptmr_inf->timer_func(); 
  11.         ptmr_inf->timer -= ptmr_inf->timer_interval; 
  12.     } 

其中 timers_table的定义为

 

  
  
  
  
  1. static timers_info timers_table[] = { 
  2.     /* LWIP_TCP */ 
  3.     { 0, TCP_FAST_INTERVAL,     tcp_fasttmr}, 
  4.     { 0, TCP_SLOW_INTERVAL,     tcp_slowtmr}, 
  5.     /* LWIP_ARP */ 
  6.     { 0, ARP_TMR_INTERVAL,      etharp_tmr}, 
  7.     /* LWIP_DHCP */ 
  8.     #if LWIP_DHCP 
  9.     { 0, DHCP_COARSE_TIMER_SECS, dhcp_coarse_tmr}, 
  10.     { 0, DHCP_FINE_TIMER_MSECS,  dhcp_fine_tmr}, 
  11.     #endif 
  12. }; 

DHCP调通了添加DHCP部分。

你可能感兴趣的:(无)