新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 嵌入式開發的設計模式及發展趨勢

        嵌入式開發的設計模式及發展趨勢

        作者: 時間:2013-09-09 來源:網絡 收藏

        經過20多年的發展,單片機品種不斷增多,功能不斷增強,應用范圍不斷擴大,時間(Time to Market)要求越來越短。為了節省時間,微處理器在16位和32位應用場合得到使用,大量的微機程序可直接引用。

          在軟件上,由匯編語言編程、高級語言C語言編程,轉向在實時操作系統(Real Time Operating System,簡稱RTOS)之上編程。

          在硬件設計上,由使用分立元件和微機接口芯片轉向更加集成化的——CPU+PLD+AD/DA。

          CPU即 MCU或MPU, PLD即可編程邏輯器件。模數混合的集成電路很難設計生產,現階段AD/DA即模數和數模轉換器等模擬電路還采用傳統的設計方法。PLD芯片可以在系統編程ISP(In System Programming),硬件已經軟化,隨時可以進行修改。

          1999年全國大學生電子設計競賽和許多產品的硬件設計已采用這種。為進一步縮短時間、加強管理,平臺觀念已逐步引入到產品的設計開發過程中。從隨意性開發轉向平臺開發模式是應用軟硬件設計開發的發展趨勢。

          軟件開發

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

          用C語言編程是單片機軟件開發的必然趨勢。C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,并具備匯編語言的功能。 C語言有功能豐富的庫函數、運算速度快、編譯效率高、可移植性好,而且可以直接實現對系統硬件的控制。C語言是一種結構化程序設計語言,支持當前程序設計中廣泛采用的由頂向下結構化程序設計技術。

          采用C語言也不必對單片機和硬件接口的結構有很深入的了解,編譯器可以自動完成變量存儲單元的分配,編程者專注于應用軟件部分的設計即可,這樣大大加快了軟件的開發速度。采用C語言可以很容易地進行單片機的程序移植工作,有利于產品中單片機的重新選型。

          采用C語言,可針對單片機常用的接口芯片編制通用的驅動函數,針對常用的功能模塊、算法等編制相應的函數。這些函數經過歸納整理可形成專家庫函數,供廣大的單片機愛好者使用、完善,這樣可大大提高國內單片機軟件設計水平。C語言可讀性的特點,更容易使大家借鑒前人的開發經驗,提高自己的軟件設計水平。

          對于C語言生成代碼的時空效率,一般來講,程序代碼長度增加20%,程序執行速度約減慢20%。這在片內程序存儲器不斷擴大、晶振頻率不斷提高的今天,已不是主要考慮的問題。

          況且,這是和優秀的匯編程序員編制代碼的比較。當然,非常注重代碼效率的場合可以是以C語言為主,匯編語言為輔。匯編語言掌握到只要可以讀懂程序,在時間要求比較嚴格的模塊中進行程序的優化即可。在可移植性方面,單片機C語言都符合ANSI C標準,差別主要是有關片內資源的不同配置及使用,這可以通過采用不同的頭文件,經過少量的加工就可以實現。

          隨著國內單片機開發工具研制水平的提高,現在的單片機仿真器普遍支持C語言程序調試,為單片機編程使用C語言提供了便利的條件。單片機的C語言相對微機的C語言要好學得多,它沒有微機 C語言有關文件的使用,也不必掌握標準輸入輸出設備有關的格式要求。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 3 下一頁

        關鍵詞: 嵌入式 開發 設計模式

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 托克托县| 禄丰县| 宁晋县| 上杭县| 长白| 云和县| 清苑县| 双柏县| 炎陵县| 马山县| 兴隆县| 察隅县| 晋城| 伊宁县| 申扎县| 嘉黎县| 库车县| 莎车县| 石棉县| 宜州市| 崇左市| 龙口市| 乌苏市| 通城县| 天津市| 锡林浩特市| 鹿邑县| 西贡区| 萍乡市| 大理市| 宣化县| 庐江县| 奎屯市| 红桥区| 周宁县| 太和县| 洞口县| 遂溪县| 祁东县| 平果县| 寿光市|