這里聲明一下,我指的嵌入式主要是偏向軟件的嵌入式。即使在做嵌入式開發(fā)中,作應(yīng)有層的開發(fā)幾乎可以不知道操作系統(tǒng)也可以開發(fā),我認(rèn)為那是浮在表面的。我個(gè)人推薦一個(gè)學(xué)習(xí)路線是使用linux—〉linxu系統(tǒng)編程開發(fā)〉驅(qū)動(dòng)開發(fā)和分析linux內(nèi)核。如果想從事嵌入式linux系統(tǒng)開發(fā),最好對(duì)內(nèi)核有所了解。學(xué)習(xí)嵌入式技術(shù),我認(rèn)為兩個(gè)重點(diǎn),cpu和操作系統(tǒng),目前市場是比較流行arm,所以推薦大家學(xué)習(xí)arm。如果沒有開發(fā)板,那是紙上談兵。
進(jìn)行嵌入式系統(tǒng)開發(fā)時(shí),主要包括哪些基本流程
初步可行性論證方案設(shè)計(jì)、元器件選型原理圖設(shè)計(jì)、PCB設(shè)計(jì)、演示板加工硬件調(diào)試軟件系統(tǒng)移植驅(qū)動(dòng)設(shè)計(jì)、應(yīng)用軟件設(shè)計(jì)、軟件調(diào)試、軟硬件聯(lián)調(diào)
簡述嵌入式系統(tǒng)的開發(fā)過程
大致分為以下六個(gè)步驟。第一步是系統(tǒng)需求分析,第二步是架構(gòu)設(shè)計(jì),第三步是軟硬件協(xié)同設(shè)計(jì),第四步是系統(tǒng)集成,第五步是系統(tǒng)測試,第六步是產(chǎn)品成型,最后需要補(bǔ)充。技術(shù)文檔應(yīng)該貫穿設(shè)計(jì)的六個(gè)步驟。這一點(diǎn)非常重要。
嵌入式系統(tǒng)的工作流程
1.系統(tǒng)需求分析確定設(shè)計(jì)任務(wù)和目標(biāo),并將設(shè)計(jì)規(guī)范作為設(shè)計(jì)指導(dǎo)和驗(yàn)收的標(biāo)準(zhǔn)。系統(tǒng)需求一般包括功能性需求和非功能性需求。功能需求是系統(tǒng)的基本功能。非功能性需求,如輸入輸出信號(hào)和運(yùn)行模式,包括系統(tǒng)性能、成本、功耗、體積、重量等因素。2.架構(gòu)設(shè)計(jì)描述了系統(tǒng)如何滿足功能性和非功能性需求,包括硬件、軟件和執(zhí)行器件的功能劃分,以及系統(tǒng)軟硬件的選擇。好的架構(gòu)是設(shè)計(jì)成功的關(guān)鍵。3.硬件/軟件設(shè)計(jì)(硬件、軟件和執(zhí)行器件的并行設(shè)計(jì))在該體系結(jié)構(gòu)的基礎(chǔ)上,對(duì)系統(tǒng)的軟件和硬件進(jìn)行了詳細(xì)設(shè)計(jì)。為了縮短產(chǎn)品開發(fā)周期,設(shè)計(jì)往往是并行的。嵌入式系統(tǒng)設(shè)計(jì)的大部分工作都集中在軟件設(shè)計(jì)上,采用面向?qū)ο蠹夹g(shù)、軟件組件技術(shù)和模塊化設(shè)計(jì)是現(xiàn)代軟件工程中常用的方法。4.系統(tǒng)集成將系統(tǒng)的軟件、硬件和執(zhí)行器件集成在一起,進(jìn)行調(diào)試,發(fā)現(xiàn)并改進(jìn)單元設(shè)計(jì)過程中的錯(cuò)誤。5.系統(tǒng)測試測試設(shè)計(jì)的系統(tǒng),以檢查它是否滿足規(guī)格中給出的功能要求。根據(jù)系統(tǒng)復(fù)雜程度的不同,有不同的系統(tǒng)設(shè)計(jì)方法,如瀑布設(shè)計(jì)法、自頂向下設(shè)計(jì)法、自底向上設(shè)計(jì)法、螺旋設(shè)計(jì)法、逐步細(xì)化設(shè)計(jì)法、并行設(shè)計(jì)法等??梢愿鶕?jù)實(shí)際情況和熟悉程度靈活選擇。
嵌入式開發(fā)學(xué)習(xí)步驟
我也是計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)的。如果你在單片機(jī)上做開發(fā),我來教你怎么學(xué)。當(dāng)然,我們的嵌入式學(xué)習(xí)基本上是基于。開發(fā)板必須有!!這里聲明一下,我所指的嵌入式系統(tǒng)主要是面向軟件的嵌入式系統(tǒng)。學(xué)習(xí)嵌入式系統(tǒng)的重點(diǎn)和難點(diǎn)在于操作系統(tǒng)。如果不掌握操作系統(tǒng),我覺得很難掌握一個(gè)嵌入式系統(tǒng)。即使在嵌入式開發(fā)中,也幾乎可以在不了解操作系統(tǒng)的情況下進(jìn)行適當(dāng)層的開發(fā),我認(rèn)為這是膚淺的。很難加深和提高自己的水平。宣告自己心靈上的一個(gè)洞!不要深究了!在學(xué)習(xí)內(nèi)核的過程中,我犯了一個(gè)極其嚴(yán)重的路線錯(cuò)誤,在對(duì)linux知之甚少的情況下開始學(xué)習(xí)內(nèi)核。我個(gè)人推薦一條學(xué)習(xí)路線是使用linux-> Linxu系統(tǒng)編程與開發(fā)->驅(qū)動(dòng)程序開發(fā)分析linux內(nèi)核。我?guī)缀跸喾础F鋵?shí)不用linux也可以學(xué)習(xí)內(nèi)核,但是知道這些東西學(xué)習(xí)起來效率更高。對(duì)于要不要學(xué)內(nèi)核這個(gè)問題,我的回答如下。如果你喜歡學(xué)習(xí),那么進(jìn)入內(nèi)核就能滿足你的欲望。同時(shí)對(duì)你以后的嵌入式系統(tǒng)開發(fā)也有很好的影響。如果想從事嵌入式系統(tǒng)開發(fā),最好對(duì)內(nèi)核有所了解。沒有必要只做應(yīng)用程序開發(fā)。我來打個(gè)比方。如果C,c++,java等語言是武林中某個(gè)武林門派,比如什么拳,什么刀等。,那么linux內(nèi)核應(yīng)該是一個(gè)人內(nèi)功的反應(yīng)。如何開始學(xué)習(xí)內(nèi)核最好有三寶:對(duì)linux內(nèi)核的深刻理解,場景分析,源代碼。先看《深入了解linux內(nèi)核》。主要講原則。好像市面上有一本書講原理,比較淺?!秎inux內(nèi)核設(shè)計(jì)與實(shí)現(xiàn)》聽說不錯(cuò)。如果你不學(xué)操作系統(tǒng),和我一樣,最好先看操作系統(tǒng)原理這本書??戳藥妆椋涂磩∏榉治?。它