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

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

3天內(nèi)不再提示

嵌入式軟件構件平臺的系統(tǒng)級軟件構件的開發(fā)方法

牽手一起夢 ? 來源:單片機與嵌入式系統(tǒng)應用 ? 作者:楊勝春,曲朝陽 ? 2020-10-04 17:48 ? 次閱讀

嵌入式軟件構件平臺而言,其支撐平臺首先是一個嵌入式實時多任務操作系統(tǒng),其次為整個軟件構件的設計提供開發(fā)工具和集成環(huán)境。

在支撐平臺的設計過程中,可以借鑒領域工程的思想,將整個嵌入式實時多任務操作系統(tǒng)設計成一個系統(tǒng)級的軟件構件庫。這樣不但實現(xiàn)了嵌入式操作系統(tǒng)的可裁剪性,而且由于從嵌入式操作系統(tǒng)到應用程序的設計都是基于離散化的軟件構件,因此方便了嵌入式控制應用軟件設計時的集成和調(diào)試。為了方便軟件構件的管理,可以將系統(tǒng)級和應用級的軟件構件庫綜合成一個功能完備的軟件構件庫。它包括從嵌入式控制系統(tǒng)的系統(tǒng)層、支撐層和應用層所需的一切軟件構件,因而具有功能的完整性。

1 嵌入式軟件構件平臺的體系結構

嵌入式軟件構件平臺的體系結構如圖1所示,它包括系統(tǒng)層、連接層(支撐層)和應用層3個部分。系統(tǒng)層屬于領域工程的范疇,它利用領域工程的分析方法對嵌入式控制系統(tǒng)進行分析、抽象和提煉,并分解成相應的系統(tǒng)類和應用類功能模塊。連接層是一個嵌入式軟件構件平臺,它實現(xiàn)系統(tǒng)層和應用層之間的無縫連接,即提供軟件構件一個集成開發(fā)平臺。應用層屬于應用工程的范疇,用戶根據(jù)實際的嵌入式控制系統(tǒng)的控制要求和目標,從軟件構件庫中選取所需軟件構件,經(jīng)集成后生成實際的嵌入式控制應用程序。

嵌入式軟件構件平臺的系統(tǒng)級軟件構件的開發(fā)方法

圖1 嵌入式軟件構件平臺的體系結構

2 嵌入式軟件構件平臺的設計

該軟件構件平臺是基于TMS320F2812 DSP芯片構建的一個構件化的嵌入式實時多任務操作系統(tǒng)。在設計時充分利用了平臺體系結構所述的設計思想,程序的可讀性和裁剪性非常好。其特點是:

① 設計了操作系統(tǒng)和系統(tǒng)兩個數(shù)據(jù)結構。為了方便支撐平臺的設計和對系統(tǒng)資源的集中管理,設計了操作系統(tǒng)數(shù)據(jù)結構,該數(shù)據(jù)結構為平臺設計者獨占,用戶沒有訪問該數(shù)據(jù)結構的權限;另外,為了便于用戶程序與操作系統(tǒng)之間的交互以及對系統(tǒng)資源的訪問、申請,設計了系統(tǒng)數(shù)據(jù)結構。該數(shù)據(jù)結構用戶是可見的,也是應用程序訪問操作系統(tǒng)的唯一途徑。

② 配置了一個最小系統(tǒng)。其主要功能是當接到啟動指令后對指令進行確認并判斷啟動方式;然后,根據(jù)啟動方式完成微處理器CPU寄存器和一些外圍寄存器的初始化,并且對操作系統(tǒng)和系統(tǒng)兩個數(shù)據(jù)結構進行初始賦值。但它不能實現(xiàn)任何的控制功能,完成初始化后就處于系統(tǒng)掃描狀態(tài)。

③ 系統(tǒng)設計的任務數(shù)小于或等于16(即一個字長),這樣一來任務的調(diào)度算法相對比較簡單,而且完全能夠滿足嵌入式實時控制系統(tǒng)應用的要求。每一個任務指定唯一的優(yōu)先級,其任務優(yōu)先級與任務標識一致,優(yōu)先級越高的任務其優(yōu)先級ID就越低??晒┤蝿者x擇的優(yōu)先級ID范圍是0~15,其中系統(tǒng)保留了最高和最低優(yōu)先級任務。通信及系統(tǒng)同步采用了信號量方式(可以擴展),設計了P操作和V操作兩種軟件構件,對系統(tǒng)進行通信和同步管理;同時,設計了創(chuàng)建任務和任務開始兩個軟件構件,分別為任務的建立和結束提供系統(tǒng)管理。

④ 設計了任務調(diào)度、任務切換、任務上鎖、虛擬消息等軟件構件,實現(xiàn)系統(tǒng)對多任務的控制和管理。為了方便系統(tǒng)的任務切換,整個支撐平臺系統(tǒng)設計了兩類堆棧——系統(tǒng)堆棧和任務堆棧。

2.1 構件接口軟件的設計

由于本構件裝配是采用語言組態(tài)的軟件構件集成方式,因此接口的定義類似于組態(tài)入口參數(shù)序列。它主要包含軟件構件標識信息、軟件構件注冊信息及軟件構件的配置信息。標識信息識別目前所用的是哪一個軟件構件,并給出了軟件構件的切入點(虛擬地址指針);注冊信息包含軟件構件向操作系統(tǒng)申請的系統(tǒng)服務和系統(tǒng)資源,操作系統(tǒng)在得到注冊信息后,為軟件構件提供相應的系統(tǒng)服務和分配所需的系統(tǒng)資源;配置信息包括軟件構件在不同的系統(tǒng)狀態(tài)下所需的參數(shù)信息,它可以以數(shù)據(jù)或地址的狀態(tài)給出。接口類軟件主要是完成應用程序與支撐平臺的交互,起到一個系統(tǒng)接口界面的作用,方便了用戶對支撐平臺的訪問。它包括錯誤觀察WatchErr()、參數(shù)注冊SysCompReg、獲取整型量*GetAddN()、獲取浮點數(shù)*GetAddF()、獲取結構體*GetAddS()、取開關量Sys_GetBit()、存開關量Sys_BitGetvalue()、浮點數(shù)上/下限限幅Sys_Fmaxmin()、整型量上/下限限幅Sys_Nmaxmin()等函數(shù)。

2.2 系統(tǒng)配置類軟件構件的設計

這類構件在系統(tǒng)軟件集成時最多只能使用一次,主要完成系統(tǒng)資源的配置以及一些系統(tǒng)功能的啟用,包括系統(tǒng)開始、系統(tǒng)結束、擴展、擴展內(nèi)存等構件。

2.2.1 設計系統(tǒng)開始構件

一個嵌入式控制應用程序必須包括且僅包括一個系統(tǒng)開始構件,而且該構件位于軟件構件組態(tài)集成序列的末端。系統(tǒng)循環(huán)掃描一開始時,首先進入的便是該構件。該構件的功能是根據(jù)系統(tǒng)所處的系統(tǒng)狀態(tài),對系統(tǒng)參數(shù)、程序空間進行配置。其接口定義如下:

接口說明:構件號是該構件的唯一標識和切入點(該構件入口虛擬程序地址指針);啟動選擇方式主要用于設定系統(tǒng)的啟動方式;缺省通信方式主要是從CAN、MORDBUS和工業(yè)以太網(wǎng)中選擇一種作為系統(tǒng)默認的通信方式;外部高速和低速時鐘頻率用于設置高速和低速外圍所需的時鐘頻率,即可以修改最小系統(tǒng)中的初始配置;系統(tǒng)口令主要保證系統(tǒng)的安全性,不允許隨意修改組態(tài)集成格式;系統(tǒng)型號和裝配日期給出了系統(tǒng)軟件集成的一些文本信息。設計者可以根據(jù)系統(tǒng)設計需要,在構件組態(tài)集成時自由配置。

2.2.2 設計擴展構件

由于系統(tǒng)設計時,在系統(tǒng)總配置表單中規(guī)定了最大的原始構件數(shù)小于或等于511,因此當系統(tǒng)構件數(shù)目超過原始構件個數(shù)時,必須通過擴展構件來擴展系統(tǒng)構件。擴展構件的接口定義如下:

接口說明:為了方便擴展構件,該接口設計為比較靈活的方式。它僅指出了擴展構件的地址,而擴展的構件個數(shù)由組態(tài)集成結束標識0來終結組態(tài)接口參數(shù)的設置。

2.2.3 設計擴展內(nèi)存構件

在支撐平臺的設計中,根據(jù)嵌入式控制應用程序的需要,將系統(tǒng)的整個內(nèi)存空間劃分為4大塊,每一塊有固定的長度和使用域。當應用程序對內(nèi)存的需求超出設計范圍時,可以利用擴展內(nèi)存構件對內(nèi)存進行擴展。其接口定義如下:

2.2.4 設計系統(tǒng)結束構件

系統(tǒng)結束構件固定位于軟件組態(tài)集成序列的前端,即組態(tài)集成號為0。它在系統(tǒng)軟件構件組態(tài)集成完畢后、即將進入系統(tǒng)運行時啟用該構件,即處于系統(tǒng)循環(huán)的最后。它在系統(tǒng)工作狀態(tài)工作,執(zhí)行返回軟件組態(tài)集成序列起始地址的功能。在系統(tǒng)初始化狀態(tài)時,完成標定數(shù)據(jù)和一般數(shù)據(jù)的獲取和保存,并執(zhí)行啟動系統(tǒng)時鐘和看門狗,以及返回組態(tài)序列起始地址等系統(tǒng)功能。接口參數(shù)僅有一個標識該構件的構件號0。

2.3 系統(tǒng)任務類軟件構件的設計

任務創(chuàng)建構件Task:一般的多任務操作系統(tǒng)運行之前,系統(tǒng)必須至少建立一個任務,一般是一個空閑任務,其他任務可以在程序運行的過程中創(chuàng)建。但在本支撐平臺的設計中,鑒于一個實際的嵌入式控制應用程序的任務數(shù)事先是可以確定的,因而設計了任務創(chuàng)建構件,可以利用該構件在應用程序的軟件集成過程中創(chuàng)建所需的任務。該構件的組態(tài)集成接口定義如下:

設計說明:每定義一個任務使用一次該構件。任務號是外指針,用戶可見,里面包含虛擬程序地址指針、任務優(yōu)先級等信息;系統(tǒng)為每個任務分配了堆??臻g,由于任務的不同,可能對系統(tǒng)資源的需求也不同,為了節(jié)省整個系統(tǒng)的內(nèi)存空間,用戶可以從組態(tài)集成接口直接指定任務堆棧的大?。粸榱烁櫲蝿盏倪\行時間和任務定時,在接口中設計了時間單位和時間長度2個參數(shù),對任務的運行時間進行統(tǒng)計和定時計數(shù)。另外,為了方便任務切換,整個支撐平臺設計了兩類堆棧,即系統(tǒng)堆棧和任務堆棧。因此在建立任務時,要根據(jù)所處的系統(tǒng)狀態(tài),對每一個任務的任務堆棧進行初始化設置。

2.4 通信和同步管理類軟件構件的設計

任務間的通信有2種途徑:通過全程變量,或發(fā)消息給另一個任務。使用全程變量時,必須保證每個任務或中斷服務程序獨享該變量。中斷服務中保證獨享的唯一辦法是關中斷。如果兩個任務共享某變量,各任務實現(xiàn)獨享該變量的辦法可以是關中斷再開中斷,或使用信號量。在支撐平臺的設計中,采用了信號量方式進行系統(tǒng)的通信和同步管理,包括P操作PSema和V操作VSema兩種軟件構件。

P操作軟件構件實現(xiàn)下列功能:在系統(tǒng)注冊狀態(tài)完成注冊表的填寫,向系統(tǒng)申請所需的系統(tǒng)資源;在系統(tǒng)參數(shù)初始化狀態(tài)完成信號量數(shù)據(jù)結構的初始化;在系統(tǒng)工作狀態(tài),如果信號量大于零(即信號量可用),則信號量減1,否則表示信號量不可用,進行任務懸掛操作和任務切換。其接口定義如下:

接口說明:信號量地址是外指針,用戶可見,是信號量數(shù)據(jù)結構的入口點;信號量初值若設為1,則表示任務通信,若為0,則表示任務同步。

V操作軟件構件只在系統(tǒng)工作狀態(tài)下工作,與P操作軟件構件公用一個數(shù)據(jù)結構。它首先將信號量減1,然后判斷信號量是否大于零。若大于零,表示公共資源可用,則使所給定任務就緒,并進行任務調(diào)度和切換。其接口如下:

由于采用構件化的設計方式,系統(tǒng)通信和同步方式可以自由擴展。比如說可以在支撐平臺添加郵箱或消息隊列構件,采用哪種通信和同步方式主要根據(jù)系統(tǒng)的設計需要而定。

3 集成開發(fā)環(huán)境

本課題組采用微型消息總線MMB嵌入式系統(tǒng)集成開發(fā)環(huán)境(MMBIDE)應用程序編程語言引入IEC611 313標準,將結構化語句(Structured Text)描述程序設計語言作為自身嵌入式系統(tǒng)應用軟件的編程語言。這主要是考慮到MMB嵌入式系統(tǒng)應用于工業(yè)控制領域,要求能夠自身可以完成較復雜的控制運算,同時要求語句清晰、易懂,具有編程任務高度壓縮化的表達格式。采用交叉開發(fā)方法,在Windows主機平臺上開發(fā)與之連接的目標機。開發(fā)環(huán)境包括自己的可裁剪的微內(nèi)核實時多任務操作系統(tǒng),主機上的編譯、調(diào)試、查看等工具,以及串口、網(wǎng)絡與目標機的連接工具。其主要功能包括面向工業(yè)應用領域的應用程序基本框架、可重用的構件庫、源程序編譯器、組態(tài)下載用戶工具、參數(shù)下載用戶工具、參數(shù)實時監(jiān)控界面等用于支撐應用程序開發(fā)的各類用戶工具,是用戶開發(fā)應用程序的重要基礎,強調(diào)知識成果的積累和重用,是平臺開發(fā)模式思想的集中體現(xiàn)。

結語

本軟件開發(fā)平臺應用軟件構件技術主要解決下列問題:軟件構件的接口定義,提供軟件構件與系統(tǒng)以及軟件構件之間的交互機制,同時為軟件構件的設計和封裝提供依據(jù)。軟件構件的開發(fā)和集成,為軟件構件的設計和集成提供必要的開發(fā)工具。本文介紹了其中主要的系統(tǒng)級軟件構件的開發(fā)方法,為系統(tǒng)集成各種應用級軟件提供了總體框架,解決了控制系統(tǒng)應用軟件難維護、難繼承的問題,為控制類應用軟件的開發(fā)提供了依據(jù)。

責任編輯:gt

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

    關注

    5059

    文章

    18973

    瀏覽量

    302033
  • 控制系統(tǒng)

    關注

    41

    文章

    6509

    瀏覽量

    110381
  • 操作系統(tǒng)

    關注

    37

    文章

    6684

    瀏覽量

    123140
收藏 人收藏

    評論

    相關推薦

    面向無線傳感網(wǎng)絡的構件開發(fā)方法

    TinyOS 系統(tǒng)開發(fā)構件化的無線傳感器協(xié)議的方法已被廣泛使用。但是,目前由于開發(fā)者過度依靠現(xiàn)有的集成
    發(fā)表于 11-02 15:43

    采用構件技術實現(xiàn)嵌入式系統(tǒng)復用軟件設計

    作者:東北電力大學 楊勝春 曲朝陽引言對嵌入式軟件構件平臺而言,其支撐平臺首先是一個嵌入式實時多
    發(fā)表于 05-07 07:00

    請問怎樣去設計嵌入式軟件構件平臺?

    嵌入式軟件構件平臺的體系結構是由哪些部分構成的?怎樣去設計嵌入式軟件
    發(fā)表于 04-23 07:01

    嵌入式硬件構件與底層驅動構件相關資料推薦

    慕課蘇州大學.嵌入式開發(fā)及應用.第二章.入門與軟件框架.嵌入式硬件構件與底層驅動構件基本規(guī)范0 目錄2 入門與
    發(fā)表于 10-27 07:05

    嵌入式硬件構件與底層驅動構件

    嵌入式硬件構件與底層驅動構件基本規(guī)范構件化設計嵌入式硬件構件核心
    發(fā)表于 10-27 09:01

    構件方法進行GPIO應用編程

    慕課蘇州大學.嵌入式開發(fā)及應用.第二章.入門與軟件框架.用構件方法進行GPIO應用編程0 目錄2 入門與軟件框架2.3 用
    發(fā)表于 11-08 07:35

    UART驅動構件的設計方法

    慕課蘇州大學.嵌入式開發(fā)及應用.第二章.入門與軟件框架.UART驅動構件的設計方法0 目錄2 入門與軟件框架2.1 UART驅動
    發(fā)表于 11-08 07:50

    車用嵌入式開放系統(tǒng)的軟構件研究

    研究適應于嵌入式領域的嵌入式構件是改進嵌入式軟件開發(fā)方法的重要途徑。首先闡述了
    發(fā)表于 04-21 21:58 ?12次下載

    構造嵌入式系統(tǒng)軟件構件模型研究

    目前嵌入式系統(tǒng)軟件開發(fā)方法不利于嵌入式系統(tǒng)的發(fā)展,如何將高級的構件技術應用到
    發(fā)表于 06-03 09:55 ?17次下載

    采用構件技術的嵌入式系統(tǒng)復用軟件設計

    采用構件技術的嵌入式系統(tǒng)復用軟件設計 提高軟件生產(chǎn)率成為軟件產(chǎn)業(yè)的當務之急;基于
    發(fā)表于 03-29 15:10 ?766次閱讀
    采用<b class='flag-5'>構件</b>技術的<b class='flag-5'>嵌入式</b><b class='flag-5'>系統(tǒng)</b>復用<b class='flag-5'>軟件</b>設計

    嵌入式軟件開發(fā)構件技術的研究

    隨著嵌入式軟件復雜性的提高和需求量的增加,如何提高低效的傳統(tǒng)嵌入式軟件開發(fā)方法成為嵌入式領域研究
    發(fā)表于 12-27 15:59 ?32次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>中<b class='flag-5'>構件</b>技術的研究

    嵌入式系統(tǒng)構件

    嵌入式開發(fā)嵌入式系統(tǒng)構件大家可以下載來看看
    發(fā)表于 05-06 16:43 ?23次下載

    基于嵌入式軟件開發(fā)構件技術的研究

    基于嵌入式軟件開發(fā)構件技術的研究
    發(fā)表于 10-30 15:36 ?6次下載
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>軟件開發(fā)</b>中<b class='flag-5'>構件</b>技術的研究

    探究關于μC/OS—II的嵌入式構件系統(tǒng)設計

    本文嘗試將構件軟件設計思想引入嵌入式軟件設計中,提出了一種適用于嵌入式軟件的基于
    的頭像 發(fā)表于 03-24 14:52 ?1908次閱讀
    探究關于μC/OS—II的<b class='flag-5'>嵌入式</b><b class='flag-5'>構件</b><b class='flag-5'>系統(tǒng)</b>設計

    慕課嵌入式開發(fā)及應用(第二章.嵌入式硬件構件與底層驅動構件基本規(guī)范)

    慕課蘇州大學.嵌入式開發(fā)及應用.第二章.入門與軟件框架.嵌入式硬件構件與底層驅動構件基本規(guī)范0 目錄2 入門與
    發(fā)表于 10-19 18:33 ?8次下載
    慕課<b class='flag-5'>嵌入式開發(fā)</b>及應用(第二章.<b class='flag-5'>嵌入式</b>硬件<b class='flag-5'>構件</b>與底層驅動<b class='flag-5'>構件</b>基本規(guī)范)