<strike id="xh1ss"><address id="xh1ss"></address></strike>
  1. <legend id="xh1ss"></legend>
  2. 更多課程 選擇中心

    嵌入式培訓
    達內IT學院

    400-111-8989

    淺析比選擇嵌入式操作系統更重要的事情

    • 發布:嵌入式培訓
    • 來源:嵌入式問答
    • 時間:2017-08-30 13:56

    回想過去,用過或多少了解一點兒的操作系統確有一些。20世紀80年代,一個叫做VMS的操作系統風靡全球,是DEC公司小型機上用的,我國也引進了不少DEC計算機。VMS功能齊全、用戶界面友好,比Unix好用很多,微機的DOS根本無法與之相比,1986年最先讓我們接入因特網的便是VMS。然而曾幾何時,VMS被Unix取代了,接著是Linux。VMS消失主要因為其不開源。后來世界公認最牛、想用卻用不起的VxWorks實時操作系統(RTOS)也不得不開源了。那時蘋果公司的Mac視窗操作系統比PC的Windows好用得多,在操作系統技術方面蘋果至少領先Intel五年,也是由于不開放,Mac輸給了PC。20世紀90年代以后,操作系統不再神秘,開源成為趨勢。

    在國外工作期間也接觸過一些RTOS,例如OS-9、QNX等,都是不錯的RTOS,還有Nuclus,多年前開發Motorola的68K時有所接觸,感覺還不錯,是最早開放源碼的RTOS(如今如何就不了解了)。當年在歐洲,由于是客人,只能用主人選定的RTOS。然而,人家認為很好的未必適合你。曾經不得不用到一個歐洲很流行的RTOS,可文檔和程序注解中,英語夾雜著法語,讓我這個對法語一竅不通的人恨死那個操作系統了,盡管有法國朋友熱情幫忙。Freescale曾經力推MQX,很多事情集成開發環境中都已經做好了,也有不少朋友推薦。讀過其部分文檔和代碼后,就是感覺喜歡不起來。選擇操作系統的過程中也走過一段彎路,嘗試過將那個著名的非實時操作系統實時化成RTOS,結果事倍功半,只得放棄了。

    目前可選用的操作系統的確很多,哪個好哪個不好,由于知識范圍所限,實在不敢妄加評論。存在的就是合理的。一些生存多年、有業績、口碑好、有團隊支持的操作系統肯定都是可選用的。不同操作系統有各自不同的定位,選擇時首先應考慮本行業認可的操作系統,比選擇操作系統更重要的似乎是如何用好選定的操作系統。

    嵌入式RTOS通常僅指系統內核(Kernel),內核是操作系統的核心,用于建立多任務運行環境,管理任務及系統的共享資源。操作系統間的差異主要體現在任務調度策略與算法上,不同操作系統以各自的任務管理方式提供必要的實時性保證,解決多任務環境下可能出現的競爭與死鎖等問題,是嵌入式系統應用工程師開發嵌入式應用的有力工具。任務調度算法也有很多種,如時間片調度法、保證調度算法、最短任務優先、隨機調度法(也稱擲骰子)、多重隊列法、二級調度法等。這些算法基本上可分為兩大類:基于時間片的分時系統和基于優先級的實時系統。基于時間片的多為非實時系統,而嵌入式應用多使用基于優先級的RTOS。除內核外,操作系統通常還需提供與之配套的文件系統、圖形界面、互聯網協議棧、主從USB協議棧、CAN總線協議棧、系統調試工具等,供用戶選配使用。嵌入式RTOS應滿足可裁剪、可固化、可移植等基本要求。

    行業認可并推薦的操作系統應該是首選。例如汽車行業,首選自然是符合OSEK標準的操作系統(OSEK-OS)。OSEK源自德國的汽車電子類開放系統和對應接口標準,除實時操作系統OSEK-OS外,還有通信子系統(OSEK-COM)和網絡管理系統(OSEK-NM)。若開發手機應用軟件,在我國自然首選以Java為編程語言的、基于Linux的Android操作系統。

    需要自選操作系統的工程師,首先得對各種不同操作系統的內核調度策略有所了解,看看是否適合自己的項目應用。若這方面的知識不夠,建議精讀一兩本關于操作系統的經典教材,以加深對操作系統原理的理解。對于準備使用Linux類型的、有復雜文件系統的、需要MMU硬件支持的非RTOS,建議首先認真讀懂AndrewS.Tanenbaum所著的《操作系統設計與實現》一書。該書自1987年問世以來,至今已出到第3版,講的是一個專門用于教學的、由Unix簡化而來的Minix范例操作系統。正是這本書觸發了LinusB.Torvalds的靈感,寫成了Linux內核,從而被稱作Linux之父。故該教材被公認為Linux原理的權威教材,非常值得細讀。順便提一句,Linux是當前最好的非實時開源操作系統,似乎沒有之一。非要把它改成實時的所謂RT-Linux,我不認為是一個好的做法,不如直接選用那些本來就是為實時系統設計的RTOS。

    對于擬選用嵌入式RTOS的工程師,有必要精讀一本JeanJ.Labrosse所著的《嵌入式實時操作系統μC/OS-II》或《嵌入式實時操作系統μC/OS-III》,這兩個操作系統都可以直接拿來使用。對于ARMCortex-M單片機,如果使用Cortex-M3及以上,應使用μC/OS-III,而對于精簡掉CLZ指令的Cortex-M0/M1/M0+等,則仍建議使用μC/OS-II。Cortex-M單片機中的CLZ指令就是專門為優先級算法提供的硬件指令,所用單片機是否帶有專門為操作系統設計的硬件指令,也是選擇操作系統時要考慮的。讀書的同時,特別要注意閱讀并欣賞一下書中所附源代碼,至少是代碼的核心部分。上述推薦讀物中的源碼寫作風格經典規范,注釋清晰易懂,非常漂亮,值得學習。操作系統要選好,更要用好。

    既然選了開源系統,就要讀一讀該操作系統的核心代碼,弄清楚該操作系統的特點、大致結構,以判斷任務調度算法是否符合自己的任務要求。讀代碼是對代碼可讀性、代碼質量的最好檢驗。你或許會喜歡上這個操作系統的代碼風格,或許對其感到厭惡而棄之。我的體會,個人感覺也很重要。

    所選操作系統必須能和項目的硬件匹配。對于手機類應用,系統偶爾死機未必不可接受。但對于嵌入式應用,若系統死機可能造成難以預料的嚴重后果,那么選擇操作系統和寫開發及測試程序等就要格外小心了。這類系統被稱作安全緊要系統(SafetyCriticalSystem),要確保系統安全,不死機或者有故障也能安全,是對這類系統的最低要求。理論上,計算機總是能被“搞死”的,如果操作系統能有什么措施,使系統被搞死的幾率低于硬件損壞的幾率,那就足夠好了。但實踐證明,單靠操作系統和應用軟件并不能保證系統不死機。硬件的可靠性是需要硬件工程師來保證的。那些自稱面向多核單片機的操作系統,在解決系統受到強電磁干擾而出錯的問題上,顯然不及兩套獨立供電的單核系統更為可靠。

    如果采用C語言開發對系統安全性要求特別高的安全緊要系統,還要特別注意所選RTOS與MISRA-C編程規范的符合程度,該規范雖然是由汽車工業軟件可靠性聯合會制定的,但在國防、航空航天、電信、鐵路、醫療等領域的用戶遠多于汽車領域。當然首先是嵌入式應用工程師本人開發的C程序,要經得起MISRA檢驗。

    預約申請免費試聽課

    填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

    上一篇:讓C++為嵌入式系統服務
    下一篇:嵌入式培訓好還是自學基本沒問題?

    嵌入式學習哪些內容?

    如何才能成為一名嵌入式大咖呢?

    4點實用的嵌入式學習方法介紹

    嵌入式學習路線指導手冊

    • 掃碼領取資料

      回復關鍵字:視頻資料

      免費領取 達內課程視頻學習資料

    • 視頻學習QQ群

      添加QQ群:1143617948

      免費領取達內課程視頻學習資料

    Copyright ? 2021 Tedu.cn All Rights Reserved 京ICP備08000853號-56 京公網安備 11010802029508號 達內時代科技集團有限公司 版權所有

    選擇城市和中心
    黑龍江省

    吉林省

    河北省

    湖南省

    貴州省

    云南省

    廣西省

    海南省

    黄色一级全祼,欧美一级aa片,一级毛卡片,一级特黄大片,三级片视频 百度 好搜 搜狗
    <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <蜘蛛词>| <文本链> <文本链> <文本链> <文本链> <文本链> <文本链>