• <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>

    24小時(shí)聯(lián)系電話(huà):18217114652、13661815404

    中文

    您當前的位置:
    首頁(yè)>
    電子資訊>
    技術(shù)專(zhuān)題>
    嵌入式軟件開(kāi)發(fā)

    技術(shù)專(zhuān)題

    嵌入式軟件開(kāi)發(fā)


    嵌入式軟件開(kāi)發(fā)

    什么是嵌入式軟件開(kāi)發(fā)?

    嵌入式軟件是一種程序,用于控制與通用計算機不同的各種設備和機器。非計算機設備和工程技術(shù)的結合形成了嵌入式系統。如今,嵌入式系統在制造設備,音頻/視頻設備,電信設備,汽車(chē)工業(yè),航空,消費類(lèi)電子產(chǎn)品,游戲機,運動(dòng)傳感器和醫學(xué)等各個(gè)領(lǐng)域都非常流行(如圖1所示)。 

    要設計嵌入式系統,需要具有操作系統,微控制器/微處理器和良好的編程工具。要為嵌入式系統編寫(xiě)程序,可以使用多種語(yǔ)言,包括Python,QT,C ++,C等。嵌入式軟件開(kāi)發(fā)可以定義為創(chuàng )建機器可理解的代碼(使用任何可用的語(yǔ)言)來(lái)運行設備上的特定用途。 

    1:嵌入式系統的應用

    嵌入式軟件開(kāi)發(fā)的歷

    微控制器和微處理器的興起在嵌入式系統的開(kāi)發(fā)中起著(zhù)至關(guān)重要的作用。在過(guò)去的幾年中,嵌入式軟件的發(fā)展經(jīng)歷了許多變化。 

    在早期,仿真器和匯編器,軟件開(kāi)發(fā)工具僅由生產(chǎn)芯片(微控制器)的制造商提供。后來(lái),許多不同的公司開(kāi)始為開(kāi)發(fā)工具提供完整的解決方案。一些公司只專(zhuān)注于微控制器之類(lèi)的硬件,而另一些公司則將重心轉移到了諸如匯編器,仿真器和模擬器之類(lèi)的軟件上。然后,一些公司介入并增加了對高級語(yǔ)言的支持。 

    隨著(zhù)時(shí)間的流逝,出現了對實(shí)時(shí)操作系統(RTOS)的需求,并且公司將重點(diǎn)轉移到了這種系統上。Ready Systems1990年代初開(kāi)發(fā)了第一個(gè)RTOS。導致RTOS發(fā)展的另一個(gè)主要因素是微芯片的發(fā)展,芯片的功能變得比以前更強大。隨著(zhù)微芯片的發(fā)展,工程師可以為特定應用編寫(xiě)單個(gè)程序??梢詫⒊绦蚣虞d到設備中,并且設備可以根據輸入來(lái)處理實(shí)時(shí)數據并做出輸出控制決策。 

    隨著(zhù)更多的進(jìn)步,微芯片的成本也降低了幾美分?,F在,我們每天都可以找到嵌入式系統,甚至無(wú)法想象它們對于我們日?;顒?dòng)的重要性。我們可以在兒童玩具,電風(fēng)扇,烤面包機,微波爐,空調等中找到嵌入式系統。 

    嵌入式軟件開(kāi)發(fā)工具 

    嵌入式軟件開(kāi)發(fā)工具對于開(kāi)發(fā)嵌入式設備的高效軟件非常重要??梢允褂枚喾N工具來(lái)實(shí)現此目的。這些工具的詳細信息在此處列出。 

    編輯

    編輯器是軟件開(kāi)發(fā)中最重要的工具之一。該工具可用于以不同的編程語(yǔ)言(包括C,C ++,PythonJava)編寫(xiě)和編輯代碼??梢允褂貌煌木庉嬈?,這些編輯器是免費軟件,并且附帶價(jià)格。選擇編輯器時(shí)可能要考慮的另一件事是它的環(huán)境,輕量級是更好的選擇。一些編輯器包括Notepad ++,Atom,Visual Studio,NetBeans,KiteGeany。良好的編輯器必須具備以下功能。 

    突出顯示語(yǔ)法

    代碼導航

    自動(dòng)縮進(jìn)代碼

    自動(dòng)完成代碼

    行號

    定期自動(dòng)保存

    注釋多行

    概述代碼(包括功能,庫)

    突出顯示警告和錯誤 

    編譯器 

    在最近的發(fā)展之后,源代碼是用高級語(yǔ)言編寫(xiě)的。編譯器用于將高級代碼轉換為機器可以理解的低級代碼。然后,機器可以使用翻譯后的代碼執行所需的任務(wù)。有各種可用的編譯器,其中一些是Visual Studio,Eclipse,NetBeans,MATLAB,ArduinoKeil。 

    組裝工 

    匯編程序幾乎達到了與編譯器相同的目的,但是還有一段距離。匯編程序將高級代碼轉換為目標代碼,同時(shí)將高級代碼轉換為操作碼并解析內存位置。然后,它將目標代碼或匯編代碼轉換為通常稱(chēng)為機器語(yǔ)言代碼的位級指令。GNU是用于此目的的常見(jiàn)匯編程序之一。 

    調試器 

    就錯誤跟蹤而言,它是最關(guān)鍵的工具。它通過(guò)指示和突出顯示錯誤和警告(在發(fā)生的地方)來(lái)幫助開(kāi)發(fā)人員跟蹤錯誤。調試器提供的另一個(gè)功能是逐步調試。這樣,開(kāi)發(fā)人員可以通過(guò)執行代碼的每一行并監視其執行狀態(tài)來(lái)跟蹤錯誤。上面列出的大多數編譯器都包含調試器,但最常見(jiàn)的調試器是IDA Pro。該工具在LinuxWindows上均可用。 

    連結器 

    在嵌入式系統中,程序通常以小塊或模塊的形式編寫(xiě)。要將所有模塊鏈接在一起,請使用鏈接器工具。這將所有模塊作為輸入,將它們組合在一起,并制作一個(gè)信號可執行程序。它還可以組合使用不同編程語(yǔ)言創(chuàng )建的目標文件,并將它們合并為一個(gè)可執行文件(如圖2所示)。GNU鏈接器是最常見(jiàn)的鏈接器之一。 

    2:鏈接來(lái)自不同編程語(yǔ)言的不同對象 

    仿真器 

    在使用實(shí)際設備之前,在復制目標設備的工具上測試程序很重要。為此,使用了仿真器。仿真器提供目標設備的組件和功能的副本。這樣,開(kāi)發(fā)人員可以輕松識別在實(shí)際設備上執行代碼時(shí)可能發(fā)生的任何問(wèn)題。通過(guò)使用仿真器,開(kāi)發(fā)人員可以調整代碼參數以實(shí)現目標設備的最佳性能。優(yōu)化代碼性能后,可以將其部署在實(shí)際設備上。

    開(kāi)發(fā)人員很難為項目使用所有不同的工具。因此,為此目的,重要的是要在一個(gè)通常稱(chēng)為集成開(kāi)發(fā)環(huán)境(IDE)的單一環(huán)境中獲得所有工具。IDE是一種工具,為嵌入式軟件的開(kāi)發(fā)提供了所有必要的工具。 

    嵌入式軟件語(yǔ)言

    在嵌入式系統中,使用實(shí)時(shí)操作系統,以便可以同時(shí)執行多個(gè)任務(wù)。嵌入式軟件使用不同的語(yǔ)言進(jìn)行編程,這些語(yǔ)言通常包括Java腳本,PythonC / C ++。所有語(yǔ)言都可以使用不同的操作系統進(jìn)行處理,這些操作系統可能包括Windows,Linux,micro C / OS,Nucleus RTOS等。但是,編程語(yǔ)言的選擇是嵌入式軟件開(kāi)發(fā)的關(guān)鍵步驟,這取決于不同的因素。這里列出了一些關(guān)鍵參數: 

    內存大?。呵度胧皆O備的內存非常有限,用于存儲數據和代碼。因此,擁有可以有效利用內存的代碼很重要。

    速度:希望程序能夠快速執行。因此,需要為特定的應用選擇正確的編程語(yǔ)言。

    可移植性:我們在不同的工作地點(diǎn)沒(méi)有相同的編譯器。因此,編程語(yǔ)言必須能夠在不同的處理器上執行。

    實(shí)現:編程語(yǔ)言必須具有更簡(jiǎn)單的語(yǔ)法,并且出錯的可能性很小。

    維護:語(yǔ)言的維護應該很容易,因為調試舊代碼可能是一項繁瑣的任務(wù)。 

    嵌入式軟件開(kāi)發(fā)流程 

    嵌入式系統開(kāi)發(fā)需要注意兩件事:(i)軟件開(kāi)發(fā),(ii)硬件開(kāi)發(fā)。Embedder軟件的開(kāi)發(fā)經(jīng)歷了一個(gè)艱難的過(guò)程,因此它可能會(huì )為我們提供完美的軟件。為了實(shí)現此任務(wù),使用了不同的過(guò)程,其中之一就是敏捷開(kāi)發(fā)方法(如圖3所示)。 

    3:嵌入式軟件開(kāi)發(fā)過(guò)程 

    第一步是集思廣益,其中的想法需要進(jìn)行討論和完善,然后才能進(jìn)入開(kāi)發(fā)階段。在第二和第三階段中,將設計和開(kāi)發(fā)該系統。第四階段是關(guān)鍵階段,在此階段檢查開(kāi)發(fā)系統的質(zhì)量。一旦系統清除了質(zhì)量檢查,便將其部署。 

    使用圖4所示的流程圖可以更詳細地描述開(kāi)發(fā)階段。在圖4中,我們可以看到,開(kāi)發(fā)階段可以分為兩個(gè)部分,即硬件和軟件,這兩個(gè)部分是相互關(guān)聯(lián)的。在硬件部分,為目標系統完成組裝,然后執行硬件測試,其中也包括軟件部分。在硬件鏈的末端,執行最終測試以檢查是否達到了所需的結果。如果未達到結果,則將硬件組裝進(jìn)行更新(在大多數情況下是不需要的),并且軟件也將進(jìn)行更新以獲得所需的結果。 

    4:嵌入式軟件開(kāi)發(fā)的開(kāi)發(fā)階段

    對于軟件開(kāi)發(fā),使用了編輯-測試-調試方法。在這種方法中,使用了許多工具來(lái)獲得期望的結果。在軟件開(kāi)發(fā)階段,使用了第3節中列出的所有工具。編輯-測試-調試周期所需的工具也可以使用下面的圖5進(jìn)行說(shuō)明。

    5:嵌入式軟件開(kāi)發(fā)的編輯-測試-調試階段

    請輸入搜索關(guān)鍵字

    確定
    色鲁99热99re超碰精品_91精品一区二区三区无码吞精_亚洲国产欧洲综合997久久_一级a性色生活片久久无
  • <noframes id="6fok0"><bdo id="6fok0"><listing id="6fok0"></listing></bdo>
    <ruby id="6fok0"></ruby>

    <progress id="6fok0"></progress>
  • <progress id="6fok0"></progress>
    <ruby id="6fok0"><table id="6fok0"></table></ruby>
  • <progress id="6fok0"><u id="6fok0"><form id="6fok0"></form></u></progress>