1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      嵌入式系統及如何開發自己的嵌入式系統

      更新時間: 2008-10-23 13:42:39來源: 粵嵌教育瀏覽量:1410

                       嵌入式系統及如何開發自己的嵌入式系統

         

         多數Linux系統是在PC平臺上運行,然而Linux作為嵌入式系統也是非常穩定的。本文描繪了一個嵌入式系統的概覽,并展示嵌入式系統產品是如何使用Linux的。

         嵌入式系統比摩西還老的故事
          電腦用于控制設備或嵌入系統的歷史幾乎電腦自身的歷史一樣長。在通訊領域,六十年代晚期,電腦被用于電子電話交換機,稱為存儲程序控制系統。電腦這詞那時并不普遍,存儲程序指內存裝有程序和例程信息。存儲控制邏輯,而不是將其固化在硬件中,在當時確實是突破性的。今天,我們認為它本來就應如此。

          那時的電腦是為每一個應用而定制的,按今天的標準,它們是一些不正常的、由奇怪的特殊指令和IO設備集成在一部電腦中。
          微處理器通過提供構建大系統模塊的小型、低成本、CPU引擎改變了這一切。它提出了外設通過總線聯接的固定硬件架構及稱為編程的一般編程模型。
          軟件也隨著硬件提出。初,編寫和測試軟件只有簡單的編程開發工具。每個項目實際運行的軟件通常來自于草稿的修改。編程常用匯編語言或宏語言,因為編譯器常常有缺陷和缺乏完善的調試工具。軟件構建模塊和標準化庫只是到了七十年代才流行起來的概念。
          嵌入式系統的商品化操作系統在1970年代后期才出現,許多是用匯編語言寫成的,并且只能用于特定的微處理器,當微處理器被淘汰時,它的操作系統除非為新處理器重寫,否則也要被淘汰。今天,許多這類早期的系統成了些模糊的記憶;還有誰記得MTOS嗎?當C語言出現時,操作系統編寫的效率、穩定性、可移植性都提高了很多。這一點在管理上立刻表現出來,它為微處理器被淘汰時保護軟件投資帶來了希望。對于市場來說這是一個好消息。用C語言寫成的操作系統今天越來越普遍。一般來說,可重復使用的軟件已經占主導并越做越好。

          在八十年代早期,我喜歡的操作系統是Wendon操作系統,大約150美元就可以得到一個C源碼庫。它是一個包,你可以通過選擇部件建立自己的操作系統,類似在菜單上點菜。例如,你可以在庫清單上點工作排程安排和內存管理方案。 很多嵌入式系統的商品化操作系統是在八十年代出現的。這一熱潮持續到現在,今天,有很多可行的商品化操作系統可供選擇。一些大佬出現了,如VxWorks, pSOS, NeculeusWindows CE。
          許多嵌入式系統根本沒有操作系統,只有循環控制。對于一些簡單設備這是足夠的,但是隨著系統越來越復雜,操作系統就很必要了或軟件變得不可思議的復雜。不幸的是,有些復雜得可怕的嵌入式系統只因為設計者堅持不要操作系統才那么復雜。
          漸漸地,更多嵌入式系統需要與各類網絡聯接,因此需要網絡功能。即便是酒店的門把手也嵌入了微處理器與網絡相聯。 對于僅僅是編碼控制循環的嵌入式系統,增加網絡功能將導致系統復雜程度提高以致要求操作系統。
          除了商品化操作系統,還有大量專用操作系統。其中大部分來自于草案,如CISCOIOS;還有是從其他操作系統中派生出來的。例如,許多操作系統是從同一版本的Berkeley Unix系統派生,因為它有完整的網絡功能。其他是基于主要操作系統的如KA9Q來自Phil Karn。
          Linux作為嵌入式系統是一個帶有很多優勢的新成員。它對許多CPU和硬件平臺都是可移植的、穩定、功能強大、易于開發。

        工具包突破ICE的障礙
          開發嵌入式系統的關鍵的是可用的工具包。像任何工作一樣,好的工具使得工作更快更好。開發的不同階段需要不同的工具。
          傳統上,首先用于開發嵌入式系統工具是內部電路仿真器(ICE),它是一個相對昂貴的部件,用于植入微處理器與總線之間的電路中,允許使用者監視和控制微處理器所有信號的進出。這有點難做,因為它是異體,可能會引起不穩定。但是它提供了總線工作的清晰狀況,免了許多對硬件軟件底層工作狀況的猜測。
          過去,一些工作依賴ICE為主要調試工具,用于整個開發過程。但是,一旦初始化軟件對串口支持良好的話,多數的調試可以不用ICE而用其他方法進行。較新的嵌入式系統利用非常清晰的微處理器設計。有時,相應工作初始碼已經有了能夠快速獲得串口工作。這意味著沒有ICE人們也能夠方便地工作。省去ICE降低了開發的成本。一旦串口開始工作,它可以支持各種專業開發工具。
          Linux是基于GNUC編譯器,作為GNU工具鏈的一部分,與gdb源調試器一起工作。它提供了開發嵌入式Linux系統的所有軟件工具。這有些典型的、用于在新硬件上開發嵌入式Linux系統的調試工具。
        1.
        寫入或植入引導碼
        2.
        向串口打印字符串的編碼,如“Hello World”(事實上我更喜歡“Watson,Come hre I need you”,電話上常用的個詞。)
        3.
        gdb目標碼植入工作串口,這可與另一臺運行gdb程序的Linux主機系統對話。只要簡單地告訴gdb通過串口調試程序。它通過串口與測試機的gdb目標碼對話,你可以進行C源代碼調試,也可以用這個功能將更多的碼載入RAMFlash Memory中。
        4.
        利用gdb讓硬件和軟件初始化碼在Linux內核啟動時工作。
        5.
        一旦Linux內核啟動,串口成為Linux控制口并可用于后續開發。利用kgdb,內核調試版的gdb,這步常常不作要求,如果你與網絡聯接,如10BaseT,下一步你可能要啟動它。
        6.
        如果在你的目標硬件上運行了完整的Linux內核,你可以調試你的應用進程。利用其他的gdb或覆蓋gdb的圖形如xgdb

        什么是實時系統?
          嵌入式系統常常被錯誤地分為實時系統, 盡管多數系統一般并不要求實時功能。實時是一個相對的詞,純化論者常常嚴格地定義實時為對一事件以預定的方式在極短的時間如微秒作出響應漸漸地,在如此短暫時間間隔內的嚴格實時功能在專用DSP芯片或ASIC上實現了。只有在設計低層硬件FIFO、分散/聚集DMA引擎和定制硬件時才會有這樣的要求。
          許多設計人員因為對真實的要求設有清晰的理解而對實時的要求焦慮不安。對于大多數的系統,在一至五微秒的近似實時響應已經足夠。同樣軟需求也是可以接受的。如 Windows 98 已經崩潰的中斷必須在4毫秒內(±98%)內、或20毫秒(±0)內進行處理。
          這種軟要求是比較容易滿足的,包括環境轉換時間、中斷等待時間、任務優先級和排序。環境轉換時間曾是操作系統的一個熱門話題。總之,多數 CPU 這些要求處理得很好,而且CPU的速度現在已經快了很多,這個問題也就不重要了。
          嚴格的實時要求通常由中斷例程或其他內核環境驅動程序功能處理,以確保穩定的表現,等待時間,一旦請求出現要求服務的時間很大程度上取決于中斷的優先及其他能暫時掩蓋中斷的軟件。
          中斷必須進行處理和管理以確保時間要求能符合,如同許多其他的操作系統。在IntelX86處理器中,這工作很容易由Linux實時擴展處理。這是提供了一個以后臺任務方式運行Linux的中斷處理調度。關鍵的中斷響應不必通知Linux。因此可以得到許多對于關鍵時鐘的控制。在實時控制級和時間限制寬松的基本Linux級之間提供接口,這提供了與其他嵌入式操作系統相似的實時框架。因此,實時關鍵代碼是隔開的、并設計成滿足要求的。代碼處理的結果是以更一般的方法也許只在應用任務級。

        嵌入式系統定義

          一個觀點是如果一個應用沒有用戶界面,它必須是嵌入式的,因為用戶不能直接與之交互。當然這是簡單化的。一個電梯控制的電腦被認為是嵌入式的:按鍵選擇樓層指示燈顯示電梯的停層。對于聯網的嵌入式系統,如果系統包含監視和控制的網絡瀏覽器,這種界限就更加模糊了。更好些的定義注重系統的集中的功能和主要的目的。

          因為Linux提供了完成嵌入功能的基本的內核和你所需要的所有用戶界面,它是多面的。它能處理嵌入式任務和用戶界面。將Linux看作是連續的統一體,從一個具有內存管理、任務切換和時間服務及其他的分拆的、微內核到完整的服務器,支持所有的文件系統和網絡服務。
        一個小型的嵌入式Linux系統只需要下面三個基本元素:
        引導工具
        Linux
        微內核,由內存管理、進程管理和事務處理構成
        初始化進程:

        如果要讓它能干點什么且繼續保持小型化,還得加上:
        硬件驅動程序
        提供所需功能的一個或更多應用程序。
        再增加功能,或許需要這些
        一個文件系統(也許在ROMRAM中)
        TCP
        IP網絡堆棧
        存儲半過渡數據和交換用的磁盤。

        硬件平臺
          選擇的硬件是一個復雜的工作、充滿了公司其他項目的政治、偏見、傳統,缺乏完整或精確的信息。 成本經常是關鍵的議題。當考慮成本時、確信你在考慮產品的整個成本、不僅是CPU。有時快的、便宜的CPU一旦加上總線邏輯和時延使之與外設一起工作,能變成一個昂貴的狗的產品。如果你在尋找軟件,首先是硬件已經有產品了。如果你是系統設計者,由你決定制定實時的預算及硬件的工作是否滿意。
          現實中需要多快的CPU來完成一項工作,然后放大三倍。奇怪,CPU理論上的速度竟與現實中一樣,別忘了應用程序將會充分利用cache。
          想象總線的速度需要多快,如果有其他總線如PCI總線,包括進來。慢的總線或產生DMA阻塞的總線會降低CPU的速度造成擁擠。

        免費預約試聽課

        亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区
        
        

        1. 亚洲中亚洲中文字幕乱码首页 | 在线免费视频区 | 亚洲一区二区三区日本久久九 | 亚洲中文字幕一区第三页 | 精品免费久久久国产 | 亚洲一区二区三区嗯嗯嗯 |