欧美色欧美亚洲高清在线观看,国产特黄特色a级在线视频,国产一区视频一区欧美,亚洲成a 人在线观看中文

  1. <ul id="fwlom"></ul>

    <object id="fwlom"></object>

    <span id="fwlom"></span><dfn id="fwlom"></dfn>

      <object id="fwlom"></object>

      嵌入式學(xué)習(xí)路線

      時(shí)間:2019-05-15 09:21:46下載本文作者:會(huì)員上傳
      簡(jiǎn)介:寫寫幫文庫小編為你整理了多篇相關(guān)的《嵌入式學(xué)習(xí)路線》,但愿對(duì)你工作學(xué)習(xí)有幫助,當(dāng)然你在寫寫幫文庫還可以找到更多《嵌入式學(xué)習(xí)路線》。

      第一篇:嵌入式學(xué)習(xí)路線

      語言基礎(chǔ) 1.C 與 C++ A.《c reference》 B.《c++ 編程思想》 C.《effective c++》 D.《more effective c++》 E.《effective c++ stl》 2.軟件設(shè)計(jì) A.《UML 2.0 Reference》 B.《設(shè)計(jì)模式-可復(fù)用的面向?qū)ο筌浖幕A(chǔ)》 C.《重構(gòu)》 D.《修改代碼的藝術(shù)》 E.《面向模式的軟件體系結(jié)構(gòu)》卷 1,卷 2,卷 3,卷 4,卷 5 3.Linux 開發(fā)基礎(chǔ) A.《鳥哥的 linux 私房菜》 B.《GNU make reference》 C.《Shell 編程》 D.《unix 高級(jí)環(huán)境編程》 E.《linux kernel development》 F.《深入理解 Linux 內(nèi)核》 G.《Linux 驅(qū)動(dòng)程序開發(fā)》 H.《Unix 網(wǎng)絡(luò)編程》 I.《Linux 進(jìn)程間通信》 4.嵌入式開發(fā)基礎(chǔ) A.《ARM 體系結(jié)構(gòu)》 B.《ARM 程序分析與設(shè)計(jì)》 C.《ARM 嵌入式系統(tǒng)基礎(chǔ)教材》周立功 D.《嵌入式操作系統(tǒng)μC/OS》 E.《嵌入式 Linux 基礎(chǔ)教材》 F.《嵌入式系統(tǒng)設(shè)計(jì)》 G.《嵌入式硬件設(shè)計(jì)》 H.《Qt4 圖形設(shè)計(jì)與嵌入式系統(tǒng)開發(fā)》 I.《嵌入式系統(tǒng)中的實(shí)時(shí)概念》 J.《實(shí)時(shí)設(shè)計(jì)模式》 5.專業(yè)選看 A.FPGA 設(shè)計(jì) B.《高性能嵌入式計(jì)算》 C.數(shù)字圖像處理,視頻編解碼基礎(chǔ) MPEG4,H.264,AVS D.Android,iphone,symbian 開發(fā)。


      第二篇:嵌入式學(xué)習(xí)路線建議

      嵌入式學(xué)習(xí)是一個(gè)循序漸進(jìn)的過程,如果是希望向嵌入式軟件方向發(fā)展的話,目前最常見的是嵌入式Linux方向,關(guān)注這個(gè)方向,我認(rèn)為大概分3個(gè)階段:

      1、嵌入式linux上層應(yīng)用,包括QT的GUI開發(fā)

      2、嵌入式linux系統(tǒng)開發(fā)

      3、嵌入式linux驅(qū)動(dòng)開發(fā)

      嵌入式目前主要面向的幾個(gè)操作系統(tǒng)是,LINUX,WINCE、VxWorks等等 Linux是開源免費(fèi)的,而且其源代碼是開放的,更加適合我們學(xué)習(xí)嵌入式。

      你可以嘗試以下路線:

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

      (3)Linux操作系統(tǒng)就是用C語言編寫的,所以你也應(yīng)該先學(xué)習(xí)下Linux方面的編程,只有你會(huì)應(yīng)用了,才能近一步去了解其內(nèi)核的精髓。推薦書籍:《UNIX環(huán)境高級(jí)編程》(第2版)

      (4)了解ARM的架構(gòu),原理,以及其匯編指令,我們?cè)谇度胧介_發(fā)中,一般很少去寫匯編,但是最起碼的要求是能夠看懂a(chǎn)rm匯編。

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

      (6)驅(qū)動(dòng)開發(fā)

      linux驅(qū)動(dòng)程序設(shè)計(jì)既是個(gè)極富有挑戰(zhàn)性的領(lǐng)域,又是一個(gè)博大精深的內(nèi)容。

      linux驅(qū)動(dòng)程序設(shè)計(jì)本質(zhì)是屬于linux內(nèi)核編程范疇的,因而是對(duì)linux內(nèi)核和內(nèi)核編程是有要求的。在學(xué)習(xí)前你要想了解linux內(nèi)核的組成,因?yàn)槊恳徊糠忠敿?xì)研究的話足夠可以擴(kuò)展成一本厚書。

      以上只不過是大概的框架,在實(shí)際的開發(fā)中還會(huì)涉及很多東西,比如:交叉編譯、makefile、shell腳本等等,所以說學(xué)習(xí)嵌入式的周期較長(zhǎng),門檻較高,自學(xué)的話更是需要較強(qiáng)的學(xué)習(xí)能力和專業(yè)功底。只要能堅(jiān)持下來一定會(huì)取得成功!

      其實(shí)LZ可以到一些嵌入式培訓(xùn)機(jī)構(gòu)的網(wǎng)站上看一下他們的課程設(shè)置,就會(huì)在腦子里有個(gè)清晰的思路,比如華清遠(yuǎn)見的官方網(wǎng)站,上面的嵌入式內(nèi)容很豐富,嵌入式方面的信息更新也很迅速,沒事可以去轉(zhuǎn)轉(zhuǎn)。

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

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

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

      3、dsp(數(shù)字信號(hào)處理);

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

      當(dāng)然,并不是說你只需要學(xué)習(xí)單片機(jī);要想學(xué)好單片機(jī),你還得學(xué)c語言,得學(xué)匯編,得學(xué)一大堆應(yīng)用軟件;等到單片機(jī)能夠掌握的不錯(cuò)的時(shí)候又需要自己進(jìn)行原理圖、PCB板的設(shè)計(jì);還得掌握系統(tǒng)設(shè)計(jì)的工程管理什么的;比較多。。

      單片機(jī)還是比較簡(jiǎn)單的,等到學(xué)好之后,開始學(xué)習(xí)arm的時(shí)候,你就接觸的多了,什么操作系統(tǒng)啊、驅(qū)動(dòng)編寫啊、內(nèi)核移植啊、應(yīng)用程序的添加啊、上位機(jī)的編寫啊,那個(gè)就多了,不過到時(shí)候你就全知道了。。

      ARM+LINUX路線,主攻嵌入式Linux操作系統(tǒng)及其上應(yīng)用軟件開發(fā)目標(biāo):

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

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

      (3)必須熟悉嵌入式軟件開發(fā)流程并至少做一個(gè)嵌入式軟件項(xiàng)目。

      從事嵌入式軟件開發(fā)的好處是:

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

      入這一領(lǐng)域;另一方面,是因?yàn)檫@一領(lǐng)域較新,目前發(fā)展太快,大多數(shù)人無條件接觸。

      (2)與企業(yè)計(jì)算等應(yīng)用軟件不同,嵌入式領(lǐng)域人才的工作強(qiáng)度通常低一些(但收入不低)。

      (3)哪天若想創(chuàng)業(yè),搞自已的產(chǎn)品,嵌入式不像應(yīng)用軟件那樣容易被盜版。硬件設(shè)計(jì)一般

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

      自己的產(chǎn)品了。

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

      從事嵌入式軟件開發(fā)的缺點(diǎn)是:

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

      統(tǒng)級(jí)軟件功底不深,則可能不適于此行。

      (2)這方面的企業(yè)數(shù)量要遠(yuǎn)少于企業(yè)計(jì)算類企業(yè)。

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

      也并無此要求,只要有經(jīng)驗(yàn)即可。

      (4)平臺(tái)依托強(qiáng),換平臺(tái)比較辛苦。

      興趣的由來:

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

      2、喜歡思考,挑戰(zhàn)邏輯思維。

      3、喜歡C

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

      相信程序員。

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

      保持語言短小精干。

      一種方法做一個(gè)操作。

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

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

      5、發(fā)展前景好,適合創(chuàng)業(yè),不想自己要死了的時(shí)候還是一個(gè)工程師。

      方法步驟:

      1、基礎(chǔ)知識(shí):

      目的:能看懂硬件工作原理,但重點(diǎn)在嵌入式軟件,特別是操作系統(tǒng)級(jí)軟件,那將是我的優(yōu)

      勢(shì)。

      科目:數(shù)字電路、計(jì)算機(jī)組成原理、嵌入式微處理器結(jié)構(gòu)。

      匯編語言、C/C++、編譯原理、離散數(shù)學(xué)。

      數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫。

      方法:雖科目眾多,但都是較簡(jiǎn)單的基礎(chǔ),且大部分已掌握。不一定全學(xué),可根據(jù)需要選修。

      thec++programminglanguage(一直沒時(shí)間讀)、數(shù)據(jù)結(jié)構(gòu)-C2。

      2、學(xué)習(xí)linux:

      目的:深入掌握linux系統(tǒng)。方法:使用linux—〉linxu系統(tǒng)編程開發(fā)—〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核。先看深,那主講原理??磶妆楹?,看情景分析,對(duì)照深看,兩本交叉,深是綱,情是目。剖析則是0.11版,適合學(xué)習(xí)。最后深入代碼。

      主攻書籍:linux內(nèi)核完全剖析、unix環(huán)境高級(jí)編程、深入理解linux內(nèi)核、情景分析和源代。

      3、學(xué)習(xí)嵌入式linux:

      目的:掌握嵌入式處理器其及系統(tǒng).方法:(1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:直接arm原理及匯編即可,不要重復(fù)x86。

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

      (3)必須有塊開發(fā)板(arm9以上),有條件可參加培訓(xùn)(進(jìn)步快,能認(rèn)識(shí)些朋友)

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

      4、深入學(xué)習(xí):

      A、數(shù)字圖像壓縮技術(shù):主要是應(yīng)掌握MPEG、mp3等編解碼算法和技術(shù)。

      B、通信協(xié)議及編程技術(shù):TCP/IP協(xié)議、802.11,Bluetooth,GPRS、GSM、CDM

      A等。

      C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA等。

      D、DSP技術(shù):DigitalSignalProcess,DSP處理器通過硬件實(shí)現(xiàn)數(shù)字信號(hào)處理算

      法。

      說明:太多細(xì)節(jié)未說明,可根據(jù)實(shí)際情況調(diào)整。重點(diǎn)在于1、3,不必完全按照順序

      作。對(duì)于學(xué)習(xí)c++,理由是c++不只是一種語言,一種工具,她還是一種藝術(shù),一種文化,一種哲學(xué)理念、但不是拿來炫耀得東西。對(duì)于linux內(nèi)核,學(xué)習(xí)編程,讀一些優(yōu)秀代碼也是

      有必要的。

      注意: 要學(xué)會(huì)舉一反多,有強(qiáng)大的基礎(chǔ),很多東西簡(jiǎn)單看看就能會(huì)。想成為合格的

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

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

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

      做的!

      技術(shù)是通過編程編程在編程編出來的。永遠(yuǎn)不要夢(mèng)想一步登天,不要做浮躁的人,不

      要覺得路途漫上。而是要編程編程在編程,完了在編程,在編程!等機(jī)會(huì)來了在創(chuàng)業(yè)(不要

      相信有奇跡發(fā)生,盲目創(chuàng)業(yè)很難成功,即便成功了發(fā)展空間也不一定很大)。

      嵌入式書籍推薦

      Linux基礎(chǔ)

      1、《Linux與UnixShell編程指南》

      C語言基礎(chǔ)

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

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

      idM.Rithie(K&R)著

      3、《AdvancedProgrammingintheUNIXEnvironment,2ndEdition》(APUE)

      4、《嵌入式Linux應(yīng)用程序開發(fā)詳解》

      Linux內(nèi)核

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

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

      研發(fā)方向

      1、《UNIXNetworkProgramming》(UNP)

      2、《TCP/IP詳解》

      3、《Linux內(nèi)核編程》

      4、《Linux設(shè)備驅(qū)動(dòng)開發(fā)》(LDD)

      5、《Linux高級(jí)程序設(shè)計(jì)》楊宗德著

      硬件基礎(chǔ)

      1、《ARM體系結(jié)構(gòu)與編程》杜春雷著

      2、S3C2410Datasheet

      英語基礎(chǔ)

      1、《計(jì)算機(jī)與通信專業(yè)英語》

      系統(tǒng)教程

      1、《嵌入式系統(tǒng)――體系結(jié)構(gòu)、編程與設(shè)計(jì)》

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

      3、《BuildingEmbeddedLinuxSystems》

      4、《嵌入式ARM系統(tǒng)原理與實(shí)例開發(fā)》楊宗德著

      理論基礎(chǔ)

      1、《算法導(dǎo)論》

      2、《數(shù)據(jù)結(jié)構(gòu)(C語言版)》

      3、《計(jì)算機(jī)組織與體系結(jié)構(gòu)?性能分析》

      4、《深入理解計(jì)算機(jī)系統(tǒng)》【美】RandalE.Bryant DavidO''Hallaron著

      5、《操作系統(tǒng):精髓與設(shè)計(jì)原理》

      6、《編譯原理》

      7、《數(shù)據(jù)通信與計(jì)算機(jī)網(wǎng)絡(luò)》

      8、《數(shù)據(jù)壓縮原理與應(yīng)用》

      C語言書籍推薦

      1.TheCprogramminglanguage《C程序設(shè)計(jì)語言》

      2.PointersonC《C和指針》

      3.Ctrapsandpitfalls《C陷阱與缺陷》

      4.ExpertCLanuage《專家C編程》

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

      《編程精粹--Microsoft編寫優(yōu)質(zhì)無錯(cuò)C程序秘訣》

      6.ProgrammingEmbeddedSystemsinCandC++《嵌入式系統(tǒng)編程》

      7.《C語言嵌入式系統(tǒng)編程**》

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

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

      這里很多書其實(shí)是推薦而已,不必太在意,關(guān)鍵還是基礎(chǔ),才是重中之重?。?/p>

      第三篇:嵌入式培訓(xùn) 嵌入式Linux學(xué)習(xí)路線

      嵌入式培訓(xùn) 嵌入式Linux學(xué)習(xí)路線_粵嵌教育

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

      1、基礎(chǔ)知識(shí): C/C++編程、數(shù)據(jù)結(jié)構(gòu)和算法、操作系統(tǒng)、軟件工程、網(wǎng)絡(luò)、數(shù)據(jù)庫等。雖科目眾多,但都是較簡(jiǎn)單的基礎(chǔ),且大部分已掌握。

      2、深入掌握Linux系統(tǒng):使用Linux、Linux系統(tǒng)編程開發(fā)、驅(qū)動(dòng)開發(fā)、分析Linux內(nèi)核??梢园催@樣的學(xué)習(xí)順序,由淺及深,不斷的理解掌握核心內(nèi)容。

      3、學(xué)習(xí)嵌入式Linux: 主要是嵌入式Linux開發(fā)流程,嵌入式Linux應(yīng)用開發(fā)、ARM體系架構(gòu)等。建議最好就是自己買一塊開發(fā)板研究,條件允許的話還是報(bào)粵嵌培訓(xùn)班吧,有專業(yè)人士帶進(jìn)步會(huì)比較快,還能認(rèn)識(shí)很多行業(yè)的朋友。

      4、深入學(xué)習(xí):深入學(xué)習(xí)ARM、Linux內(nèi)核驅(qū)動(dòng)、Android移植驅(qū)動(dòng)等重點(diǎn)難點(diǎn)內(nèi)容,學(xué)習(xí)傳感器開發(fā)、ZigBee開發(fā)、藍(lán)牙開發(fā)、RFID等目前比較流行的嵌入式開發(fā)技術(shù)。

      目前嵌入式就業(yè)比較熱門的領(lǐng)域有物聯(lián)網(wǎng)、智能家居、智能醫(yī)療、智能汽車電子、智能硬件產(chǎn)品開發(fā)等等,可以說嵌入式Linux無處不在。想系統(tǒng)學(xué)習(xí)嵌入式開發(fā),到粵嵌進(jìn)行嵌入式Linux培訓(xùn),教學(xué)課程涵蓋了嵌入式基礎(chǔ)、項(xiàng)目分析與立項(xiàng)、Linux核心操作與算法、嵌入式Linux系統(tǒng)編程開發(fā)、嵌入式GUI系統(tǒng)編程開發(fā)、ARM開發(fā)、嵌入式底層驅(qū)動(dòng)開發(fā)、項(xiàng)目?jī)?yōu)化與驗(yàn)收再到就業(yè)與創(chuàng)業(yè)指導(dǎo)。

      第四篇:嵌入式學(xué)習(xí)的正確步驟,嵌入式 嵌入式學(xué)習(xí)路線

      004km.cn 達(dá)內(nèi)教育—中國(guó)IT培訓(xùn)領(lǐng)導(dǎo)品牌

      嵌入式學(xué)習(xí)的正確步驟,嵌入式 嵌入式學(xué)習(xí)路線

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

      具體步驟如下:

      1、《C語言》第二版 譚浩強(qiáng);《C程序設(shè)計(jì)語言》第二版 徐寶文譯 機(jī)械工業(yè)出版社

      你能區(qū)分開指針數(shù)組和數(shù)組指針嗎?你知道函數(shù)指針嗎?

      你能區(qū)分開定義一個(gè)變量時(shí)系統(tǒng)給它分配的空間與用malloc()函數(shù)給一個(gè)變量分配的空間有什么不一樣嗎?

      2、《數(shù)據(jù)結(jié)構(gòu)》C語言版 黃國(guó)愉、葉乃青編 清華大學(xué)出版社

      你能合上書本,用C語言實(shí)現(xiàn)書中的單鏈表、雙鏈表數(shù)據(jù)結(jié)構(gòu)嗎?

      3、《實(shí)用C++程序設(shè)計(jì)》第二板 中國(guó)電力出版社 Steve_Oualline著

      此階段主要是學(xué)習(xí)其面向?qū)ο蟮木幊趟枷?,加深?duì)C語言和數(shù)據(jù)結(jié)構(gòu)的理解。

      4、學(xué)習(xí)單片機(jī),最好能找個(gè)前輩帶一帶。

      你能用51單片機(jī)做出一樣實(shí)際的東西嗎?即使它再簡(jiǎn)單!

      要注意加深對(duì)中斷的理解。

      5、學(xué)習(xí)ARM單片機(jī)。

      (1)、細(xì)讀《ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)》周立工編寫(注:即使你不用書中的開發(fā)板)

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

      6、學(xué)習(xí)uCOS!操作系統(tǒng)。

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

      你能把uCOS!移植到自己的平臺(tái)上嗎?

      (2)、能編寫在uCOS!操作系統(tǒng)環(huán)境下運(yùn)行的針對(duì)具體硬件的驅(qū)動(dòng)程序

      004km.cn 達(dá)內(nèi)教育—中國(guó)IT培訓(xùn)領(lǐng)導(dǎo)品牌

      7、熟悉Linux環(huán)境,學(xué)習(xí)Linux環(huán)境編程,學(xué)習(xí)交叉編程

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

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

      (3)、學(xué)習(xí)創(chuàng)建交叉編程環(huán)境.8、學(xué)習(xí)Linux操作系統(tǒng)。

      (1)、《UNIX環(huán)境高級(jí)編程》

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

      (3)、細(xì)讀《linux內(nèi)核完全注釋》

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

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

      (6)、最后進(jìn)行內(nèi)核移植,并能編寫在linux操作系統(tǒng)環(huán)境下運(yùn)行的針對(duì)具體硬件的驅(qū)動(dòng)程序

      9、學(xué)習(xí)Linux設(shè)備驅(qū)動(dòng)編寫。可參考《Linux設(shè)備驅(qū)動(dòng)程序》

      10、復(fù)習(xí)C++,學(xué)習(xí)用QT進(jìn)行圖形界面編程

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

      (2)、學(xué)會(huì)通過查看QT電子文檔進(jìn)行QT GUI實(shí)地編程

      (3)、學(xué)習(xí)交叉編程.(其實(shí)就是把命令qmake變?yōu)閠make)

      11、當(dāng)然,你也可學(xué)習(xí)一下PCB的制作和設(shè)計(jì)一個(gè)自己的CPU(即軟殼)

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

      (1)嵌入式微處理器結(jié)構(gòu)與應(yīng)用:

      這是一門嵌入式硬件基礎(chǔ)課程,我們說過,嵌入式是軟硬件結(jié)合的技術(shù),搞嵌入式軟件的人應(yīng)對(duì)ARM處理器工作原理和接口技術(shù)有充分了解,包括ARM的匯編指令系統(tǒng)。若不了解處理器原理,怎么能控制硬件工作,怎么能寫出節(jié)省內(nèi)存又運(yùn)行高速的最優(yōu)代碼(嵌入式軟件設(shè)計(jì)特別講究時(shí)空效率),怎么能寫出驅(qū)動(dòng)程序(驅(qū)動(dòng)程序都是與硬件打交道的)?很多公司招聘嵌入式軟件人員時(shí)都要求熟悉 004km.cn 達(dá)內(nèi)教育—中國(guó)IT培訓(xùn)領(lǐng)導(dǎo)品牌

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

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

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

      004km.cn 達(dá)內(nèi)教育—中國(guó)IT培訓(xùn)領(lǐng)導(dǎo)品牌

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

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

      第二類、嵌入式Linux操作系統(tǒng):Linux的前途除作為服務(wù)器操作系統(tǒng)外,最成功的便是在嵌入式領(lǐng)域的應(yīng)用,原因當(dāng)然是免費(fèi)、開源、支持軟件多、呼擁者眾,這樣嵌入式產(chǎn)品成本會(huì)低。Linux本身不是一個(gè)為嵌入式設(shè)計(jì)的操作系統(tǒng),不是微內(nèi)核的,并且實(shí)時(shí)性不強(qiáng)。

      目前應(yīng)用在嵌入式領(lǐng)域的Linux系統(tǒng)主要有兩種:

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

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

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

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

      (3)嵌入式開發(fā)的相關(guān)領(lǐng)域

      搞嵌入式若能熟悉嵌入式應(yīng)用的一些主要領(lǐng)域,這樣的人更受企業(yè)歡迎。主要的相關(guān)領(lǐng)域包括:

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

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

      004km.cn 達(dá)內(nèi)教育—中國(guó)IT培訓(xùn)領(lǐng)導(dǎo)品牌

      C、網(wǎng)絡(luò)與信息安全技術(shù):如加密技術(shù),數(shù)字證書CA,以及各種網(wǎng)絡(luò)安全設(shè)備,包括硬件防火墻,入侵檢測(cè)IDS,還有防毒墻,IPS等,中國(guó)在這方面還是沒有自己優(yōu)勢(shì)的,我們陳院長(zhǎng)好象正在往這方面發(fā)展.D、DSP技術(shù):DSP是Digital Signal Process數(shù)字信號(hào)處理的意思,DSP處理器通過硬件實(shí)現(xiàn)數(shù)字信號(hào)處理算法,如高速數(shù)據(jù)采集、壓縮、解壓縮、通信等。數(shù)字信號(hào)處理是電子、通信等硬件 專業(yè)的課程,對(duì)于搞軟件的人若能了解一下最好。目前DSP人才較缺。如果有信號(hào)與系統(tǒng)、數(shù)字信號(hào)處理等課程基礎(chǔ),對(duì)于學(xué)習(xí)MPEG編解碼原理會(huì)有很大幫助。

      (4)嵌入式開發(fā)的相關(guān)硬件基礎(chǔ)

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

      第五篇:JAVA學(xué)習(xí)路線

      1.JAVA學(xué)習(xí)路線

      1.1 基礎(chǔ)語法及JAVA原理

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

      1.2 OO思想的領(lǐng)悟

      掌握了基礎(chǔ)語法和JAVA程序運(yùn)行原理后,我們就可以用JAVA語言實(shí)現(xiàn)面向?qū)ο蟮乃枷肓?。面向?qū)ο?,是一種方法學(xué);是獨(dú)立于語言之外的編程思想;是CBD基于組件開發(fā)的基礎(chǔ);屬于強(qiáng)勢(shì)技術(shù)之一。當(dāng)以后因工作需要轉(zhuǎn)到別的面向?qū)ο笳Z言的時(shí)候,你會(huì)感到特別的熟悉親切,學(xué)起來像喝涼水這么簡(jiǎn)單。

      使用面向?qū)ο蟮乃枷脒M(jìn)行開發(fā)的基本過程是:

      ●調(diào)查收集需求。

      ●建立用例模型。

      ●從用例模型中識(shí)別分析類及類與類之間的靜態(tài)動(dòng)態(tài)關(guān)系,從而建立分析模型。

      ●細(xì)化分析模型到設(shè)計(jì)模型。

      ●用具體的技術(shù)去實(shí)現(xiàn)。

      ●測(cè)試、部署、總結(jié)。

      1.3 基本API的學(xué)習(xí)

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

      基本API指的是實(shí)現(xiàn)了一些底層功能的類,通用性較強(qiáng)的API,如字符串處理/輸入輸

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

      1.4 特定API的學(xué)習(xí)

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

      1.5 開發(fā)工具的用法

      在學(xué)習(xí)基礎(chǔ)語法與基本的面向?qū)ο蟾拍顣r(shí),從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時(shí)候不要急于上手JBuilder/Eclipse等集成開發(fā)環(huán)境,以免過于關(guān)注IDE的強(qiáng)大功能而分散對(duì)JAVA技術(shù)本身的注意力。過了這一階段你就可以開始熟悉IDE了。

      程序員日常工作包括很多活動(dòng),編輯、編譯及構(gòu)建、調(diào)試、單元測(cè)試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項(xiàng)活動(dòng)都有專門的工具,如果獨(dú)立使用這些工具的話,你將會(huì)很痛苦,你需要在堆滿工具的任務(wù)欄上不斷的切換,效率很低下,也很容易出錯(cuò)。在JBuilder、Eclipse等IDE中已經(jīng)自動(dòng)集成編輯器、編譯器、調(diào)試器、單元測(cè)試工具JUnit、自動(dòng)構(gòu)建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進(jìn)去,又提供了豐富的向?qū)椭煽蚣艽a,讓我們的開發(fā)變得更輕松。應(yīng)該說IDE發(fā)展的趨勢(shì)就是集成軟件開發(fā)中要用到的幾乎所有工具。

      從開發(fā)效率的角度考慮,使用IDE是必經(jīng)之路,也是從一個(gè)學(xué)生到一個(gè)職業(yè)程序員轉(zhuǎn)變的里程碑。

      JAVA開發(fā)使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder占有的市場(chǎng)份額是最大的。JBuilder在近幾年來一直是JAVA集成開發(fā)環(huán)境中的霸主,它是由備受程序員尊敬的Borland公司開發(fā),在硝煙彌漫的JAVA IDE大戰(zhàn)中,以其快速的版本更新?lián)魯BM的Visual Age for JAVA等而成就一番偉業(yè)。IBM在Visual Age for JAVA上已經(jīng)無利可圖之下,干脆將之貢獻(xiàn)給開源社區(qū),成為Eclipse的前身,真所謂“柳暗花明又一村”。浴火重生的Eclipse以其開放式的插件擴(kuò)展機(jī)制、免費(fèi)開源獲得廣大程序員(包括幾乎所有的骨灰級(jí)程序員)的青睞,極具發(fā)展?jié)摿Α?/p>

      2.學(xué)習(xí)要點(diǎn)

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

      2.1勤查API文檔

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

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

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

      當(dāng)需要某項(xiàng)功能的時(shí)候,你應(yīng)該先查相應(yīng)的DOC文檔看看有沒有現(xiàn)成的實(shí)現(xiàn),有的話就不必勞神費(fèi)心了直接用就可以了,找不到的時(shí)候才考慮自己實(shí)現(xiàn)。使用步驟一般如下:

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

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

      ●選擇構(gòu)造器,大多數(shù)使用類的方式是創(chuàng)建對(duì)象。

      ●選擇你需要的方法。

      2.2 查書/google->寫代碼測(cè)試->查看源代碼->請(qǐng)教別人

      當(dāng)我們遇到問題的時(shí)候該如何解決?

      這時(shí)候不要急著問別人,太簡(jiǎn)單的問題,沒經(jīng)過思考的問題,別人會(huì)因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像“某些類/方法如何使用的問題”,DOC文檔就是答案。對(duì)某些知識(shí)點(diǎn)有疑惑是,寫代碼測(cè)試一下,會(huì)給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗(yàn)證你的想法。萬不得已才去請(qǐng)教別人。

      2.3學(xué)習(xí)開源軟件的設(shè)計(jì)思想

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

      2.4 規(guī)范的重要性

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

      http:///docs/codeconv/,中文的也有,啊,還要問我在哪,請(qǐng)參考3.2.2節(jié)。

      2.5 不局限于JAVA

      很不幸,很幸運(yùn),要學(xué)習(xí)的東西還有很多。不幸的是因?yàn)橐獙W(xué)的東西太多且多變,沒時(shí)間陪老婆家人或女朋友,導(dǎo)致身心疲憊,嚴(yán)重者甚至導(dǎo)致抑郁癥。幸運(yùn)的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達(dá)成心愿。

      JAVA不要孤立地去學(xué)習(xí),需要綜合學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)、OOP、軟件工程、UML、網(wǎng)絡(luò)編程、數(shù)據(jù)庫技術(shù)等知識(shí)。

      軟件工程的由來

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

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

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

      馬克思告訴我們,萬物都是從量變到質(zhì)變的。隨著問題的不斷涌現(xiàn),一些master們開始嘗試去總結(jié)經(jīng)驗(yàn),并歸納了一些規(guī)范去指導(dǎo)軟件的分析,設(shè)計(jì),實(shí)現(xiàn),測(cè)試,維護(hù),人員交流協(xié)作,項(xiàng)目預(yù)算及時(shí)限控制等方方面面,這就是軟件工程的前身。

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

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

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

      軟件工程的核心

      無論是在上個(gè)世紀(jì)還是在現(xiàn)在,軟件開發(fā)所涉及的工作基本上都沒有變化,它們都起始于一個(gè)實(shí)際需要或某個(gè)靈感,然后就是分析,設(shè)計(jì),編碼,調(diào)試,維護(hù)。這些任務(wù)以某種方式動(dòng)態(tài)地結(jié)合起來就構(gòu)成了軟件開發(fā)的整個(gè)過程,這就是所謂的“軟件開發(fā)周期”。

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

      而軟件工程,說白了,就是這樣一套用于軟件的團(tuán)隊(duì)開發(fā),以提高軟件質(zhì)量和程序員工作效率為目的的規(guī)范。其核心就是,對(duì)于軟件開發(fā)的5個(gè)重要組成部分:需求分析,設(shè)計(jì),編碼,調(diào)試,維護(hù),如何組織這5個(gè)部分的工作,以及如何完成每一個(gè)工作。簡(jiǎn)單來說,就是對(duì)于總體的組織和對(duì)于局部的實(shí)現(xiàn)。

      規(guī)范只是提供一個(gè)好的例子,以描述一種思想,具體到每一個(gè)環(huán)節(jié)怎樣實(shí)現(xiàn),對(duì)于不同的公司或團(tuán)體則是各有千秋,因?yàn)楦揪筒豢赡艽嬖谝惶追胖煜陆钥尚械臉?biāo)準(zhǔn)。就像C++,也只是提供了一套標(biāo)準(zhǔn),不同的編譯器都有各自的實(shí)現(xiàn),對(duì)標(biāo)準(zhǔn)的支持程度也互不相同。所以,在不同的公司或團(tuán)體中,盡管核心思想都是大同小異,但具體到每一個(gè)步驟,往往都是不相同的。我手上就有一份GB8567-88的文檔模板,對(duì)于那些頂多只有幾千行的小程序來說,假如真按上面的要求全寫上了,簡(jiǎn)直就是一種折磨!據(jù)說,當(dāng)前業(yè)界最權(quán)威的標(biāo)準(zhǔn)是CMM。

      軟件開發(fā)過程的組織

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

      總之,除非你是先知,否則,對(duì)于一個(gè)具有一定規(guī)模和復(fù)雜度的軟件來說,在“設(shè)計(jì)—編碼”這個(gè)過程中,實(shí)在有太多的不可預(yù)知性和變化性,你根本不可能全盤地把握住每一個(gè)細(xì)節(jié)。當(dāng)然,這是建立在我現(xiàn)時(shí)的水平之上的觀點(diǎn)。我不知道是否成為高手以后會(huì)有所不同,因?yàn)槲疑磉厸]有那樣的人。

      既然軟件開發(fā)是一個(gè)具有不可預(yù)知性和變化性的動(dòng)態(tài)的過程,那么,對(duì)其每一個(gè)步驟的組織,即周期模型,就必須包容它的這種性質(zhì)。

      現(xiàn)在來看一下最古老,最經(jīng)典,同時(shí)也是最倍受批評(píng)的瀑布模型。

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

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

      瀑布模型完全忽視了軟件開發(fā)過程的動(dòng)態(tài)變化??峙轮挥心切┮呀?jīng)發(fā)展得非常成熟,且規(guī)模不大的系統(tǒng),例如:用Access做后臺(tái),用VB畫前端的數(shù)據(jù)庫應(yīng)用程序,才有瀑布模型一展拳腳的地方。

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

      軟件開發(fā)過程的實(shí)現(xiàn)

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

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

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

      項(xiàng)目描述 這是在決定立項(xiàng)以后,對(duì)當(dāng)前項(xiàng)目的一份扼要說明。必須包括以下幾個(gè)方面:

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

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

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

      軟件設(shè)計(jì) 這就是對(duì)程序的每一個(gè)模塊的詳細(xì)設(shè)計(jì)的說明文檔。其由以下幾部分組成:

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

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

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

      下載嵌入式學(xué)習(xí)路線word格式文檔
      下載嵌入式學(xué)習(xí)路線.doc
      將本文檔下載到自己電腦,方便修改和收藏,請(qǐng)勿使用迅雷等下載。
      點(diǎn)此處下載文檔

      文檔為doc格式


      聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn)自行上傳,本網(wǎng)站不擁有所有權(quán),未作人工編輯處理,也不承擔(dān)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)有涉嫌版權(quán)的內(nèi)容,歡迎發(fā)送郵件至:645879355@qq.com 進(jìn)行舉報(bào),并提供相關(guān)證據(jù),工作人員會(huì)在5個(gè)工作日內(nèi)聯(lián)系你,一經(jīng)查實(shí),本站將立刻刪除涉嫌侵權(quán)內(nèi)容。

      相關(guān)范文推薦

        期貨學(xué)習(xí)路線

        期貨交易是現(xiàn)有幾種能憑借動(dòng)力,耐力和技巧,以相對(duì)較少的資金投入來獲得無限潛在利潤(rùn)的投資工具之一。可以說沒有任何資本投機(jī)像期貨交易那樣充滿投機(jī)性,迷惑性,風(fēng)險(xiǎn)性而又前景廣......

        JAVA學(xué)習(xí)路線

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

        Java學(xué)習(xí)路線

        怎么學(xué)習(xí)Java,這是很多新手經(jīng)常會(huì)問我的問題,現(xiàn)在我簡(jiǎn)單描述下一個(gè)Java初學(xué)者到就業(yè)要學(xué)到的一些東西: 首先要明白Java體系設(shè)計(jì)到得三個(gè)方面:J2SE,J2EE,J2ME(KJAVA)。J2SE,Java 2 P......

        學(xué)習(xí)嵌入式心得

        嵌入式心得體會(huì) 本人大學(xué)學(xué)的是電子信息科學(xué)與技術(shù)專業(yè),其實(shí)這個(gè)專業(yè)和嵌入式?jīng)]有多大的關(guān)系,要說有關(guān)系就是簡(jiǎn)單的講了下C語言語法,學(xué)完之后還不知道什么是C語言,只記住了,char,......

        嵌入式學(xué)習(xí)總結(jié)

        嵌入式學(xué)習(xí)總結(jié) 一.基本信息................................................................................................................... 1 二.嵌入式系統(tǒng)的組......

        嵌入式學(xué)習(xí)之路

        1、必須認(rèn)真學(xué)習(xí)一個(gè)操作系統(tǒng) (例如從UC/OSII 到 Linux) 2、必須熟悉TCP/IP網(wǎng)絡(luò)協(xié)議 (現(xiàn)在的嵌入式產(chǎn)品與網(wǎng)絡(luò)的聯(lián)系越來越緊密,融入網(wǎng)絡(luò)是必然趨勢(shì)) 3、必須認(rèn)真的學(xué)習(xí)一款CPU的......

        嵌入式學(xué)習(xí)過程

        嵌入式學(xué)習(xí)路線)學(xué)習(xí)Linux系統(tǒng)安裝、 常用命令、應(yīng)用程序安裝。 2) 學(xué)習(xí)Linux 下的 C 編程、這本書必學(xué)《UNIX 環(huán)境高級(jí)編程》、《UNIX 網(wǎng)絡(luò)編程》,Rechard Stevens 寫的,C 高手......

        黨群路線學(xué)習(xí)小結(jié)

        黨群路線學(xué)習(xí)小結(jié) 市委黨的群眾路線教育實(shí)踐活動(dòng)督導(dǎo)組: 按照《 市黨的群眾路線教育實(shí)踐活動(dòng)實(shí)施方案》要求和我局的統(tǒng)一部署,結(jié)合自身實(shí)際情況和分管工作,立即行動(dòng),制訂了個(gè)人......