總之嵌入式軟件開(kāi)發(fā)和硬件關(guān)系比較緊密,一般需要編寫(xiě)硬件驅(qū)動(dòng)。,舉個(gè)很簡(jiǎn)單的例子嵌入式開(kāi)發(fā)。嵌入式系統(tǒng)是軟硬結(jié)合的東西,搞嵌入式開(kāi)發(fā)的人有兩類(lèi)。
嵌入式軟件開(kāi)發(fā)與軟件開(kāi)發(fā)有什么區(qū)別
1.嵌入式軟件開(kāi)發(fā)是指單片機(jī)、ARM、FPGA的編程。如果沒(méi)有或操作系統(tǒng),即使有,也是功能相對(duì)簡(jiǎn)單的操作系統(tǒng),比如ucos??傊度胧杰浖_(kāi)發(fā)與硬件密切相關(guān),所以一般需要編寫(xiě)硬件驅(qū)動(dòng)程序。2.軟件開(kāi)發(fā)一般是指在已經(jīng)安裝了image或linux的電路板上編寫(xiě)應(yīng)用程序。軟件開(kāi)發(fā)不直接寫(xiě)硬件驅(qū)動(dòng),因?yàn)轵?qū)動(dòng)已經(jīng)被操作系統(tǒng)實(shí)現(xiàn)了。軟件開(kāi)發(fā)側(cè)重于邏輯功能的實(shí)現(xiàn)。比如拍照,調(diào)用相機(jī)驅(qū)動(dòng)就可以了。
什么是嵌入式開(kāi)發(fā)?
嵌入式開(kāi)發(fā)有很多層次。大致有以下幾個(gè)步驟:硬件之路。第一步是嵌入式開(kāi)發(fā)pcb設(shè)計(jì),一般是開(kāi)發(fā)板的電路縮減和擴(kuò)展。根據(jù)開(kāi)發(fā)板的原理圖,畫(huà)出PCB和封裝庫(kù),自己設(shè)計(jì)電路。第二步是SOPC技術(shù),一般用FPGA和CPLD開(kāi)發(fā)。它使用VHDL等硬件描述語(yǔ)言開(kāi)發(fā)專(zhuān)用arm芯片,自己編寫(xiě)邏輯電路,基于or FPGA開(kāi)發(fā)。Arm9的第三步是SOC設(shè)計(jì),分為前端和后端實(shí)現(xiàn)。這是硬件設(shè)計(jì)的核心技術(shù)芯片設(shè)計(jì)。能做到這一點(diǎn)的已經(jīng)不是普通的技術(shù)人員了。arm9開(kāi)發(fā)板軟件之路的第一步就是寫(xiě)和修改。通過(guò)這一步,熟悉ARM硬件結(jié)構(gòu),學(xué)習(xí)ARM匯編語(yǔ)言,閱讀ARM芯片手冊(cè)。感覺(jué)像操作51單片機(jī)一樣操作ARM芯片。這一步最好的兩個(gè)參考資料是芯片手冊(cè)和源代碼。第二步,系統(tǒng)移植,驅(qū)動(dòng)發(fā)展。我只做過(guò)linux,所以也推薦學(xué)習(xí)嵌入式linux系統(tǒng)。作為一個(gè)標(biāo)準(zhǔn)系統(tǒng),它是開(kāi)源的,可以獲得很多學(xué)習(xí)資料。操作系統(tǒng)是整個(gè)計(jì)算機(jī)科學(xué)的核心,要熟悉它并不容易。學(xué)習(xí)驅(qū)動(dòng)開(kāi)發(fā)沒(méi)有捷徑,只有多讀代碼,多寫(xiě)代碼,熟悉系統(tǒng)API..linux和linux是不可多得的書(shū),值得一讀。第三步是應(yīng)用程序的編寫(xiě),各種GUI的移植,qt,這些都是被廣泛采用的。兩個(gè)思路差不多,可以熟悉一個(gè)。在軟件道路中,驅(qū)動(dòng)系統(tǒng)應(yīng)該是最深入的部分,不是短時(shí)間就能掌握的。這需要勇氣和耐心。嵌入式開(kāi)發(fā)是硬件和軟件的結(jié)合。因?yàn)橛布l件比PC差很多,必然會(huì)有很多問(wèn)題,所以練習(xí)的勇氣就更重要了。如果有什么問(wèn)題,可能是唯一解決的辦法。
什么是嵌入式開(kāi)發(fā)?
首先要知道什么是嵌入式,嵌入式的定義是“用于控制、監(jiān)視或輔助操作機(jī)器設(shè)備的裝置”。嵌入式開(kāi)發(fā)也可以分為嵌入式硬件開(kāi)發(fā)、嵌入式系統(tǒng)開(kāi)發(fā)(底層驅(qū)動(dòng))和嵌入式。嵌入式硬件和MCU、DSP一樣,基本都是由數(shù)字電路組成的。這也可以看作是電子硬件開(kāi)發(fā),沒(méi)必要單獨(dú)出一門(mén)嵌入式硬件學(xué)科。只是這個(gè)嵌入式開(kāi)發(fā)中有這部分工作。嵌入式系統(tǒng)嵌入式系統(tǒng)是一種特殊的計(jì)算機(jī)系統(tǒng),是設(shè)備或裝置的一部分。在處理硬件驅(qū)動(dòng)層的時(shí)候,一定要有一定的硬件知識(shí)。典型的嵌入式系統(tǒng)有,,,WinCE,,μCos。但是現(xiàn)在有公司把硬件和系統(tǒng)集成在一個(gè)模塊里,比如“新靈思”嵌入式應(yīng)用軟件,就是運(yùn)行在上述嵌入式系統(tǒng)上的應(yīng)用軟件。一般來(lái)說(shuō),做這部分開(kāi)發(fā)不需要處理底層硬件知識(shí)。相對(duì)于驅(qū)動(dòng)開(kāi)發(fā)更簡(jiǎn)單,全部使用高級(jí)開(kāi)發(fā)語(yǔ)言。JAVA,C#等。所以應(yīng)用開(kāi)發(fā)的工資相對(duì)低于開(kāi)車(chē)。
嵌入式軟件開(kāi)發(fā)
嵌入式軟件開(kāi)發(fā)需要學(xué)習(xí)的東西很多,因?yàn)樗煌谄胀ǖ纳蠈榆浖_(kāi)發(fā),主要表現(xiàn)在嵌入式軟件是指針對(duì)某一特定需求或應(yīng)用定制的軟硬件平臺(tái),以及在該平臺(tái)上運(yùn)行的軟件。所以,學(xué)習(xí)嵌入式軟件開(kāi)發(fā),不僅要有軟件開(kāi)發(fā)的知識(shí),還要有主流嵌入式操作系統(tǒng)、硬件架構(gòu)、硬件資源管理的知識(shí)。需要學(xué)習(xí)的課程主要有:1。編程課程(主要基于C顧嵐