<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 學習方法與實踐 > 學習嵌入式的實戰(zhàn)方案:要軟硬兼施!

          學習嵌入式的實戰(zhàn)方案:要軟硬兼施!

          ——
          作者: 時間:2007-11-21 來源:嵌入式在線 收藏

          怎樣做才能快速的了? 其實,做工程是沒有捷徑可走的

          先說做硬件:

          把你的數(shù)字電路教材和模擬電路的教材讀熟,暫時先把重點放在數(shù)字電路上面,接著把微機原理和接口技術讀熟悉了,最好能用匯編寫幾個簡單的程序上機調試一下,這是很重要的。
          完成上面的工作大概需要半年,不管你有多么的聰明,除非你以前這個基礎就打的不錯,否則,還是老老實實花上至少半年的時間!還是那句話,沒有捷徑可走,如果你相信那些什么“21天學通xx”什么的,那么我告訴你,放棄做工程吧!再說,你這么容易就學會了,別人也能的,你確定能拿到高薪嗎?
          下一步,就是選擇一個DSP(或其它的CPU)平臺作為你的目標平臺,先熟悉它的架構和與外圍電路的接口,然后她的指令集,也要寫一些小程序去跑一下。這個時候,你應該去買一個開發(fā)板了,一般的廠家附帶會給你一些demo程序,看懂它,理解它,修改它,在你的板子上跑一跑。
          完成上面兩步,說明你已經入了這個行業(yè)的門了,下一步,想成為高手的話,就是自己去設計一些項目了,這個階段所花的時間每個人都是不同的,要看你的造化(主要是前面的基礎是否牢固)了。

          再說說軟件:

          行業(yè),你想做軟件開發(fā)的話,沒別的,那就深入理解C語言,尤其是C的指針,如果你以前學過C,但是沒有意識到C相比其它的高級語言的優(yōu)點的話(不是聽別人說的,你自己的體會),你可以按下面步驟來理解C:

          1、重新翻一遍C的教材,記住一些常用的C語法,但不要死摳語法;
          2、從編譯器的角度來理解C;
          從編譯原理的角度來理解你工作中使用的高級語言,如果你做到這一點,至少有兩個好處:
          第一個好處是避免一大堆低水平重復出現(xiàn)的編譯錯誤。一名優(yōu)秀的Coder平均在一個工作日中應該完成200行以上的源碼,其編譯錯誤應該控制在5個以下,要知道這200行源碼不是一次完成的,所以大多數(shù)情況下你都要追求一次編譯通過;
          第二個好處是可以提高源碼的可讀性和效率。規(guī)范地編寫你的代碼使你自己的邏輯清晰,因為你明白多加幾個括號和空行、多換行對齊、多注釋,編譯器是會自動識別的,不影響程序執(zhí)行的效率,反過來,控制好遞歸調用和循環(huán)內的if語句才是提高程序效率的關鍵,要全力避免遞歸,但要深刻理解遞歸,能通過自己建立堆棧來把遞歸程序轉換成非遞歸程序,要求還是較高的哦!
          3、從硬件的角度來理解C。
          完成上面3步,你就是C的高手了,接下來應該去看看軟件工程方面的書了,這個我還不太懂,不敢妄言。

          另外說說教材的選擇:學一門東西,選好你的教材,只要一本就可以了。堅決防止這種情況的出現(xiàn):去圖書館借很多本書,像搶劫似的,而只是每一本都翻翻,就又還給圖書館了的!注意上面我把匯編語言放在硬件的板塊里面,是由于匯編跟硬件的關系太緊密了,以至于是先學匯編還是先硬件電路和CPU架構成了要分清到底是“先有雞還是先有蛋”的千年哲學難題了。

          嵌入式操作系統(tǒng)一覽

          其實,并不是一個新生的事物,從八十年代起,國際上就有一些IT組織、公司,開始進行商用和專用操作系統(tǒng)的研發(fā)。這其中涌現(xiàn)了一些著名的: 


          Windows CE 


          Microsoft Windows CE是從整體上為有限資源的平臺設計的多線程、完整優(yōu)先權、多任務的操作系統(tǒng)。它的模塊化設計允許它對于從掌上電腦到專用的工業(yè)控制器的用戶電子設備進行定制。操作系統(tǒng)的基本內核需要至少200K的ROM。 


          VxWorks 


          VxWorks是目前嵌入式系統(tǒng)領域中使用最廣泛、市場占有率最高的系統(tǒng)。它支持多種處理器,如x86、i960、Sun Sparc、Motorola MC68xxx、MIPS RX000、POWER PC等等。大多數(shù)的VxWorks API是專有的。采用GNU的編譯和調試器。 

           
          pSOS 


          ISI公司已經被WinRiver公司兼并,現(xiàn)在pSOS屬于WindRiver公司的產品。這個系統(tǒng)是一個模塊化、高性能的實時操作系統(tǒng),專為嵌入式微處理器設計,提供一個完全多任務環(huán)境,在定制的或是商業(yè)化的硬件上提供高性能和高可靠性。可以讓開發(fā)者根據(jù)操作系統(tǒng)的功能和內存需求定制成每一個應用所需的系統(tǒng)。開發(fā)者可以利用它來實現(xiàn)從簡單的單個獨立設備到復雜的、網(wǎng)絡化的多處理器系統(tǒng)。

           
          QNX 


          QNX是一個實時的、可擴充的操作系統(tǒng),它部分遵循POSIX相關標準,如:POSIX.1b實時擴展。它提供了一個很小的微內核以及一些可選的配合進程。其內核僅提供4種服務:進程調度、進程間通信、底層網(wǎng)絡通信和中斷處理,其進程在獨立的地址空間運行。所有其它OS服務,都實現(xiàn)為協(xié)作的用戶進程,因此QNX內核非常小巧(QNX4.x大約為12Kb)而且運行速度極快。這個靈活的結構可以使用戶根據(jù)實際的需求,將系統(tǒng)配置成微小的嵌入式操作系統(tǒng)或是包括幾百個處理器的超級虛擬機操作系統(tǒng)。

           
          Palm OS 


          3Com公司的Palm OS在PDA市場上占有很大的市場份額,它有開放的操作系統(tǒng)應用程序接口(API),開發(fā)商可以根據(jù)需要自行開發(fā)所需要的應用程序。 
          OS-9 
          Microwave的OS-9是為微處理器的關鍵實時任務而設計的操作系統(tǒng),廣泛應用于高科技產品中,包括消費電子產品、工業(yè)自動化、無線通訊產品、醫(yī)療儀器、數(shù)字電視/多媒體設備。它提供了很好的安全性和容錯性。與其他的嵌入式系統(tǒng)相比,它的靈活性和可升級性非常突出。

          LynxOS 

          Lynx Real-time Systems的LynxOS是一個分布式、嵌入式、可規(guī)模擴展的實時操作系統(tǒng),它遵循POSIX.1a、POSIX.1b和POSIX.1c標準。LynxOS支持線程概念,提供256個全局用戶線程優(yōu)先級;提供一些傳統(tǒng)的、非實時系統(tǒng)的服務特征;包括基于調用需求的虛擬內存,一個基于Motif的用戶圖形界面,與工業(yè)標準兼容的網(wǎng)絡系統(tǒng)以及應用開發(fā)工具。

          目前,世面上有很多商業(yè)性嵌入式系統(tǒng)都在努力地為自己爭取著嵌入式市場的份額。但是,這些專用操作系統(tǒng)均屬于商業(yè)化產品,價格昂貴;而且,由于它們各自的源代碼不公開,使得每個系統(tǒng)上的應用軟件與其它系統(tǒng)都無法兼容。并且,由于這種封閉性還導致了商業(yè)嵌入式系統(tǒng)在對各種設備的支持方面存在很大的問題,使得對它們的軟件移植變得很困難。在嵌入式這個IT產業(yè)的新的關鍵領域,Linux操作系統(tǒng)適時地出現(xiàn)在了國家和國內各嵌入式廠商面前,由于Linux自身諸多優(yōu)勢,吸引了許多開發(fā)商的目光,成為嵌入式操作系統(tǒng)的新寵。它的出現(xiàn)無疑為國家發(fā)展嵌入式操作系統(tǒng)事業(yè)提供了一個極有吸引力的機會。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();