1. <tt id="5hhch"><source id="5hhch"></source></tt>
    1. <xmp id="5hhch"></xmp>

  2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

    <rp id="5hhch"></rp>
        <dfn id="5hhch"></dfn>

      1. 嵌入式系統開發流程

        時間:2024-07-04 22:17:13 鐘澄 嵌入式培訓 我要投稿
        • 相關推薦

        嵌入式系統開發流程

          嵌入式編程開發是目前大多數軟件開發程序員都在學習的一個編程開發技術,以下想是小編搜集整理的關于嵌入式系統開發流程的內容,一起來看看吧,希望能夠幫助到你!

          第一步:建立開發環境

          操作系統一般使用Redhat Linux,選擇定制安裝或全部安裝,通過網絡下載相應的GCC交叉編譯器進行安裝(比如,arm-linux-gcc、arm-uclibc-gcc),或者安裝產品廠家提供的相關交叉編譯器;

          第二步:配置開發主機

          配置MINICOM,一般的參數為波特率115200 Baud/s,數據位8位,停止位為1,9,無奇偶校驗,軟件硬件流控設為無。在Windows下的超級終端的配置也是這樣。MINICOM軟件的作用是作為調試嵌入式開發板的信息輸出的監視器和鍵盤輸入的工具。配置網絡主要是配置NFS網絡文件系統,需要關閉防火墻,簡化嵌入式網絡調試環境設置過程。

          第三步:建立引導裝載程序BOOTLOADER

          從網絡上下載一些公開源代碼的BOOTLOADER,如U.BOOT、BLOB、VIVI、LILO、ARM-BOOT、RED-BOOT等,根據具體芯片進行移植修改。有些芯片沒有內置引導裝載程序,比如,三星的ARV17、ARM9系列芯片,這樣就需要編寫開發板上FLASH的燒寫程序,可以在網上下載相應的燒寫程序,也有Linux下的公開源代碼的J-FLASH程序。如果不能燒寫自己的開發板,就需要根據自己的具體電路進行源代碼修改。這是讓系統可以正常運行的第一步。如果用戶購買了廠家的仿真器比較容易燒寫FLASH,雖然無法了解其中的核心技術,但對于需要迅速開發自己的應用的人來說可以極大提高開發速度。

          第四步:下載已經移植好的Linux操作系統

          如MCLiunx、ARM-Linux、PPC-Linux等,如果有專門針對所使用的CPU移植好的Linux操作系統那是再好不過,下載后再添加特定硬件的驅動程序,然后進行調試修改,對于帶MMU的CPU可以使用模塊方式調試驅動,而對于MCLiunx這樣的系統只能編譯內核進行調試。

          第五步:建立根文件系統

          下載使用BUSYBOX軟件進行功能裁減,產生一個最基本的根文件系統,再根據自己的應用需要添加其他的程序。由于默認的啟動腳本一般都不會符合應用的需要,所以就要修改根文件系統中的啟動腳本,它的存放位置位于/etc目錄下,包括:/etc/init.d/rc.S、/etc/profile、/etc/.profile等,自動掛裝文件系統的配置文件/etc/fstab,具體情況會隨系統不同而不同。根文件系統在嵌入式系統中一般設為只讀,需要使用mkcramfs genromfs等工具產生燒寫映像文件。

          第六步:建立應用程序的FLASH磁盤分區

          一般使用JFFS2或YAFFS文件系統,這需要在內核中提供這些文件系統的驅動,有的系統使用一個線性FLASH(NOR型)512KB~32MB,有的系統使用非線性FLASH(NAND型)8MB~512MB,有的兩個同時使用,需要根據應用規劃FLASH的分區方案。

          第七步:開發應用程序

          可以放入根文件系統中,也可以放入YAFFS、JFFS2文件系統中,有的應用不使用根文件系統,直接將應用程序和內核設計在一起,這有點類似于μC/OS-II的方式。

          第八步:燒寫內核

          根文件系統和應用程序,發布產品。

          常見的嵌入式系統有這么多:

          Linux、uClinux、WinCE、PalmOS、Symbian、eCos、uCOS-II、VxWorks、pSOS、Nucleus、ThreadX 、Rtems 、QNX、INTEGRITY、OSE、C Executive、autosar......

          什么是嵌入式操作系統?

          嵌入式操作系統是一種支持嵌入式系統應用的操作系統軟件,它是嵌入式系統的重要組成部分。嵌入時操作系統具有通用操作系統的基本特點,能夠有效管理復雜的系統資源,并且把硬件虛擬化。

          從應用角度可分為通用型嵌入式操作系統和專用型嵌入式操作系統。常見的通用型嵌入式操作系統有Linux、VxWorks、Windows CE.net等。常用的專用型嵌入式操作系統有Smart Phone、Pocket PC、Symbian等。

          按實時性可分為兩類:

          實時嵌入式操作系統主要面向控制、通信等領域。如WindRiver公司的VxWorks、ISI的pSOS、QNX系統軟件公司的QNX、ATI的Nucleus,很多汽車電子行業都是利用實時性很強的操作系統等。

          非實時嵌入式操作系統主要面向消費類電子產品。這類產品包括PDA、移動電話、機頂盒、電子書、WebPhone等。如微軟面向手機應用的Smart Phone操作系統。

          嵌入式系統的設計和實現而言,基本上需要四種不同的工作:系統設計工作,硬件設計工作,驅動程序和操作系統移植工作和應用程序設計開發工作。

          1、系統設計工作

          在系統的設計階段,系統分析師將根據需求確定系統的硬件的基本構成,根據系統的需求選擇使用那種處理器,使用哪種操作系統,使用那些軟件開發工具。系統分析師往往是較為完整的參與過嵌入式系統設計的全過程,對于系統應用的行業較為了解,對于嵌入式系統本身的開發流程十分清楚的人。

          2、硬件設計工作

          系統硬件設計人員需要根據系統分析師的設計結果,進行硬件原理圖的設計。通常需要硬件設計人員熟悉嵌入式系統的硬件構成。硬件設計人員需要了解常用的嵌入式系統處理器,存儲器(Flash,SDRAM),以太網MAC芯片,音頻/視頻編解碼芯片,電源管理芯片,總線接口電路 (USB,PCI),液晶顯示模塊,可編程邏輯器件(FPGA/CPLD),無線網絡通信模塊(Bluetooth,WLAN,GPRS)等硬件電路構成元素的基本工作原理,連接使用方法,使用注意事項,基本調試方法等內容。在網絡上能找到很多公司的評估板的原理圖,對于這些原理圖要仔細研究,摸清處理器同存儲器,網卡,液晶模塊等器件的連接方法和原因。通過對這些電路的研究,能夠較快地了解整個嵌入式系統的構成,這些電路同實際產品中的電路雖有一定差別的,特別是對于手持設備,但這些差別不影響初學者學習嵌入式系統的硬件設計基本構成。

          1)學習 Linux系統安裝、 常用命令、應用程序安裝。

          2) 學習 Linux 下的 C 編程、這本書必學《UNIX 環境高級編程》、《UNIX 網絡編程》,Rechard Stevens 寫的,C 高手大都學習過 《C 和指針》、《C 缺陷與陷阱》、《高質量C/C++編程指南》、《C 專家編程》、《The C programming Language》

          3)程序員大都要學:數據結構,嵌入式程序員數據結構必學!

          4)底層開發人員大都要學:微機原理、計算機體系結構,嵌入式開發人員必學!

          5)單片機可以讓一個從事軟件開發的人了解和如何操作硬件,有必要學,因為一開始就從 ARM 入手,不太現實!

          6)ARM 體系結構,其中有匯編。

          7)數字電路有必要學習,不然你在做底層開發時真的會不知道怎么看原理圖,起碼也得懂與或門吧。

          8)ARM + Linux 應用程序開發。(前提是要有開發板)

          9)要做底層開發,就必須知道軟硬件之間是如何銜接和配合工作的,那么電子技術應該要好好學習了,很多時候會用到模擬電路知識,這是區別好手與菜鳥的不同之處之一。

          10)Linux 下的匯編要學,這樣你才能真正了解你寫的程序是如何在一個特定的硬件上跑的。這是區別好手與菜鳥的不同之處之二。

          11)TCP/IP 協議棧要學,所有的嵌入式高手都得掌握的東西,這是區別好手與菜鳥的不同之處之三。

          12)有了這些東西,拿下 Linux 驅動 已經不再話下,需要你去學習 Linux 內核源代碼和Linux驅動程序設計,這是一個技術升華。

          13)音頻、視頻的解碼譯碼技術你得學。

          14)各種 IC ,各種 bootloader 你能夠參與其開發設計。

          15)自行設計開發新產品,新技術。

          學到這個地步差不多要花個3年的時間吧。但是后面的路該怎么走呢?嵌入式系統性的東西搞了一個產品之后,基本上一些套路都摸清楚了。

          不同的行業,對于系統的要求是不一樣的,比如汽車行業,航空航天行業等一些高精度,高安全的需要對實時性要求非常之高,對于安全性和可靠性的要求非常嚴格。而有些行業比如消費類產品,娛樂類的,生活用具方面的對于用戶體驗是不一樣的,數碼產品對于一些圖像聲音的處理,要求更高,需要高清,高品質的。而對于一些通信設備類對于網絡的應答數據傳輸要求就非常嚴格,等等。這些根據不同的要求,選擇符合自己的操作系統,能對開發工作有更大的幫助。

          計算機四級嵌入式系統開發工程師考試復習知識點

          1、實時系統的調度

         。1)調度:給定一組實時任務和系統資源,確定每個任務何時何地執行的整個過程。

         。2)搶占式調度:通常是優先級驅動的調度,如uCOS。優點是實時性好、反應快,調度算法相對簡單,可以保證高優先級任務的時間約束;缺點是上下文切換多。

         。3)非搶占式調度:通常是按時間片分配的調度,不允許任務在執行期間被中斷,任務一旦占用處理器就必須執行完畢或自愿放棄,如WinCE。優點是上下文切換少;缺點是處理器有效資源利用率低,可調度性不好。

         。4)靜態表驅動策略:系統在運行前根據各任務的時間約束及關聯關系,采用某種搜索策略生成一張運行時刻表,指明各任務的起始運行時刻及運行時間。

          (5)優先級驅動策略:按照任務優先級的高低確定任務的執行順序。

         。6)實時任務分類:周期任務、偶發任務、非周期任務。

          (7)實時系統的通用結構模型:數據采集任務實現傳感器數據的采集,數據處理任務處理采集的數據、并將加工后的數據送到執行機構管理任務控制機構執行。

          2、嵌入式微處理器體系結構

         。1)馮諾依曼結構:程序和數據共用一個存儲空間,程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,采用單一的地址及數據總線,程序和數據的寬度相同。例如:8086、ARM7、MIPS…

         。2)哈佛結構:程序和數據是兩個相互獨立的存儲器,每個存儲器獨立編址、獨立訪問,是一種將程序存儲和數據存儲分開的存儲器結構。例如:AVR、ARM9、ARM10…

         。3)CISC與RISC的特點比較(參照教程22頁)。計算機執行程序所需要的時間P可以用下面公式計算:P=I×CPI×T

          I:高級語言程序編譯后在機器上運行的指令數。

          CPI:為執行每條指令所需要的平均周期數。

          T:每個機器周期的時間。

          (4)流水線的思想:在CPU中把一條指令的串行執行過程變為若干指令的子過程在CPU中重疊執行。

         。5)流水線的指標:

          吞吐率:單位時間里流水線處理機流出的結果數。如果流水線的子過程所用時間不一樣長,則吞吐率應為最長子過程的倒數。

          建立時間:流水線開始工作到達最大吞吐率的時間。若m個子過程所用時間一樣,均為t,則建立時間T=mt。

         。6)信息存儲的字節順序A、存儲器單位:字節(8位)

          B、字長決定了微處理器的尋址能力,即虛擬地址空間的大小。

          C、32位微處理器的虛擬地址空間位232,即4GB。

          D、小端字節順序:低字節在內存低地址處,高字節在內存高地址處。

          E、大端字節順序:高字節在內存低地址處,低字節在內存高地址處。F、網絡設備的存儲順序問題取決于OSI模型底層中的數據鏈路層。

          3、邏輯電路基礎

         。1)根據電路是否具有存儲功能,將邏輯電路劃分為:組合邏輯電路和時序邏輯電路。

         。2)組合邏輯電路:電路在任一時刻的輸出,僅取決于該時刻的輸入信號,而與輸入信號作用前電路的狀態無關。常用的邏輯電路有譯碼器和多路選擇器等。

         。3)時序邏輯電路:電路任一時刻的輸出不僅與該時刻的輸入有關,而且還與該時刻電路的狀態有關。因此,時序電路中必須包含記憶元件。觸發器是構成時序邏輯電路的基礎。常用的時序邏輯電路有寄存器和計數器等。

          (4)真值表、布爾代數、摩根定律、門電路的概念。

          (5)NOR(或非)和NAND(與非)的門電路稱為全能門電路,可以實現任何一種邏輯函數。

         。6)譯碼器:多輸入多輸出的組合邏輯網絡。

          每輸入一個n位的二進制代碼,在m個輸出端中最多有一個有效。當m=2n是,為全譯碼;當m<2n時,為部分譯碼。

         。7)由于集成電路的高電平輸出電流小,而低電平輸出電流相對比較大,采用集成門電路直接驅動LED時,較多采用低電平驅動方式。液晶七段字符顯示器LCD利用液晶有外加電場和無外加電場時不同的光學特性來顯示字符。

         。8)時鐘信號是時序邏輯的基礎,它用于決定邏輯單元中的狀態合適更新。同步是時鐘控制系統中的主要制約條件。

          (9)在選用觸發器的時候,觸發方式是必須考慮的因素。觸發方式有兩種:電平觸發方式:具有結構簡單的有點,常用來組成暫存器。

          邊沿觸發方式:具有很強的抗數據端干擾能力,常用來組成寄存器、計數器等。

          計算機四級嵌入式系統開發工程師考試的復習要點

          1、嵌入式系統的定義

          (1)定義:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。

         。2)嵌入式系統發展的4個階段:無操作系統階段、簡單操作系統階段、實時操作系統階段、面向Internet階段。

         。3)知識產權核(IP核):具有知識產權的、功能具體、接口規范、可在多個集成電路設計中重復使用的功能模塊,是實現系統芯片(SOC)的基本構件。

          (4)IP核模塊有行為、結構和物理3級不同程度的設計,對應描述功能行為的不同可以分為三類:軟核、固核、硬核。

          2、嵌入式系統的組成:硬件層、中間層、系統軟件層和應用軟件層

         。1)硬件層:嵌入式微處理器、存儲器、通用設備接口和I/O接口。

          嵌入式核心模塊=微處理器+電源電路+時鐘電路+存儲器Cache:位于主存和嵌入式微處理器內核之間,存放的是最近一段時間

          微處理器使用最多的程序代碼和數據。它的主要目標是減小存儲器給微處理器內核造成的存儲器訪問瓶頸,使處理速度更快。

         。2)中間層(也稱為硬件抽象層HAL或者板級支持包BSP):它將系統上層軟件和底層硬件分離開來,使系統上層軟件開發人員無需關系底層硬件的具體情況,根據BSP層提供的接口開發即可。

          BSP有兩個特點:硬件相關性和操作系統相關性。設計一個完整的BSP需要完成兩部分工作:

          A、嵌入式系統的硬件初始化和BSP功能。

          片級初始化:純硬件的初始化過程,把嵌入式微處理器從上電的默認狀態逐步設置成系統所要求的工作狀態。

          板級初始化:包含軟硬件兩部分在內的初始化過程,為隨后的系統初始化和應用程序建立硬件和軟件的運行環境。

          系統級初始化:以軟件為主的初始化過程,進行操作系統的初始化。

          B、設計硬件相關的設備驅動。

         。3)系統軟件層:由RTOS、文件系統、GUI、網絡系統及通用組件模塊組成。

          RTOS是嵌入式應用軟件的基礎和開發平臺。

         。4)應用軟件:由基于實時系統開發的應用程序組成。

          3、實時系統

          (1)定義:能在指定或確定的時間內完成系統功能和對外部或內部、同步或異步時間做出響應的系統。

         。2)區別:通用系統一般追求的是系統的平均響應時間和用戶的使用方便;而實時系統主要考慮的是在最壞情況下的系統行為。

         。3)特點:時間約束性、可預測性、可靠性、與外部環境的交互性。

         。4)硬實時(強實時):指應用的時間需求應能夠得到完全滿足,否則就造成重大安全事故,甚至造成重大的生命財產損失和生態破壞,如:航天、軍事。

          (5)軟實時(弱實時):指某些應用雖然提出了時間的要求,但實時任務偶爾違反這種需求對系統運行及環境不會造成嚴重影響,如:監控系統、實時信息采集系統。

         。6)任務的約束包括:時間約束、資源約束、執行順序約束和性能約束。

        【嵌入式系統開發流程】相關文章:

        嵌入式系統開發特點08-09

        嵌入式系統開發簡介07-22

        嵌入式系統開發核心技術06-25

        嵌入式系統開發工程師考試要點08-24

        2017嵌入式系統開發工程師知識點:嵌入式系統簡介09-27

        2017年嵌入式系統開發技術考試預測題及答案06-15

        2016嵌入式系統開發技術知識點:ARM10-10

        2024嵌入式系統開發工程師考試模擬試題10-22

        嵌入式系統開發工程師考試考試要點01-20

        国产高潮无套免费视频_久久九九兔免费精品6_99精品热6080YY久久_国产91久久久久久无码

        1. <tt id="5hhch"><source id="5hhch"></source></tt>
          1. <xmp id="5hhch"></xmp>

        2. <xmp id="5hhch"><rt id="5hhch"></rt></xmp>

          <rp id="5hhch"></rp>
              <dfn id="5hhch"></dfn>