久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
操作系統(tǒng)和uip協(xié)議棧的接口
[打印本頁]
作者:
xuwei
時間:
2015-6-13 16:29
標題:
操作系統(tǒng)和uip協(xié)議棧的接口
這其實也是水到渠成的事,因為UIP協(xié)議棧是不需要操作系統(tǒng)支持的,也就是說他可以裸奔,可以覆蓋在系統(tǒng)上面,怎么樣裁減都是可以的,然而,lwip卻不行,第一LWIP的所有數(shù)據(jù)區(qū)都要先分先用,也就是說要給LWIP提供動態(tài)分配內(nèi)存的所有接口和封裝函數(shù),第二,LWIP是消息機制,如果裸奔就需要用戶構(gòu)建一套消息機制,然而娛樂操作系統(tǒng)這一切就變得似乎簡單了,線程間的通信都可以依靠操作系統(tǒng)提供的時間接口,UIP就不同了,他不需要動態(tài)分配內(nèi)存,他的緩存是靜態(tài)的,所以搞起來就一點要考慮,那么就是把消息機制融合到UIP和OS之間的接口中就可以了,我只這樣搞的,
1:建立三個線程,最高優(yōu)先級的處理IP數(shù)據(jù)報文,次高優(yōu)先級的作為輪訓底層驅(qū)動的接口使用,肩帶這輪訓ARP映射表和維護連接,最低優(yōu)先級無事可做,所以就肩帶的做個定時器用吧,他更新ARP的輪訓時間值,這樣就完整了!我測試結(jié)果還是很好的,但是這樣的系統(tǒng)絕對比不上裸奔來的實時,哈哈這個很可笑,是啊操作系統(tǒng)不是萬能的,他需要時間調(diào)度,需要時間去傳遞接收,需要時間壓棧出棧,這都是CPU的時間!但是總體來說,操作系統(tǒng)使下層和上層之間的應用變得 簡單明了,所以,如果你的內(nèi)存足夠大,那么兄弟上系統(tǒng)吧,當然再完美的東西也有缺憾,UIP的UDP功能很是牽強啊!功能也比LWIP弱很多,所以,總得找機會吧LWIP搞搞,繼續(xù)吧,誰知道呢?
作者:
xuwei
時間:
2015-6-13 16:29
本人于下午一下午時間移植了一個UIP,修改后,好用了,由于內(nèi)存不足,所以吧內(nèi)部的靜態(tài)存儲區(qū)改成100個字節(jié),這樣對于ram的消耗會大大的降低,滿足我的硬件系統(tǒng)要求,我運行試過了,我的RAM只有4096程序我正好控制在4016字節(jié),正好可以跑起來,ICMP報文正常,TCP連接正常,數(shù)據(jù)也是正確的!哈哈,好高興!下一步芯片來了之后,開始加入操作系統(tǒng),那就是小菜一碟了!嘿嘿
oid tcp_wangjunwei_appcall()//我自己的TCP端口
{
if (uip_closed())
{
// USART_OUT(USART1,"uip_closed!\r\n");
closed();
}
if (uip_connected())
{
struct tcp_demo_appstate *s = (struct tcp_demo_appstate *)&uip_conn->appstate;
s->state = STATE_CMD; //指令狀態(tài)
s->textlen = 0;
s->textptr = "連接到王均偉的TCP端口上,哈哈哈!掃噶!";
s->textlen = strlen((char *)s->textptr);
senddata();
}
if (uip_acked())
{
acked();
}
if (uip_rexmit() || uip_newdata() || uip_acked() || uip_connected() || uip_poll())
{
struct tcp_demo_appstate *s = (struct tcp_demo_appstate *)&uip_conn->appstate;
s->textptr = uip_appdata; /* 向客戶端發(fā)送收到的數(shù)據(jù) */
s->textlen = uip_len;
senddata();
}
}
作者:
xuwei
時間:
2015-6-13 16:30
昨天開始搞LWIP的移植,但是不會走怎么跑啊?所以一直在看源碼,終于今晚上突破了LWIP和系統(tǒng)的接口問題,我看著是這樣的:
首先操作系統(tǒng)創(chuàng)建兩個線程,兩個線程里面設置連個堵塞郵箱,一個線程專門接收數(shù)據(jù),一個線程專門發(fā)送數(shù)據(jù),當外部的網(wǎng)絡驅(qū)動芯片接收到數(shù)據(jù)包,那么他就發(fā)送一個指針到郵箱中,這時候操作系統(tǒng)輪訓到這個郵箱中的數(shù)據(jù),就進入處理,其實他也沒處理,他就是把這個得到的指針放到LWIP棧中去了,讓LWIP的內(nèi)核處理,另一條是發(fā)送,當LWIP要發(fā)送數(shù)據(jù),就向發(fā)送郵箱發(fā)送一條郵箱指針,然后被掛起的發(fā)送線程被激活,調(diào)用底層發(fā)送程序發(fā)送出去 ,發(fā)送完畢馬上掛起再次等待下一次的數(shù)據(jù)發(fā)送,所以這樣就找到了數(shù)據(jù)收發(fā)的接口,這個顯然是操作系統(tǒng)和LWIP和底層硬件之間的數(shù)據(jù)交換,也就是說LWIP確實是建立在操作系統(tǒng)之上的!他無權操作底層硬件,要通過操作系統(tǒng)的這兩個堵塞線程來實現(xiàn)數(shù)據(jù)的收發(fā)!哎呀,這才是萬里冰山的一個小腳,還有很多問題沒有解決!比如數(shù)據(jù)怎么被放到地層中的?地層中的數(shù)據(jù)怎么何時被放到數(shù)據(jù)結(jié)構(gòu)中?這就寫LWIP分裝的都非常的嚴實,以至于找到他的驅(qū)動很難很難!繼續(xù)加油吧!
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产在线不卡视频
|
成人中文字幕在线观看
|
日韩综合一区
|
欧美激情啪啪
|
欧洲美一区二区三区亚洲
|
欧美日韩在线观看一区二区
|
黄色免费一级片
|
中文字幕超清在线观看
|
午夜精品影院
|
一级片在线观看视频
|
黄色片一级
|
日韩黄网
|
精品久久一区二区三区
|
天天操网
|
亚洲在线免费视频
|
一区在线观看
|
九九久久免费视频
|
中文字幕日韩高清
|
av不卡在线播放
|
亚洲a级片
|
欧美精品网
|
五月激情丁香
|
日韩一区二区三区在线播放
|
国产小视频网站
|
欧美日韩免费一区二区三区
|
欧美视频一区二区三区
|
亚洲综合在线视频
|
黄色大片在线免费观看
|
日韩视频免费
|
亚洲一区在线视频
|
久久爱影视i
|
小镇姑娘国语版在线观看免费
|
欧美日韩在线一区
|
久久夜色精品国产欧美乱极品
|
一级片免费网站
|
91福利在线观看
|
精品亚洲一区二区三区
|
亚洲一区二区免费
|
www.狠狠干
|
在线播放a
|
四虎影音
|