鎶€琛�(sh霉)闋婚亾

濞撳〒宸ユキ(y猫)
鎮ㄧ従(xi脿n)鍦ㄧ殑浣嶇疆锛� 涓湅鍌冲嫊缍�(w菐ng) > 鎶€琛�(sh霉)闋婚亾 > 鎶€琛�(sh霉)鐧剧 > 瀵︽檪鎿嶄綔绯荤当(t菕ng)µC/OS-II鍦–8051F120涓婄殑绉绘

瀵︽檪鎿嶄綔绯荤当(t菕ng)µC/OS-II鍦–8051F120涓婄殑绉绘

鏅傞枔锛�2008-06-13 14:23:00渚嗘簮锛歞ujing

灏�(d菐o)瑾烇細?鏈枃浠嬬垂浜嗗鏅傛搷浣滅郴绲�(t菕ng)µC/OS-II鐨勭壒榛烇紝瑷庤珫浜嗗叾鍦�51绯诲垪鍠墖姗熶笂绉绘鐨勫繀瑕佹€�銆�
鎽樿 鏈枃浠嬬垂浜嗗鏅傛搷浣滅郴绲�(t菕ng)µC/OS-II鐨勭壒榛�锛岃◣璜栦簡鍏跺湪51绯诲垪鍠墖姗熶笂绉绘鐨勫繀瑕佹€�銆傚苟閬告搰8浣嶅柈鐗囨C8051F120浣滅偤绉绘鐩锛屽垎鏋愪簡µC/OS-II鐨勫叿楂旂Щ妞嶉亷绋�銆傛渶鍚庤ō(sh猫)瑷堜緥绋嬮璀変簡绉绘鐨勬纰烘€�銆� 闂�(gu膩n)閸佃 C8051F120锛�µC/OS-II锛涚Щ妞� [align=center]The Porting of Real-Time Operation System µC/OS-II on C8051F120 Taiyuan University of Technology Tian Juan[/align] Abstract The paper introduces the characteristic of real-time operation system µC/OS-II, and discusses the necessity of porting µC/OS-II on 51 series MCU. Then the specific process of porting µC/OS-II on C8051F120 which is selected as porting target is analyzed. The paper ends with designing test program to prove the success of the porting. Keywords C8051F120; µC/OS-II; porting 寮曡█ 鍌崇当(t菕ng)鐨勫祵鍏ュ紡绯荤当(t菕ng)瑷�(sh猫)瑷堝線寰€閲囩敤鍓�/鍚庤嚭绯荤当(t菕ng)銆傛噳(y墨ng)鐢ㄧ▼搴忔槸涓€鍊嬬劇闄愮殑寰挵(hu谩n)锛屽湪寰挵(hu谩n)涓(di脿o)鐢ㄧ浉鎳�(y墨ng)鐨勫嚱鏁�(sh霉)瀹屾垚灏嶆噳(y墨ng)鐨勬搷浣滐紝閫欓儴鍒嗗彲浠ョ湅鎴愬悗鑷鸿鐐�銆備腑鏂锋湇鍕�(w霉)绋嬪簭铏曠悊鐣版浜嬩欢锛岄€欓儴鍒嗗彲浠ョ湅鎴愬墠鑷鸿鐐篬1]銆傚湪澶у鏁�(sh霉)灏嶅鏅傛€ц姹傝純楂樼殑鍫村悎涓�锛岄€欑ó绯荤当(t菕ng)绲�(ji茅)妲�(g貌u)灏辩劇娉曟豢瓒虫噳(y墨ng)鐢ㄧ殑瑕佹眰锛屽鏅傚収(n猫i)鏍搁€愭鎴愮偤宓屽叆寮忕郴绲�(t菕ng)瑷�(sh猫)瑷堢殑涓绘祦銆�µC/OS-II鏄竴鍊嬪畬鏁寸殑锛屽彲绉绘銆佸浐鍖�銆佽娓涚殑鍗犲厛寮忓鏅傚浠诲嫏(w霉)鍏�(n猫i)鏍�锛屼笉鍍呯祼(ji茅)妲�(g貌u)绨″柈锛岀禃澶ч儴鍒嗛噰鐢–瑾炶█锛岃€屼笖鍙Щ妞嶆€уソ锛屽緢瀹规槗琚Щ妞嶅埌鍚勭ó寰檿鐞嗗櫒涓�锛屽湪绉绘閬庣▼涓紝鍙渶瑕佸仛灏戦噺鐨勪慨鏀瑰伐浣滃嵆鍙�銆傜洰鍓�µC/OS-II鏈€澶氭敮鎸�64鍊嬩换鍕�(w霉)锛岀附鏄湪鍩�(zh铆)琛岃檿浜庡氨绶掓厠(t脿i)鐨勫劒(y艒u)鍏堢礆鏈€楂樼殑浠诲嫏(w霉)銆傚苟涓斿洜鍏舵簮浠g⒓鐨勫畬鍏ㄥ叕闁嬪拰鍎�(y艒u)瓒婃€ц兘鑰屽緱鍒颁簡寤f硾鐨勬噳(y墨ng)鐢�銆� 51绯诲垪鍠墖姗熸槸缇庡湅Intel鍏徃鍦�1980骞存帹鍑虹殑楂樻€ц兘8浣嶅柈鐗囨锛岀洰鍓嶄粛鐒舵槸鎴戝湅浣跨敤鏈€寤f硾鐨勫柈鐗囨绯诲垪涔嬩竴锛屾湁闈炲父澶х殑鎳�(y墨ng)鐢ㄧ挵(hu谩n)澧冭垏鍓嶆櫙銆傚鏋滈枊鐧�(f膩)涓€濂楀熀浜�51绯诲垪鍠墖姗熺殑鎿嶄綔绯荤当(t菕ng)锛岄偅涔堢敤鎴跺彧闇€瑕佺法瀵悇鍊嬩换鍕�(w霉)鐨勭▼搴�锛屼笉蹇呭悓鏅傚皣鎵€鏈変换鍕�(w霉)閬嬭鐨勫悇绋儏娉佽鍦ㄥ績涓�锛屼笉浣嗗ぇ澶ф笡灏戜簡绋嬪簭绶ㄥ鐨勫伐浣滈噺锛岃€屼笖娓涘皯浜嗗嚭閷殑鍙兘鎬2]銆� 鎵€浠ワ紝鍦�51绯诲垪鍠墖姗熶笂绉绘瀵︽檪鎿嶄綔绯荤当(t菕ng)µC/OS-II鏄緢鏈夊繀瑕佺殑銆� 1 µC/OS-II鐨勭Щ妞嶆浠� 瑕佷娇µC/OS-II绉绘鍒拌檿鐞嗗櫒鍚庤兘姝e父閬嬭锛岃檿鐞嗗櫒蹇呴爤婊胯冻浠ヤ笅姊濅欢锛� 鈼� 铏曠悊鍣ㄧ殑C绶ㄨ鍣ㄨ兘鐢�(ch菐n)鐢熷彲閲嶅叆浠g⒓銆�µC/OS-II鏄彲鍓濆オ鍨嬪収(n猫i)鏍�锛岀附鏄畵灏辩窉鎱�(t脿i)鐨勯珮鍎�(y艒u)鍏堢礆鐨勪换鍕�(w霉)鍏堥亱琛岋紝涓柗鏈嶅嫏(w霉)绋嬪簭鍙互鎼跺崰CPU锛屾墍浠ュ彧鑳介€氶亷C绶ㄨ鍣ㄧ敘(ch菐n)鐢熷彲閲嶅叆浠g⒓?锛熻妽鍘濈墥鐦�?sh霉)鍙互琚竴鍊嬩互涓婄殑浠诲嫏(w霉)瑾�(di脿o)鐢紝鑰屼笉蹇呮摂(d膩n)蹇冩暩(sh霉)鎿�(j霉)琚牬澹�銆� 鈼� 铏曠悊鍣ㄧ殑C绶ㄨ鍣ㄨ兘鍦–瑾炶█涓枊涓柗鍜岄棞(gu膩n)涓柗銆傚洜鐐�µC/OS-II鍦ㄨ檿鐞嗚嚚鐣屾鐨勬檪鍊�锛岄爤闂�(gu膩n)涓柗锛岃檿鐞嗗畬鐣㈠悗锛屽啀闁嬩腑鏂枫€� 鈼� 铏曠悊鍣ㄦ敮鎸佷腑鏂�锛屽苟涓旇兘鐢�(ch菐n)鐢熷畾鏅備腑鏂�銆傚洜鐐�µC/OS-II鏄€氶亷纭欢涓柗渚嗗鐝�(xi脿n)绯荤当(t菕ng)鏅傞悩锛屽苟鍦ㄦ檪閻樹腑鏂锋湇鍕�(w霉)绋嬪簭涓締铏曠悊鑸囨檪闁撶浉闂�(gu膩n)鐨勫晱椤�锛屽鐝�(xi脿n)浠诲嫏(w霉)涔嬮枔鐨勮(di脿o)搴︺€� 鈼� 铏曠悊鍣ㄥ叿鏈変竴瀹氭暩(sh霉)閲忕殑纭欢鍫嗘'锛屽苟涓旀湁灏囧爢妫ф寚閲濆拰鍏朵粬CPU瀵勫瓨鍣ㄥ収(n猫i)瀹硅畝鍑�銆佸苟瀛樺劜鍒板爢妫ф垨鍏�(n猫i)瀛樹腑鐨勬寚浠�銆傚洜鐐�µC/OS-II鐐烘瘡涓€鍊嬩换鍕�(w霉)鍒嗛厤浠诲嫏(w霉)鍫嗘'锛屽湪浠诲嫏(w霉)鍒囨彌鏅�锛岄渶瑕佸厛淇濆瓨鐣跺墠浠诲嫏(w霉)鍫嗘'鍏�(n猫i)瀹�锛屽啀鎭㈠京(f霉)鏈€楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)鍫嗘'鍏�(n猫i)瀹�銆� 2 CPU鑺墖鐨勯伕鎿� 闅ㄨ憲鐝�(xi脿n)浠i€氫俊鎶€琛�(sh霉)鐨勭櫦(f膩)灞�锛屾櫤鑳藉寲绯荤当(t菕ng)灏岲SP闇€姹傜殑澧為暦瑕佹眰涓嶆柗鎻愰珮鍠墖姗熼亱绠楅€熷害[3]銆侰8051F绯诲垪鍠墖姗熷氨鏄湪閫欐ǎ鐨勬儏娉佷笅鐢盨ilabs鍏徃鎺ㄥ嚭鐨�锛屽畠鏄畬鍏ㄩ泦鎴愮殑娣峰悎淇¤櫉绯荤当(t菕ng)绱氳姱鐗囷紝鍏锋湁鑸�8051鍏煎鐨勫井鎺у埗鍣ㄥ収(n猫i)鏍�锛屽湪涓嶆摯灞�8浣嶆暩(sh霉)鎿�(j霉)绺界窔鐨勬儏娉佷笅锛屼娇鍠懆鏈熸寚浠ら€熷害鎻愰珮鍒板師8051鐨�12鍊�銆傝€孋8051F120浣滅偤C8051F绯诲垪涓殑楂樼鐢�(ch菐n)鍝佸氨琚伕鎿囩偤绯荤当(t菕ng)绉绘鐨勫皪璞�銆� C8051F120鐨勫収(n猫i)閮ㄨ硣婧愭湁锛�64鍊婭/O寮曡叧锛�5鍊�16浣嶉€氱敤瑷堟暩(sh霉)鍣�/瀹氭檪鍣�锛�6鍊嬫崟鐛�/姣旇純妯″锛岀‖浠跺鐝�(xi脿n)鐨凷PI锛孲MBus/IIC鍜屽叐鍊婾ART涓茶鎺ュ彛锛岀墖鍏�(n猫i)鐪嬮杸鐙楀畾鏅傚櫒锛�2鍊嬫瘮杓冨櫒锛岀湡姝�12浣�100ksps鐨�8閫氶亾ADC锛�8浣�500ksps鐨�8閫氶亾ADC锛�128KB鐨凢LASH瀛樺劜鍣紝8448B鐨勫収(n猫i)閮ㄦ暩(sh霉)鎿�(j霉)RAM[4]銆� 鐢变簬C8051F120铏曠悊鍣ㄥ拰浣跨敤鐨凨eil绶ㄨ鍣ㄩ兘鑳藉寰堝ソ鐨勬豢瓒充笂杩扮Щ妞嶆浠讹紝鎵€浠ュ彲浠ユ妸µC/OS-II绉绘鍒癈8051F120涓�銆傚湪瀵﹂殯闁嬬櫦(f膩)绯荤当(t菕ng)涓紝浣跨敤澶栭儴鏅堕珨鎸暕鍣�锛屾櫠鎸牷鐜囩偤22.1184MHZ锛屽苟澶栨摯256KB鐨凴AM銆� 3 绉绘閬庣▼ µC/OS-II鐨勭Щ妞嶅彲浠ョ湅浣滄槸灏�µC/OS-II浠g⒓鐨勪慨鏀广€�µC/OS-II鐨勪唬纰煎垎鐐鸿垏铏曠悊鍣ㄧ劇闂�(gu膩n)鐨勪唬纰�锛岃垏铏曠悊鍣ㄧ浉闂�(gu膩n)鐨勪唬纰煎拰鑸囨噳(y墨ng)鐢ㄧ浉闂�(gu膩n)鐨勪唬纰笺€傝垏铏曠悊鍣ㄧ劇闂�(gu膩n)鐨勪唬纰煎師鍓囦笂鏄笉鐢ㄤ慨鏀瑰彲浠ョ洿鎺ユ坊鍔狅紝浣嗙敱浜嶬eil绶ㄨ鍣ㄧ殑鐗规畩鎬�锛屽繀闋堝湪闇€瑕佸彲閲嶅叆鐨勫嚱鏁�(sh霉)鑱叉槑鐨勫悗闈㈡娉╮eentant闂�(gu膩n)閸靛瓧锛屽嵆鍔犱笂閲嶅叆灞€э紱鍙堝洜鐐簆data鏃㈡槸Keil鐨勯棞(gu膩n)閸靛瓧鍙堟槸µC/OS-II鐨勪竴浜涘嚱鏁�(sh霉)鐨勫舰鍙�锛屾渻灏�(d菐o)鑷寸法璀尟瑾わ紝鎵€浠ユ妸pdata鏀圭偤pdat銆傝垏铏曠悊鍣ㄧ浉闂�(gu膩n)鐨勪唬纰煎寘鎷�3鍊嬫枃浠讹細OS_CPU.H銆丱S_CPU_C.C銆丱S_CPU_A.ASM锛岄渶瑕佸ぇ閲忕殑淇敼鍚庢墠鑳芥坊鍔�锛岄€欐槸绉绘宸ヤ綔鐨勯噸榛炪€傚彟澶�锛岃垏鎳�(y墨ng)鐢ㄧ浉闂�(gu膩n)鐨勪唬纰煎寘鎷�2鍊嬮牠鏂囦欢锛欼NCLUDES.H鍜孫S_CFG.H銆侷NCLUDES.H鏄竴鍊嬩富闋枃浠�锛屽嚭鐝�(xi脿n)鍦ㄦ瘡鍊�.C鏂囦欢鐨勭涓€琛�銆侷NCLUDES.H鏂囦欢浣垮緱宸ョ▼闋呯洰涓殑姣忓€�.C鏂囦欢鐒¢渶鍒嗗垾鑰冩叜瀹冨闅涗笂闇€瑕佸摢浜涢牠鏂囦欢銆傞倓鍙互鍦ㄩ牠鏂囦欢鍒楄〃鐨勬渶鍚庢坊鍔犺嚜宸辩殑闋枃浠躲€侽S_CFG.H鏄郴绲�(t菕ng)閰嶇疆鏂囦欢锛�µC/OS-II鐨勮娓涢亷绋嬫槸閫氶亷灏峅S_CFG.H涓殑鐩搁棞(gu膩n)甯搁噺閫茶瑷�(sh猫)缃締瀹屾垚[5]?锛熸ⅱ鑻戣瓋妲胯澘?w霉)绠$悊鍔熻兘鐨勮娓�锛岀瘈(ji茅)鐪佷唬纰煎瓨鍎茬┖闁�锛涙暩(sh霉)鎿�(j霉)绲�(ji茅)妲�(g貌u)鐨勮娓�锛岀瘈(ji茅)鐪佹暩(sh霉)鎿�(j霉)瀛樺劜绌洪枔锛涚郴绲�(t菕ng)绡€(ji茅)鎷嶉牷鐜囪ō(sh猫)缃拰浠诲嫏(w霉)鍫嗘'澶у皬瑷�(sh猫)缃�銆� 3.1 OS_CPU.H OS_CPU.H鍖呮嫭浜嗙敤#define瑾炲彞瀹氱京鐨勩€佽垏铏曠悊鍣ㄧ浉闂�(gu膩n)鐨勫父鏁�(sh霉)銆佸畯浠ュ強椤炲瀷銆� 鏁�(sh霉)鎿�(j霉)椤炲瀷鐨勫畾缇╂槸鐐轰簡淇濊瓑鍙Щ妞嶆€�銆傝€屼笖蹇呴爤鎶婁换鍕�(w霉)鍫嗘'鐨勬暩(sh霉)鎿�(j霉)椤炲瀷鍛婅ùµC/OS-II锛岄€氶亷鐐篛S_STK鑱叉槑鎭扮暥?sh霉)鑵冩暩(sh霉)鎿�(j霉)椤炲瀷渚嗗鐝�(xi脿n)鐨�銆侰8051F120鐨勫爢妫ф槸8浣嶇殑锛屾墍浠ヨ伈鏄嶰S_STK锛� typedef INT8U OS_STK; //鍫嗘'鐨勫搴︾偤8浣� µC/OS-II鐐轰簡铏曠悊鑷ㄧ晫娈典唬纰�锛岄爤闂�(gu膩n)涓柗锛岃檿鐞嗗畬鐣㈠悗锛屽啀闁嬩腑鏂�銆傛墍浠ュ畾缇�2鍊嬪畯渚嗛棞(gu膩n)涓柗鍜岄枊涓柗锛歄S_ENTER_CRITICAL锛堬級鍜孫S_EXIT_CRITICAL锛堬級銆傞€�2鍊嬪畯鍙互鐢�3绋柟娉曞鐝�(xi脿n)锛屽叿楂旂敤鍝ó鏂规硶锛屽彇姹轰簬浣跨敤鐨勮檿鐞嗗櫒椤炲瀷鍜孋绶ㄨ鍣�銆侰8051F120浣跨敤鏂规硶1渚嗚檿鐞嗚嚚鐣屾锛屽嵆鐩存帴闁嬮棞(gu膩n)涓柗銆傞€欐ǎ瀹氱京鏃㈡笡灏戜簡绋嬪簭琛屾暩(sh霉)锛屽張閬垮厤浜嗛€€鍑鸿嚚鐣屽崁(q奴)鍚庨棞(gu膩n)涓柗閫犳垚鐨勬姗�銆傛牴鎿�(j霉)涓柗鍏佽ū瀵勫瓨鍣� IE鐨勭7浣岴A鐐轰腑鏂峰厑瑷辩附鎺у埗浣�锛孍A=0灞忚斀鎵€鏈変腑鏂凤紝EA=1鍏佽ū鎵€鏈変腑鏂�锛屾墍浠ュ畾缇╄獮鍙ョ偤锛� #define OS_ENTER_CRITICAL锛堬級 EA=0 //闂�(gu膩n)涓柗 #define OS_EXIT_CRITICAL锛堬級 EA=1 //闁嬩腑鏂� C8051F120鍫嗘'寰炰笅鍚戜笂澧為暦锛�0=鍚戜笂锛�1=鍚戜笅锛�锛岄€氶亷閰嶇疆甯告暩(sh霉)OS_STK_GROWTH鎸囧畾鍫嗘'鐨勬柟鍚�銆傛墍浠ュ畾缇╄獮鍙ョ偤锛� #define OS_STK_GROWTH 0 //鍫嗘'寰炰笅鍚戜笂澧為暦锛�1=鍚戜笅澧為暦 µC/OS-II鐨勪换鍕�(w霉)鍒囨彌鏄€氶亷妯′豢涓柗鍕曚綔瀹屾垚鐨�锛屼絾C8051F120娌掓湁杌熶腑鏂锋寚浠�锛屾墍浠ョ敤鍑芥暩(sh霉)瑾�(di脿o)鐢ㄧ殑鏂瑰紡瀵︾従(xi脿n)浠诲嫏(w霉)鍒囨彌锛屽畾缇╄獮鍙ョ偤锛� #define OS_TASK_SW锛堬級 OSCtxSw锛堬級 // OSCtxSw锛堬級鏄敤浜庡鐝�(xi脿n)浠诲嫏(w霉)鍒囨彌鐨勫嚱鏁�(sh霉) 3.2 OS_CPU_C.C OS_CPU_C.C鍖呮嫭10鍊婥鍑芥暩(sh霉)锛歄STaskStkInit锛堬級鍑芥暩(sh霉)鍜�9鍊婬ook鍑芥暩(sh霉)銆侽STaskStkInit锛堬級鍑芥暩(sh霉)鍦ㄤ换鍕�(w霉)鍓�(chu脿ng)寤烘檪琚(di脿o)鐢�锛岀敤渚嗗垵濮嬪寲浠诲嫏(w霉)鍫嗘'銆侶ook鍑芥暩(sh霉)鐢ㄤ締鎿村睍µC/OS-II鐨勫姛鑳斤紝鍙互涓嶅寘鍚换浣曚唬纰�锛屼絾蹇呴爤鑱叉槑銆傛渶鍚庢坊鍔燭imer0鍒濆鍖栧嚱鏁�(sh霉)锛屽寘鎷伕鎿囧伐浣滄ā寮忥紝瑷�(sh猫)瀹氬垵鍊煎拰浣胯兘涓柗锛屽洜鐐鸿浣跨敤C8051F120鐨凾imer0瀵︾従(xi脿n)鏅傞悩涓柗銆� 鍦ㄤ慨鏀筄STaskStkInit锛堬級鍑芥暩(sh霉)涔嬪墠锛岄渶瑕佸厛鐭ラ亾浠诲嫏(w霉)鍫嗘'鐨勭祼(ji茅)妲�(g貌u)銆�µC/OS-II鐐烘瘡涓€鍊嬩换鍕�(w霉)閮藉垎閰嶄簡浠诲嫏(w霉)鍫嗘'锛屼换鍕�(w霉)鍫嗘'鐢辩郴绲�(t菕ng)鍫嗘'鍜屼豢鐪熷爢妫у叐閮ㄥ垎绲勬垚銆傜敱浜嶤8051F120瑕佹眰鍫嗘'瑷�(sh猫)缃湪鐗囧収(n猫i)RAM涓�锛岃€岀墖鍏�(n猫i)RAM绌洪枔鍙堥潪甯告湁闄�锛屽洜姝ゆ墍鏈変换鍕�(w霉)鐨勪换鍕�(w霉)鍫嗘'瑷�(sh猫)缃湪鐗囧収(n猫i)RAM涓槸骞句箮涓嶅彲鑳界殑銆傚彧鑳芥妸浠诲嫏(w霉)鍫嗘'瀛樻斁鍦ㄧ墖澶朢AM锛屽苟鍦ㄧ墖鍏�(n猫i)RAM瑷�(sh猫)缃竴鍊嬪叕鍏卞爢妫э紝鍗崇郴绲�(t菕ng)鍫嗘'锛屾'搴曞湴鍧€鐐�?STACK銆傚湪浠诲嫏(w霉)鍒囨彌鏅�锛岄渶鍏堜繚瀛樼暥鍓嶄换鍕�(w霉)鍫嗘'鍏�(n猫i)瀹�锛屽啀鎭㈠京(f霉)鏈€楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)鍫嗘'鍏�(n猫i)瀹�锛屽嵆閫茶浠诲嫏(w霉)鍫嗘'鍜岀郴绲�(t菕ng)鍫嗘'鐨勫京(f霉)鍒�銆備豢鐪熷爢妫ф槸鐢ㄤ締鐐哄彲閲嶅叆鍑芥暩(sh霉)瀹屾垚鍙冩暩(sh霉)鍌抽仦鍜屽瓨鏀惧眬閮ㄨ畩閲忕殑锛岃ō(sh猫)缃湪鐗囧RAM锛屽闀锋柟鍚戠敱涓婂悜涓嬶紝妫ф寚閲濈偤?C_XBP銆� 鎵€浠�锛屼换鍕�(w霉)鍫嗘'鍒濆鍖栧彲浠ョ湅浣滄槸鎶婅檿浜庡氨绶掓厠(t脿i)鐨勬渶楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)鐨勪换鍕�(w霉)鍫嗘'鍏�(n猫i)瀹瑰京(f霉)鍒跺埌绯荤当(t菕ng)鍫嗘'鐨勯亷绋�銆傞鍏堣鐛插緱浠诲嫏(w霉)鍫嗘'鏈€浣庡湴鍧€鍜岄暦搴︼紝鍥犵偤闇€瑕佸緸浠诲嫏(w霉)鍫嗘'涓仮寰�(f霉)15鍊嬪瘎瀛樺櫒鍏�(n猫i)瀹瑰埌绯荤当(t菕ng)鍫嗘'锛屾墍浠ュ爢妫ч暦搴︾偤15銆傜劧鍚庡緸涓嬪悜涓婁緷娆″京(f霉)鍒跺瘎瀛樺櫒鍏�(n猫i)瀹�锛屽京(f霉)鍒堕爢搴忔槸锛歅CL锛孭CH锛孭SW锛孉CC锛孊锛孌PL锛孌PH锛孯0锛孯1锛孯2锛孯3锛孯4锛孯5锛孯6锛孯7銆傛渶鍚庝繚瀛樹豢鐪熷爢妫у湴鍧€锛屽苟杩斿洖浠诲嫏(w霉)鍫嗘'鏈€浣庡湴鍧€銆傞€欐ǎ灏卞畬鎴愪簡浠诲嫏(w霉)鍫嗘'鍒濆鍖�銆� 3.3 OS_CPU_A.ASM OS_CPU_A.ASM鍖呮嫭4鍊嬪尟绶ㄨ獮瑷€鍑芥暩(sh霉)锛岄€�4鍊嬪嚱鏁�(sh霉)閮芥槸涓嶅彲閲嶅叆鐨�锛屽苟涓斿畾缇╀簡绯荤当(t菕ng)鍫�?锛熻嚮g澶у皬銆� OSStartHighRdy 锛堬級鍑芥暩(sh霉)锛岀敤渚嗕娇灏辩窉鎱�(t脿i)浠诲嫏(w霉)涓劒(y艒u)鍏堢礆鏈€楂樼殑浠诲嫏(w霉)闁嬪閬嬭銆侽SCtxSw锛堬級鍑芥暩(sh霉)锛屽鐝�(xi脿n)CPU姝e父閬嬭鏅備换鍕�(w霉)闁撶殑鍒囨彌,鍗冲皪鐣跺墠浠诲嫏(w霉)鍫嗘'鐨勪繚瀛樺拰灏嶆渶楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)鍫嗘'鐨勫綀鍑�,浣挎渶楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)鐛插彇CPU鐨勬帶鍒舵瑠(qu谩n)銆侽SIntCtxSw锛堬級鍑芥暩(sh霉)锛屼綔鐢ㄦ槸鍦ㄤ腑鏂锋湇鍕�(w霉)绋嬪簭涓煼(zh铆)琛屼腑鏂风礆鍒ヤ换鍕�(w霉)鍒囨彌銆傚畠鐨勭禃澶у鏁�(sh霉)浠g⒓鍜孫SCtxSw锛堬級鍑芥暩(sh霉)鏄竴妯g殑锛屽崁(q奴)鍒ュ湪浜庝腑鏂锋湇鍕�(w霉)鍑芥暩(sh霉)宸茬稉(j墨ng)淇濆瓨浜嗗瘎瀛樺櫒鍏�(n猫i)瀹�锛屽墖涓嶉渶瑕佸啀鍦∣SIntCtxSw锛堬級鍑芥暩(sh霉)涓繚瀛樸€侽STickISR锛堬級鍑芥暩(sh霉)锛屾槸绯荤当(t菕ng)鏅傞悩鐨勪腑鏂锋湇鍕�(w霉)绋嬪簭锛屼富瑕佸姛鑳芥槸妾㈡煡鏄惁鏈夌敱浜庡欢鏅傝€岃鎺涜捣鐨勪换鍕�(w霉)鎴愮偤灏辩窉浠诲嫏(w霉)銆傚鏋滄湁锛屽氨瑾�(di脿o)鐢∣SIntCtxSw锛堬級鍑芥暩(sh霉)閫茶浠诲嫏(w霉)鍒囨彌锛屽緸鑰岄亱琛屾渶楂樺劒(y艒u)鍏堢礆浠诲嫏(w霉)銆傚洜鐐�µC/OS-II鍦ㄦ瘡涓€鍊嬬瘈(ji茅)鎷嶉兘瑕佹鏌ユ湁娌掓湁鏇撮珮鍎�(y艒u)鍏堢礆鐨勪换鍕�(w霉)鍦ㄧ瓑寰呭煼(zh铆)琛�锛屽鏋滄湁,灏辫閫茶浠诲嫏(w霉)鍒囨彌銆傛墍浠�锛屾檪閻樼瘈(ji茅)鎷嶇巼瓒婇珮锛岀郴绲�(t菕ng)鐨勯澶栬矤鑽峰氨瓒婇噸銆� 4 绯荤当(t菕ng)娓│ 鎸夌収涓婅堪绉绘姝ラ锛屼綔鑰呭湪Keil绶ㄨ鐠�(hu谩n)澧冧笅瀵︾従(xi脿n)浜�µC/OS-II鍦–8051F120涓婄殑鍏烽珨绉绘銆傜偤浜嗛槻姝㈠湪绶ㄨ鏅傚嚭鐝�(xi脿n)娈甸亷澶х殑閷锛岄渶瑕侀伕鎿囧収(n猫i)瀛樻ā寮忕偤澶фā寮�锛屽苟鐩告噳(y墨ng)鐨勫湪STARTUP.A51 鏂囦欢涓ō(sh猫)缃甔BPSTACK=1銆傚壍(chu脿ng)寤�2鍊嬩换鍕�(w霉)渚嗛璀�µC/OS-II绉绘鐨勬垚鍔燂細 OSTaskCreate 锛圱askLed, 锛坴oid 锛婏級0, TaskStartStkLed,2锛�; OSTaskCreate 锛圱askSmg, 锛坴oid 锛婏級0, TaskStartStkSmg,3锛�; 绋嬪簭娴佺▼鍦栧鍦�1鎵€绀�銆備换鍕�(w霉)TaskLed闁冪垗1娆″悗锛屽悜浠诲嫏(w霉)TaskSmg鐧�(f膩)閫佹秷鎭苟绛夊緟鍥炲京(f霉)锛屼换鍕�(w霉)TaskSmg寰楀埌娑堟伅鍚庨’绀洪杻鐖嶆鏁�(sh霉)锛屽苟閫茶鍥炲京(f霉)銆傛渶绲傛晥鏋滅偤P4.0閫f帴鐨凩ED闁冪垗1娆�锛屽墖P5鍙i€f帴鐨勬暩(sh霉)纰肩椤ず鏁�(sh霉)瀛楀姞1锛屾渶澶ч’绀虹偤9锛屼箣鍚庤嚜鍕曟竻闆躲€傜稉(j墨ng)閬�4灏忔檪鐨勯€g簩(x霉)瀵﹂锛屼竴鍒囬亱琛屾甯�锛岄€欏氨椹楄瓑浜嗙Щ妞嶄唬纰肩殑姝g⒑鎬�銆� [align=center] 鍦�1 绋嬪簭娴佺▼鍦朳/align] 闇€瑕佹敞鎰忕殑鏄紝C8051F120鐨勪娇鐢ㄦ秹鍙婂埌SFRPAGR鐨勪繚璀�锛屽洜鐐篊8051F120鎿佹湁澶鐨勬ā鎿拰鏁�(sh霉)瀛楄硣婧�锛屽畠鍊戦兘闇€瑕佺浉鎳�(y墨ng)鐨凷FR鎺у埗锛岃€屾婧�8051淇濈暀鐨凷FR绌洪枔涓嶈兘婊胯冻鎵€闇€鐨凷FR瀵勫瓨鍣�锛屾墍浠8051F120鍙﹀瀹夋帓浜哠FRPAGE渚嗘摯灞曟洿澶氱殑SFR瀵勫瓨鍣ㄧ┖闁�銆傚悓涓€鍊婼FR鍦板潃閰嶅悎涓嶅悓鐨凷FRPAGE鍊�锛屾帶鍒朵笉鍚岀殑璩囨簮銆備絾濡傛灉鏄潪涓柗鎯呮硜涓嬬櫦(f膩)鐢熶换鍕�(w霉)鍒囨彌锛屽苟涓斿湪鏂颁换鍕�(w霉)涓敼璁婁簡SFRPAGE锛岄偅涔堝洖鍒颁互鍓嶇殑浠诲嫏(w霉)鍚庡緢鍙兘SFRPAGE宸茬稉(j墨ng)鏀硅畩锛屽緸鑰岀劇娉曟帶鍒舵纰虹殑璩囨簮锛岄倓鏈夊彲鑳戒娇绋嬪簭璺戦銆傚洜鐐轰笉鍚岀殑璩囨簮寰€寰€闇€瑕佷笉鍚岀殑SFRPAGE锛岀偤浜嗚В姹洪€欎竴鍟忛锛屽湪鎵€鏈夊嚭鐝�(xi脿n)SFRPAGE璩﹀€肩殑鍦版柟閮芥噳(y墨ng)鐣朵綔鑷ㄧ晫浠g⒓淇濊璧蜂締锛岄€欐ǎ灏卞彲浠ュ畬鍏ㄩ伩鍏嶅洜SFRPAGE鍊肩殑閷鑰屽紩鍑虹殑鍟忛[6]銆� 5 绲�(ji茅)璜� µC/OS-II鏄竴绋鏅傛€уソ銆佷唬纰奸噺灏忕殑澶氫换鍕�(w霉)瀵︽檪鎿嶄綔绯荤当(t菕ng)锛屽叿鏈夊緢濂界殑绌�(w臎n)瀹氭€ц垏鍙潬鎬�锛屽彲寤f硾绉绘鍒颁笉鍚屾(g貌u)鏋剁殑寰檿鐞嗗櫒涓�銆傛湰鏂囧畬鏁寸殑闂¤堪浜�µC/OS-II鐨勭Щ妞嶉亷绋�锛屽苟鍦–8051F120涓婂鐝�(xi脿n)浜嗛洐浠诲嫏(w霉)鍚屾閫氫俊銆傝珫鏂囧皪51绯诲垪鍠墖姗熺殑µC/OS-II绉绘鍏锋湁鏅亶鐨勬寚灏�(d菐o)鎰忕京銆�

妯欑敖锛�

榛炶磰

鍒嗕韩鍒帮細

涓婁竴绡囷細璁婇牷鍣ㄧ董淇渚嬭В鏋�

涓嬩竴绡囷細寰兘WIN-V63鐭㈤噺鎺у埗璁婇牷鍣ㄥ湪...

涓湅鍌冲嫊缍�(w菐ng)鐗堟瑠(qu谩n)鑸囧厤璨�(z茅)鑱叉槑锛氬嚒鏈恫(w菐ng)娉ㄦ槑[渚嗘簮锛氫腑鍦嬪偝鍕曠恫(w菐ng)]鐨勬墍鏈夋枃瀛�銆佸湒鐗�銆侀煶瑕栧拰瑕栭牷鏂囦欢锛岀増娆�(qu谩n)鍧囩偤涓湅鍌冲嫊缍�(w菐ng)(www.wangxinlc.cn)鐛ㄥ鎵€鏈�銆傚闇€杞�(zhu菐n)杓夎珛鑸�0755-82949061鑱�(li谩n)绯�銆備换浣曞獟楂�銆佺恫(w菐ng)绔欐垨鍊嬩汉杞�(zhu菐n)杓変娇鐢ㄦ檪闋堟敞鏄庝締婧愨€滀腑鍦嬪偝鍕曠恫(w菐ng)鈥濓紝閬曞弽鑰呮湰缍�(w菐ng)灏囪拷绌跺叾娉曞緥璨�(z茅)浠�銆�

鏈恫(w菐ng)杞�(zhu菐n)杓夊苟娉ㄦ槑鍏朵粬渚嗘簮鐨勭ǹ浠�锛屽潎渚嗚嚜浜掕伅(li谩n)缍�(w菐ng)鎴栨キ(y猫)鍏�(n猫i)鎶曠ǹ浜哄+锛岀増娆�(qu谩n)灞簬鍘熺増娆�(qu谩n)浜�銆傝綁(zhu菐n)杓夎珛淇濈暀绋夸欢渚嗘簮鍙婁綔鑰�锛岀姝㈡搮鑷鏀�锛岄仌鑰呰嚜璨犵増娆�(qu谩n)娉曞緥璨�(z茅)浠�銆�

缍�(w菐ng)绔欑啊浠�|鏈冨摗鏈嶅嫏(w霉)|鑱�(li谩n)绯绘柟寮�|骞姪淇℃伅|鐗堟瑠(qu谩n)淇℃伅|缍�(w菐ng)绔欏湴鍦�|鍙嬫儏閺堟帴|娉曞緥鏀寔|鎰忚鍙嶉|sitemap

鍌冲嫊缍�(w菐ng)-宸ユキ(y猫)鑷嫊鍖栬垏鏅鸿兘鍒堕€犵殑鍏ㄥ獟楂斺€滀簰鑱�(li谩n)缍�(w菐ng)+鈥濆壍(chu脿ng)鏂版湇鍕�(w霉)骞宠嚭

缍�(w菐ng)绔欏鏈�鏈嶅嫏(w霉)鍜ㄨ閲囪臣鍜ㄨ濯掗珨鍚堜綔

Chuandong.com Copyright ?2005 - 2025 锛孉ll Rights Reserved 娣卞湷甯傚ェ缇庡ぇ鍞愬唬鍛婃湁闄愬叕鍙� 鐗堟瑠(qu谩n)鎵€鏈�
绮礗CP鍌� 14004826铏� | 鐕熸キ(y猫)鍩�(zh铆)鐓ц瓑鏇� | 涓嶈壇淇℃伅鑸夊牨涓績 | 绮靛叕缍�(w菐ng)瀹夊倷 44030402000946铏�