鎽� 瑕侊細鏈枃涓昏瑙f焙鍦ㄥ熀浜庝互澶恫(w菐ng)鐨勯仩(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)涓浣曞(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)閫氫俊鐨勫晱椤�锛屽湪鏈湴宓屽叆寮忕郴绲�(t菕ng)涓�锛岄伕鎿嘇RM寰檿鐞嗗櫒S3C44B0X鍜屼互澶恫(w菐ng)鎺у埗鍣≧TL8019AS浣滅偤纭欢骞宠嚭(t谩i)锛屽湪瀵�(sh铆)鏅�(sh铆)鎿嶄綔绯荤当(t菕ng)渭C/OS-鈪′笂绉绘宓屽叆寮廡CP/IP鍗�(xi茅)璀版'LwIP锛岄€氶亷灏�(du矛)LwIP绶ㄧ▼瀵�(sh铆)鐝�(xi脿n)鏈嶅嫏(w霉)鍣ㄧ▼搴�;鍦ㄩ仩(yu菐n)绔疨C姗�(j墨)涓�锛岄€氶亷灏�(du矛)VC++6.0鐠�(hu谩n)澧冧笅鐨勫鎺ュ瓧绶ㄧ▼锛屽(sh铆)鐝�(xi脿n)瀹㈡埗绔▼搴�銆傚湪姝ゅ熀绀�(ch菙)涓婃垚鍔熼枊鐧�(f膩)浜嗛仩(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)锛屽(sh铆)椹�(y脿n)绲�(ji茅)鏋滆〃鏄庨仈(d谩)鍒颁簡鑹ソ鐨勬晥鏋溿€�
闂�(gu膩n)閸佃锛�宓屽叆寮忕郴绲�(t菕ng);缍�(w菐ng)绲�(lu貌);渭C/OS-鈪�;LwIP;Socket
0 寮曡█
銆€銆€鍦ㄥ伐妤�(y猫)閬庣▼鎺у埗绯荤当(t菕ng)涓恫浣嶅皪(du矛)璞℃槸涓€绋崄鍒嗘櫘閬嶇殑灏�(du矛)璞�锛屽皪(du矛)娑蹭綅灏�(du矛)璞$殑鐩�(ji膩n)娓�(c猫)鑸囨帶鍒舵槸绯荤当(t菕ng)瀵�(sh铆)鐝�(xi脿n)鍏跺姛鑳藉繀涓嶅彲灏戠殑鐠�(hu谩n)绡€(ji茅)銆傚湪閬庡幓锛屾恫浣嶇殑鐩�(ji膩n)鎺ц缃鏁�(sh霉)鏄娇鐢ㄥ柈鐗囨(j墨)瀵�(sh铆)鐝�(xi脿n)榛�(di菐n)灏�(du矛)榛�(di菐n)鎺у埗鍜岄’绀篬1]锛屽伐浣滀汉鍝″繀闋堝埌宸ユキ(y猫)鐝�(xi脿n)鍫�(ch菐ng)鎿嶄綔閫欎簺鍎€鍣紝涓斿柈鐗囨(j墨)鍔熻兘鍗佸垎鏈夐檺锛屽彧鑳藉畬鎴愪竴浜涚浉灏�(du矛)绨″柈鐨勬搷浣�銆�
銆€銆€闅ㄨ憲缍�(w菐ng)绲�(lu貌)閫氫俊鎶€琛�(sh霉)鐨勭櫦(f膩)灞曪紝浠ュお缍�(w菐ng)鍦ㄥ伐妤�(y猫)鎺у埗闋�(l菒ng)鍩熺殑鎳�(y墨ng)鐢ㄦ棩瓒ㄥ唬娉�锛屽熀浜庝互澶恫(w菐ng)鐨勯仩(yu菐n)绋嬬洠(ji膩n)鎺х郴绲�(t菕ng)瀵�(sh铆)鐝�(xi脿n)閬�(yu菐n)绋嬬洠(ji膩n)娓�(c猫)銆佹帶鍒跺拰绠$悊鐨勬湁鏁堥泦鎴怺2]銆備娇鐢ㄩ仩(yu菐n)绋嬬洠(ji膩n)鎺х郴绲�(t菕ng)閫氶亷缍�(w菐ng)绲�(lu貌)灏�(du矛)宸ユキ(y猫)鐢熺敘(ch菐n)閬庣▼閫�(j矛n)琛岀洠(ji膩n)娓�(c猫)锛屽強鏅�(sh铆)浜嗚В鐝�(xi脿n)鍫�(ch菐ng)淇℃伅锛屽揩閫熼€�(j矛n)琛屾焙绛�銆�
銆€銆€閬�(yu菐n)绋嬫帶鍒剁殑闂�(gu膩n)閸垫妧琛�(sh霉)鍦ㄤ簬濡備綍瑙f焙宸ユキ(y猫)鐝�(xi脿n)鍫�(ch菐ng)瑷�(sh猫)鍌欑殑缍�(w菐ng)绲�(lu貌)鎺ュ叆鍟忛銆傜洰鍓�锛屼富瑕佹湁鍏╃ó鏂规硶锛氫竴绋槸浣跨敤PC姗�(j墨)閫氶亷PC姗�(j墨)绔彛锛堝RS232銆乁SB鎺ュ彛锛夋垨鏁�(sh霉)鎿�(j霉)閲囬泦鍗′締閲囬泦鏁�(sh霉)鎿�(j霉)鍚屾檪(sh铆)鎻愪緵缍�(w菐ng)绲�(lu貌)鎺ュ彛[3]锛岄€欑ó鏂规硶鍒╃敤寮�(qi谩ng)澶х殑PC姗�(j墨)杌熶欢鏀寔锛屽鏄撳(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)閫氫俊鍔熻兘锛屼絾鏄疨C姗�(j墨)绔彛璩囨簮鏈夐檺锛屽皥鐢ㄩ噰闆嗗崱鎴愭湰杓冮珮锛岄洠浠ユ帹寤�;鍙︿竴绋氨鏄湪鐝�(xi脿n)鍫�(ch菐ng)浣跨敤宓屽叆寮忕郴绲�(t菕ng)瀵�(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)鎺ュ叆锛屽祵鍏ュ紡绯荤当(t菕ng)鍏锋湁鍔熻€椾綆銆侀珨绌嶅皬銆佹垚鏈綆銆佸彲闈犳€ч珮銆佸(sh铆)鏅�(sh铆)鎬у挤(qi谩ng)绛夌壒榛�(di菐n)锛屼娇鐢ㄥ湪宸ユキ(y猫)鎺у埗鐝�(xi脿n)鍫�(ch菐ng)姣旇純鍚堥仼銆�
銆€銆€鏈枃灏囧祵鍏ュ紡鎶€琛�(sh霉)鍜岀恫(w菐ng)绲�(lu貌)鎶€琛�(sh霉)鐩哥祼(ji茅)鍚�锛屽湪鐝�(xi脿n)鍫�(ch菐ng)鍒╃敤宓屽叆寮忕郴绲�(t菕ng)瀵�(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)閫氫俊鍔熻兘浠ュ(sh铆)鏅�(sh铆)鍌宠几娑蹭綅淇¤櫉(h脿o)鍜屾帶鍒朵俊铏�(h脿o)锛屽湪瀹㈡埗绔疨C姗�(j墨)涓婇€氶亷濂楁帴瀛楃法绋嬪(sh铆)鐝�(xi脿n)鑸囩従(xi脿n)鍫�(ch菐ng)宓屽叆寮忕郴绲�(t菕ng)鐨勯仩(yu菐n)绋嬮€氫俊锛屽緸鑰岄仈(d谩)鍒板皪(du矛)閬�(yu菐n)绋嬫恫浣嶇殑鐩�(ji膩n)鎺�銆�
1 閬�(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)绲�(ji茅)妲�(g貌u)
銆€銆€鏈枃瑷�(sh猫)瑷�(j矛)鐨勯仩(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)绲�(ji茅)妲�(g貌u)濡傚湒1鎵€绀猴細鍏朵腑锛岃檿鐞嗗櫒鑺墖閲囩敤ARM寰檿鐞嗗櫒S3C44B0X;S3C44B0X鑷付8璺�10浣岮DC閫�(j矛n)琛孉/D杞�(zhu菐n)鎻涗締閲囬泦娑蹭綅鏁�(sh霉)鎿�(j霉)锛岄€氶亷鎿�(ku貌)灞旸AC0832瀵�(sh铆)鐝�(xi脿n)D/A杞�(zhu菐n)鎻涗互杓稿嚭鎺у埗閲�;S3C44B0X閫f帴10M浠ュお缍�(w菐ng)鍗TL8019AS锛屾彁渚涚恫(w菐ng)绲�(lu貌)鍔熻兘鐨勭‖浠舵帴鍙�;渭C/OS-鈪$Щ妞嶅埌S3C44B0X涓�锛屾彁渚涙搷浣滅郴绲�(t菕ng)鐨勬敮鎸�锛屾柟渚夸簡鎳�(y墨ng)鐢ㄧ▼搴忕殑闁嬬櫦(f膩)鍜屽皪(du矛)鏁村€�(g猫)绯荤当(t菕ng)鐨勭鐞�;宓屽叆寮廡CP/IP鍗�(xi茅)璀版'LwIP绉绘鍒拔糃/OS-鈪″钩鑷�(t谩i)涓婏紝瀵�(sh铆)鐝�(xi脿n)灏�(du矛)缍�(w菐ng)绲�(lu貌)鏁�(sh霉)鎿�(j霉)鐨勮粺浠惰檿鐞�锛屽緸鑰岀偤宓屽叆寮忕郴绲�(t菕ng)鎻愪緵缍�(w菐ng)绲�(lu貌)閫氫俊鍔熻兘;閬�(yu菐n)绋婸C姗�(j墨)瀹㈡埗绔櫥閷勫埌宓屽叆寮忕郴绲�(t菕ng)鏈嶅嫏(w霉)鍣ㄤ笂锛岄€氶亷浠ュお缍�(w菐ng)瀵�(sh铆)鐝�(xi脿n)鍏╃鏁�(sh霉)鎿�(j霉)鐨勫(sh铆)鏅�(sh铆)浜や簰銆�
[align=center]

鍦�1 閬�(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)绲�(ji茅)妲�(g貌u)鍦朳/align]
2 纭欢浠嬬垂鑸囪ō(sh猫)瑷�(j矛)
銆€銆€涓夋槦鐨凷3C44B0X寰檿鐞嗗櫒鑺墖閲囩敤ARM鍏徃16/32浣岮RM7TDMI RISC绲�(ji茅)妲�(g貌u)鐨凜PU鏍革紝涓婚牷鐐�66MHz锛岄€氶亷鎿�(ku貌)灞曚竴绯诲垪閫氱敤澶栧湇閮ㄤ欢锛屾彁渚涜睈瀵岀殑澶栬ō(sh猫)鍔熻兘銆傚畠鐨勫瓨鍎�(ch菙)绯荤当(t菕ng)鍏锋湁8鍊�(g猫)瀛樺劜(ch菙)楂旓紝姣忓€�(g猫)鏈�32MB鐨勫瓨鍎�(ch菙)绌洪枔锛岄€氶亷nGCS0-7閫�8鍊�(g猫)鐗囬伕渚嗗垎閰嶃€傛湰鏂囦娇鐢ㄧ殑瑷�(sh猫)瑷�(j矛)鏂规涓璶GCS0鎺lash鑺墖AM29LV160DB锛岃捣濮嬪湴鍧€0x00000000锛屽ぇ灏忕偤2MB锛宯GCS6鎺DRAM鑺墖HY57V641620ET-7锛岃捣濮嬪湴鍧€鐐�0x0c000000锛屽ぇ灏忕偤8MB锛宯GCS3鎺TL8019AS锛岃捣濮嬪湴鍧€鐐�0x06000000銆�
銆€銆€RTL8019AS鏄竴娆鹃珮搴﹂泦鎴愮殑鍏ㄩ洐宸ヤ互澶恫(w菐ng)鎺у埗鍣�锛屾敹鐧�(f膩)鍙悓鏅�(sh铆)閬�(d谩)鍒�10Mbps鐨勯€熷害;鏀寔8浣嶃€�16浣嶆暩(sh霉)鎿�(j霉)绺界窔锛�8鍊�(g猫)涓柗璜�(q菒ng)姹傜窔鍙緵閬告搰;鏀寔UTP銆丄UI鍜孊NC鐨勮嚜鍕�(d貌ng)妾㈡脯(c猫);鍏�(n猫i)缃�16K鐨凷RAM锛岀敤浜庢暩(sh霉)鎿�(j霉)绶╂矕锛屼互256B鐐哄柈浣嶇殑鍒嗛爜绲�(ji茅)妲�(g貌u)锛屽彲浠ヨ嚜琛屽垎閰嶇敤浜庢敹鐧�(f膩)鐨勫垎闋佺殑澶у皬鍜屼綅缃�锛屼竴鑸墠12闋佺敤浜庣櫦(f膩)閫佺珐娌�锛屽悗52闋佺敤浜庢帴鏀剁珐娌�;纭欢鑷付鏀剁櫦(f膩)CRC鏍¢(y脿n)銆丗IFO閭忚集闅�(du矛)鍒楃瓑锛屾笡灏戜簡涓籆PU铏曠悊缍�(w菐ng)绲�(lu貌)鏁�(sh霉)鎿�(j霉)鐨勫伐浣滈噺銆係3C44B0X灏�(du矛)RTL8019AS鐨勬搷浣滀富瑕侀泦涓湪灏�(du矛)缍�(w菐ng)鍗″瘎瀛樺櫒鐨勮畝瀵拰缍�(w菐ng)鍗″収(n猫i)SRAM鐨勮檿鐞�銆�
3 杌熶欢瑷�(sh猫)瑷�(j矛)
銆€銆€3.1 鍩轰簬宓屽叆寮忕郴绲�(t菕ng)鐨勬湇鍕�(w霉)鍣ㄧ绋嬪簭瑷�(sh猫)瑷�(j矛)
銆€銆€3.1.1 S3C44B0X涓娢糃/OS-鈪$殑绉绘
銆€銆€宓屽叆寮忔搷浣滅郴绲�(t菕ng)渭C/OS-鈪″彲浠ラ亱(y霉n)琛屼簬鍚勭ó涓嶅悓椤炲瀷鐨勫井铏曠悊鍣ㄤ笂锛屽叾鍏�(n猫i)鏍稿皬銆佹晥鐜囬珮锛屽苟涓斿叿鏈夐珮搴︾殑妯″鍖栧拰鍙Щ妞嶆€�锛屾敮鎸佸浠诲嫏(w霉)瀵�(sh铆)鏅�(sh铆)瑾�(di脿o)搴︼紝鎿�(ku貌)灞曞悗鍙敮鎸佺恫(w菐ng)绲�(lu貌)鍔熻兘銆佸湒褰㈢晫闈㈢瓑锛屼娇寰楁噳(y墨ng)鐢ㄧ▼搴忕殑闁嬬櫦(f膩)鏇村姞绨″柈锛屽姛鑳芥洿鍔犺睈瀵�銆�
銆€銆€鍦ㄤ娇鐢ㄎ糃/OS-鈪′箣鍓嶏紝瑕佸厛灏囧畠绉绘鍒癝3C44B0X涓�锛岀Щ妞嶅伐浣滀富瑕佸寘鎷笁鍊�(g猫)鏂归潰[4]锛�
銆€?銆�?锛� 瑷�(sh猫)缃垏铏曠悊鍣ㄥ拰绶ㄨ鍣ㄧ浉闂�(gu膩n)鐨勪唬纰硷紝鍖呮嫭涓€绯诲垪鏁�(sh霉)鎿�(j霉)椤炲瀷鐨勫畾缇�锛岄枊涓柗瀹�銆侀棞(gu膩n)涓柗瀹忕殑瀵�(sh铆)鐝�(xi脿n)锛屽畾缇╁爢妫х殑鐢熼暦鏂瑰悜;
銆€?銆�?锛� 鐢–瑾炶█绶ㄥ6鍊�(g猫)鎿嶄綔绯荤当(t菕ng)鐩搁棞(gu膩n)鐨勫嚱鏁�(sh霉)锛歄STaskStkInit锛堬級鍒濆鍖栦换鍕�(w霉)鐨勫爢妫х祼(ji茅)妲�(g貌u)锛屽拰5鍊�(g猫)閴ゅ瓙鍑芥暩(sh霉)OSTaskDelHook锛堬級銆丱STaskSwHook锛堬級銆丱STaskStatHook锛堬級銆丱STimeHook锛堬級銆丱STaskCreateHook锛堬級;
銆€?銆�?锛� 鐢ㄥ尟绶ㄨ獮瑷€绶ㄥ4鍊�(g猫)鑸囪檿鐞嗗櫒鐩搁棞(gu膩n)鐨勫嚱鏁�(sh霉)锛氶亱(y霉n)琛屽劒(y艒u)鍏堢礆(j铆)鏈€楂樼殑灏辩窉浠诲嫏(w霉)鍑芥暩(sh霉)OSStartHighRdy锛堬級锛屼换鍕�(w霉)绱�(j铆)鐨勪换鍕�(w霉)鍒囨彌鍑芥暩(sh霉)OS_TASK_SW锛堬級锛屼腑鏂风礆(j铆)鐨勪换鍕�(w霉)鍒囨彌鍑芥暩(sh霉)OSIntCtxSw锛堬級锛屾檪(sh铆)閻樼瘈(ji茅)鎷嶆湇鍕�(w霉)鍑芥暩(sh霉)OSTickISR锛堬級銆�
銆€銆€3.1.2 渭C/OS-鈪′笂TCP/IP鍗�(xi茅)璀版'鐨勫(sh铆)鐝�(xi脿n)
銆€銆€LwIP锛圠ight-weight IP锛夋槸鐟炲吀瑷�(j矛)绠楁(j墨)绉戝(xu茅)闄紙Swedish Institute of Computer Science锛夌殑Adam Dunkels绛夐枊鐧�(f膩)鐨勪竴濂楅枊婧愮殑TCP/IP鍗�(xi茅)璀版'[5]锛孡wIP鍦ㄤ繚鎸乀CP/IP鍗�(xi茅)璀颁富瑕佸姛鑳界殑鍩虹(ch菙)涓婃笡灏戝皪(du矛)RAM鐨勫崰鐢紝閫欎娇寰楀畠閬╁悎鍦ㄤ綆绔祵鍏ュ紡绯荤当(t菕ng)涓娇鐢�銆�
銆€銆€LwIP鍗�(xi茅)璀版'鍦ㄨō(sh猫)瑷�(j矛)鏅�(sh铆)宸茬稉(j墨ng)鎶婃墍鏈夎垏纭欢銆佹搷浣滅郴绲�(t菕ng)銆佺法璀櫒绛夌Щ妞嶇浉闂�(gu膩n)鐨勯儴鍒嗙崹(d煤)绔嬪嚭渚嗭紝鏀惧湪/src/arch鐩寗涓�銆傚洜姝wIP鍦ㄎ糃/OS-鈪′笂鐨勫(sh铆)鐝�(xi脿n)灏辨槸淇敼閫欏€�(g猫)鐩寗涓嬬殑鏂囦欢[6]銆�
銆€?銆�?锛� 鑸嘋PU銆佺法璀櫒鐩搁棞(gu膩n)鐨勯儴鍒�
銆€銆€涓昏鏄痗c.h銆乧pu.h銆乸erf.h鏂囦欢涓湁闂�(gu膩n)鏁�(sh霉)鎿�(j霉)闀峰害銆佸瓧鐨勯珮浣庝綅闋嗗簭绛夌殑瀹氱京锛岄€欎簺鎳�(y墨ng)瑭茶垏瀵�(sh铆)鐝�(xi脿n)渭C/OS-鈪℃檪(sh铆)鍙冩暩(sh霉)鐨勫畾缇╀繚鎸佷竴鑷�銆傚彟澶�锛屼竴鑸儏娉佷笅C瑾炶█鐨勭祼(ji茅)妲�(g貌u)楂攕truct鏄�4瀛楃瘈(ji茅)灏�(du矛)榻婄殑锛屼絾鏄湪铏曠悊鏁�(sh霉)鎿�(j霉)鍖呯殑鏅�(sh铆)鍊�锛孡wIP浣跨敤鐨勬槸閫氶亷绲�(ji茅)妲�(g貌u)楂斾腑涓嶅悓鏁�(sh霉)鎿�(j霉)鐨勯暦搴︿締璁€鍙栫浉鎳�(y墨ng)鐨勬暩(sh霉)鎿�(j霉)锛屾墍浠ワ紝涓€瀹氳鍦ㄥ畾缇﹕truct鐨勬檪(sh铆)鍊欎娇鐢╛packed闂�(gu膩n)閸靛瓧锛岃畵绶ㄨ鍣ㄦ斁妫剆truct鐨勫瓧绡€(ji茅)灏�(du矛)榻娿€�
銆€?銆�?锛� 鑸囨搷浣滅郴绲�(t菕ng)鐩搁棞(gu膩n)鐨勯儴鍒�
銆€銆€LwIP涓渶瑕佷娇鐢ㄤ俊铏�(h脿o)閲忛€氫俊锛屾墍浠ュ湪sys_arch.h銆乻ys_arch.c涓噳(y墨ng)瀵�(sh铆)鐝�(xi脿n)淇¤櫉(h脿o)閲忕祼(ji茅)妲�(g貌u)楂攕ys_sem_t锛屽拰鐩搁棞(gu膩n)鐨勪俊铏�(h脿o)閲忚檿鐞嗗嚱鏁�(sh霉)锛氬寘鎷壍(chu脿ng)寤轰竴鍊�(g猫)淇¤櫉(h脿o)閲忕祼(ji茅)妲�(g貌u)sys_sem_new锛堬級锛岄噵鏀句竴鍊�(g猫)淇¤櫉(h脿o)閲忕祼(ji茅)妲�(g貌u)sys_sem_free锛堬級锛岀櫦(f膩)閫佷俊铏�(h脿o)閲弒ys_sem_signal锛堬級锛岃珛(q菒ng)姹備俊铏�(h脿o)閲弒ys_arch_sem_wait锛堬級銆�
銆€銆€LwIP浣跨敤娑堟伅闅�(du矛)鍒椾締绶╂矕銆佸偝閬炴暩(sh霉)鎿�(j霉)鍫�(b脿o)鏂�锛屽洜姝よ鍦╯ys_arch.h銆乻ys_arch.c涓(sh铆)鐝�(xi脿n)娑堟伅闅�(du矛)鍒楃祼(ji茅)妲�(g貌u)楂攕ys_mbox_t锛屼互鍙婄浉鎳�(y墨ng)鐨勬搷浣滃嚱鏁�(sh霉)锛氬寘鎷壍(chu脿ng)寤轰竴鍊�(g猫)娑堟伅闅�(du矛)鍒梥ys_mbox_new锛堬級锛岄噵鏀句竴鍊�(g猫)娑堟伅闅�(du矛)鍒梥ys_mbox_free锛堬級锛屽悜娑堟伅闅�(du矛)鍒楃櫦(f膩)閫佹秷鎭痵ys_mbox_post锛堬級锛屽緸娑堟伅闅�(du矛)鍒椾腑鐛插彇娑堟伅sys_arch_mbox_fetch锛堬級銆�
銆€銆€LwIP涓瘡鍊�(g猫)鑸囧鐣岀恫(w菐ng)绲�(lu貌)閫f帴鐨勭窔绋嬮兘鏈夎嚜宸辩殑timeout灞€�锛屽嵆绛夊緟瓒呮檪(sh铆)鏅�(sh铆)闁�锛岀Щ妞嶅伐浣滈渶瑕佸(sh铆)鐝�(xi脿n)sys_arch_timeouts锛堬級鍑芥暩(sh霉)锛岃繑鍥炵暥(d膩ng)鍓嶆铏曚簬閬�(y霉n)琛屾厠(t脿i)鐨勭窔绋嬫墍灏�(du矛)鎳�(y墨ng)鐨則imeout闅�(du矛)鍒楁寚閲濄€�
銆€銆€LwIP涓恫(w菐ng)绲�(lu貌)鏁�(sh霉)鎿�(j霉)鐨勮檿鐞嗛渶瑕佺窔绋嬩締鎿嶄綔锛屾墍浠ラ渶瑕佸(sh铆)鐝�(xi脿n)鍓�(chu脿ng)寤烘柊绶氱▼鍑芥暩(sh霉)sys_thread_new锛堬級銆傝€屽湪渭C/OS-鈪′腑锛屾矑鏈夌窔绋嬬殑姒傚康锛屽彧鏈変换鍕�(w霉)銆傚洜姝ゅ繀闋堣鎶婂壍(chu脿ng)寤烘柊浠诲嫏(w霉)鐨勫嚱鏁�(sh霉)OSTaskCreate锛堬級灏佽涓€涓嬶紝鎵嶅彲浠ュ(sh铆)鐝�(xi脿n)sys_thread_new锛堬級銆�
銆€銆€锛�3锛� 鐩搁棞(gu膩n)搴嚱鏁�(sh霉)鐨勫(sh铆)鐝�(xi脿n)
銆€銆€LwIP鍗�(xi茅)璀版'涓敤鍒颁簡8鍊�(g猫)澶栭儴鍑芥暩(sh霉)锛屼富瑕佹槸渚嗗畬鎴�16浣嶆暩(sh霉)鎿�(j霉)鐨勯珮浣庡瓧绡€(ji茅)浜ゆ彌銆�32浣嶆暩(sh霉)鎿�(j霉)鐨勫ぇ灏忛牠灏�(du矛)瑾�(di脿o)銆佽繑鍥炲瓧绗︿覆闀峰害銆佸瓧绗︿覆姣旇純銆佸収(n猫i)瀛樻暩(sh霉)鎿�(j霉)濉婃嫹璨�銆佹寚瀹氶暦搴︾殑鏁�(sh霉)鎿�(j霉)濉婃竻闆剁瓑鍔熻兘锛岃垏绯荤当(t菕ng)鎴栫法璀櫒鏈夐棞(gu膩n)锛岄渶瑕佺敤鎴跺(sh铆)鐝�(xi脿n)銆�
銆€銆€锛�4锛� 缍�(w菐ng)绲�(lu貌)瑷�(sh猫)鍌欓﹨(q奴)鍕�(d貌ng)绋嬪簭
銆€銆€鍦↙wIP涓彲浠ユ湁澶氬€�(g猫)缍�(w菐ng)绲�(lu貌)鎺ュ彛锛屾瘡鍊�(g猫)缍�(w菐ng)绲�(lu貌)鎺ュ彛閮藉皪(du矛)鎳�(y墨ng)浜嗕竴鍊�(g猫)netif绲�(ji茅)妲�(g貌u)锛岄€欏€�(g猫)netif鍖呭惈浜嗙浉鎳�(y墨ng)缍�(w菐ng)绲�(lu貌)鎺ュ彛鐨勫爆鎬�銆佹敹鐧�(f膩)鍑芥暩(sh霉)銆傚湪缍�(w菐ng)绲�(lu貌)瑷�(sh猫)鍌欓﹨(q奴)鍕�(d貌ng)绋嬪簭涓富瑕佸氨鏄(sh铆)鐝�(xi脿n)鍥涘€�(g猫)缍�(w菐ng)绲�(lu貌)鎺ュ彛鍑芥暩(sh霉)锛氱恫(w菐ng)鍗″垵濮嬪寲銆佺恫(w菐ng)鍗℃帴鏀舵暩(sh霉)鎿�(j霉)銆佺恫(w菐ng)鍗$櫦(f膩)閫佹暩(sh霉)鎿�(j霉)浠ュ強缍�(w菐ng)鍗′腑鏂疯檿鐞嗗嚱鏁�(sh霉)銆�
銆€銆€3.2 PC姗�(j墨)涓婂鎴剁绋嬪簭鐨勮ō(sh猫)瑷�(j矛)
銆€銆€VC++6.0鐠�(hu谩n)澧冧笅瀹㈡埗绔▼搴�?q奴)宕縁(xi脿n)鍖呮嫭浠ヤ笅骞惧€�(g猫)閮ㄥ垎锛�
銆€銆€锛�1锛� 寤虹珛瀹㈡埗绔殑Socket锛氬鎴剁鎳�(y墨ng)鐢ㄧ▼搴忛鍏堟(g貌u)閫犱竴鍊�(g猫)CAsyncSocket[7]灏�(du矛)璞ltSock锛岀劧鍚庤(di脿o)鐢–ltSock.Create锛堬級鍑芥暩(sh霉)渚嗗缓绔婥ltSock瀵�(sh铆)楂�銆�
銆€?銆�?锛� 鎻愬嚭閫f帴璜�(q菒ng)姹傦細瀹㈡埗绔鎺ュ瓧CltSock閫氶亷瑾�(di脿o)鐢–ltSock.Connect锛坰trAddr,nPort锛夊嚱鏁�(sh霉)鍚戞湇鍕�(w霉)鍣ㄥ鎺ュ瓧鎻愬嚭閫f帴璜�(q菒ng)姹傘€�
銆€?銆�?锛� 鍌宠几鏁�(sh霉)鎿�(j霉)锛氬湪瀹㈡埗绔噳(y墨ng)鐢ㄧ▼搴忎腑閲嶈級娑堟伅铏曠悊鍑芥暩(sh霉)OnReceive锛堬級鍜孫nSend锛堬級銆傚湪OnReceive锛堬級涓€氶亷瑾�(di脿o)鐢–ltSock.Receive锛堬級鍑芥暩(sh霉)寰炴湇鍕�(w霉)鍣ㄧ鎺ユ敹鏁�(sh霉)鎿�(j霉);鍦∣nSend锛堬級涓€氶亷瑾�(di脿o)鐢–ltSock.Send锛堬級鍑芥暩(sh霉)鍚戞湇鍕�(w霉)鍣ㄧ鐧�(f膩)閫佹暩(sh霉)鎿�(j霉)銆�
銆€?銆�?锛� 闂�(gu膩n)闁夐€f帴锛氬鎴剁濂楁帴瀛桟ltSock閫氶亷瑾�(di脿o)鐢–ltSock.Close锛堬級鍑芥暩(sh霉)渚嗛棞(gu膩n)闁夐€f帴銆�
4 閬�(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺ф噳(y墨ng)鐢ㄧ▼搴忕殑闁嬬櫦(f膩)
銆€銆€鏈枃瑷�(sh猫)瑷�(j矛)瀹屾垚鐨勫熀浜庝互澶恫(w菐ng)鐨勯仩(yu菐n)绋嬫恫浣嶇辜闆昏嚜鏁村畾PID鎺у埗绯荤当(t菕ng)锛屽叾鎺у埗绠楁硶鍦ㄩ仩(yu菐n)绔富姗�(j墨)锛堝鎴舵(j墨)锛変笂瀵�(sh铆)鐝�(xi脿n)锛屽叐绔€氶亷TCP鍗�(xi茅)璀伴€氫俊锛屾湰鍦扮殑宓屽叆寮忕郴绲�(t菕ng) 锛堟湇鍕�(w霉)鍣級涓婁竴鏂归潰瀵�(sh铆)鐝�(xi脿n)灏�(du矛)缍�(w菐ng)绲�(lu貌)鏁�(sh霉)鎿�(j霉)鐨勮檿鐞嗭紝涓€鏂归潰瀹屾垚灏�(du矛)娑蹭綅楂樺害鐨勯噰闆嗚垏鎺у埗;閬�(yu菐n)绔疨C姗�(j墨)涓婁竴鏂归潰铏曠悊缍�(w菐ng)绲�(lu貌)涓婄殑瀵�(sh铆)鏅�(sh铆)鏁�(sh霉)鎿�(j霉)锛屼竴鏂归潰閫氶亷PID瑷�(j矛)绠楀嚭鎺у埗閲�锛岄’绀虹浉闂�(gu膩n)鍙冩暩(sh霉)銆傚(sh铆)鏅�(sh铆)娑蹭綅璁婂寲鐙€娉佸鍦�2鎵€绀�锛屽緸鍦栦腑鍙互鐪嬪嚭锛屽(sh铆)闅涙恫浣嶏紙绱呰壊鏇茬窔锛夎兘澶犵┅(w臎n)瀹氬湪娑蹭綅瑷�(sh猫)瀹氬€硷紙钘�(l谩n)鑹叉洸绶氾級铏曘€傚悓鏅�(sh铆)锛屽緸鐢ㄦ埗鐣岄潰涓婃棦鍙互璁€鍑烘恫浣嶉珮搴﹀€�锛孭ID鑷暣瀹氬弮鏁�(sh霉)绛�锛岄倓鍙互鏀硅畩娑蹭綅楂樺害瑷�(sh猫)瀹氬€硷紝寰炶€岀湡姝e(sh铆)鐝�(xi脿n)浜嗘恫浣嶅皪(du矛)璞$殑閬�(yu菐n)绋嬬洠(ji膩n)鎺�銆�
[align=center]

鍦�2 閬�(yu菐n)绋嬫恫浣嶇辜闆昏嚜鏁村畾PID鎺у埗鏁堟灉鍦朳/align]
5 绲�(ji茅)瑾�
銆€銆€鏈枃瑷�(sh猫)瑷�(j矛)瑙f焙浜嗗湪宓屽叆寮忕郴绲�(t菕ng)涓(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)鍔熻兘鐨勫晱椤岋紝寮曞叆骞跺(sh铆)鐝�(xi脿n)浜嗕竴绋柊鐨勮ō(sh猫)瑷�(j矛)鏂规锛屽嵆閲囩敤涓夋槦ARM7铏曠悊鍣⊿3C44B0X+Realtek鐨�10M缍�(w菐ng)鍗TL8019AS纭欢绲勫悎锛岄€氶亷鍦ㄎ糃/OS-鈪℃搷浣滅郴绲�(t菕ng)鍏�(n猫i)鏍哥殑鏀寔涓�锛屾坊鍔犲祵鍏ュ紡TCP/IP鍗�(xi茅)璀版'LwIP锛屼締瀵�(sh铆)鐝�(xi脿n)缍�(w菐ng)绲�(lu貌)閫氫俊鐨勫姛鑳�锛岃垏PC姗�(j墨)瀹㈡埗绔殑Socket閫氫俊锛屽湪姝ゅ熀绀�(ch菙)涓婇枊鐧�(f膩)浜嗗熀浜庝互澶恫(w菐ng)鐨勯仩(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)锛岄仈(d谩)鍒颁簡鑹ソ鐨勬帶鍒舵晥鏋�?锛熸ⅱ閽ラ棷?锛岄€欓绯荤当(t菕ng)鍦ㄩ仩(yu菐n)绋嬬洠(ji膩n)鎺т腑鐨勫叿鏈夎壇濂界殑鎳�(y墨ng)鐢ㄥ墠鏅€�
銆€銆€鏈枃浣滆€呭壍(chu脿ng)鏂伴粸(di菐n):鏈枃灏囧祵鍏ュ紡缍�(w菐ng)绲�(lu貌)鎶€琛�(sh霉)寮曞叆鍒板伐妤�(y猫)閬庣▼閬�(yu菐n)绋嬬洠(ji膩n)鎺ч牁(l菒ng)鍩�锛屾彁鍑轰簡鑷繁鐨勮ō(sh猫)瑷�(j矛)鏂规锛屽苟鎴愬姛闁嬬櫦(f膩)浜嗕竴鍊�(g猫)閬�(yu菐n)绋嬫恫浣嶇洠(ji膩n)鎺х郴绲�(t菕ng)銆�
鍙冭€冩枃鐛�(xi脿n)
銆€銆€[1] 寮靛康榄�锛岀帇绱�锛屾潕绉夋瑠(qu谩n)锛岄噰鐢ㄥ鍠墖姗�(j墨)鐨勬恫浣嶇洠(ji膩n)鎺у剙锛屽柈鐗囨(j墨)鑸囧祵鍏ュ紡绯荤当(t菕ng)鎳�(y墨ng)鐢�锛�2005 No.1锛�59-60.
銆€銆€[2] 鏉庡缓骞�锛屽熀浜庝互澶恫(w菐ng)绲�(lu貌)鐨勯仩(yu菐n)绋嬬洠(ji膩n)鎺х郴绲�(t菕ng)锛岄劖宸炲ぇ瀛�(xu茅)瀛�(xu茅)鍫�(b脿o)锛堝伐瀛�(xu茅)鐗堬級锛�2002 Vol.23 No.3锛�81-83.
銆€銆€[3] 姊佹兒褰ワ紝鍜岃(w猫i)鏄�锛孡abVIEW瀵�(sh铆)鐝�(xi脿n)閬�(yu菐n)绋嬫暩(sh霉)鎿�(j霉)閲囬泦鑸囧偝杓革紝寰▓(j矛)绠楁(j墨)淇℃伅锛�2004 Vol.20 No.9锛�44-45.
銆€銆€[4] Jean J. Labrosse, 閭佃矟璨濈瓑璀�.宓屽叆寮忓(sh铆)鏅�(sh铆)鎿嶄綔绯荤当(t菕ng)渭C/OS-鈪�.鍖椾含锛氬寳浜埅绌鸿埅澶╁ぇ瀛�(xu茅)鍑虹増绀�.2003.
銆€銆€[5] Adam Dunkels. Design and Implementation of the LwIP TCP/IP Stack. Swedish Institute of Computer Science. 2001.
銆€銆€[6] 妤婃泟锛屽(sh铆)鏅�(sh铆)鎿嶄綔绯荤当(t菕ng)渭C/OS-鈪′笅TCP/IP鍗�(xi茅)璀版'鐨勫(sh铆)鐝�(xi脿n)锛屽柈鐗囨(j墨)鑸囧祵鍏ュ紡绯荤当(t菕ng)鎳�(y墨ng)鐢紝2003锛孨o.7锛�80-83.
銆€銆€[7] 棣Κ姘戯紝鐔婃枃杓�锛屽埄鐢∕FC Socket椤炲(sh铆)鐝�(xi脿n)TCP/IP閫氫俊锛岄€氫俊鎶€琛�(sh霉)锛�2002锛孨o.1锛�37-39.