1 背景
éš¨è‘—è¨ˆç®—æ©ŸæŠ€è¡“çš„è¿…é€Ÿç™¼å±•å’ŒèŠ¯ç‰‡åˆ¶é€ å·¥è—çš„ä¸æ–·é€²æ¥ï¼ŒåµŒå…¥å¼ç³»çµ±çš„æ‡‰ç”¨æ—¥ç›Šå»£æ³›ï¼šå¾žæ°‘ç”¨çš„é›»è¦–ã€æ‰‹æ©Ÿç‰é›»è·¯è¨å‚™åˆ°è»ç”¨çš„飛機ã€å¦å…‹ç‰æ¦å™¨ç³»çµ±ï¼Œåˆ°è™•都有嵌入å¼ç³»çµ±çš„身影。在嵌入å¼ç³»çµ±çš„æ‡‰ç”¨é–‹ç™¼ä¸ï¼Œé‡‡å’ŒåµŒå…¥å¼å¯¦æ™‚æ“作系統(簡稱RTOSï¼‰èƒ½å¤ æ”¯æŒå¤šä»»å‹™ï¼Œä½¿å¾—程åºé–‹ç™¼æ›´åŠ å®¹æ˜“ï¼Œä¾¿äºŽç¶è·ï¼ŒåŒæ™‚èƒ½å¤ æé«˜ç³»çµ±çš„穩定性和å¯é æ€§ã€‚é€™å·²é€æ¼¸æˆç‚ºåµŒå…¥å¼ç³»çµ±é–‹ç™¼çš„一個發展方å‘。
2 åµŒå…¥å¼æ“作系統概述
åµŒå…¥å¼æ“作系統是一種支æŒåµŒå…¥å¼ç³»çµ±æ‡‰ç”¨çš„æ“ä½œç³»çµ±è»Ÿä»¶ã€‚å®ƒæ˜¯åµŒå…¥å¼ç³»çµ±ï¼ˆåŒ…括硬ã€è»Ÿä»¶ç³»çµ±ï¼‰æ¥µç‚ºé‡è¦çš„組æˆéƒ¨åˆ†ï¼Œé€šå¸¸åŒ…括與硬件相關的底層驅動軟件ã€ç³»çµ±å…§æ ¸ã€è¨å‚™é©…動接å£ã€é€šä¿¡å”è°ã€åœ–形界é¢ã€æ¨™æº–化ç€è¦½å™¨Browserç‰ã€‚åµŒå…¥å¼æ“作系統具有通用æ“ä½œç³»çµ±çš„åŸºæœ¬ç‰¹é»žï¼Œå¦‚èƒ½å¤ æœ‰æ•ˆç®¡ç†è¶Šä¾†è¶Šå¾©é›œçš„系統資æºï¼›èƒ½å¤ 把硬件虛擬化,使得開發人員從ç¹å¿™çš„驅動程åºç§»æ¤å’Œç¶è·ä¸è§£è„«å‡ºä¾†ï¼›èƒ½å¤ æä¾›åº«å‡½æ•¸ã€æ¨™æº–è¨å‚™é©…動程åºä»¥åŠå·¥å…·é›†ç‰ã€‚與通用æ“ä½œç³»çµ±ç›¸æ¯”è¼ƒï¼ŒåµŒå…¥å¼æ“作系統在系統實時高效性ã€ç¡¬ä»¶çš„相關ä¾è³´æ€§ã€è»Ÿä»¶å›ºæ…‹åŒ–ä»¥åŠæ‡‰ç”¨çš„å°ˆç”¨æ€§ç‰æ–¹é¢å…·æœ‰è¼ƒç‚ºçªå‡ºçš„特點。
嵌入å¼ç³»çµ±çš„出ç¾è‡³ä»Šå·²ç¶“有30多年的æ·å²ã€‚ç¸±è§€åµŒå…¥å¼æŠ€è¡“çš„ç™¼å±•éŽç¨‹ï¼Œå¤§è‡´ç¶“æ·äº†å››å€‹éšŽæ®µã€‚
(1)無æ“作系統的嵌入å¼ç®—法階段
這一階段的嵌入å¼ç³»çµ±æ˜¯ä»¥å–®èŠ¯ç‰‡ç‚ºæ ¸å¿ƒçš„ç³»çµ±ï¼Œå…·æœ‰èˆ‡ä¸€äº›ç›£æ¸¬ã€ä¼ºæœã€æŒ‡ç¤ºè¨å‚™ç›¸é…åˆçš„功能。一般沒有明顯的æ“作系統支æŒï¼Œè€Œæ˜¯é€šéŽåŒ¯ç·¨èªžè¨€ç·¨ç¨‹å°ç³»çµ±é€²è¡Œç›´æŽ¥æŽ§åˆ¶ã€‚主è¦ç‰¹é»žæ˜¯ç³»çµ±çµæ§‹å’ŒåŠŸèƒ½éƒ½ç›¸å°å–®ä¸€ï¼Œé‡å°æ€§å¼·ï¼Œç„¡æ“作系統支æŒï¼Œå¹¾ä¹Žæ²’有用戶接å£ã€‚
(2)簡單監控å¼çš„實時æ“作系統階段
這一階段的嵌入å¼ç³»çµ±ä¸»è¦ä»¥åµŒå…¥å¼å¼å™¨ç‚ºåŸºç¤Žã€ä»¥ç°¡å–®ç›£æŽ§å¼æ“ä½œç³»çµ±ç‚ºæ ¸å¿ƒã€‚ç³»çµ±çš„ç‰¹é»žæ˜¯ï¼šè™•ç†å™¨ç¨®é¡žç¹å¤šï¼Œé€šç”¨æ€§æ¯”較弱;開銷å°ï¼Œæ•ˆçŽ‡é«˜ï¼›ä¸€èˆ¬é…備系統仿真器,具有一定的兼容性和擴展性;用戶界é¢ä¸å¤ å‹å¥½ï¼Œä¸»è¦ç”¨ä¾†æŽ§åˆ¶ç³»çµ±è² 載以åŠç›£æŽ§æ‡‰ç”¨ç¨‹åºé‹è¡Œã€‚
(3)通用的嵌入å¼å¯¦æ™‚æ“作系統階段
以通用型嵌入å¼å¯¦æ™‚æ“作系統為標志的嵌入å¼ç³»çµ±ï¼Œå¦‚VxWorksã€pSosã€Windows CE就是這一階段的典型代表。這一階段嵌入å¼ç³»çµ±çš„特點是:能é‹è¡Œåœ¨å„種ä¸åŒçš„微處ç†å™¨ä¸Šï¼›å…·æœ‰å¼·å¤§çš„能用型æ“作系統的功能,如具備了文件和目錄管ç†ã€å¤šä»»å‹™ã€è¨å‚™é©…動支æŒã€ç¶²çµ¡æ”¯æŒã€åœ–形窗å£ä»¥åŠç”¨æˆ¶ç•Œé¢ç‰åŠŸèƒ½ï¼›å…·æœ‰è±å¯Œçš„APIå’ŒåµŒå…¥å¼æ‡‰ç”¨è»Ÿä»¶ã€‚
(4)以Internet為標志的嵌入å¼ç³»çµ±
伴隨著通用型嵌入å¼å¯¦æ™‚æ“作系統的發展,é¢å‘Internetç¶²çµ¡å’Œç‰¹å®šæ‡‰ç”¨çš„åµŒå…¥å¼æ“ä½œç³»çµ±æ£æ—¥ç›Šå¼•起人們的é‡è¦–,æˆç‚ºé‡è¦çš„發展方å‘。嵌入å¼ç³»çµ±èˆ‡Internet的真æ£çµåˆã€åµŒå…¥å¼æ“作系統與應用è¨å‚™çš„無縫çµåˆä»£è¡¨è‘—åµŒå…¥å¼æ“作系統發展的未來。
3 兩種æºç¢¼é–‹æ”¾çš„RTOS
嵌入å¼å¯¦æ™‚æ“作系統有很多,如VxWorksã€PalmOSã€WindowsCEç‰ã€‚這些æ“作系統å‡å±¬äºŽå•†å“化產å“ï¼Œåƒ¹æ ¼æ˜‚è²´ä¸”ç”±äºŽæºæ³‰ä»£ç¢¼ä¸å…¬é–‹å°Žè‡´äº†è«¸å¦‚å°è¨å‚™çš„æ”¯æŒã€æ‡‰ç”¨è»Ÿä»¶çš„ç§»æ¤ç‰ä¸€ç³»åˆ—çš„å•題;而開放æºç¢¼çš„RTOSåœ¨æˆæœ¬å’ŒæŠ€è¡“上有其特有的優勢,在RTOSé ˜åŸŸå æœ‰è¶Šä¾†è¶Šé‡è¦çš„地ä½ï¼Œæœ¬æ–‡å°‡ä»‹ç´¹Î¼C/OS-IIå’ŒeCos兩種優秀的æºç¢¼å…¬é–‹çš„實時æ“作系統,通éŽå°å®ƒå€‘å„自的特點和性能進行分æžå’Œæ¯”è¼ƒï¼Œçµ¦å‡ºç›¸é—œçš„æ•¸æ“šï¼Œç‚ºé¸æ“‡ä¸€ç¨®åˆé©çš„RTOSæä¾›åƒè€ƒã€‚
3.1 μC/OS-II
μC/OS-IIçš„å‰å°„是μC/OS,最早出自于1992年美國嵌入å¼ç³»çµ±å°ˆå®¶Jean J.Labrosse在《嵌入å¼ç³»çµ±ç·¨ç¨‹ã€‹é›œå¿—çš„5月和6æœˆåˆŠä¸ŠåˆŠç™»çš„æ–‡ç« é€£è¼‰ï¼Œå¹¶æŠŠÎ¼C/OSçš„æºç¢¼ç™¼å¸ƒåœ¨è©²é›œå¿—çš„BBS上。當時就有500多人下載了這份æºç¢¼ã€‚世界上數以åƒè¨ˆçš„工程技術人員將μC/OS應用到了å„å€‹é ˜åŸŸï¼Œå¦‚ç…§ç›¸æ©Ÿæ¥ã€ç™¼å‹•機控制ã€ç¶²çµ¡æŽ¥å…¥è¨å‚™ã€é«˜é€Ÿå…¬è·¯é›»è©±ç³»çµ±ã€ATMæ©Ÿå’Œå·¥æ¥æ©Ÿå™¨äººç‰ã€‚許多大å¸ç”¨Î¼C/OS作教æï¼Œç”¨äºŽå¯¦æ™‚系統教å¸ã€‚1998年,作者決定出版μC/OS的第二本書《μC/OS-II The Real Time Kernel》,并è¨ç«‹äº†æ£å¼çš„網站:www. ΜC/OS-II.com,給μC/OS-IIå¢žåŠ äº†ä¸€äº›æ–°çš„åŠŸèƒ½ï¼Œå¹¶ä¸”å¢žåŠ äº†ç´„200é 的解釋。
μC/OS和μC/OS-IIæ˜¯å°ˆé–€ç‚ºè¨ˆç®—æ©Ÿçš„åµŒå…¥å¼æ‡‰ç”¨è¨è¨ˆçš„,絕大部分代碼是用C語言編寫的。CPU硬件相關部分是用匯編語言編寫的ã€ç¸½é‡ç´„200行的匯編語言部分被壓縮到最低é™åº¦ï¼Œç‚ºçš„æ˜¯ä¾¿äºŽç§»æ¤åˆ°ä»»ä½•一種其它的CPU上。許多移æ¤çš„范例å¯ä»¥å¾žç¶²ç«™ä¸Šå¾—到。用戶åªè¦æœ‰æ¨™æº–çš„ANSIçš„C交å‰ç·¨è¯å™¨ï¼Œæœ‰åŒ¯ç·¨å™¨ã€é€£æŽ¥å™¨ç‰è»Ÿä»¶å·¥å…·ï¼Œå°±å¯ä»¥å°‡Î¼C/OS嵌入到開發的產å“ä¸ã€‚
μC/OS具有執行效率高ã€å 用空間å°ã€å¯¦æ™‚æ€§èƒ½å„ªè‰¯å’Œå¯æ“´å±•性能ç‰ç‰¹é»žï¼Œæœ€å°å…§æ ¸å¯ç·¨è¯è‡³2KB。μC/OS-II已經移æ¤åˆ°äº†å¹¾ä¹Žæ‰€æœ‰çŸ¥åçš„CPU上。
3.2 eCos
eCos(embedded Configurable operating system),å³åµŒå…¥å¼å¯é…ç½®æ“作系統,最åˆèµ·æºäºŽç¾Žåœ‹çš„Cygnus Solutionså…¬å¸ã€‚Cygnuså…¬å¸äºŽ1998å¹´11月發布了第一個eCos版本eCos1.1ï¼Œç•¶æ™‚åªæ”¯æŒæœ‰é™çš„幾種處ç†å™¨çµæ§‹ã€‚1999å¹´11月,RedHatå…¬å¸ä»¥6.74億美元收購了Cygnuså…¬å¸ã€‚在æ¤åŽçš„幾年里,eCosæˆç‚ºå…¶åµŒå…¥å¼é ˜åŸŸçš„é—œéµç”¢å“,得到了迅速的發展。2002年,RedHatå…¬å¸ç”±äºŽè²¡å‹™æ–¹é¢çš„åŽŸå› ï¼Œè£å‰ªäº†eCos開發隊ä¼ï¼Œä½†å¹¶æ²’æœ‰åœæ¢eCos的發展。RedHatå…¬å¸éš¨åŽå®£ç¨±å°‡ç¹¼çºŒæ”¯æŒeCos的發展,而由原eCos主è¦é–‹ç™¼äººå“¡çµ„建了eCos Centricå…¬å¸ï¼Œå¹¶äºŽ2003å¹´5月æ£å¼ç™¼å¸ƒäº†eCos2.0。
é›–ç„¶eCos是RedHat的產å“,但是eCos并䏿˜¯Linux或Linux的派生,eCos彌補了Linuxåœ¨åµŒå…¥å¼æ‡‰ç”¨é ˜åŸŸçš„ä¸è¶³ã€‚ç›®å‰ï¼Œä¸€å€‹æœ€å°é…置的Linuxå…§æ ¸å¤§æ¦‚æœ‰500KB,需è¦å 用1.5MB的內å˜ç©ºé–“,這還ä¸åŒ…括應用程åºå’Œå…¶å®ƒæ‰€éœ€çš„æœå‹™ï¼›eCoså¯ä»¥æä¾›å¯¦æ™‚åµŒå…¥å¼æ‡‰ç”¨æ‰€éœ€çš„基本é‹è¡ŒåŸºä»¶ï¼Œè€Œåªå 用幾åKB或幾百KB的內å˜ç©ºé–“。eCOS是一個æºç¢¼é–‹æ”¾çš„å¯é…ç½®ã€å¯ç§»æ¤ã€ç„¡ç‰ˆç¨…ã€é¢å‘æ·±åµŒå…¥å¼æ‡‰ç”¨çš„實時æ“作系統。從eCOSçš„å稱å¯ä»¥çœ‹å‡ºï¼Œå®ƒæœ€å¤§çš„特點在于它是一個é…ç½®éˆæ´»çš„系統。ECOSçš„æ ¸å¿ƒéƒ¨åˆ†æ˜¯ç”±ä¸åŒçš„組件組æˆçš„ï¼ŒåŒ…æ‹¬å…§æ ¸ã€C語言庫和底層é‹è¡ŒåŒ…ç‰ã€‚æ¯å€‹çµ„件以能æä¾›å¤§é‡çš„å¯é…ç½®é¸é …,利用eCOSæä¾›çš„é…置工具å¯ä»¥å¾ˆæ–¹ä¾¿åœ°é€²è¡Œé…置。通éŽä¸åŒçš„é…置使得eCOSèƒ½å¤ æ»¿è¶³ä¸åŒçš„åµŒå…¥å¼æ‡‰ç”¨ã€‚
4 μC/OS-II與eCOS的比較
å°äºŽä»¥ä¸Šå…©ç¨®æºæ³‰ç¢¼å…¬é–‹çš„實時æ“作系統,我們主è¦å¾žä»¥ä¸‹å¹¾å€‹æ–¹é¢é€²è¡Œæ¯”è¼ƒã€‚é€šéŽæ¯”è¼ƒï¼Œèƒ½å¤ ç‚ºå¤§å®¶é¸æ“‡é©åˆè‡ªå·±ç³»çµ±çš„RTOSæä¾›åƒè€ƒã€‚
4.1 å…§æ ¸èª¿åº¦æ©Ÿåˆ¶
RTOSå…§æ ¸çš„æ ¸å¿ƒæ˜¯èª¿åº¦å™¨ã€‚ç•¶ç³»çµ±åŒ…å«å¤šå€‹ä»»å‹™æˆ–å¤šå€‹ç·šç¨‹æ™‚ï¼Œå¿…é ˆä½¿ç”¨èª¿åº¦å™¨ä¾†æ±ºå®šç•¶å‰åŸ·è¡Œå“ªä¸€å€‹ä»»å‹™æˆ–線程。調度器å°ç·šç¨‹çš„é‹è¡Œé€²è¡ŒæŽ§åˆ¶ï¼Œå¹¶ç‚ºç·šç¨‹æä¾›ä¸€ç¨®åŒæ¥æ©Ÿåˆ¶ã€‚表1列出了這兩種RTOS調度器(調度機制)的比較。
[align=center]
表1 調度器比較

[/align]
μC/OSåªæ”¯æŒå›ºå®šå„ªå…ˆç´šæ¶å å¼ï¼Œä¸æ”¯æŒæ™‚間片輪轉調度,調度方法簡單ã€å¯¦æ™‚性好,用法也簡單;eCOS調度方法è±å¯Œï¼Œé©æ‡‰æ€§å¥½ã€‚當然,目å‰çš„eCOSåªå…許在其目標系統ä¸ä½¿ç”¨ä¸€å€‹å–®ç¨çš„調度器,未來的版本將å¯ä»¥å…許多個調度器å”åŒå·¥ä½œã€‚
4.2 ä»»å‹™é–“åŒæ¥ã€é€šä¿¡æ©Ÿåˆ¶
RTOS的功能一般è¦é€šéŽè‹¥å¹²ä»»å‹™å’Œä¸æ–·æœå‹™ç¨‹åºå…±åŒå®Œæˆï¼Œä»»å‹™èˆ‡ä»»å‹™ä¹‹é–“ã€ä»»å‹™èˆ‡ä¸æ–·æœå‹™ç¨‹åºä¹‹é–“å¿…é ˆå”調動作,互相é…åˆï¼Œé€™å°±ç‰½æ¶‰åˆ°ä»»å‹™é–“çš„åŒæ¥èˆ‡é€šä¿¡å•題。表2為這兩種æ“ä½œç³»çµ±åŒæ¥èˆ‡é€šä¿¡æ©Ÿåˆ¶çš„æ¯”較。
[align=center]表2 åŒæ¥èˆ‡é€šä¿¡æ©Ÿåˆ¶çš„æ¯”較

[/align]
4.3 ä»»å‹™åˆ‡æ›æ™‚é–“å’Œä¸æ–·å»¶é²æ™‚é–“
ä»»å‹™åˆ‡æ›æ™‚é–“å’Œä¸æ–·å»¶é²æ™‚間是評估RTOS性能的兩個é‡è¦æŒ‡æ¨™ã€‚ä»»å‹™åˆ‡æ›æ™‚é–“å¯ä»¥åæ˜ å‡ºRTOSåŸ·è¡Œä»»å‹™çš„é€Ÿåº¦ï¼Œè€Œä¸æ–·å»¶é²æ™‚é–“å¯ä»¥åæ˜ å‡ºRTOSå°å¤–ç•Œè®ŠåŒ–çš„åæ‡‰é€Ÿåº¦ã€‚表3為這兩種æ“ä½œç³»çµ±ä»»å‹™åˆ‡æ›æ™‚é–“å’Œä¸æ–·å»¶é²æ™‚間的比較。
[align=center]表3 ä»»å‹™åˆ‡æ›æ™‚é–“å’Œä¸æ–·å»¶é²æ™‚間的比較

[/align]
4.4 å°ç¡¬ä»¶çš„æ”¯æŒ
μC/OS-IIå’ŒeCOS支æŒç•¶å‰æµè¡Œçš„大部分嵌入å¼CPU,都具有很好的å¯ç§»æ¤ç‰¹æ€§ã€‚μC/OS-II支æŒå¾ž8ä½åˆ°32ä½çš„CPU;而eCOSå¯ä»¥åœ¨16ä½ã€32ä½å’Œ64ä½ç‰ä¸åŒé«”ç³»çµæ§‹ä¹‹é–“ç§»æ¤ã€‚μC/OS-IIå’ŒeCOSç”±äºŽæœ¬èº«å…§æ ¸å°±å¾ˆå°ï¼Œç¶“éŽè£å‰ªåŽçš„代碼最å°å¯ä»¥åˆ†åˆ¥ç‚ºå°äºŽ2KBå’Œ10KBï¼Œæ‰€éœ€çš„æœ€å°æ•¸æ“šRAM空間å¯ä»¥ç‚º4KBå’Œ10KBï¼Œå› æ¤å®ƒå€‘å°ç¡¬ä»¶çš„è¦æ±‚很低,具有極高的經濟性。
çµèªž
é€šéŽæ¯”較å¯ä»¥çœ‹åˆ°ï¼šÎ¼C/OS-II相å°eCOS來說,æºä»£ç¢¼æœ€å°å¾ˆå¤šï¼Œç‰¹åˆ¥é©åˆå¸ç¿’å’Œç ”ç©¶ã€‚å®ƒæœ€å¤§çš„ç‰¹é»žæ˜¯å°å·§ï¼Œé©åˆæ‡‰ç”¨åœ¨ä¸€äº›RAMå’ŒROM有é™çš„å°åž‹åµŒå…¥å¼ç³»çµ±ä¸ï¼Œå¦‚單片機系統。ECOS最大的特點是é…ç½®éˆæ´»ï¼Œé©åˆäºŽç”¨åœ¨ä¸€äº›å•†æ¥ç´šæˆ–å·¥æ¥ç´šçš„嵌入å¼ç³»çµ±ï¼Œå¦‚一些消費電åã€æ±½è»Šé ˜åŸŸç‰ç‰ã€‚總之,é¸ç”¨ä»€ä¹ˆæ¨£çš„æ“ä½œç³»çµ±ï¼Œè¦æ ¹æ“šç›®æ¨™ç³»çµ±çš„硬件æ¢ä»¶å’Œç”¨æˆ¶æ‡‰ç”¨ç¨‹åºçš„復雜度來確定。