吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

嵌入式系統底層軟件可移值性設計及開發流程分析

牽手一起夢 ? 來源:單片機與嵌入式系統應用 ? 作者:v ? 2020-10-04 18:02 ? 次閱讀

在闡述嵌入式系統軟件設計方法的基礎上,介紹嵌入式系統底層軟件可移值性設計和硬件抽象層的建立;舉例說明利用此思想的嵌入式軟件的設計及測試過程。

1 嵌入式系統設計

由于嵌入式系統有著體積小、功能集中、可靠性高等優點,已被廣泛地應用到日常生活的各個方面,如移動通信工業控制、醫療器械,家用電器等。如何縮短嵌入式系統的開發周期,降低開發成本,以及提高產品的可靠性已成為嵌入式行業普遍關注的問題。在嵌入式系統設計中,通常采用以下設計方法。

(1)瀑布模式開發過程

瀑布模式開發過程工作模式簡單,任務的劃分協調及人員安排、物質材料的分配管理都比較容易。如圖1所示,開發過程為從硬件到軟件的流水線式進行。此類開發方式有以下特點:

◇ 小系統,如利用8051控制的低速率信號采集等;

◇ 開發所需人力、物力資源有限,一般1個或幾個人即可完成;

◇ 要求開發人員對軟、硬件設計和制作都比較熟悉;

◇ 對開發周期要求不高,此類開發過程無疑會使用最長的開發周期;

◇ 在開發過程中,任一環節的阻塞都會影響其它環節的開發。

嵌入式系統底層軟件可移值性設計及開發流程分析

(2)V模式開發過程

V模式開發過程為一種并行的工作方式,任務的劃分協調及人員安排、物質材料的分配都必須考慮不同工作內容,如圖2 所示。

開發過程為硬件和軟件同時進行,最后聯合調試。此類開發方式有以下特點:

◇ 大系統,如利用PowerPC等處理器設計的網絡交換/訪問設備;

◇ 開發人力、物力資源比較豐富;

◇ 開發人員分工比較明確,軟件開發者可不需了解太多的硬件信息,而硬件開發人員對軟件也可不做太多了解;

◇ 有利于縮短開發周期;

◇ 在開發過程中,軟、硬件設計獨立進行。 硬件開發的阻塞不會影響軟件開發過程,同樣,軟件開發的阻塞不會影響硬件的開發過程。

但在V模式開發過程中,仍存在以下問題:

◇ 設備驅動程序的可移值性差,與硬件和操作系統均有密切相關性;

◇ 軟件測試需要等硬件完成以后才能進行;

◇ 對于每個設備驅動程序設計人員都需有軟件和硬件的知識背景;

◇ 在測試過程中,很難判斷錯誤是由硬件還是由軟件造成的。

為了克服V模式開發過程中的上述問題,本文將V模式開發過程稍作改進,增加了硬件抽象層,對系統軟硬件起到隔離作用,從而提高系統軟件的可移值性及有效地利用人力資源、縮短開發周期和提高產品的可靠性。

2 基于硬件抽象層的系統軟件設計特性

(1)包含硬件抽象層的系統結構

比較圖3和圖4,硬件抽象層完全把系統軟件和硬件部分隔離開來,這樣就使得系統的設備驅動程序與硬件設備無關,從而大大提高了系統的可移植性。從軟硬件測試角度來看,軟硬件的測試工作都可分別基于硬件抽象層來完成,使得軟硬件的測試工作的并行進行成為可能。在抽象層的定義方面,需要規定統一的軟硬件接口標準,其設計工作需要基于系統需求來做,代碼工作可由對硬件比較熟悉的人員來完成。抽象層一般應包含相關硬件的初始化、數據的輸入/輸出操作、硬件設備的配置操作等功能。

(2)包含硬件抽象層的系統開發過程

如圖5給出的包含硬件抽象層V模式開發過程,在系統需求分析并定義了軟硬件各自的設計要求以后,就需要花費一定的時間來定義硬件抽象層的接口,以確保硬件設計和測試與軟件設計和測試工作能夠在相同的接口上進行,從而有利于最終的軟硬件集成測試。

從圖5可以看出,在基于硬件抽象層的V模式開發過程,軟硬件的設計和調試具有無關性,并可完全地并行進行。硬件的錯誤不會影響到系統軟件的調試,同樣軟件設計的錯誤也不會影響硬件的調試工作,這樣就可大大縮短系統的測試周期和提高系統的可靠性。

(3)硬件抽象層的特點

硬件抽象層接口的定義和代碼設計應具有以下特點:

◇ 硬件抽象層具有與硬件密切相關性;

◇ 硬件抽象層具有與操作系統無關性;

◇ 接口定義的功能應包含硬件或系統所需硬件支持的所有功能;

◇ 接口定義簡單明了,太多接口函數會增加軟件模擬的復雜性;

◇ 具有可測性的接口設計有利于系統的軟硬件測試和集成。

3 硬件抽象層的設計示例

硬件抽象層接口的設計一般應包含以下幾個步:

◇ 分析接口的數據傳輸特性(雙向/單向數據傳輸,字節型/數據幀型傳輸模式);

◇ 分析接口配置屬性;

◇ 定義接口所需的相關函數。

下面給出以字符為單位進行數據傳輸的UART接口硬件抽象層的接口定義內容:

◇ 設備初始化函數

BOOL InitDevice(Device_Register *regs, Device_Attribute *attr)

① 第一個參數為指向設備寄存器結構的指針,用來索引設備的相關寄存器。

② 第二個參數為一個設備屬性的結構,用于描述設備初始化設置的屬性(波特率、校驗位等等)。

③ 函數返回一個布爾類型,用于描述初始化過程的正確性。

◇ 設備字符輸入

BOOL ReadDevice(Device_Register *regs, unsigned char *c)

① 第一個參數為指向設備寄存器結構的指針,用來索引設備的相關寄存器。

② 第二個參數為指向字符的地址空間,用于保存設備輸入的字符。

③ 函數返回一個布爾類型,用于描述設備字符輸入的正確性。

◇ 設備字符輸出

BOOL WriteDevice(Device_Register *regs, unsigned char c)

① 第一個參數為指向設備寄存器結構的指針,用來索引設備的相關寄存器。

② 第二個參數為設備所要輸出的字符。

③ 函數返回一個布爾類型,用于描述設備字符輸出的正確性。

◇ 設備屬性設置

BOOL SetDevice(Device_Register *regs, Device_Attribute *attr)

① 第一個參數為指向設備寄存器結構的指針,用來索引設備的相關寄存器。

② 第二個參數為一個設備屬性的結構,用于描述設備初始化設置的屬性(波特率、校驗位等等)。

③ 函數返回一個布爾類型,用于描述設備屬性設置的正確性。

4 結 論

以上所述的是作者在多年嵌入式系統開發中所總結出的開發流程,并在實踐應用中起到了很好的效果。相信在一個較為復雜的嵌入式系統開發過程中,很好地利用上述開發流程,將會有利于提高系統的可移植性、減少產品的開發和測試周期,并能很好地保證產品的可靠性。

責任編輯:gt

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5093

    文章

    19178

    瀏覽量

    307709
  • 醫療
    +關注

    關注

    8

    文章

    1836

    瀏覽量

    58952
  • 工業控制
    +關注

    關注

    38

    文章

    1468

    瀏覽量

    86030
收藏 人收藏

    評論

    相關推薦

    嵌入式系統的定義與開發框架 流程

    及實現上過于復雜,這樣一方面利于控制系統成本,同時也利于系統安全實時操作系統:這是嵌入式軟件
    發表于 07-09 10:14

    嵌入式系統開發流程是怎樣的

    嵌入式系統開發流程嵌入式系統的一般開發可以參照下圖所示流程
    發表于 10-27 06:12

    嵌入式系統軟件開發環境

    嵌入式系統的概念嵌入式系統的基本架構嵌入式操作系統的基本組成和分類
    發表于 11-08 08:37

    底層驅動開發底層軟件開發到底有何不同

    嵌入式入門學習筆記4:[轉]什么是嵌入式底層驅動開發嵌入式底層
    發表于 12-17 07:44

    嵌入式底層開發為什么選擇C語言

    一、嵌入式系統開發概述1、傳統開發模式的缺點:軟件直接和硬件打交道,軟件移植差。
    發表于 12-17 08:32

    進行嵌入式操作系統和應用軟件開發

    我們知道嵌入式操作系統(Embedded System)是指以應用為中心、以計算機技術為基礎,軟件硬件裁剪、適應應用系統對功能、可靠
    發表于 12-17 08:25

    嵌入式軟件系統設計中的正交分析

    嵌入式軟件系統設計中的正交分析 嵌入式軟件
    發表于 03-29 15:09 ?683次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b><b class='flag-5'>系統</b>設計中的正交<b class='flag-5'>性</b><b class='flag-5'>分析</b>

    嵌入式軟件開發流程_嵌入式軟件的調試

    本文首先介紹了嵌入式軟件的發展,其次闡述了嵌入式軟件開發流程,最后介紹了
    發表于 08-31 16:02 ?6354次閱讀

    嵌入式系統中數字濾波的算法及軟件流程

    嵌入式系統中數字濾波的算法及軟件流程(嵌入式開發工具軟件是什么)-嵌入式
    發表于 07-30 12:45 ?15次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>系統</b>中數字濾波的算法及<b class='flag-5'>軟件</b><b class='flag-5'>流程</b>

    嵌入式底層開發為什么選擇C語言

    嵌入式底層開發為什么選擇C語言嵌入式系統的編寫語言主要是C語言,部分底層代碼會用到匯編語言。
    發表于 10-20 13:35 ?2次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>底層</b><b class='flag-5'>開發</b>為什么選擇C語言

    嵌入式Linux(基礎篇)】嵌入式Linux底層系統開發流程和應用開發流程

    介紹了嵌入式Linux系統體系架構,以及每一層開發人員的開發流程
    發表于 11-02 14:51 ?21次下載
    【<b class='flag-5'>嵌入式</b>Linux(基礎篇)】<b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>底層系統開發</b><b class='flag-5'>流程</b>和應用<b class='flag-5'>開發</b><b class='flag-5'>流程</b>

    嵌入式軟件開發的特點、設計流程嵌入式軟件的結構

    ? ? ? ?嵌入式軟件開發的特點、設計流程嵌入式軟件的結構?一:嵌入式
    發表于 11-03 15:21 ?38次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b>的特點、設計<b class='flag-5'>流程</b>、<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的結構

    嵌入式產品開發流程

    嵌入式產品,與普通電子產品一樣,開發過程都需要遵循一些基本的流程,都是一個從需求分析到總體設計,詳細設計到最后產品完成的過程。但是,與普通電子產品相比,
    發表于 11-04 10:06 ?36次下載
    <b class='flag-5'>嵌入式</b>產品<b class='flag-5'>開發</b><b class='flag-5'>流程</b>

    嵌入式軟件開發流程

    電子發燒友網站提供《嵌入式軟件開發流程.ppt》資料免費下載
    發表于 11-17 14:37 ?4次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發</b><b class='flag-5'>流程</b>

    嵌入式軟件開發流程

    電子發燒友網站提供《嵌入式軟件開發流程.doc》資料免費下載
    發表于 11-17 14:39 ?0次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件</b>的<b class='flag-5'>開發</b><b class='flag-5'>流程</b>
    百家乐官网诀| 豫游棋牌游戏中心| 代理百家乐官网试玩| 大发888网页版登陆| 太子百家乐官网的玩法技巧和规则| 大发888老虎机手机版下载安装| 扑克王百家乐官网的玩法技巧和规则 | 赌片百家乐官网的玩法技巧和规则| 大发888 dafa888uk.com| 网上赌百家乐官网有假| 赌场游戏| 百家乐赌博现金网平台排名| 大世界百家乐官网娱乐城| 太阳城sun866| 91百家乐官网的玩法技巧和规则| 申博娱乐城开户| 百家乐二号博彩正网| 百家乐官网做中介赚钱| 时时博百家乐的玩法技巧和规则 | 天博百家乐娱乐城| 伯爵百家乐官网的玩法技巧和规则 | 网上百家乐哪家较安全| 打百家乐官网纯打庄的方法| 盐城棋牌游戏中心| 百家乐网上投注文章| 百家乐官网顺序| 银河国际娱乐场| 百家乐透明出千牌靴| 加州百家乐官网的玩法技巧和规则 | 大发888官网 df888| 百家乐珠盘路| 百家乐官网有无技巧| 金牌娱乐城官网| 天博百家乐的玩法技巧和规则| 百家乐官网追号软件| 百家乐官网论坛在线提供| 德州扑克怎么分钱| 蓝盾百家乐打法| 百家乐官网任你博赌场娱乐网规则| 修水县| 冠通网络棋牌世界|