努力成爲嵌入式Linux開發的高手

原文地址:http://blog.csdn.net/cuijpus/article/details/4431815

1. 開場白

做手機開發進入第六個年頭了,回頭看看,有些正面和反面的應驗總結一下,爲新入者或者應驗還不是很多的網友提供參考,有益的東西可以參考,不對的地方,可以從反面借鑑。

04年從南航研究生畢業後,到杭州一家手機軟件公司,期間主要是在Qualcomm的平臺上開發。進入這家公司和一位譚博士很有關係,我和譚博士很能談得來,他人很好,很健談,而且他很幫我,一直到現在我還是非常感激他對我的幫助!

由於剛進,肯定從最基本的做起:開發calendar相關的程序,這些手機的附件程序,不大,但是通過這個,可以對Qualcomm的平臺熟悉起來。這期間受訓了不少的東西:Qualcomm的掃盲;平臺的資料;MontaVista Linux; 培訓的過程很好,能吸收多少東西就不清楚了,現在我有很好的體會:我經常做嵌入式Linux方面的培訓,想把東西講的很徹底,就需要平時總結的很好,有很深入的理解,這樣才能講的很好。

期間由於項目組人員的變動,又中途接手了一個模塊:Camera. 這個在當時看來是比較複雜的東西,而且在QualComm平臺上面寫程序,上層的application完全是重寫的,這是Qualcomm平臺的開發週期比較長的一個重要原因,和現在MTK的交鑰匙方式相比。後來做集成時做了些Brew的移植,主要是過北京測試機構的測試關。

05年初 由於杭州的房價太離譜和家人的原因,我又回到了南京,直到現在…, 杭州很美麗,尤其是西湖…

期間做過TTPCOM平臺的程序,除了短消息外,幾乎所有的application都修改過:像phonebook、MP3 player,File Manager,Camera, Setting, Callog什麼的,由於不是做原型機,而是迅速推向市場的手機產品,大部分application都是繼承過來的,開發就是修改這些applications的bug. 在修改bug的過程中,肯定需要把程序的流程都摸得很清楚,然後才能改。有個體會:帶着bug去分析掌握流程是很有效率的。

後來有機會研究了兄弟部門的TD-SCDMA的Arena平臺. 這是大唐的平臺,芯片用的是ADI, GUI用的是MiniGUI. 這個MiniGUI對於後來在Linux下面開發很有幫助。

從06年開始轉向Linux手機平臺了,這時業內手機操作系統還不是很熱鬧。MTK也沒有鬧的多狠。到07年11月時Android出來後,就比較熱鬧了。而且07年也是MTK取得長足進展的一年…

回頭看看這幾年的開發,不論哪個平臺,基礎都是最重要的。把平臺的外衣脫掉,然後把平臺肢解到最底層,發現都是譚浩強的C語言堆砌起來的東西。從在學校做課題時的軟件水平,到企業裏面正規的開發,中間有不少體會。下面寫寫,希望對新入者有幫助。

目前各個公司中大部分平臺是商業化的東西,一般人得不到,對於想學嵌入式開發的,選擇Linux是比較好的。

2. 樹立一個能看見的目標

剛入門時很懵懂,也不去考慮幾年後是什麼樣子。有個目標是很好的。下面是我從一個網站上看到的一個可以參考的目標:

n 軟件系統架構高級工程師
任職要求:
1、7年以上該方面專心致志的經驗;
2、帶隊開發過成功大量上市的LINUX高端智能手機或者高端MP4,並且自己還在一線從事編碼工作,能夠從事技術指導工作;
3、熟悉高端手機的整個研發流程,精通代碼的規範、管理與控制,軟件版本控制;
4、精通LINUX系統內核,對裁剪、編譯環境建立、更新、調試等方面要有系統認識與方法;
5、精通C/C++/JAVE語言,對程序系統架構有極深的理解;

簡單的幾條要求,涵蓋了很多的東西!要爲此付出很多,積累很多!

3. 及早搭建自己的工作室

Why:前途(錢途)

嵌入式 Linux未來的前景看好,但是人才的缺乏已經成爲當前制約嵌入式Linux發展的瓶頸。一方面,因爲嵌入式人才領域門檻較高,從事嵌入式軟件開發的工作人員不僅要熟練掌握c/c++,彙編語言等基礎,而且對Linux底層驅動內核,甚至是硬件都要了熟於心。

另一方面,因爲這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在如雨後春筍般的涌現(如ARM11處理器、嵌入式Linux操作系統、MPEG技術、無線通信協議、移動USB2.0高速傳輸等),目前國內乃至國際上能購掌握這些新技術的人才相當匱乏。

未來幾年,市場對嵌入式Linux人才的需求旺盛。而目前熟練的Linux應用人才只有幾千名。這意味着各大跨國公司及國內消費類電子巨頭企業都面臨着人才嚴重短缺的挑戰。

由於嵌入式Linux開發人才的缺乏也帶來了這個行業可觀的薪酬待遇,嵌入式Linux的從業者薪酬比其他IT業同行大約高出50%,初入門的開發人員平均月薪一般都能達到5000元,有三年以上經驗的人員年薪都在10萬元以上,有10年工作經驗的高級嵌入式軟件工程師年薪在30萬元左右。儘管待遇可觀,可是相關企業還是很難招到合適的員工。

3.1: 準備開發版

對於在嵌入式Linux下面開發,如果你手頭不準備一個開發板,很多東西你不能驗證、掌握。

在公司裏面,大部分時間在開發:coding+doc. 很少會給你留整塊的時間去系統的掌握嵌入式Linux開發的上上下下的東西。所以及早給自己準備一套開發環境還是比較值得,雖然可能會花掉2000¥多塊錢,但是與未來掙的相比,是很值得的。

培訓:有經濟能力就參加。自己摸索很費事,如果有高手指點非常的好,進步快。

不培訓,自己啃也有樂趣。我基本上是自己啃,公司的外派培訓,我也會去參加一兩次,回來給新入者培訓。

市場上比較常見的是三星的S3C44B0(ARM7), S3C2440(ARM9).

推薦的開發板子:見後。

3.2 準備PC:

在家裏也要有臺PC, 開發用的PC現在的價格4000,甚至3000千塊就基本上可以了。這一點投資對於對於能力的提高是很有幫助的,能爲你帶來很多。很多人在學校就有電腦了,雖然舊點,做開發足夠了。

3.3:書籍

學習嵌入式Linux開發,我推薦大家從簡單入手。不要一上來就啃Linux內核。04年我在杭州時,一時衝動買了本毛德操的<<Linux內核情景分析>>上冊,開始啃Linux內核,每天下班後,到小飯館吃過飯後,看看新聞,然後開始啃Linux kernel,很痛苦:當時沒有明確的目標,就像迷失在大森林裏的人,在找出去的路。啃了半年沒有肯出個所以然。

推薦的書籍:

4. 文檔的功夫

文檔的能力是一個工程師的名片。很多人不注意文檔質量,認爲只要把代碼寫好就好了,管什麼文檔呢?這絕對是個誤解。文檔是爲了傳承和理清楚思路。

拿到一個項目,首先要看文檔、設計文檔,如果文檔都搞得一塌糊塗,後面的代碼你可能就是天天修補了,很痛苦的。

能寫很規範、專業文檔的工程師,肯定是很牛的人,因爲一般人寫不出來。但是一般人都能coding.所以文檔能力也要有個規劃,提高。

5. 合作

做application與driver沒有什麼貴賤之分,不要認爲driver比application好,做application是沒有前途的。這都是誤解。能把application做好很不容易,而且做application也很有前途(錢途)。

任何一個部分只要做到前列,都有市場。

另外,在公司中,很多項目都是合作完成的,合作是基礎。你再牛,如果項目失敗,你都無法成爲牛人;你再“普通”,只要項目一個接着一個的成功,都會把你“捎帶”成爲牛人!

6. 看將來

現在高校畢業的學生越來越多,很多沒有找到工作。其中有一部分是中國高等教育的問題,另外一方面也是靠學生自己了。

據教育部統計,截至7月1日全國611萬高校畢業生中已有415萬人落實去向,與去年同期相比就業人數增加44萬人;高校畢業生就業率達到68%,同比基本持平。

這個就業率很低,和6、7年前的95%相比,差很多了。就是很多就業的學生,工資1、2千的很多,除去房租、伙食費,所剩無幾。甚至連通訊費都要仔細算計:哪些電話可以接,哪些不要打。 想想上大學花了好幾萬塊,到頭來成爲一個勉強就業的月光族! 是很心酸的!

不要悲觀,要動態的看問題,每一年你的能力都得到提高,進而收入會水漲船高。嵌入式Linux開發,是個不錯的選擇,而且會隨着經驗的增長,一切都會好。好好做個規劃,努力成爲一個嵌入式開發的“高手”。

我的郵件是[email protected], 大家有空可以聊聊。

推薦書籍:

ARM嵌入式Linux系統開發從入門到精通

http://www.amazon.cn/mn/detailApp?qid=1249910263&ref=SR&sr=13-1&uid=476-9729326-1133757&prodid=bkbk750230

嵌入式設計及Linux驅動開發指南(基於ARM9處理器)

http://www.amazon.cn/mn/detailApp?qid=1249910422&ref=SR&sr=13-28&uid=476-9729326-1133757&prodid=zjbk209513

LINUX內核源代碼情景分析(上冊)

http://www.amazon.cn/mn/detailApp?ref=DT_TS&uid=476-9729326-1133757&prodid=bkbk839390

Linux內核完全註釋

http://www.amazon.cn/mn/detailApp?ref=DT_TS&uid=476-9729326-1133757&prodid=zjbk446409

Android(Linux手機系統)開發入門與實戰

http://www.amazon.cn/mn/detailApp?qid=1249910827&ref=SR&sr=13-1&uid=476-9729326-1133757&prodid=bkbk961360

發佈了20 篇原創文章 · 獲贊 4 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章