1875入式系統
1875入式系統(embedded system), 是一種1875入機械抑是電氣系統內部、有專一功能佮即時計算效能的電腦系統。躉入式系統定被用佇高效控制誠濟定看著裝置,被死去的系統通常是包含數位硬體佮機械部件的完整裝置,比如講汽車的防鎖死擋車系統。相反,通用電腦如個人電腦設計靈活,會使智慧型處理各式各樣的運算情形,以滿足廣大終端使用者無仝的需要。
這馬是入式的系統通常是基於微控制器(如果有整合記憶體佮 / 抑是外部裝置介面的中央處理單元)的,毋過佇咧較複雜的系統中普通微處理器(使用外部記持晶片佮外部裝置介面電路)嘛真捷看著。通用型處理器、專門進行某類計算的處理器、替手持應用訂製設計的處理器等等,攏可能用著1875入式的系統。捷看的專用處理器有數位訊號處理器。
躉入式系統的關鍵特性是處理特定的任務,所以工程師會當對其進行最佳化,以降低產品的體積佮成本,提升可靠性佮效能。
躉入式系統的物理形態包括會當紮式裝置如計步器、電子手錶仔佮 MP 三放送器,大型固定裝置如交通燈、工廠控制器,大型複雜系統如混合動力汽車、磁共振成像裝置、航空電子裝置等。𪜶的複雜度低至單晶片,懸至大型的底盤抑是外殼內安裝有真濟件、外部裝置佮網路。
1875入式系統實例
1875入式系統通常應用於消費類、煮食、工業、自動化、醫療、商業佮軍事領域。
- 電信系統對網路級的電話交換機到手機仔尾溜攏部署去大量死亡入式系統。
- 消費類電子包括 PDA、MP 三放送器、行動電話、遊戲機、數字攝影機、DVD 放送器、全球衛星定位系統接收器佮印表機。
- 家居應用微波爐、洗衫機佮洗碗機當中是採用過磅入式的系統,帶來靈活性、效率閣有功能;進階暖通空調系統採用聯網的恆溫器閣較精確、高效的照天抑是季度控制溫度;智慧型家居使用N入式的裝置來做感覺知、控制,通過有線佮無線網路控制燈光、溫溼度、安全、音影片、監視等等。
- 交通系統安全要求相當懸的飛行機當中採用矣先進的航空電子裝置,如慣性導航系統、全球衛星定位接收器;
各種的電機—— 直接沒刷電機、非同步電機佮直流電機當中使用矣電氣 / 電子電機控制器; 汽車、電動車、混合動力的汽車愈來愈濟地採用躉入式系統來節能減排; 其他的汽車安全系統,包括防鎖死擋車系統、電子穩定控制系統、牽引力控制系統、自動四驅系統。
- 醫療裝置使用N入式裝置進行性命體徵監測,電子聽診器放大聲音,各種醫療成做系統(正電子發射電腦當層掃描、通光子發射電腦化斷層顯像、電腦當層掃描、核磁共振成像)進行非入侵式內部檢查;
醫療裝置內底的躉入式系統通常採用工業電腦。
1875入式系統應用佇交通、消防、安防、醫療佮性命關係系統當中,因為這寡系統會當佮駭客等隔離,因為閣較會靠得。佇消防安全中間,經過設計,系統會當佇高溫的環境繼續做工課。出於安全需要,1875入式系統會當自給自足,會當處理切斷了電氣佮通信系統的狀況。
WSN 領域的發展,促使一種新型的微型無線裝置智慧型微塵迅速普及。通過資訊監測佮控制系統感知閣作用佇咧物理世界的無數事物。微塵採用微製造技術,通過先進的 IC 設計技術,共無線子系統佮尖端的感測器結合;通過資訊監測佮控制系統感知閣作用物理世界的無數事物。這微塵是完全自給自足的,佇需要換電池抑是充電前通常會當做工作數年。
利用1875入式去 Wi-Fi 模組,原先利用序列埠進行通信的裝置會當輕鬆啟用無線通信功能。
歷史
MIT 儀器研究室的查爾斯 ・ 斯塔克 ・ 德雷珀開發的阿波羅制導電腦是現代1875入式系統的外型之一。佇咧專案初期,伊予人看做是風險上懸的部份,原因是為著欲減細 sài-sù 佮重量,伊採用彼當陣上蓋新的研發的單片積體電路。
頭一款大批次生產的躉入式系統是一九六一年發佈的民兵 I 飛彈內底的 D 鋪十七自動制導電腦。做民兵 II 飛彈佇一九六六年開始生產的時陣,D 鋪十七升級做一種新型的電腦,其中頭一擺大量咧使用矣積體電路。干焦這个案就會反及一寡模組的單價對一千美金來降低到三美金,低甲欲用商業產品。
因為二十世紀六十年代的遮的早期應用,毋但1980入式系統的價數降低去,同時處理能力佮功能嘛提著誠大的提懸。用第一款單晶片英特爾四千空四做例,伊是計算機佮其他小型系統設計的,毋過猶是需要外部記持體佮外圍晶片。一九七八年,國家工程製造商協會發布了可程式化單晶片的「標準」,涵蓋差不多所有以電腦為基礎的控制器,如單板機、數控裝置,猶閣有事件的控制器。
隨著微控制器佮微處理器的價數下降,消費品嘛會當閣換掉基於揤鈕的類比器件,按呢分壓計佮會當變電容,採用微處理器讀取開關抑是揤鈕訊號。
到甲二十世紀八十年代早期,記持體、輸入輸出部件整合一四界理器內底,來產生單晶片。咧採用通用電腦占用的成本傷歡喜的應用中,單晶片取代之。
較低成本的單晶片編程了後會當取代真濟獨立部件,這款的楷入式系統通常是比傳統解決方案閣較複雜,毋過遮的複雜性多數體這馬單晶片家己。1875入式系統需要的外圍元件真少,多數設計的工課集中佇咧軟體,啊若軟體原型的建立佮測試佮設計佮建立新的無欲落跑入式處理器的電路比速度閣較緊。
特性
區別於會當執行偌重任務的通用型電腦,1875入式系統是為某一寡特定任務來設計的。有一寡系統著愛滿足即時性要求,以確保的安全性佮可用性;另外一寡系統對效能要求足低甚至講無要求效能,以簡化硬體、降低成本。
1875入式系統並無總是獨立的裝置。誠濟躉入式的系統由1875入去大裝置的小計算部件組成,提供較通用的功能。比如講 gì-tà 機器人採用1875入式的系統來調弦,猶毋過總的來講伊的設計目的絕對毋是調弦是演奏音樂;車載電腦做汽車的一个子系統存在,提供導航、控制、車況回饋等等的功能。
是躉入式的系統編寫的程式號做韌體,儲存佇咧唯讀記持體或者是緊閃記持體晶片內,執行佇咧有限的硬體資源頂懸:小容量記持體,小鍵盤抑是螢幕甚至無。
使用者介面
1875入式系統使用者來介面包括自無使用者來介面干焦全部注意一任務、類似佇現代桌面作業系統的複雜圖形化使用者介面的各類介面。
簡單的嵌入式的裝置使用揤鈕、LED、圖形抑是數字 LCD 佮簡單的選單系統。
較高階的1875入式的系統使用圖形顯示器,配合輕觸感應抑是屏邊揤鈕使用,會使占用空間上細並提供靈活性:開關的含義隨螢幕顯示的內容咧改變,而且指向想欲愛的選項進行操作就會當實現選擇。手持系統通常採用顯示器加操縱杆揤鈕仔做為著控裝置。
有一寡系統通過序列埠頭(如 RS 被二百三十二、USB、I 二 C 等)抑是網路連接遠端提供使用者介面。這種方式的優勢因為:擴充系統的效能、削減了顯示器的成本、簡化矣 BSP,會當佇 PC 上構建豐富的使用者介面。譬如講執行佇1875入式裝置平台(如 IP 攝影機抑是路由器)去頂的1875入式去網路侍服器,伊無需要安裝客製化軟體,是佇咧連到裝置的 PC 捀的網路瀏覽器當中顯示使用者介面。
1875入式系統的處理器
1875入式處理器大概會當分做兩類。一類是普通微處理器:使用獨立的積體電路記憶體佮外部裝置。另外一類是單晶片:有片上外部裝置,降低了功夫、sài-sù 佮成本。1875入式系統的軟體是某乜種應用客製化的,毋是像個人電腦彼款的由尾端使用者安裝的商品,所以會使用各種無仝款的基本 CPU 架構:閣有范紐曼型架構嘛有無仝款程度的哈佛結構;既有 RISC 也有非精簡指令集處理器;字長對四位元到六十四位元甚至閣較懸,當然上典型的猶原是十六分之八位元。多數架構由幾家無仝款的公司生產,使用大量無仝款的變數佮類型。
躉入式系統嘛會使用通型微處理器,毋過比單晶片需要閣較濟外圍電路。
1875入式主機板
PC / 一百空四和 PC / 一百空四 + 嘿小型、小批次1875入式強固系統的標準之一,大部份攏是因為 x 八十六架構;通常比標準 PC 愛細,煞比多數簡單的十六分之八个元1875入式系統欲大;使用 MSDOS、Linux、NetBSD,或者是另外騙入式的作業系統如 MicroC / OS-II、QNX、VxWorks。有當時仔遮的主機板嘛會使用非 x 八十六處理器。
佇某一寡應用中,束結束結、高效並非主要愛關心點,會當使用佮 x 八十六型 PC 主機板相容的部件。VIA EPIA 系列板卡是會當彌補這个空缺,伊相容 PC 但是懸度整合、較細體積,抑是提供其他的六千入式工程師誠有吸引力的特性。這種方法的好處是低成本商品也會當使用通用的軟體開發工具。用這款方法構建的系統猶原是1875入式系統,因為伊1875入去佇較大的裝置、用佇滿足單一用途。比如講 ATM 佮電子遊戲機,𪜶攏有包含針對𪜶各自應用的代碼。
多數躉入式的主機板攏毋是圍踅 PC 設計的,嘛無咧使用 ISA 抑是 PCI 匯流排。若採用 SoC 處理器,用標準匯流排連接分立元件就毋是上策,此外軟硬體開發環境攏可能會真無相仝。
一種常用的設計模式是採用小型系統模組—— 無的確干焦商務卡片大細,容納高密度的 BGA 晶片如 ARM 處理器佮外部裝置、用佇儲存的外部快閃記憶、做為記持體的 DRAM。模組廠商通常會提供引導軟體佮作業系統選項,一般包括 Linux 和一寡即時作業系統。遮的模組由熟似專業測試方法的組織大批次生產,配合較細批次的、帶特殊應用外部裝置的客製化主機板來使用。
ASIC 和 FPGA 解決方案
SoC 是一款捷看見的為超大批次躉入式系統設計的可組態陣列。伊佇單一个晶片內底包括真濟處理器、乘法器、緊取佮介面,形成一个完整的系統;通過專用積體電路或者是現場可程式化門陣列來實現。
外圍裝置
躉入式系統通過外部裝置佮外部通批:
- 序列埠頭:RS 被二百三十二、RS 抹四百二十二、RS 被四百八十五等
- 同步序列埠頭:I 二 C、SPI、ESSI 等
- USB
- 多媒體卡:SD 卡、CF 卡等
- 網路:乙太網路、LonWorks 等
- 現場匯流排:CAN 匯流排、LIN 匯流排、PROFIBUS 等
- 定時器:PLL、揣較模組佮時間處理單元
- 分立 IO:GPIO
- 類比-數位 / 數位-類比轉換 ( ADC / DAC )
- 除錯介面:JTAG、ISP、ICSP、BDM 埠頭、BITP、DP 九埠等
工具
仝典型的電腦程式員仝款,1875入式系統的設計人員嘛使用編譯器、連結器佮除錯器開發躉入式系統軟體。毋過,𪜶嘛使用一寡大多數的設計師無熟似的工具。
軟體工具的來源毋是講下幾種:
- 是專門注入式系統的市場的軟體公司
- 對 GNU 軟體開發工具徙栽(參見交叉平台的編譯)
- 有一寡情況下,若是1875入式的處理器佮普通的個人電腦處理器是誠近若像嘛會使使用個人電腦開發工具1875入式系統的設計人員嘛用一寡無為普通電腦的程式員所熟似的軟體工具:
- 一个定定用工具是「電路內底仿真器」(ICE,in-circuit emulator)抑是上新的設計中的1875入式的除錯器。這个除毋著工具是開發躉入式的程式的基本技巧。伊代替微處理器去雕入去微處理器內底,提供了佇系統中快速呼叫和除錯試驗代碼的便捷工具。一个拋電龜通常就是一个插入系統的特殊電路,通常攏咧使用一台連結到這个拋荒的個人電腦做除錯介面。
- 連結器通常是各種各樣。這對大多數的商業編程來講,連接器差不多是代誌才考慮的部份,預設定嘛從來無變。佮這个顛倒反,1875入式連結器有完整、複雜的命令列語言是足普通的。不三時類型的記持體,分別儲存特殊的代碼佮資料。單獨的資料結構會當囥佇咧特殊的所在,按呢軟體會當足方便的存取對影到記持體的控制暫存的。1875入式的連結器定定有用佇咧減細代的碼大細佮執行時間的外部最佳化工具。比如講,𪜶可能徙動子程式的位來使用較細的呼叫和跳轉指令。𪜶定定紮有管理資料疊加和 band switch 技術的特性,遮的技術是佇1875入式的軟體定定咧使用的擴充俗價 CPU 的方法。
- 另外一个捷用的工具是一个佇咧程式乎中添加代碼佮或者是 CRC 的工具程式(定定是家己寫的), 來使用這个工具躉入式的系統乎會當佇執行程式進前先進行程式的資料檢查。
- 為數位訊號處理開發軟體的躉入式的程式設計師定定咧使用 MathCad 抑是講 Mathematica 按呢的數學工具進行數學仿真。
- 一寡仔較少咧使用的工具有共資料檔案轉做大碼的工具,使用這種工具就會使佇內底包含任意類型的資料。
- 減數一寡專案為著特殊的可靠性抑是數位訊號處理要求使用仝步數式編程語言。
一寡程式的語言為1875入式的系統編程提供一寡特殊支援。
- 對於 C 語言,ISO / IEC TR 一孵八千空三十七 : 兩千空五定義矣
- 指定的位址空間
- 指定的儲存類
- 基本輸入輸出的硬體定址
除錯
除了毋著通常使用內部電路仿真器抑是其他一寡會當佇微控制器微碼(microcode)內部產生斷去的除錯器。微碼斷去予除錯器會當佇只有 CPU 做工課的硬體中進行的操作,是因為 CPU 的除錯器會當對 CPU 的角度來試佮除毋著電腦的電路。PDP 鋪十一開創這種特性的先河。
開發人員會當猶原使用斷點、單步執行以及高階語言進行除錯,佇足濟除毋著工具頂懸攏有這種能力。另外開發人員咧除毋著即時事件順序的時需要記錄、使用簡單的記錄工具。
首先拄著這款問題的個人電腦佮大型電腦程式設計師不時咧設計優先級佮可行方法的時陣感覺著憢疑。教示講、代碼審查佮非個人風格(egoless)的編程是值得推薦的。
隨著1875入式的系統變甲愈來愈複雜,閣較懸層次的工具佮作業系統漸漸徙栽去到會當的裝置頂懸。比如講,蜂岫電話、個人數字助理佮其他的消費用電腦需要一寡對個人或者是遮的電子裝置製造商以外的公司買或者是提供的一寡重要軟體。佇咧遮的系統內底,有需要如 Linux、OSGi 抑是講 Java 這款的開放編程環境,按呢第三方軟體提供上才會當佇大規模的市場上銷售軟體。
大多數按呢的開發環境攏有一个執行佇個人電腦的參考設計,這種軟體的絕大部份攏會當佇傳統的個人電腦開發。毋過,對開放環境徙栽到專用的電子裝置佮電子裝置的驅動程式來開發通常猶原是傳統的1875入式系統軟體工程師的工課。佇咧有一寡情形下,the engineer works for the integrated circuit manufacturer , but there is still such a person somewhere .
作業系統
1875入式系統定定無作業系統、專用的躉入式的作業系統(定定是即時作業系統)抑是指定程式設計師徙栽到遮的新系統。
啟動
1875入式系統帶有啟動代碼,通常伊禁止中斷、設定電子裝置參數、測試電腦(RAM、CPU 佮軟體), 才開始應用程式執行。誠濟躉入式系統對短暫落電狀態恢復,定定重起而無進行最近的自檢。佇十分之一秒內重啟是捷看的現象。
真濟設計人員發現 LED 佇指示錯誤狀態上非常有路用,𪜶會使幫助進行故障處理。一个捷用的機制是佇咧復位的時陣點著電子裝置所有的 LED 以表明供電佮 LED 正常食頭路;然後咧進行加電自檢時由軟體改變 LED 的狀態;佇咧這个時陣,軟體用這 LED 指示操作過程當中的正常或者是故障狀態。這會使予技術人員、工程師佮使用者了解系統的狀態。一个趣味的例外是電度表(electric power meters)佮其他一寡大街路頂懸的物件,閃爍的指示燈是為著吸引注意力抑是表示損害狀態。
內部自檢
誠濟躉入式的系統攏有一定程度或者是一定數量的內部加電自檢,自檢有幾種的類型:
一 . 電腦檢查:檢查 CPU、RAM 佮程式記持體。通常一加電就開始遮的檢查,佇咧一寡安全性非常重要的系統中,通常周期性地佇安全時間隔內進行自檢,抑是講經過一段時間就進行自檢。 二 . 外圍裝置檢查:仿真輸入佮讀入資料抑是測量輸出資料。有大量的通批、類比佮控制系統攏有遮的真俗的檢查。 三 . 電源檢查:通常測試逐个供電電路,嘛有可能檢查電池抑是主電源輸入。通常供電的部份的負載攏足重的,而且莫少有量,所以這項檢查真有意義。 四 . 通信檢查:驗證對相連紲單元接收著的簡單訊息,比如講佇網際網路頂懸使用 ICMP 訊息「ping」。 五 . 電纜檢查:共線連結著待檢查的電纜上指示針進行檢查。如電話這款的同步通信系統四常使用「仝步」測試。電纜檢查成本真低,做單元部份有插頭的時陣這項檢查尤其重要。 六 . 裝備檢查:一个系統咧安裝的時陣定定需要進行調整,這項檢查就向安裝人員做出狀態指示。 七 . 消磨檢查:檢查系統所消磨的物件、佇預量傷低的時陣會發出警告。上捷看的例是汽車的油量表,上複雜的例可能是維持化學反應物詳細狀態的自動醫學分析系統。 八 . 執行檢查:檢查使用者關心的系統執行狀態。顯然,佇咧系統執行的時陣必須進行這項檢查,這方面的檢查包括飛行機頂懸的導航儀器、汽車的速度表示佮磁碟的指示燈等等。 九 . 安全檢查:佇咧'安全時限'內底進行檢查確保系統猶原會當靠。安全時間限通常細於會當產生損害的上細漢時間。
可靠性體系
根據人需求的無仝,可靠性嘛有無仝款的定義,有意思的是講,可靠性的類型煞相對較少,相𫝛可靠性類型的系統,使用相𫝛類型的內在檢查佮恢復方法:
一 . 系統足無安全抑是無法度修理。其實這包括太空系統、水下電纜、𤆬航燈塔、戮空系統,其實蓋奇怪是閣包括汽車佮大規模生產品。總的來講,1875入式系統檢測逐个子系統、線頂切換著傷部份抑是工作佇「limp 模式」提供部份的功能。大規模生產的消費產品如汽車、個人電腦或者是印表機嘛屬於這个類別,這是因為佮買物件的費用相比並維修費用歡喜、維修人員閣路途遙遠。 二 . 系統袂用得安全地停止執行。這包括飛行機導航、是反應控制系統、重要的化學工廠安全控制、鐵路訊號、單發動機飛行機的發動機,如何咧講,猶毋過「limp 模式」較歹忍,通常需要去操作員選擇備份系統。 三 . 系統停機的時陣將會造成大量的金錢損失。遮的包括𪜶電話交換機、工場控制、橋梁佮電梯控制、資金轉移、市場落去開發、自動銷售佮服務等等,𪜶這系統通常有一寡運轉 / 無運轉測試,𪜶通常有線頂趁食抑是使用替換系統佮人工過程的 limp 模式。 四 . 系統無安全的時陣袂當操作。仝頂懸的情形類似,系統的執行將會造成大量的金錢損失。醫療裝置、帶有發動機按呢的熱備份的飛行器、化學工場控制、自動股票交易、遊戲系統等等。測試可能是五花十色,但是出錯的時陣會使做的就是停止規个系統。
1875入式軟體架構的類型
定定用的躉入式的軟體架構有幾種無仝款的基本類型。
控制迴圈
佇這種設計中,軟體有一个簡單的循環,這循環調用各種子程式,逐个子程式管理硬體抑是軟體的某一部份。斷通常用來設定標記或者更新軟體其他的部份會當讀的暫存器。
系統使用簡單的 API 來完成允准佮禁止中斷設定。若是處理了做會牢,伊會當佇咧岫狀程式當中處理岫狀調用,佇咧上外口的中斷允准岫狀中恢復頭前的中斷狀態。這種方法是實作 Exokernel 的一个上簡單的方法。
通常佇循環中有一寡子程式使用周期性的即時就斷控制一組軟體定時器,啊彼个定時器時間到的時陣就會執行相應的子程式或者設定相應的標誌。
任何可能發生的硬體事件攏應該有軟體定時器的支援,硬體事件大概每萬億次出現一擺錯誤,對現代的硬體來講大概是一年發生一改,對百萬計大規模生產的裝置來講,落勾一个軟體軟體定時器佇商業上可能是災難性的。
有時測試軟體運行一組是因為軟體的安全定時器,𪜶周期性地複位硬體中的看門狗仔計時器。若軟體重耽一个事件,安全定時器軟體會掠著伊。若是安全定時器脫箠,看門狗仔硬體將會複位系統。
會使使用指向逐个狀態機函式的指標實作狀態機,函式會當用 C + +、C 或者是組合語言等等的實作。變化的狀態將無仝款的函式囥到指標中,逐擺循環運行的時攏會執行函式指標。
真濟設計人員建議每一个循環讀一擺輸入輸出裝置、並且儲存會著的結果,按呢會當保證邏輯過程佇一致的參數頂面運行。
真濟設計人員佮意共狀態機設計做是每一个狀態干焦檢查一到兩項內容,通常是檢查硬體事件和軟體定時器。
設計人員建議多級狀態機愛予低層狀態機較早高層狀態機運行,按呢高層就會當根據正確的資訊運行。
如內部燒控制這款的複雜功能通常根據多維表格進行處理,代碼通常進行查表處理無進行複雜的計算,為著欲減小表格的大細以及成本軟體會當佇條目之間來進行差值運算。
佇咧上細的微控制器當中,尤其是干焦一百二十八位元組堆疊的八千空五十一中,控制環允准好的連結器使用靜態分配的數據崁本地變數。佇這種機制內底,離子程式調用樹尾是愈近的變數得著的記持體位址愈懸。當開始新的分支的時陣,伊的變數會當佇古早分支放捒的空間內底進行重新分配。
簡單控制迴箍的一个主要欠點是伊無法度保證響應特定硬體事件的時間。
細膩的設計會當真容易來保證斷節袂去予長時間禁止,按呢就斷代碼就會當佇足精確的時間運行。
控制環的另外一个主要欠陷是增加新的特性的時陣會變做複雜。需要開足長時間的演算法著愛細膩來進行分解以使得逐改只有一小部份佇主循環中運行。
這種系統的優勢是伊的簡單性,並且佇咧足細的軟體頂懸,循環執行地足緊的強欲無人關心伊是袂當預測的。
伊的另外一个優勢是這款系統保證運行軟體的品質,無法度將無好的運行結果規罪為其他的作業系統。
會搶頭路的任務
會相搶𪜶的任務系統足類似頂懸的系統,只是這个迴圈是隱藏佇咧 API 中的。咱定義一系列的任務,每一个任務得著家己的子程式棧;然後,做一个任務閒的時陣,伊呼叫一个空閒子程式(通常呼叫「暫停」、「 等候」、「 交出(yield)」 等咧)。
帶有類似屬性的架構攏帶有一个事件佇列,有一个迴圈根據佇咧列表中的一个域確定刪除時間佮呼叫子程式。
這款架構的優點佮缺點攏真類似控制環,只是這種方法加添新的軟體更加簡單,只需要簡單來編寫新的任務抑是共添加佇咧列直譯器當中。
搶頭路定時器
使用頂懸的任何一種系統,但是添加一个按照定時器斷執行子程式的定時器系統,按呢就予系統添加新點點的能力,按呢定時器子程式第一擺會當佇一个有保證的時間來執行。
另外咧,代碼第一改會當佇咧非預期的時間存取家己的資料結構。定時器子程式必須愛象中斷子程式仝款進行處理。
搶頭路的任務
使用頂懸的非搶先式任務系統,對一个搶頭路定時器或者是其他斷執行。
按呢系統就雄雄變甲足無仝款矣。任何一个任務的代碼攏有可能損害其他任務的資料 & emdash ; 所以𪜶著愛進行切欠的切分。對共享資料的存取必須愛使用一寡同步策略進行控制,如訊息在列、訊號燈抑是非常的踢仝步機制。
不時佇遮開發組織就會買一套即時作業系統。如果若是一个組織欠缺會當編寫作業系統的人才或者是作業系統將欲佇幾若个產品之上,這可能是一个明智的選擇。這通常欲共開發計畫增加六到八邊,and forever after programmers can blame delays on it .
微核心佮外核心
這種方法試圖共系統組織得比單核心閣較𠢕佇組態,同時提供類似的特色。
微核心是即時作業系統的一个邏輯發展,通常的組織方式是作業系統核心分配記憶體並且將 CPU 佇無仝的執行緒之間進行切換。使用者模式的行程實現如檔案系統、使用者介面等主要的功能。
微核心佇二十世紀五十年代開始頭擺試看覓,毋過因為電腦佇任務中央切換佮佇任務中間交換資料的速度誠緩慢,所以人放棄矣微核心若鍾情 MULTICS 和 UNIX 風格的大核心。傳宗上來講,微核心佇咧工作切換猶佮任務間通信速度緊的時陣是較成功的,佇咧速度慢的時陣是失敗的。
外核心通過使用普通的子程式呼籲得著的通信效率是誠懸,硬體佮系統當中的軟體攏是程式設計師會當用嘛會當擴充的。資源核心(可能是庫的一部份)分配 CPU 時間、記持體佮其他的資源。如多工、網路佮檔案系統這款大核心特性通過代碼庫來提供。庫會當進行動態的連接、擴充抑是共享。無仝的應用甚至會當使用的無仝的庫,但是所有資源內底攏佇資源內底核心。
虛擬機器
一寡航空電子系統使用幾个仔商用電腦。按呢閣較進一步,逐个電腦攏咧類比𪜶家己的幾个副本,重要的程式同齊佇幾个電腦頂懸執行並且進行投票控制(vote)。
類比環境的優點就是即使一个電腦出現故障,軟體的無仝款會當徙到正常做工課的軟體分割區,表決的票數並無受著影響。
通常虛擬軟體執行佇電腦的使用者模式下,伊掠、類比硬體存取和無佇咧使用者模式下執行的指令。
檢查點計算
另外一種捷用的機制是兩个電腦計算 for a bit,然後共𪜶的計算結果報到彼點上。若是一个電腦的計算講 nut,伊就會關起來。
辦公用(單核心) 作業系統
這款系統通常佇無系統經費的1875入式專案內底流行,猶毋過對這篇文章的濟个作者來看,這通常是無正確的,𪜶的邏輯是:
- 作業系統是經過特殊封裝的重用代碼庫。你若遮的代碼有用,設計人員就會儉時間佮金錢,抑無𥑮就是無路用的。
- 商務系統的作業系統無缺失入式硬體的介面。比如講,你若欲用 Linux 寫一个 mòo-tà 控制器抑是電話交換機,真大部份的實際控制操作攏是 IOCTL 搧叫,同時,正常的讀、寫佮查詢介面攏是無路用的。所以作業系統對實際的開發妨礙真大。
- 大多數的1875入式系統無處理辦公事務,所以辦公作業系統的大部份代碼攏予拍損去矣。比如講,一直大多數的1875入式系統自來攏無欲用檔案系統或者是螢幕,所以檔案系統佮圖形化使用者介面的部份就是浪費的,這寡無愛用的代碼干焦會影響系統的可靠性。
- 辦公用作業系統保護硬體毋予使用者程式操作,這就嚴重的妨礙矣躉入式去開發工課。
- 作業系統必須移植去1875入式系統頂懸,也就是講,硬體驅動程式毋管按怎攏愛重寫,這也是作業系統上難的一定,所以使用按呢的作業系統差不多無功效。
- 作業系統真正有用、會當徙栽的特性是小段代碼。比如講,一个基本的 TCP / IP 介面大約有三千行代碼,另外一个例是大約仝款大細的簡單檔案系統。若是設計需要遮的代碼,會當使用減佇N入式系統開發百分之十的經費就會當完成,無需要納咧作權費用,只要簡單來寫就會使矣。若系統遮的代碼有夠額,1875入式系統雜誌封面的後壁通常有公司銷售無著作權費的 C 語言實現代碼。
毋過真濟工程師並無認同這點,1875入式 Linux 愈來愈受著咱人的這个歡迎,尤其是佇咧無線路由器佮全球定位系統按呢的功能強大的躉入式系統當中。其中有下跤一寡原因:
- 有現成的移植到普通躉入式晶片的實現代碼。
- 𪜶允准重用公開得著的裝置驅動程式、彼號網頁侍服器、防火牆或者是其他代碼。
- 開發系統會當對真濟特性組合開始,佇咧發布的時陣會當托除無需要的功能,毋過節約所消磨的記持體。
- 真濟工程師認為佇使用者模式執行應用程式閣較為會當靠、閣較容易除毋著,所以開發過程閣較容易、代碼閣較好徙栽。
- 誠濟躉入式的系統無控制系統彼款對即時性的嚴格要求,對於誠濟應用來講如1875入式的 Linux 按呢的系統的回應速度就已經有夠額。
- 要求較緊的回應速度,毋是可靠性的特性,通常囥到矣硬體頂。
- 真濟即時作業系統攏針對每一件產品的收取費用,做產品是消費品時,這項費用是誠大摸的。
Exotic custom 作業系統
一寡系統需要安全、到時、可靠或者是高效的特性,頂面的架構煞無法度迵過,構建這款的系統有一寡廣為人知的技巧:
- 倩一个真正的系統程式設計師。𪜶的費用足細的,但是會當儉年節的除毋著以及相關的收入損失。
- RMA(rate monotonic analysis), 會當用來評估一組任務敢會當特定的硬體系統落執行,佇上簡單的形式下,設計的人員保證上緊完成的任務有上懸的優先級,平均來講 CPU 至少有百分之三十的閒時間。
- 和諧的任務會當高效地最佳化 CPU。基本上來講,設計人員保證逐項工課攏是對 heartbeat timer 開始做工課的。即時作業系統上真難按呢做,因為𪜶咧等候輸入輸出裝置的時陣通常就會切換任務。
- 拄仔好有兩个優先級(通常是 _ 執行 _ 和 _ 禁止斷去 _)的系統袂當出現高優先級的任務等候低優先級的任務釋放訊號燈抑是其他資源的優先級倒置問題,
- 有這个監視器(monitor)的系統袂當出現死結。監視器鎖牢一段代碼禁止斷和其他搶頭前任務。若這个監視器干焦用佇一小段快速執行的代碼,系統可能工課正常。若是有法度證明監視器 API 佇所有情況下攏會當完整執行,比如講干焦禁止中斷,遐爾仔就袂產生系統掛起來的狀況。
這就意味對使用兩个優先級佮監視器的系統是安全、可靠的,因為𪜶無死結佮優先級倒置的問題。若監視器會當執行到尾仔,遐爾仔就永遠袂掛起來。若使用和諧的任務,可能閣會成做高效。毋過,RMA 無法度去描寫遮的系統,優先級上好嘛莫四界攏有,其中包括作業系統佮硬體。
外部連結
- 即時作業系統如何工課(英)
- 1875入式系統門戶(英)
- 視窗1875入去開發者中心(英)
- 1875入系統佮 VLIW 處理器(英)
- 1875入式 C + + 頭頁(英)
- QNX 頭頁(英)
- LynuxWorks 1875入式系統頭頁(英)
- 1875入式系統討論群、冊、缺、佮其他的林總的彼爿(英)
- 1875入式軟體設計(英)
- 有躉入式的系統研發社團的大學列表(英)
- 1875入式系統編程(英)
- EE 概欲-電機工程佮1875入系統編程(英)
- DeviceTools-予內嵌裝置開發者的工具佮矽片(英)
- Embedian(英)
- 內嵌計算工業的紀錄雜誌(英)
- 內茲白皮書、下載、公司、新聞、文章(英)
- 內嵌系統是誠歹排解-一个概述對基版醞釀、製造、到後勤的問題。(英)
- Working across Multiple Embedded Platforms 迒平台去台灣入式的系統。(英)
定定看著的1875入式的作業系統
參見楷入式的作業系統
- Android
- Firefox OS
- iPhone OS
- uC / OS II
- FreeRTOS
- uCLinux
- VxWorks
- pSOS
- Nucleus
- PalmOS
- Windows CE
- Windows XP Embedded
- Windows Vista Embedded
- Embedded Linux
- ECOS
- QNX
- Lynx
- Symbian
- RT-Thread