當前位置:成語大全網 - 新華字典 - php or 嵌入式

php or 嵌入式

嵌入式的前景當然更好,PHP壹般都是相對簡單,工資也沒有那麽高。嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之壹。嵌入式系統用在壹些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,並且對成本很敏感,有時對實時響應要求很高等。特別是隨著消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。

嵌入式系統是軟硬結合的東西,搞嵌入式開發的人有兩類。

壹類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發壹些與硬件關系最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS壹樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對復雜軟件系統往往力不從心(例如嵌入式操作系統原理和復雜應用軟件等)。

另壹類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BSP和硬件驅動程序。嵌入式硬件設計完後,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟件,這占了嵌入式系統的最主要工作(目前有很多公司將硬件設計包給了專門的硬件公司,稍復雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因為公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有"花頭"可做的),所以我們搞軟件的人完全不用擔心我們在嵌入式市場上的用武之地,越是智能設備越是復雜系統,軟件越起關鍵作用,而且這是目前的趨勢。

從事嵌入式軟件開發的好處是:

(1) 目前國內外這方面的人都很稀缺。壹方面,是因為這壹領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這壹領域;另壹方面,是因為這壹領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少,根本原因可能是大多數人無條件接觸,這需要相應的嵌入式開發板和軟件,另外需要有經驗的人進行指導開發流程。

(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低壹些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下壹個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲於奔命,重復勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。壹個產品型號開發完了,往往有較長壹段空閑時間(或只是對軟件進行壹些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作範圍相對狹窄,所涉及的專業技術範圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。若搞應用軟件,可能下壹個客戶要換成壹個完全不同的軟件開發平臺,那就苦了。

(3) 哪天若想創業,搞自已的產品,那麽嵌入式是壹個不錯的主意,這可不像應用軟件那樣容易被盜版。土木學院有壹個叫啟明星的公司開發出壹個好象叫“工程e”的掌上PDA(南校區門口有廣告),施工技術人員用該PDA可當場進行土木概預算和其它土木計算,據說銷路特好。我認識的某大學老師,他開發的飯館用的點菜PDA(WinCE平臺,可無線連網和上網),據他說銷路不錯,飯館點點PDA讓客戶點菜,多顯派頭檔次。我記得00級2+2班當年有壹組同學在學Windows程序設計課程時用VC++設計了壹個功能很強的點菜系統做為課程項目,當時真想建議他們將這個軟件做成PDA,估計會有些銷路(上海火車站南廣場的Macdonald便使用很漂亮的PDA給用戶點食品,像摸像樣的)。這些PDA的硬件設計壹般都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成自己的產品了。

學習嵌入式,該學習什麽基本的知識呢?

首先C語言,這個是毋庸置疑的,不管是做嵌入式軟件還是硬件開發的人員,對C語言的掌握這個是必需的,特別是對於以後致力於嵌入式軟件開發的人,現在絕大部分都是用C語言,妳說不掌握它可以嗎?至於如何學習C語言,我想這些基礎的知識每個人都有自己的方法,關鍵要去學習,看書也好,網上找些視頻看也好。很多人會問,C語言要學到怎麽樣,我覺得這沒有標準的答案。我想至少妳在明白了壹些基礎的概念後,就該寫代碼了,動手才是最重要的,當妳動手了,遇到問題了,再反過來學習,反過來查查課本,那時的收獲就不是妳死看書能得到的。

其次,應該對操作系統有所了解,這對妳對硬件和軟件的理解,絕對有很大的幫助。應該把系統的管理理解壹下,比如進程、線程,系統如何來分配資源的,系統如何來管理硬件的,當然,不是看書就能把這些理解透,如果不是壹時能理解,沒關系,多看看,結合以後的項目經驗,會有更好的理解的。

還有應該學習嵌入式系統,如linux或者wince下的編程,這些對以後做應用的編程很有幫助,當然,如果做手機的話,那可以學習MTK、塞班、Android等操作系統,Android是以後發展的趨勢,現在很熱門,Android也是基於linux系統封裝的,所以建議先學習下linux。

還有,應該學習下單片機或者ARM或者MIPS,很多人說我沒有單片機的經驗,直接學ARM可以嗎?我覺得那完全沒有問題的,當然如果妳學習過單片機,那最好不過了,以後學習ARM就更簡單了。

最後如果妳把以上的知識都有所了解後,就該去閱讀閱讀壹些優秀的代碼,比如結合arm芯片手冊學習去學習下UBOOT的源代碼,了解下最小的系統開發,那對妳整個嵌入式開發的非常有幫助的,可以的話,還可以學習下linux的源代碼,當然如果妳直接閱讀2.6的代碼,我想妳會很痛苦的,可以先看看linux 代碼早期的版本,比如0.12 的代碼等等,麻雀雖小,五臟俱全,如果妳全看完了,那我想妳就是壹名很成功的嵌入式工程師。

至於上面說的知識如何學習呢?每個人都應該去找自己最好的方法,所謂的最好的方法就是最適合自己的方法。很多人看不進書,那就去看看視頻吧。視頻也應該要選擇,不是隨便看看,應該要有所選擇,有所挑選。我也是這樣壹路走過來的,不過我這人比較懶,我看不進書,壹看書我就想睡覺,所以這幾年我都是看視頻過來的,現在也算學有所成,但也不敢說是高手吧。

我在網上看到,有人把自己學習嵌入式的視頻總結出來,嵌入式系列實踐和視頻教程,大家可以看看網址/embedvideo.htm 我仔細看了覺得很不錯,我本來也想整理下,可是奈何我自己的電腦硬盤空間才40G,沒有辦法,時間也是不夠,心有余而力不足,我不是在幫他做廣告,雖然要花錢,我覺得算不錯,至少自己不用去整理和花大量的時間去找資源,當然如果網上有的下,妳網速和硬盤都夠的話,我建議大家自己網上下也好。想想我自己該開始學的時候,那時視頻資源少之又少,我買書和買視頻至少花了幾千塊,但是我覺得那很值,至少我現在賺回來了很多知識。

最後,希望這篇文章對熱愛嵌入式,想致力於嵌入式開發的朋友有所幫助。送給大家壹句簡單而又樸素的話,堅持就是勝利,貴在堅持,也可以看看如何堅持嵌入式學習!

最後希望樓主選擇嵌入式,早日成為嵌入式的高手。