最近因為工作需要,在尋找open source的TCP/IP stack,果然發現了一個好物->uIP,這是一個由Adam Dunkel 所發展的一個用C所寫成的網路協定library,專門for記憶體資源相當有限的8-bit或是16-bit的嵌入式系統應用。由於他是BSD的license,所以目前在很多商用的應用上被大量使用。
它實做了MAC layer以上的protocol,並且它將需要控制ethernet晶片的介面抽象化,讓開發者可以根據不同的硬體來做改寫,而不需要去動到協定本身,因此可以很容易的在不同硬體上做移植。目前這個project已經被整進一個嵌入式系統作業系統的project中(Contiki),這個計畫也是同個開發者所主持,其中主要的網路功能就是使用uIP。
因為uIP為了節省記憶體的使用量,其把一些僅在高效能應用上所需要用到的功能去掉,因此其功能上並不是這麼完整,
另外還有一個solution 叫做 lwIP(lightwight), 一樣是Adam Dunkel所開發 (這個人真猛!!),這個project所實做的功能就更多,但是一樣維持好的記憶體使用效率,因此仍然適用於嵌入式系統。至於要選擇何者來做移植,主要還是要看搭配的硬體效能以及限制。
參考網站:
uIP (old) - http://www.sics.se/~adam/old-uip/
Contiki - http://www.sics.se/contiki/
lwIP - http://www.sics.se/~adam/lwip/
沒有留言:
張貼留言