久久99精品久久久久久琪琪,久久人人爽人人爽人人片亞洲,熟妇人妻无码中文字幕,亚洲精品无码久久久久久久

嵌入式學習路線

時間:2019-05-15 09:21:46下載本文作者:會員上傳
簡介:寫寫幫文庫小編為你整理了多篇相關的《嵌入式學習路線》,但愿對你工作學習有幫助,當然你在寫寫幫文庫還可以找到更多《嵌入式學習路線》。

第一篇:嵌入式學習路線

語言基礎 1.C 與 C++ A.《c reference》 B.《c++ 編程思想》 C.《effective c++》 D.《more effective c++》 E.《effective c++ stl》 2.軟件設計 A.《UML 2.0 Reference》 B.《設計模式-可復用的面向對象軟件的基礎》 C.《重構》 D.《修改代碼的藝術》 E.《面向模式的軟件體系結構》卷 1,卷 2,卷 3,卷 4,卷 5 3.Linux 開發基礎 A.《鳥哥的 linux 私房菜》 B.《GNU make reference》 C.《Shell 編程》 D.《unix 高級環境編程》 E.《linux kernel development》 F.《深入理解 Linux 內核》 G.《Linux 驅動程序開發》 H.《Unix 網絡編程》 I.《Linux 進程間通信》 4.嵌入式開發基礎 A.《ARM 體系結構》 B.《ARM 程序分析與設計》 C.《ARM 嵌入式系統基礎教材》周立功 D.《嵌入式操作系統μC/OS》 E.《嵌入式 Linux 基礎教材》 F.《嵌入式系統設計》 G.《嵌入式硬件設計》 H.《Qt4 圖形設計與嵌入式系統開發》 I.《嵌入式系統中的實時概念》 J.《實時設計模式》 5.專業選看 A.FPGA 設計 B.《高性能嵌入式計算》 C.數字圖像處理,視頻編解碼基礎 MPEG4,H.264,AVS D.Android,iphone,symbian 開發。


第二篇:嵌入式學習路線建議

嵌入式學習是一個循序漸進的過程,如果是希望向嵌入式軟件方向發展的話,目前最常見的是嵌入式Linux方向,關注這個方向,我認為大概分3個階段:

1、嵌入式linux上層應用,包括QT的GUI開發

2、嵌入式linux系統開發

3、嵌入式linux驅動開發

嵌入式目前主要面向的幾個操作系統是,LINUX,WINCE、VxWorks等等 Linux是開源免費的,而且其源代碼是開放的,更加適合我們學習嵌入式。

你可以嘗試以下路線:

(1)C語言是所有編程語言中的強者,單片機、DSP、類似ARM的種種芯片的編程都可以用C語言搞定),因此必須非常熟練的掌握。推薦書籍:《The C Programming Language》 這本經典的教材是老外寫的,也有中譯版本。(2)操作系統原理,是必需的,如果你是計算機專業畢業那也就無所謂了,如果是非計算機專業的就必須找一本比較淺顯的計算機原理書籍看一看,把啥叫“進程”“線程”“系統調度”等等基本問題搞清楚。

(3)Linux操作系統就是用C語言編寫的,所以你也應該先學習下Linux方面的編程,只有你會應用了,才能近一步去了解其內核的精髓。推薦書籍:《UNIX環境高級編程》(第2版)

(4)了解ARM的架構,原理,以及其匯編指令,我們在嵌入式開發中,一般很少去寫匯編,但是最起碼的要求是能夠看懂arm匯編。

(5)系統移植的時候,就需要你從最下層的bootloader開始,然后內核移植,文件系統移植等。而移植這部分對硬件的依賴是非常大的,其配置步驟也相對復雜,也沒有太多詳細資料。

(6)驅動開發

linux驅動程序設計既是個極富有挑戰性的領域,又是一個博大精深的內容。

linux驅動程序設計本質是屬于linux內核編程范疇的,因而是對linux內核和內核編程是有要求的。在學習前你要想了解linux內核的組成,因為每一部分要詳細研究的話足夠可以擴展成一本厚書。

以上只不過是大概的框架,在實際的開發中還會涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學習嵌入式的周期較長,門檻較高,自學的話更是需要較強的學習能力和專業功底。只要能堅持下來一定會取得成功!

其實LZ可以到一些嵌入式培訓機構的網站上看一下他們的課程設置,就會在腦子里有個清晰的思路,比如華清遠見的官方網站,上面的嵌入式內容很豐富,嵌入式方面的信息更新也很迅速,沒事可以去轉轉。

嵌入式是一個比較大的概念,他有四個分支,至少我只知道這四個。

1、微控制器(單片機為例);

2、微處理器(arm為例);

3、dsp(數字信號處理);

4、soc(片上系統); 對于我們初學者而言,首先要學習單片機,以51為代表,等你學好51之后,可以深入學習更艱難的東西;

當然,并不是說你只需要學習單片機;要想學好單片機,你還得學c語言,得學匯編,得學一大堆應用軟件;等到單片機能夠掌握的不錯的時候又需要自己進行原理圖、PCB板的設計;還得掌握系統設計的工程管理什么的;比較多。。

單片機還是比較簡單的,等到學好之后,開始學習arm的時候,你就接觸的多了,什么操作系統啊、驅動編寫啊、內核移植啊、應用程序的添加啊、上位機的編寫啊,那個就多了,不過到時候你就全知道了。。

ARM+LINUX路線,主攻嵌入式Linux操作系統及其上應用軟件開發目標:

(1)掌握主流嵌入式微處理器的結構與原理(初步定為arm9)

(2)必須掌握一個嵌入式操作系統(初步定為uclinux或linux,版本待定)

(3)必須熟悉嵌入式軟件開發流程并至少做一個嵌入式軟件項目。

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

(1)目前國內外這方面的人都很稀缺。這一領域入門門檻較高,所以非專業IT人員很難切

入這一領域;另一方面,是因為這一領域較新,目前發展太快,大多數人無條件接觸。

(2)與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。

(3)哪天若想創業,搞自已的產品,嵌入式不像應用軟件那樣容易被盜版。硬件設計一般

都是請其它公司給訂做(這叫“貼牌”:OEM),都是通用的硬件,我們只管設計軟件就變成

自己的產品了。

(4)興趣所在,這是最主要的。

從事嵌入式軟件開發的缺點是:

(1)入門起點較高,所用到的技術往往都有一定難度,若軟硬件基礎不好,特別是操作系

統級軟件功底不深,則可能不適于此行。

(2)這方面的企業數量要遠少于企業計算類企業。

(3)有少數公司經常要碩士以上的人搞嵌入式,主要是基于嵌入式的難度。但大多數公司

也并無此要求,只要有經驗即可。

(4)平臺依托強,換平臺比較辛苦。

興趣的由來:

1、成功觀念不同,不虛度此生,就是我的成功。

2、喜歡思考,挑戰邏輯思維。

3、喜歡C

C是一種能發揮思維極限的語言。關于C的精神的一些方面可以被概述成短句如下:

相信程序員。

不要阻止程序員做那些需要去做的。

保持語言短小精干。

一種方法做一個操作。

使得它運行的夠快,盡管它并不能保證將是可移植的。

4、喜歡底層開發,討厭vb類開發工具(并不是說vb不好)。

5、發展前景好,適合創業,不想自己要死了的時候還是一個工程師。

方法步驟:

1、基礎知識:

目的:能看懂硬件工作原理,但重點在嵌入式軟件,特別是操作系統級軟件,那將是我的優

勢。

科目:數字電路、計算機組成原理、嵌入式微處理器結構。

匯編語言、C/C++、編譯原理、離散數學。

數據結構和算法、操作系統、軟件工程、網絡、數據庫。

方法:雖科目眾多,但都是較簡單的基礎,且大部分已掌握。不一定全學,可根據需要選修。

thec++programminglanguage(一直沒時間讀)、數據結構-C2。

2、學習linux:

目的:深入掌握linux系統。方法:使用linux—〉linxu系統編程開發—〉驅動開發和分析linux內核。先看深,那主講原理??磶妆楹?,看情景分析,對照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學習。最后深入代碼。

主攻書籍:linux內核完全剖析、unix環境高級編程、深入理解linux內核、情景分析和源代。

3、學習嵌入式linux:

目的:掌握嵌入式處理器其及系統.方法:(1)嵌入式微處理器結構與應用:直接arm原理及匯編即可,不要重復x86。

(2)嵌入式操作系統類:ucOS/II簡單,開源,可供入門。而后深入研究uClinux。

(3)必須有塊開發板(arm9以上),有條件可參加培訓(進步快,能認識些朋友)

主攻書籍:毛德操的《嵌入式系統》及其他arm9手冊與arm匯編指令等。

4、深入學習:

A、數字圖像壓縮技術:主要是應掌握MPEG、mp3等編解碼算法和技術。

B、通信協議及編程技術:TCP/IP協議、802.11,Bluetooth,GPRS、GSM、CDM

A等。

C、網絡與信息安全技術:如加密技術,數字證書CA等。

D、DSP技術:DigitalSignalProcess,DSP處理器通過硬件實現數字信號處理算

法。

說明:太多細節未說明,可根據實際情況調整。重點在于1、3,不必完全按照順序

作。對于學習c++,理由是c++不只是一種語言,一種工具,她還是一種藝術,一種文化,一種哲學理念、但不是拿來炫耀得東西。對于linux內核,學習編程,讀一些優秀代碼也是

有必要的。

注意: 要學會舉一反多,有強大的基礎,很多東西簡單看看就能會。想成為合格的

程序員,前提是必須熟練至少一種編程語言,并具有良好的邏輯思維。一定要理論結合實踐。

不要一味鉆研技術,雖然擠出時間是很難做到的,但還是要留點余地去完善其他的愛

好,比如宇宙,素描、機械、管理,心理學、游戲、科幻電影。還有一些不愿意做但必須要

做的!

技術是通過編程編程在編程編出來的。永遠不要夢想一步登天,不要做浮躁的人,不

要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機會來了在創業(不要

相信有奇跡發生,盲目創業很難成功,即便成功了發展空間也不一定很大)。

嵌入式書籍推薦

Linux基礎

1、《Linux與UnixShell編程指南》

C語言基礎

1、《CPrimerPlus,5thEdition》【美】StephenPrata著

2、《TheCProgrammingLanguage,2ndEdition》【美】BrianW.KernighanDav

idM.Rithie(K&R)著

3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)

4、《嵌入式Linux應用程序開發詳解》

Linux內核

1、《深入理解Linux內核》(第三版)

2、《Linux內核源代碼情景分析》毛德操胡希明著

研發方向

1、《UNIXNetworkProgramming》(UNP)

2、《TCP/IP詳解》

3、《Linux內核編程》

4、《Linux設備驅動開發》(LDD)

5、《Linux高級程序設計》楊宗德著

硬件基礎

1、《ARM體系結構與編程》杜春雷著

2、S3C2410Datasheet

英語基礎

1、《計算機與通信專業英語》

系統教程

1、《嵌入式系統――體系結構、編程與設計》

2、《嵌入式系統――采用公開源代碼和StrongARM/Xscale處理器》毛德操胡希明

3、《BuildingEmbeddedLinuxSystems》

4、《嵌入式ARM系統原理與實例開發》楊宗德著

理論基礎

1、《算法導論》

2、《數據結構(C語言版)》

3、《計算機組織與體系結構?性能分析》

4、《深入理解計算機系統》【美】RandalE.Bryant DavidO''Hallaron著

5、《操作系統:精髓與設計原理》

6、《編譯原理》

7、《數據通信與計算機網絡》

8、《數據壓縮原理與應用》

C語言書籍推薦

1.TheCprogramminglanguage《C程序設計語言》

2.PointersonC《C和指針》

3.Ctrapsandpitfalls《C陷阱與缺陷》

4.ExpertCLanuage《專家C編程》

5.WritingCleanCode-----MicrosoftTechiniquesforDevelopingBug-freeCProgr ams

《編程精粹--Microsoft編寫優質無錯C程序秘訣》

6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系統編程》

7.《C語言嵌入式系統編程**》

8.《高質量C++/C編程指南》林銳

盡可能多的編碼,要學好C,不能只注重C本身。算法,架構方式等都很重要。

這里很多書其實是推薦而已,不必太在意,關鍵還是基礎,才是重中之重??!

第三篇:嵌入式培訓 嵌入式Linux學習路線

嵌入式培訓 嵌入式Linux學習路線_粵嵌教育

有需求就有市場,伴隨著嵌入式的應用領域越來越寬廣,嵌入式工程師的缺口與日俱增,嵌入式Linux培訓也迎來了良好的發展環境和機遇。嵌入式Linux憑借其系統發展的成熟度、市場應用的高份額也受到更多工程師朋友的青睞,越來越多的企業和研發機構都轉向嵌入式Linux的開發和研究,眾所周知,嵌入式開發在IT開發行業中一直是比較火熱的職業,特別是智能硬件的發展。智能硬件從軟件到硬件,每一階段都需要開發人員擁有超強的開發能力和豐富的經驗。而對于智能硬件產品來說,他們的開發都是建立在龐大的嵌入式系統生態之上的。想學習嵌入式要要怎么做呢?來看看粵嵌教育分享的嵌入式Linux學習路線:

1、基礎知識: C/C++編程、數據結構和算法、操作系統、軟件工程、網絡、數據庫等。雖科目眾多,但都是較簡單的基礎,且大部分已掌握。

2、深入掌握Linux系統:使用Linux、Linux系統編程開發、驅動開發、分析Linux內核??梢园催@樣的學習順序,由淺及深,不斷的理解掌握核心內容。

3、學習嵌入式Linux: 主要是嵌入式Linux開發流程,嵌入式Linux應用開發、ARM體系架構等。建議最好就是自己買一塊開發板研究,條件允許的話還是報粵嵌培訓班吧,有專業人士帶進步會比較快,還能認識很多行業的朋友。

4、深入學習:深入學習ARM、Linux內核驅動、Android移植驅動等重點難點內容,學習傳感器開發、ZigBee開發、藍牙開發、RFID等目前比較流行的嵌入式開發技術。

目前嵌入式就業比較熱門的領域有物聯網、智能家居、智能醫療、智能汽車電子、智能硬件產品開發等等,可以說嵌入式Linux無處不在。想系統學習嵌入式開發,到粵嵌進行嵌入式Linux培訓,教學課程涵蓋了嵌入式基礎、項目分析與立項、Linux核心操作與算法、嵌入式Linux系統編程開發、嵌入式GUI系統編程開發、ARM開發、嵌入式底層驅動開發、項目優化與驗收再到就業與創業指導。

第四篇:嵌入式學習的正確步驟,嵌入式 嵌入式學習路線

www.tmdps.cn 達內教育—中國IT培訓領導品牌

嵌入式學習的正確步驟,嵌入式 嵌入式學習路線

嵌入式門檻雖然較高,但也跟其他事物一樣,并不是牢不可破。只要我們用心去對待,冬雪終將化去,春風定會吹來。

具體步驟如下:

1、《C語言》第二版 譚浩強;《C程序設計語言》第二版 徐寶文譯 機械工業出版社

你能區分開指針數組和數組指針嗎?你知道函數指針嗎?

你能區分開定義一個變量時系統給它分配的空間與用malloc()函數給一個變量分配的空間有什么不一樣嗎?

2、《數據結構》C語言版 黃國愉、葉乃青編 清華大學出版社

你能合上書本,用C語言實現書中的單鏈表、雙鏈表數據結構嗎?

3、《實用C++程序設計》第二板 中國電力出版社 Steve_Oualline著

此階段主要是學習其面向對象的編程思想,加深對C語言和數據結構的理解。

4、學習單片機,最好能找個前輩帶一帶。

你能用51單片機做出一樣實際的東西嗎?即使它再簡單!

要注意加深對中斷的理解。

5、學習ARM單片機。

(1)、細讀《ARM微控制器基礎與實戰》周立工編寫(注:即使你不用書中的開發板)

(2)、細讀相關芯片的原版英文文檔。如:arm920TE.pdf S3C2410_1.2.pdf

6、學習uCOS!操作系統。

(1)、細讀《嵌入式實時操作系統uC/OS-!》第二版 召貝貝譯

你能把uCOS!移植到自己的平臺上嗎?

(2)、能編寫在uCOS!操作系統環境下運行的針對具體硬件的驅動程序

www.tmdps.cn 達內教育—中國IT培訓領導品牌

7、熟悉Linux環境,學習Linux環境編程,學習交叉編程

(1)、細讀《linux命令大全.pdf》

(2)、細讀《GNU Make 使用手冊(中譯版).pdf》

(3)、學習創建交叉編程環境.8、學習Linux操作系統。

(1)、《UNIX環境高級編程》

(2)、可以到一些好的網站下載一些比較好的書籍

(3)、細讀《linux內核完全注釋》

(4)、細讀《understanding the linux kernel 2》

(5)、利用源代碼閱讀利器工具“Source Insight”進行真正的linux內核原碼刨析

(6)、最后進行內核移植,并能編寫在linux操作系統環境下運行的針對具體硬件的驅動程序

9、學習Linux設備驅動編寫。可參考《Linux設備驅動程序》

10、復習C++,學習用QT進行圖形界面編程

(1)、細讀《QT編程寶典》

(2)、學會通過查看QT電子文檔進行QT GUI實地編程

(3)、學習交叉編程.(其實就是把命令qmake變為tmake)

11、當然,你也可學習一下PCB的制作和設計一個自己的CPU(即軟殼)

在嵌入式軟件方面最重要的課程包括:

(1)嵌入式微處理器結構與應用:

這是一門嵌入式硬件基礎課程,我們說過,嵌入式是軟硬件結合的技術,搞嵌入式軟件的人應對ARM處理器工作原理和接口技術有充分了解,包括ARM的匯編指令系統。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節省內存又運行高速的最優代碼(嵌入式軟件設計特別講究時空效率),怎么能寫出驅動程序(驅動程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時都要求熟悉 www.tmdps.cn 達內教育—中國IT培訓領導品牌

ARM處理器,將來若同學到公司中從事嵌入式軟件開發,公司都會給你一本該設備的硬件規格說明書(xxx Specification),你必須能看懂其中的內存分布和端口使用等最基本的說明(就像x86匯編一樣),否則怎么設計軟件。有些同學覺得嵌入式處理 器課程較枯燥,這主要是硬件課程都較抽象的原因。還有同學對ARM匯編不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將匯編語言當成一個程序設計語言,學匯編主要是為了掌握處理器工作原理的。一個不熟悉匯編語言的人,怎么能在該處理器寫出最優的C語言代碼。在嵌入式開發的一些關鍵部分,有時還必須寫匯編,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像采集和圖像解壓縮),目前還會用到匯編寫程序的,盡管用到的機會相對C要小得多。當你在一個嵌入式公司工作時,在查看描述原理的手冊時,可能很多都是用匯編描述的,這是因為很多硬件設計人員只會寫或者喜歡用匯編描述,此時你就必須看懂匯編程序,否則軟硬件人員可能就無法交流。很多嵌入式職位招聘時都要求熟悉匯編。

[小知識] 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire(冷火)等,但ARM占據了絕對主流(有資料說手機中幾乎90%都是ARM處理器)。ARM是一個只賣知識產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他們都在ARM CPU核的基礎上進行了一些外圍擴展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是采用ARM 9內核,指令一級是相同的)。而眾多中小公司又購買了這些處理器,設計了各種各樣的開發板,如華恒等國內很多著名嵌入式公司都生產基于SamsungS3C2410的開發板,供最終用戶使用或供教學實驗。在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,而華恒等則是蝦米,最終用戶(我們這些要采購嵌入式開發板的)則是喂蝦米的。Intel早期生產的是低端ARM(Strong ARM,相當于ARM 7),現在轉向主要生產高端ARM(即Intel Xscale處理器,屬于ARMv5家族,主要用在高端PDA上,如HP和DELL生產的PDA都采用Intel Xscale,價格較高)。目前應用最多的是ARM 7和ARM 9兩類處理器。ARM 7較便宜,可跑uclinux(是一個不支持高級內存管理功能的嵌入式Linux系統統)、Vxworks、uc/os II等實時操作系統,但因處理器不帶內存管理單元MMU(無內存分頁和地址映射機制,所以不能使用虛擬內存),所以不能跑Windows CE,另外通用Linux中的某些內存管理功能也不能用在ARM 7上。ARM 9大都是一個帶MMU功能的高端處理器,可跑WinCE或通用Linux的大多數功能。ARM7和ARM9的區別是在與體系結構上,前者是馮?諾伊曼結 構,后者是哈佛結構——指令和數據總線是分開的。以上是我的一點了解,可能有不對的地方。我們學院有十幾套ARM 7開發系統(采用Samsung S3C44b0x開發板,主要用于嵌入式處理器結構、實時操作系統等課程實驗用),ARM 9的系統好象也已經到了(采用的芯片我不知道也沒去問),還有以前的十幾套MPC860開發板(聽說價格都很貴,很容易損壞),同學應愛護使用和珍惜這樣 的實驗機會。

(2)嵌入式操作系統類課程

www.tmdps.cn 達內教育—中國IT培訓領導品牌

除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強,所以也可稱為實時操作系統Real Time Operating System.從事嵌入式的人至少須掌握一個嵌入式操作系統,這在嵌入式的所有技術中是最為關鍵的了。目前最重要的RTOS主要包括:

第一類、傳統的經典RTOS:最主要的便是Vxworks操作系統,以及其Tornado開發平臺。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),并且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks占據了嵌入式系統的多半 疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華為等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不 起。目前很多公司都在往嵌入式Linux轉(聽說華為目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似 的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。

第二類、嵌入式Linux操作系統:Linux的前途除作為服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者眾,這樣嵌入式產品成本會低。Linux本身不是一個為嵌入式設計的操作系統,不是微內核的,并且實時性不強。

目前應用在嵌入式領域的Linux系統主要有兩種:

一種是專為嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前占較大應用份額,可在ARM7上跑;另一種是跑在 ARM 9上的,一般是將Linux2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。很多人預測,嵌入式Linux預計將占嵌入式操作系統的50%以上份額,非常重要。缺點是熟悉Linux的人太少,開發難度稍大。另外,目前我們 能發現很多教材和很多大學都以ucOS/II為教學用實時操作系統,這主要是由于ucOS/II較簡單,且開源,非常適合入門者學習實時操作系統原理,但 由于ucOS/II功能有限,實用用得較少。況且熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟件,對加深操作系統的認識也有幫 助,可謂一舉多得。據我所知,目前Intel、Philip都在大搞ARM+LINUX的嵌入式開發,Fujitum則是在自己的處理器上大搞Linux 開發。目前在嵌入式Linux領域,以下幾個方面的人特別難找,一是能將Linux移植到某個新型號的開發版上;二是能寫Linux驅動程序的人;三是熟悉Linux內核裁減和優化的人。不過LINUX有一個硬傷,就是沒有WINDOWS那樣的友好方便美觀的交互界面,不然微軟帝國早就守不住了。

第三類、Windows CE嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已占據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及為客戶裁減WinCE)。WinCE目前主要為4.2版(.NET),開發平臺主要為WinCE www.tmdps.cn 達內教育—中國IT培訓領導品牌

Platform Builder,有時也用EVC環境開發一些較上層的應用,由于WinCE開發都是大家熟悉的VC++環境,所以我院學過Windows程序設計課程的同 學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低于嵌入式Linux。對于急于完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那么好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要。根據不同的側重點,WinCE還有兩個特殊版本,一個是MS PocketPC操作系統專用于PDA上(掌上電腦),另一個是MS SmartPhone操作系統用于智能手機上(帶PDA功能的手機),兩者也都屬于WinCE平臺。在PDA和手機市場上,除WinCE外,著名的PDA 嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁沖擊下,Palm和Symbian來日還能有多長?同學學過VC++后再學 WinCE,非常方便自然,通過學習WinCE同樣也可了解嵌入式軟件的一般開發過程,對Linux有懼怕心理的同學也很合適。很顯然,嵌入式Linux 永遠不可能替代WinCE,而且將來誰占份額大還很難講,畢竟很多人更愿意接受MS的平臺,就像各國政府都在大力推LINUX已好長時間,但你能看到幾個 在PC機上真正使用LINUX的用戶?據我觀察,目前在嵌入式平臺上,LINUX是叫得最響,但還是WinCE實際用得更多.嵌入式LINUX可能更多地是一些有長遠產品計劃的公司,為降低成本而進行長遠考慮.WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之 一,現在社會很需要精通WinCE的人?,F在有WINCE的智能手機,金山詞霸、WORD、EXCEL、REGEDIT等居然都有 smartphone版的,PC上的MP3、DOC等居然在download時都可被自動轉換成smartphone格式,很爽的。完全可用 Windows CE自己開發一些需要的程序download到自己的手機上。現在市面銷售PDA智能手機火爆,MS總是財源滾滾。

總結關于嵌入式操作系統類課程,若你覺得自己功底較深且能鉆研下去,則可去學嵌入式Linux;若你覺得自己VC++功底較好且想短平快地學嵌入式開發,自學WINCE是非常好的選擇。

(3)嵌入式開發的相關領域

搞嵌入式若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括:

A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。

B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握 TCP/IP協議及其編程,這是需首要掌握的基本技術;其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無線通信協議包括無線 局域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。

www.tmdps.cn 達內教育—中國IT培訓領導品牌

C、網絡與信息安全技術:如加密技術,數字證書CA,以及各種網絡安全設備,包括硬件防火墻,入侵檢測IDS,還有防毒墻,IPS等,中國在這方面還是沒有自己優勢的,我們陳院長好象正在往這方面發展.D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,如高速數據采集、壓縮、解壓縮、通信等。數字信號處理是電子、通信等硬件 專業的課程,對于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號與系統、數字信號處理等課程基礎,對于學習MPEG編解碼原理會有很大幫助。

(4)嵌入式開發的相關硬件基礎

對于軟件工程專業的學生,從事嵌入式軟件開發,像數字電路、計算機組成原理、嵌入式微處理器結構等硬件課程是較重要的。另外,匯編語言、C/C++ 數據結構算法、特別是操作系統等軟件基礎課也是十分重要的。我們的主要目地是能看懂硬件工作原理,但重點應是在嵌入式軟件,特別操作系統級軟件,那將是我們的優勢。我們的研究生里有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越復雜,以至不得不引入嵌入式操作系統。另外,為追求更高速的信號處理速度,現在在一些速度要求較高場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其 FPGA/IP核實現技術,這方面的人目前市場上也很缺。

第五篇:JAVA學習路線

1.JAVA學習路線

1.1 基礎語法及JAVA原理

基礎語法和JAVA原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習JAVA也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有余。參加SCJP(SUN公司認證的JAVA程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉JAVA基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟件公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得“真正”的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。

1.2 OO思想的領悟

掌握了基礎語法和JAVA程序運行原理后,我們就可以用JAVA語言實現面向對象的思想了。面向對象,是一種方法學;是獨立于語言之外的編程思想;是CBD基于組件開發的基礎;屬于強勢技術之一。當以后因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。

使用面向對象的思想進行開發的基本過程是:

●調查收集需求。

●建立用例模型。

●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。

●細化分析模型到設計模型。

●用具體的技術去實現。

●測試、部署、總結。

1.3 基本API的學習

進行軟件開發的時候,并不是什么功能都需要我們去實現,也就是經典名言所說的“不需要重新發明輪子”。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那么這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,JAVA DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。

基本API指的是實現了一些底層功能的類,通用性較強的API,如字符串處理/輸入輸

出等等。我們又把它成為類庫。熟悉API的方法一是多查JAVA DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

1.4 特定API的學習

JAVA介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那么你需要學習Swing/AWT/SWT等API;如果你進行網絡游戲開發,你需要深入了解網絡API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦??傊?,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。

1.5 開發工具的用法

在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急于上手JBuilder/Eclipse等集成開發環境,以免過于關注IDE的強大功能而分散對JAVA技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。

程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟件開發中要用到的幾乎所有工具。

從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。

JAVA開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場份額是最大的。JBuilder在近幾年來一直是JAVA集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的JAVA IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for JAVA等而成就一番偉業。IBM在Visual Age for JAVA上已經無利可圖之下,干脆將之貢獻給開源社區,成為Eclipse的前身,真所謂“柳暗花明又一村”。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。

2.學習要點

確立的學習路線之后,我們還需要總結一下JAVA的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。

2.1勤查API文檔

當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用“javadoc”工具(包含在JDK中)生成標準的JAVA DOC文檔,供同行使用。

J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:。

對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。

當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下:

●找特定的包,包一般根據功能組織。

●找需要使用類,類命名規范的話我們由類的名字可猜出一二。

●選擇構造器,大多數使用類的方式是創建對象。

●選擇你需要的方法。

2.2 查書/google->寫代碼測試->查看源代碼->請教別人

當我們遇到問題的時候該如何解決?

這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你??梢韵日艺視絞oogle中搜一下看看,絕大部分問題基本就解決了。而像“某些類/方法如何使用的問題”,DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗證你的想法。萬不得已才去請教別人。

2.3學習開源軟件的設計思想

JAVA領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什么的,風光一把。分析開源軟件其實是你提高技術、提高實戰能力的便捷方法。

2.4 規范的重要性

沒有規矩,不成方圓。這里的規范有兩層含義。第一層含義是技術規范,多到

http:///docs/codeconv/,中文的也有,啊,還要問我在哪,請參考3.2.2節。

2.5 不局限于JAVA

很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑郁癥。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心愿。

JAVA不要孤立地去學習,需要綜合學習數據結構、OOP、軟件工程、UML、網絡編程、數據庫技術等知識。

軟件工程的由來

據說上個世紀60年代的程序員都是天才,寫程式就像寫日記一樣,吃過晚飯沒事干隨手就可以寫幾個出來玩,第二天還可以拿去賣錢。所以那時候程序員在大家眼中,跟那些搞美術,音樂的是一類的,被稱為“藝術家”。

但事過境遷,就像任何人都不會嫌錢多一樣,永遠都不會有人嫌CPU快的。于是,隨之而來的就是硬件的迅猛發展和越來越變態的軟件。記得以前常去同學家拷游戲,通常幾張軟盤就可以搞定,而現在的游戲,兩三張CD-ROM都算少的了。像如此龐大復雜的怪物,就算你是如何的天才,一個人肯定是搞不定的,否則,等你把程式寫出來,人家Intel連奔騰N都開發出來了。既要開發大型的軟件還要追求速度(這樣才能賺錢),于是很自然地,合作的概念被提了出來。

在開始合作的初期,由于大家都習慣了當很有個性的“藝術家”,結果可想而知,一個是畢加索派的,而另一個是意大利印象派的,再加上一個畫潑墨山水畫的,要是像這樣湊出來的東西都能不出問題的話,那么Bill早就轉行了。所以,那時侯的大型軟件,據說“藍屏”比WINDOWS 98還多。

馬克思告訴我們,萬物都是從量變到質變的。隨著問題的不斷涌現,一些master們開始嘗試去總結經驗,并歸納了一些規范去指導軟件的分析,設計,實現,測試,維護,人員交流協作,項目預算及時限控制等方方面面,這就是軟件工程的前身。

軟件工程到現在已發展了30多年,可以說是相當成熟的了?,F在開發軟件,據說都是一大幫人排排坐,按著一整套的規章制度來干活。于是,軟件開發成了“工程”,程序員也就淪為“工人”了。

最初提出問題的是Dijkstra。他于1968年寫給ACM的一封題為Goto Statement

Considered Harmful 的信中,指出了GOTO語句的負面作用,并提出了解決之道,其引發的一系列效應最終帶來了軟件工程的誕生。(信的原文可在www.tmdps.cn/classics/oct95 上看到,不過,當你看到本文的時候,天知道它還在不在那里!)

軟件工程的核心

無論是在上個世紀還是在現在,軟件開發所涉及的工作基本上都沒有變化,它們都起始于一個實際需要或某個靈感,然后就是分析,設計,編碼,調試,維護。這些任務以某種方式動態地結合起來就構成了軟件開發的整個過程,這就是所謂的“軟件開發周期”。

但對于這些工作,具體怎樣做,什么時候做,每個人都有自己的一套方式,甚至有的人有幾套方式。這樣,當幾個人合在一起干活的時候,最終的結果就只能是一片混亂。所以就需要一套規則,大家都按規則來辦事,問題就會少得多。好的規則就叫做規范,規范都是由一些master們根據經驗總結的,又經過長時間的歷練,不斷地被補充修正,可以說都是精華,按照規范來干活,對于提高軟件質量和工作效率自然大有幫助。

而軟件工程,說白了,就是這樣一套用于軟件的團隊開發,以提高軟件質量和程序員工作效率為目的的規范。其核心就是,對于軟件開發的5個重要組成部分:需求分析,設計,編碼,調試,維護,如何組織這5個部分的工作,以及如何完成每一個工作。簡單來說,就是對于總體的組織和對于局部的實現。

規范只是提供一個好的例子,以描述一種思想,具體到每一個環節怎樣實現,對于不同的公司或團體則是各有千秋,因為根本就不可能存在一套放之天下皆可行的標準。就像C++,也只是提供了一套標準,不同的編譯器都有各自的實現,對標準的支持程度也互不相同。所以,在不同的公司或團體中,盡管核心思想都是大同小異,但具體到每一個步驟,往往都是不相同的。我手上就有一份GB8567-88的文檔模板,對于那些頂多只有幾千行的小程序來說,假如真按上面的要求全寫上了,簡直就是一種折磨!據說,當前業界最權威的標準是CMM。

軟件開發過程的組織

如何組織軟件開發過程中的每一個步驟,就是軟件開發周期模型要解決的問題。其實開發軟件,就像是解決一個邏輯問題。想想自己平時是怎樣寫程序的。首先是要有一個想法,即我寫的這個程序是要干什么的;然后就是對要實現的核心功能大概構思一種或多種實現方法,并從中選出一種自認為是較好的;接下來就是將涉及的各種主要或次要功能分成各個模塊;最后就是分模塊來編碼和DEBUG。在我看來,除了第一步外,其余的步驟應該是一個循環的過程。在編碼的過程中,你總是需要不斷地回過頭來修改原先的模塊設計,甚至最初選定的實現算法。例如,最簡單的情況是,你通常都會突然發現在兩個成員函數中有相同的代碼,這時,程序員的直覺告訴你,你應該為你的類再添加一個private成員函數并將公共的代碼放于其中;又或者是,你突然發現一個模塊中的某個功能具有很高的通用性,完全可以提取出來作為一個獨立的功能組件,而你也確實應該這樣做;要是倒霉一點的話,你很有可能會在最后調試的時候突然發現,你的程序跑得太慢了,連你自己都無法忍受。于是你找呀找,終于找到了80/20中的那段可惡的20,原來是用了一個O(N)的算法,這時你就得老老實實地換一個更好的算法。

總之,除非你是先知,否則,對于一個具有一定規模和復雜度的軟件來說,在“設計—編碼”這個過程中,實在有太多的不可預知性和變化性,你根本不可能全盤地把握住每一個細節。當然,這是建立在我現時的水平之上的觀點。我不知道是否成為高手以后會有所不同,因為我身邊沒有那樣的人。

既然軟件開發是一個具有不可預知性和變化性的動態的過程,那么,對其每一個步驟的組織,即周期模型,就必須包容它的這種性質。

現在來看一下最古老,最經典,同時也是最倍受批評的瀑布模型。

瀑布模型是一種線性模型,其最大的特點就是簡單直觀。它將軟件開發過程規劃為“分析—設計—編碼—測試—維護”的線性過程,也就是說,你必須首先把你的軟件要干的每一件工作都分析得徹徹底底,再對每一個模塊,每一個接口,事無巨細,都設計得非常完美,然后才開始編碼的工作,并且在編碼的時候就像在對著圖紙砌模型,根本不用再回頭作任何修改,當然,是在把所有的代碼都寫完以后才開始測試的。

整個過程,光想一下就覺得冒冷汗!

瀑布模型完全忽視了軟件開發過程的動態變化??峙轮挥心切┮呀洶l展得非常成熟,且規模不大的系統,例如:用Access做后臺,用VB畫前端的數據庫應用程序,才有瀑布模型一展拳腳的地方。

相比之下,現在常用的一些周期模型則更接近于人的自然思維,例如螺旋模型就是一種我比較喜歡的模型。

軟件開發過程的實現

具體到每一步的工作要怎樣完成,我前面已提到過,是非常靈活的,只要把握住大體的方向就行。在進行分析,設計,編碼,調試,維護這幾部分的工作的時候,最核心的就是文檔的編寫。文檔的作用在于以下3個方面:一是可以幫助整理思路。把要完成的目標,系統的結構,每一個模塊的功能等整理一下,然后分門別類地寫下來,這樣在開發的過程中,就有據可依,在需要回過頭來修改設計的時候,也有證可考。二是便于交流。想象一下開會時的情形。一大幫子人爭先恐后,激烈辯論,然后會終人散,思想靈感也就隨之散了,結果是開了半天會,什么也沒討論出來。這就是后來會議記錄被發明出來的原因。在腦子里的東西一多,就會散而且亂,用語言表達的時候,很容易會丟三落四,別人也很難把握住你的思想。但經過整理寫在紙上以后,則會清晰得多,無論是別人還是自己,看起來都可以一目了然。三是可以作為以后維護時的參考資料。有一句名言:“筆和紙永遠都比大腦可靠”,意思就是說,放在大腦里的東西說不準哪天就忘了,但寫在紙上的東西,只要不發生什么意外,一般是丟不了的。當過了一段時間,你需要再回過頭來修改你的程序的時候,你就會發現,你以前寫下的文檔實在太有價值了。別指望你的源代碼,對于復雜一點的程序來說,單純的源代碼幾乎會扼殺掉你所有的時間。

至于文檔怎樣寫,教科書上大多都是一條一條列得滿滿的,就像一些地方政府的規章制度一樣,其實大可不必,只要能滿足需要就行。如果是在公司,則每個公司大多都有一套自己內部的文檔模板,個人沒有選擇的余地。而對于像我這種業余的,寫個程序除了練練手藝,無非就是供自己和親朋好友玩玩,則根本沒必要搞得過于復雜。以下就是我自己的一份文檔模板的概要,麻雀雖小,但五臟俱全。

可行性分析 就是關于當前項目能不能干的分析結果。主要考慮的方面包括:是否能把這個項目開發出來;假如可以的話,預計需要多少時間,能否滿足客人的時間要求;需要多少人力和資金的投入;最重要的是,這個項目能否賺錢,能賺多少。還要對可能存在的風險進行評估,例如,萬一項目主管被車撞了要怎么辦。當然,這對于我來說毫無意義,我在這里寫上只是為了保持完整而已。

項目描述 這是在決定立項以后,對當前項目的一份扼要說明。必須包括以下幾個方面:

(1)項目的名稱或編號;(2)對客戶方的描述;(3)對開發人員的描述;(4)工程任務的描述;(5)工程的輸入和輸出;(6)開發環境;(7)其他的附加條件。在這里,對工程任務的描述是從整體的角度來說的,例如:能對當前的象棋棋局進行分析并作出最優決策的人工智能系統。而工程的輸入輸出則可以這樣寫:輸入當前的象棋棋局的數據描述;輸出最優的棋步,包括選擇行動的棋子和步法。

需求分析 就是對客戶要求的功能的定義。注意這里用了“定義”這個詞,這就意味著對客戶需求的說明,盡管不一定要是形式定義,但也必須是精確,無歧義的。同時,還要列

出程序的功能模塊和邏輯流程,即與客戶的每一項功能要求對應的程序功能模塊有哪些以及這些功能模塊是按照怎樣的邏輯步驟來逐項完成客戶的要求的。注意這里所說的功能模塊與編碼時所說的程序模塊的區別。對于客戶的一個復雜的功能要求,一般可以用分治法分為一個或多個子功能,每一個子功能對應一個功能模塊,而每一個功能模塊則可以由一個或多個程序模塊來實現。功能模塊是建立在設計邏輯上的,而程序模塊則是直接面向實現的。在用OO編程的時候,我通常以類作為程序模塊劃分的基本單元。綜上所述,這個部分的文檔必須包括3個部分:(1)客戶需求的詳細描述;(2)程序功能模塊的劃分以及其與客戶需求的對應關系;(3)功能模塊的邏輯流程。

軟件設計 這就是對程序的每一個模塊的詳細設計的說明文檔。其由以下幾部分組成:

(1)程序模塊與功能模塊的對應關系和相關描述;(2)實現每個功能模塊的程序模塊的邏輯流程和組織結構;(3)對每一個程序模塊的詳細描述。這個部分的文檔是改動得最多的,如果與螺旋周期模型結合,甚至需要循環地對每一個模塊進行深入設計和細化,所以,為了便于管理,我通常都對每一個較復雜的模塊都單獨立一份文檔。至于模塊的流程圖或結構圖,一直都是我最頭疼的問題,那一大堆琳瑯滿目的畫法和符號往往令人無所適從。其實對于個人來說,只要能把意思表達出來,想怎樣畫都無所謂,關鍵是自己要有一套標準,別在這個圖中,矩形表示過程,而在另一個圖中,則是表示I/O。對每個符號表示的意思進行說明那是必須的,不然別人看起來會一頭霧水。假如嫌麻煩的話,就干脆使用那些被大多數人認可的標準,例如UML圖。但以后如果進到公司,還是老老實實地按公司規矩辦事吧。

開發日志 我一直都認為這是文檔中最有趣的部分。開發日志相當于編碼階段的文檔,它的形式可以很隨意,主要是記錄一些在寫程序時突然萌發的靈感,或對代碼的一些微小的修改,或對程序結構的一些微小變動等,還要對上述這些修改變動作些說明,例如,為什么要改成現在的這個樣子。別小看這些記錄,它往往會成為你以后對程序進行維護時的重要依據。要知道,人的IQ,EQ等,是會隨著人的生理和心理狀態的不同而變化的。在某個時刻,你可能會靈光一閃,做出了一個非常偉大的改動,但過了一段時間,當你再回過頭來重新閱讀同一段代碼的時候,你很有可能只記得在這里的改動是非常明智的,可是卻無論如何也想不起其明智在哪里。這時,一份日志就會省卻你不少的麻煩。

測試分析 用于指出程序存在或潛在的缺陷和錯誤,以及程序性能的數字描述。其包括幾個部分:(1)對被測模塊的描述;(2)測試人員;(3)對該模塊每個功能的測試的詳細描述;(4)指出當前存在或潛在的問題。在測試描述中應該包括輸入的數據集和輸出的結果,還有運行的時間等。對于公司來說,對測試分析的要求是非常嚴格的。但對于我個人來說,我只是將其作為一份模塊測試的文字記錄,以防會忽略掉某些已知的缺陷和錯誤,以及對一些核心模塊的時間和空間效率進行簡單的測試,以便日后翻查。

下載嵌入式學習路線word格式文檔
下載嵌入式學習路線.doc
將本文檔下載到自己電腦,方便修改和收藏,請勿使用迅雷等下載。
點此處下載文檔

文檔為doc格式


聲明:本文內容由互聯網用戶自發貢獻自行上傳,本網站不擁有所有權,未作人工編輯處理,也不承擔相關法律責任。如果您發現有涉嫌版權的內容,歡迎發送郵件至:645879355@qq.com 進行舉報,并提供相關證據,工作人員會在5個工作日內聯系你,一經查實,本站將立刻刪除涉嫌侵權內容。

相關范文推薦

    期貨學習路線

    期貨交易是現有幾種能憑借動力,耐力和技巧,以相對較少的資金投入來獲得無限潛在利潤的投資工具之一。可以說沒有任何資本投機像期貨交易那樣充滿投機性,迷惑性,風險性而又前景廣......

    JAVA學習路線

    Java是一個通用的編程語言,其實可以干很多事,怎么學Java就看怎么用了。但有一些一般的步驟:1. 熟悉一種文本編輯器,比如vim, eclipse, notepad++, textmate等。知道哪些是開源的......

    Java學習路線

    怎么學習Java,這是很多新手經常會問我的問題,現在我簡單描述下一個Java初學者到就業要學到的一些東西: 首先要明白Java體系設計到得三個方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 P......

    學習嵌入式心得

    嵌入式心得體會 本人大學學的是電子信息科學與技術專業,其實這個專業和嵌入式沒有多大的關系,要說有關系就是簡單的講了下C語言語法,學完之后還不知道什么是C語言,只記住了,char,......

    嵌入式學習總結

    嵌入式學習總結 一.基本信息................................................................................................................... 1 二.嵌入式系統的組......

    嵌入式學習之路

    1、必須認真學習一個操作系統 (例如從UC/OSII 到 Linux) 2、必須熟悉TCP/IP網絡協議 (現在的嵌入式產品與網絡的聯系越來越緊密,融入網絡是必然趨勢) 3、必須認真的學習一款CPU的......

    嵌入式學習過程

    嵌入式學習路線)學習Linux系統安裝、 常用命令、應用程序安裝。 2) 學習Linux 下的 C 編程、這本書必學《UNIX 環境高級編程》、《UNIX 網絡編程》,Rechard Stevens 寫的,C 高手......

    黨群路線學習小結

    黨群路線學習小結 市委黨的群眾路線教育實踐活動督導組: 按照《 市黨的群眾路線教育實踐活動實施方案》要求和我局的統一部署,結合自身實際情況和分管工作,立即行動,制訂了個人......

主站蜘蛛池模板: 国产女人的高潮大叫毛片| 怡红院a∨人人爰人人爽| 免费的黄网站在线观看| 久久亚洲av成人无码电影a片| 久久久久久久久久久免费精品| 亚洲国产成人a精品不卡在线| 国内盗摄视频一区二区三区| 美女露出奶头扒开尿口免费网站| 又大又爽又黄无码a片| 欧美男男大粗吊1069| 免费无码不卡中文字幕在线| 亚洲乱码一二三四区| 国产偷抇久久精品a片蜜臀av| 久久人妻av一区二区软件| 久久精品av一区二区免费| 麻豆亚洲av成人无码久久精品| 国产精品 高清 尿 小便 嘘嘘| av明星换脸无码精品区| 日本精品少妇一区二区三区| 中文字幕亚洲无线码a| 特黄aaaaaaa片免费视频| 18禁裸男晨勃露j毛免费观看| 人妻系列无码专区无码专区| 情人伊人久久综合亚洲| 无码一区18禁3d| 日本熟妇浓毛| 国产国产成年年人免费看片| a毛片免费全部播放| 一本一道人人妻人人妻αv| 成人毛片无码一区二区| 熟妇人妻系列av无码一区二区| 在熟睡夫面前侵犯我在线播放| 亚洲国产欧美在线人成大黄瓜| 成 人色 网 站 欧美大片在线观看| 久久人人爽人人爽人人av| 男阳茎进女阳道视频大全| 337p日本大胆欧洲亚洲色噜噜| 亚洲中文字幕无码mv| 3d动漫精品啪啪一区二区免费| 日本欧美视频在线观看| 四虎永久在线精品免费网址|