<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 嵌入式應用設計模式

嵌入式應用設計模式

作者: 時(shí)間:2012-06-02 來(lái)源:網(wǎng)絡(luò ) 收藏
  嵌入式應用是指嵌入于各種設備及應用產(chǎn)品內部的計算機應用。嵌入式應用分微控制器(Microcontroller,簡(jiǎn)稱(chēng)MCU)和嵌入式微處理器(EmbeddedMicroprocessor,簡(jiǎn)稱(chēng)MPU)的應用。微控制器即國內俗稱(chēng)的單片機,由SingleChipComputer翻譯而來(lái),主要是面向控制,是計算機小型化發(fā)展的產(chǎn)物。嵌入式微處理器主要是面向數據處理,有相應的CPU對應。單片機是20世紀80年代初引入我國的。經(jīng) 20多年的發(fā)展,單片機品種不斷增多,功能不斷增強,應用范圍不斷擴大,開(kāi)發(fā)時(shí)間(TimetoMarket)要求越來(lái)越短。為了節省時(shí)間,嵌入式微處理器在16位和32位應用場(chǎng)合得到使用,大量的微機程序可直接引用。在軟件開(kāi)發(fā)上,由匯編語(yǔ)言編程、高級語(yǔ)言編程,轉向在實(shí)時(shí)操作系統(RealTimeOperatingSystem,簡(jiǎn)稱(chēng))之上編程。在硬件設計上,由使用分立元件和微機接口芯片轉向更加集成化的設計模式——CPU++AD/DA。CPU即MCU或MPU,即可編程邏輯器件。模數混合的集成電路很難設計生產(chǎn),現階段AD/DA即模數和數模轉換器等模擬電路還采用傳統的設計方法。芯片可以在系統編程ISP(InSystemProgramming),硬件已經(jīng)軟化,隨時(shí)可以進(jìn)行修改。1999年全國大學(xué)生電子設計競賽和許多產(chǎn)品的硬件設計已采用這種設計模式。為進(jìn)一步縮短開(kāi)發(fā)時(shí)間、加強管理,平臺觀(guān)念已逐步引入到產(chǎn)品的設計開(kāi)發(fā)過(guò)程中。從隨意性開(kāi)發(fā)轉向平臺開(kāi)發(fā)模式是嵌入式應用軟硬件設計開(kāi)發(fā)的發(fā)展趨勢。

一、軟件開(kāi)發(fā)

  單片機生產(chǎn)廠(chǎng)家不斷增多,單片機品種層出不窮。單片機廣泛選擇是當今產(chǎn)品開(kāi)發(fā)的一個(gè)重要環(huán)節。每個(gè)單片機系列的指令系統不同,與指令系統對應的匯編助記符就不同。匯編語(yǔ)言的不兼容性使得在一種單片機上編制的程序,在另一種單片機上不能運行,單片機重新選型后程序必須重新編制。匯編語(yǔ)言的難記、難讀及易搞混,每個(gè)匯編程序員深有同感。自己編制的程序過(guò)一段時(shí)間修改時(shí),往往要重讀很大部分,經(jīng)過(guò)長(cháng)時(shí)間回憶才能找到問(wèn)題所在。修改別人留下的匯編源程序,若程序的注釋說(shuō)明不詳細、程序的思路不清晰、子程序使用不夠多的話(huà),還不如自己重新編制。

  用編程是單片機軟件開(kāi)發(fā)的必然趨勢。是一種編譯型程序設計語(yǔ)言,它兼顧了多種高級語(yǔ)言的特點(diǎn),并具備匯編語(yǔ)言的功能。C語(yǔ)言有功能豐富的庫函數、運算速度快、編譯效率高、可移植性好,而且可以直接實(shí)現對系統硬件的控制。C語(yǔ)言是一種結構化程序設計語(yǔ)言,支持當前程序設計中廣泛采用的由頂向下結構化程序設計技術(shù)。采用C語(yǔ)言也不必對單片機和硬件接口的結構有很深入的了解,編譯器可以自動(dòng)完成變量存儲單元的分配,編程者專(zhuān)注于應用軟件部分的設計即可,這樣大大加快了軟件的開(kāi)發(fā)速度。采用C語(yǔ)言可以很容易地進(jìn)行單片機的程序移植工作,有利于產(chǎn)品中單片機的重新選型。采用C語(yǔ)言,可針對單片機常用的接口芯片編制通用的驅動(dòng)函數,針對常用的功能模塊、算法等編制相應的函數。這些函數經(jīng)過(guò)歸納整理可形成專(zhuān)家庫函數,供廣大的單片機愛(ài)好者使用、完善,這樣可大大提高國內單片機軟件設計水平。C語(yǔ)言可讀性的特點(diǎn),更容易使大家借鑒前人的開(kāi)發(fā)經(jīng)驗,提高自己的軟件設計水平。對于C語(yǔ)言生成代碼的時(shí)空效率,一般來(lái)講,程序代碼長(cháng)度增加20%,程序執行速度約減慢20%。這在片內程序存儲器不斷擴大、晶振頻率不斷提高的今天,已不是主要考慮的問(wèn)題。況且,這是和優(yōu)秀的匯編程序員編制代碼的比較。當然,非常注重代碼效率的場(chǎng)合可以是以C語(yǔ)言為主,匯編語(yǔ)言為輔。匯編語(yǔ)言掌握到只要可以讀懂程序,在時(shí)間要求比較嚴格的模塊中進(jìn)行程序的優(yōu)化即可。在可移植性方面,單片機C語(yǔ)言都符合ANSIC標準,差別主要是有關(guān)片內資源的不同配置及使用,這可以通過(guò)采用不同的頭文件,經(jīng)過(guò)少量的加工就可以實(shí)現。隨著(zhù)國內單片機開(kāi)發(fā)工具研制水平的提高,現在的單片機仿真器普遍支持C語(yǔ)言程序調試,為單片機編程使用C語(yǔ)言提供了便利的條件。單片機的C語(yǔ)言相對微機的C語(yǔ)言要好學(xué)得多,它沒(méi)有微機 C語(yǔ)言有關(guān)文件的使用,也不必掌握標準輸入輸出設備有關(guān)的格式要求。北京航空航天大學(xué)出版社出版的《單片機的C語(yǔ)言應用程序設計》(修訂版)教材是專(zhuān)為沒(méi)有C基礎的人編寫(xiě)的,大量的實(shí)例可引導大家進(jìn)入單片機C時(shí)代。嵌入式微處理器是以C、C++甚至JAVA語(yǔ)言進(jìn)行編程的,并普遍采用。

  在嵌入式應用中使用是由于嵌入式應用一般是計算機實(shí)時(shí)系統,有兩個(gè)重要特性:實(shí)時(shí)性和可靠性。實(shí)時(shí)性標準常用“系統響應時(shí)間”來(lái)衡量,即當一外部事件發(fā)生,系統能在多少時(shí)間內響應事件。RTOS分強實(shí)時(shí)和弱實(shí)時(shí)兩種。強實(shí)時(shí)RTOS用于對時(shí)間要求比較嚴格的場(chǎng)合??煽啃詷藴食S孟到y平均無(wú)故障運行時(shí)間,即平均的故障間隔時(shí)間MTBF來(lái)衡量。操作系統(OS)是一組計算機程序的集合,用來(lái)有效地控制和管理計算機的硬件和軟件資源,即合理地對資源進(jìn)行調度,并為用戶(hù)提供方便的應用接口。它為應用支持軟件提供運行環(huán)境,即對程序開(kāi)發(fā)者提供功能強、使用方便的開(kāi)發(fā)環(huán)境。OS的前身就是監控程序,類(lèi)似于單片機仿真器的監控程序。RTOS是多任務(wù)的,每個(gè)用戶(hù)的應用程序可以設計成多個(gè)不同的任務(wù),這些任務(wù)可以并發(fā)執行,提高系統的吞吐量,更有效地利用系統資源。常用的任務(wù)調度算法為:優(yōu)先級加輪詢(xún)、非搶占式優(yōu)先級調度、按優(yōu)先級搶占的調度算法。任務(wù)間通信與同步機制為:郵箱、隊列、信號量、事件標志。劃分任務(wù)時(shí),任務(wù)之間的通信要盡可能少,這樣可以簡(jiǎn)化設計?;谌蝿?wù)的設計可擴展、可管理、可大大提高系統的可靠性。RTOS提供給用戶(hù)的是各種系統調用。中斷、時(shí)間基準及定時(shí)的管理都由RTOS完成。采用RTOS編程可大幅度縮短程序的開(kāi)發(fā)時(shí)間。RTOS一般都可裁剪、移植,適用于多種硬件環(huán)境,可以和應用程序一起固化到應用系統中。隨著(zhù)后PC時(shí)代的來(lái)臨,微軟維納斯計劃推出WindowsCE,我國女?huà)z計劃推出自主版權的Hopen實(shí)時(shí)多任務(wù)操作系統。 “3C”結合的信息家電問(wèn)世,RTOS引起國內業(yè)界的極大關(guān)注。國內已引入pSOS、VRTX、VxWorks、QNX、Nucleus等RTOS以及 CMX和RTXC小型適合單片機的帶源代碼的RTOS。免費公開(kāi)內核的RTLinux和μCOS也是使用的熱點(diǎn)。清華大學(xué)出版社出版了《工業(yè)控制計算機實(shí)時(shí)操作系統》。國際上很有名的有關(guān)μCOS的專(zhuān)著(zhù)《MicroC/OS-iiTheRealTimeKernel》不久將在國內翻譯出版。 RTOS會(huì )更加深入人心,嵌入式應用軟件開(kāi)發(fā)由匯編、C向RTOS發(fā)展。

c語(yǔ)言相關(guān)文章:c語(yǔ)言教程


c++相關(guān)文章:c++教程


晶振相關(guān)文章:晶振原理

上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: C語(yǔ)言 RTOS SOC PLD VHDL平臺

評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>