一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

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

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

基于單片機的占先式實時內(nèi)核的設計與實現(xiàn)

電子設計 ? 來源:單片機與嵌入式系統(tǒng)應用 ? 作者:鄭竑宇,宋寅卯 ? 2020-09-09 18:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

引言

在過去的10多年里,嵌入式技術得到飛速發(fā)展。隨著嵌入式應用的不斷深入,嵌入式系統(tǒng)的復雜性、不確定性在不斷提高,系統(tǒng)規(guī)模也在逐步增大;而產(chǎn)品的研發(fā)周期又在不斷地縮短,這給嵌入式應用軟件的開發(fā)帶來了新的挑戰(zhàn)。因此,最近幾年,對占先式實時內(nèi)核的研究、開發(fā)與應用逐漸成為嵌入式系統(tǒng)的重點研究方向。

面向?qū)ο蠹夹g由于內(nèi)在地支持了對系統(tǒng)的抽象、分層和復用技術,能夠很好地控制系統(tǒng)的復雜性,可很好地減輕嵌入式軟件開發(fā)者必然面臨的由于芯片性能的提高、嵌入式操作系統(tǒng)平臺等技術方面不斷變化所帶來的各種壓力,因此在嵌入式領域得到越來越廣泛的應用。其中,統(tǒng)一建模語言是當今世界上面向?qū)ο笙到y(tǒng)開發(fā)領域中應用最為廣泛的工具之一。

1 統(tǒng)一建模語言UML

1.1 UML簡介

UML(Unified Modeling Language)是一種標準的、用于面向?qū)ο蠛突跇嫾能浖到y(tǒng)建模工具,是一種用于對軟件系統(tǒng)模型繪制可視化描述的工具。UML以標準的、易于理解的方式建立能夠描述復雜系統(tǒng)結構和過程的可視化模型,廣泛用于描述信息管理系統(tǒng)、具有實時要求的工業(yè)系統(tǒng)過程、嵌入式系統(tǒng)、分布式系統(tǒng)、系統(tǒng)軟件等。

UML由圖、視圖、模型元素、通用機制和擴展機制等幾個部分組成。其中圖是UML建模的關鍵,視圖由圖來描述;而圖由模型元素結合通用機制、擴展機制等表示和語義組成。

根據(jù)圖在系統(tǒng)開發(fā)過程中不同階段的應用,可以分為五類:用例圖、靜態(tài)圖、行為圖、交互圖與實現(xiàn)圖。

這些圖為系統(tǒng)的分析、設計提供了多種圖形表達形式,應用于建模的不同階段。運用UML。我們可以分析、設計幾乎所有的軟件和非軟件系統(tǒng)。當然,對于具體的系統(tǒng)應該根據(jù)系統(tǒng)的類型、系統(tǒng)的規(guī)模和開發(fā)需要繪制相應的圖,不一定在一個系統(tǒng)中畫出所有種類的圖。

1.2 UML與占先式實時內(nèi)核

開發(fā)一個占先式實時內(nèi)核與一般軟件的開發(fā)一樣,必然要經(jīng)過開發(fā)的分析、設計、編碼、測試四個階段。在嵌入式軟件開發(fā)過程中,一般采用的是一種順序開發(fā)方法。然而,由于嵌入式產(chǎn)品更新很快,研發(fā)周期要求盡可能的短,同時在開發(fā)過程中應能動態(tài)地調(diào)整,所以,開發(fā)初斯所做的需求分析和設計,在后期的實現(xiàn)和測試中往往要做變動。這反映了在軟件開發(fā)過程中的需求分析、設計與具體實現(xiàn)之間有某種程度上的脫節(jié),對軟件實現(xiàn)后面的驗證往往會帶來很大風險。另外,傳統(tǒng)的嵌入式系統(tǒng)軟件開發(fā)環(huán)境主要是對開發(fā)過程中軟件實現(xiàn)和測試階段的支持,是以源程序的開發(fā)和測試為核心的,缺少必要的需求分析和設計工具。

UML為占先式實時內(nèi)核的設計和實現(xiàn)提供了一套功能強大的建模工具。由于UML融合了面向?qū)ο蠓椒ㄖ械臄?shù)據(jù)驅(qū)動和行為驅(qū)動兩種方式,可以從各個方面描述實時系統(tǒng)的功能及反映實時系統(tǒng)的結束條件,可以為具有靜態(tài)結構和動態(tài)結構的系統(tǒng)以面向?qū)ο髨D形的方式建模。因此,使用面向?qū)ο蟮腢ML可以很好地完成占先式實時內(nèi)核的建模。

圖2 占先式實時內(nèi)核的類圖

2 UML建模的具體應用

2.1 占先式實時內(nèi)核概述

占先式實時內(nèi)核具有多任務機制。多任務機制是基于面向任務對象的,以任務為對象,以事件和時間為驅(qū)動,通過實時內(nèi)核管理時間關鍵任務和任務的優(yōu)先級,實現(xiàn)任務之間的調(diào)度、協(xié)同和仲裁。

多任務機制的具體實現(xiàn)由調(diào)度程度來完成。在系統(tǒng)程序運行過程中,當前任務完成之后,調(diào)度程序調(diào)出任務就緒表中優(yōu)先級最高任務的入口地址,把CPU資源分析給該任務,使之執(zhí)行。如果該任務在執(zhí)行過程中引起比它優(yōu)先級高的任務進入就緒態(tài),或者是中斷服務程序使一個更高優(yōu)先級任務進入就緒態(tài),調(diào)度程序會把任務的當前程序指針、寄存器壓入到該任務的任務堆棧指針指向的棧空間,保證現(xiàn)場,再把CPU資源分配給更高優(yōu)先級任務,使高優(yōu)先級任務開始執(zhí)行。高優(yōu)先級任務執(zhí)行完畢后,下一個在任務就緒表中的最高級任務先從該任務的堆棧數(shù)據(jù)區(qū)恢復寄存器、程序指針、程序狀態(tài),然后切換并執(zhí)行該任務。

采用占先式實時內(nèi)核的思想設計單片機軟件,可以合理應用單片機的有限資源并達到很高的實時響應,能降低軟件設計的難度。在本設計中,要求占先式實時內(nèi)核應用于單片機中,任務數(shù)量最多不超過16個任務。

占先式實時內(nèi)核的功能需求是:

*支持外部異步事件中斷、定時器中斷、消息傳遞及任務消息到達時的調(diào)度;

*支持基于任務優(yōu)先級占先調(diào)度,多種實時調(diào)度策略;

*任務的創(chuàng)建、運行、懸掛、喚醒與撤銷;

*定時器時鐘管理,任務延時處理;

*共享資源管理,保證任務的同步運行。

由于占先式實時內(nèi)核主要體現(xiàn)在軟件設計方面,所以在此省略了構件圖和配置圖。

2.2 用例圖

圖1為用例圖,列出了該系統(tǒng)最基本的功能及功能描述,包括一系列用例和從系統(tǒng)中抽象出來的執(zhí)行者。

基于單片機的占先式實時內(nèi)核的設計與實現(xiàn)

(1)角色說明

*任務。是嵌入式系統(tǒng)中用戶想要實現(xiàn)的具體功能,是一個線程。這些功能包括:輸入、輸出、數(shù)據(jù)處理、通信等。

*中斷。用來通知占先式實時內(nèi)核有一個事件發(fā)生,包括內(nèi)部非屏蔽中斷、定時器中斷與外部異步時間中斷。

*系統(tǒng)時鐘。用來創(chuàng)建中先式實時核所需要時候節(jié)拍。

(2)使用案例說明

*中斷響應。占先式實時內(nèi)核通過對異步事件的處理,獲得任務運行所需要的信號與數(shù)據(jù),使任務得以正常運行。

*中斷級調(diào)度。中斷處理使得需要該中斷信號的任務就緒,調(diào)度程序判斷該任務是否為當前任務就緒表中最高優(yōu)先級任務,進而決定該任務否立即進行。

*任務就緒。這里指的不是由于中斷所引起的用戶任務就緒,有兩種方式:一個是,用戶希望應用系統(tǒng)完成某個任務功能時,需要通知占先式實時內(nèi)核,要求它創(chuàng)建該任務;另一個是,當當前運行的任務喚醒另一個任務時,使后者就緒。

*任務級調(diào)度。任務完成創(chuàng)建或被別的任務喚醒之后,調(diào)度程序判斷該任務是否為當前任務就緒表中最高優(yōu)先級任務,進而決定該任務是否立即進行。

*任務運行。當任務是當前任務就緒表中優(yōu)先級最高的任務時運行該任務。

2.3 類圖

圖2為類圖,包括一組由所討論系統(tǒng)中抽象出的類和它們之間的關系。

類中斷的屬性中,中斷類型包括非屏蔽中斷、外部中斷與定時器中斷,以便占先式實時同核進行相應的中斷處理;中斷向量號與單片機的中斷向量號相匹配;中斷嵌套狀態(tài)表明當前中斷是處于哪一層的中斷嵌套中。類中斷有一個操作:中斷處理,獲取外部事件的信號和數(shù)據(jù),并使上應的任務就緒,然后判斷中斷嵌套數(shù)是否為0。若不為零,執(zhí)行別的中斷響應;如果為零,選擇相應的調(diào)度程序進行調(diào)度。

類調(diào)度的屬性中,調(diào)度策略用于選擇一種實時調(diào)度方案;調(diào)度類型包括中斷調(diào)度與任務級調(diào)度;任務就緒表與任務懸掛表是調(diào)度時所需要數(shù)據(jù)結構。類調(diào)度有一個操作:調(diào)度。當當前任務是任務就緒表中優(yōu)先級最高的任務時,當前任務繼續(xù)運行;如不是,將當前任務運行時的狀態(tài)與數(shù)據(jù)壓入該任務堆棧,掛起該任務,然后調(diào)出最高級優(yōu)先權任務的任務堆棧數(shù)據(jù)與狀態(tài),使最高級任務運行。

類任務的屬性中,任務ID表明是哪一個任務;任務優(yōu)先級說明任務在所有任務中的運行優(yōu)先權;任務狀態(tài)說明該任務在占先式實時內(nèi)核中是處在何種狀態(tài);任務堆棧保存任務切換時該任務的狀態(tài)與數(shù)據(jù)。類任務有四個操作:建立任務,在占先式實時內(nèi)核中確認該任務;掛起任務,是任務由就緒狀態(tài)轉(zhuǎn)為掛起狀態(tài);恢復任務,是任務由掛起狀態(tài)轉(zhuǎn)為就緒狀態(tài);任務延遲,是任務自我延遲若干個時鐘節(jié)拍,同時由就緒狀態(tài)轉(zhuǎn)為掛起狀態(tài)。

類消息的屬性中,消息類型包括信號量與消息隊列;消息ID表明該消息是哪一個消息;消息發(fā)送任務ID表明消息是由哪個任務發(fā)送的;消息接收任務ID表明哪些任務接收該消息。類消息的操作有兩個:發(fā)送消息,向一個或幾個任務發(fā)送信息;接收消息,消息接收到某個信息。

類任務定時器的屬性中,任務定時器ID表明該定時器是屬于哪個任務的;任務定時器時長說明該任務需要多長時鐘節(jié)后才能再次運行。類任務定時器中有兩個操作:時鐘節(jié)拍處理,處理任務的延時時鐘節(jié)拍;任務超時處理,延時時間到的任務狀態(tài)轉(zhuǎn)為為就緒狀態(tài)。

類之間有以下聯(lián)系:

*中斷與任務之間,描述中斷處理使相應的任務就緒;

*中斷與調(diào)度之間,描述由于中斷引起的中斷級調(diào)度;

*中斷與消息之間,描述中斷處理時,相應的消息得到信號或數(shù)據(jù);

*調(diào)度與任務之間,描述由于調(diào)度使任務就緒表中優(yōu)先級最高的任務運行,任務由于等待信號而自我掛起,也會請求調(diào)度;

*任務與任務定時器之間,描述定時器對任務延遲時間的處理;

*任務與消息之間,描述任務對消息的信息請求,消息對任務信息的接收,消息發(fā)送使接收該信息的任務就緒;

*調(diào)度與消息之間,描述由于消息到而請求調(diào)度。

2.4 狀態(tài)圖

狀態(tài)圖表示對象的行為,被用來描述一個系統(tǒng)的動態(tài)視圖。由于在占先式實時內(nèi)核中系統(tǒng)的狀態(tài)轉(zhuǎn)換可以通過任務的狀態(tài)轉(zhuǎn)換顯示出來,所以這里只給出對象任務的狀態(tài)務,如圖3所示。

任務在占先式實時內(nèi)核中具有就緒、運行、掛起三種狀態(tài)。任務正在運行時,由于等待消息、自我延時或自我掛起,可以由運行狀態(tài)進入掛起狀態(tài)。當?shù)却南⒌?、等待超時或延遲到時,任務狀態(tài)就由掛起狀態(tài)進入就緒狀態(tài),任務如果是任務就緒表中優(yōu)先級最高的任務,通過調(diào)度和任務切換,進入運行狀態(tài)。

任務處于運行狀態(tài)時,如中斷發(fā)生,通過中斷響應處理使任務就緒,并進行中斷級調(diào)度:如果是任務就緒表中優(yōu)先級最高的任務,繼續(xù)運行;如不是,進行任務切換,任務由運行狀態(tài)轉(zhuǎn)變?yōu)榫途w狀態(tài)。

處于就緒狀態(tài)時的任務,也可以由于當前運行任務的請求從就緒狀態(tài)轉(zhuǎn)變?yōu)閽炱馉顟B(tài)。

2.5 順序圖

占先式實時內(nèi)核強調(diào)的是時間和事件。在UML中,順序圖是具有這種特性的動態(tài)交互模型。占先式實時內(nèi)核的順序力圖4所示。

圖4展示了中斷和任務、任務和任務之間的交互情況,這也是占先式實時內(nèi)核的基本內(nèi)容。參與流程的對象在框圖頂部的矩形中顯示,共有五個對象:中斷對象用來通知正在運行的任務有異步事件發(fā)生,并將正在運行任務的當前狀態(tài)保存,暫停任務的運行;中斷響應對象處理任務的中斷服務代碼,并將與中斷信號相應的任務置為就緒狀態(tài),然后調(diào)度任務運行;低優(yōu)先級任務和高優(yōu)先級任務對象是用戶希望系統(tǒng)所能實現(xiàn)的功能,低優(yōu)先級任務只有當所有高優(yōu)先級任務運行完畢或處于懸掛狀態(tài)后才能運行;消息對象處理消息的發(fā)送與接收,消息接收表明有消息到來,然后消息發(fā)送使接收消息的任務狀態(tài)轉(zhuǎn)為就緒狀態(tài),進而進行任務級的調(diào)度,使高優(yōu)先級的任務得以運行。

圖4 占先式實時內(nèi)核順序圖

3 占先式實時內(nèi)核代碼實現(xiàn)

在設計建模完成后,系統(tǒng)中對象的行為和它們之間的邏輯關系都已經(jīng)清楚和確定下來,類和類的關系也得到進一步的抽象,這時需要選擇具體的開發(fā)工具來實現(xiàn)占先式實時內(nèi)核。在設計建模完成后,系統(tǒng)中對象的行為和它們之間的邏輯關系都已經(jīng)清楚和確定下來,類和類的關系也得到進一步的抽象,這時需要選擇具體的開發(fā)工具來實現(xiàn)占先式實時內(nèi)核。我使用Cygnal IDE(集成開發(fā)環(huán)境)作為系統(tǒng)的軟件開發(fā)平臺。IDE支持C語言匯編語言的源程序級調(diào)試,具有豐富的開發(fā)與測試工具。本系統(tǒng)采用C語言作為開發(fā)工具,具體設計不再詳述。

結語

占先式實時內(nèi)核在嵌入式系統(tǒng)開發(fā)應用中一直被認為是個難點,這主要是由于其內(nèi)在關系比較復雜和繁瑣,采用以往的方法往往會陷入反復設計和調(diào)試的過程中,最后實現(xiàn)的程序也會由于種種原因存在不易覺察的隱患,這樣就會限制軟件的推廣和應用。

通過對占先式實時內(nèi)核采用UML語言建模,可以比較清晰地認識到占先式實時內(nèi)核在工作機制和具體實現(xiàn)過程各個階段的工作內(nèi)容,能夠有效降低開發(fā)占先式實時內(nèi)核所冒的風險,提高占先式實時內(nèi)核編碼和測試的效率與穩(wěn)定性,縮短開發(fā)周期,這在嵌入式技術中有較好的實際意義。

責任編輯:gt

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

    關注

    6067

    文章

    44992

    瀏覽量

    650497
  • 嵌入式
    +關注

    關注

    5152

    文章

    19675

    瀏覽量

    317576
  • 內(nèi)核
    +關注

    關注

    3

    文章

    1416

    瀏覽量

    41436
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    單片機與嵌入系統(tǒng)的區(qū)別 單片機和嵌入linux區(qū)別

    系列單片機的幾種嵌入技術實時操作系統(tǒng)?!   ?b class='flag-5'>單片機與嵌入系統(tǒng)的區(qū)別 單片機和嵌入
    發(fā)表于 03-16 16:22

    如何運用UML分析設計占先實時內(nèi)核?

    什么是UML?UML建模的具體應用有哪些?如何實現(xiàn)占先實時內(nèi)核代碼?
    發(fā)表于 04-28 06:59

    運用UML 分析設計占先實時內(nèi)核

    UML是軟件工程領域的標準建模語言。本文介紹使用統(tǒng)一建模語言UML對嵌入系統(tǒng)中占先實時內(nèi)核的面向?qū)ο筌浖治雠c設計;詳述利用UML的各種
    發(fā)表于 05-15 15:00 ?20次下載

    基于單片機的便攜心率計的設計與實現(xiàn)

    基于單片機的便攜心率計的設計與實現(xiàn):通過數(shù)?;旌想娐方Y合單片機控制的設計實現(xiàn)了對心率信號的實時
    發(fā)表于 01-09 10:23 ?8098次閱讀
    基于<b class='flag-5'>單片機</b>的便攜<b class='flag-5'>式</b>心率計的設計與<b class='flag-5'>實現(xiàn)</b>

    實現(xiàn)基于51單片機的UDP實時傳輸工具

    實現(xiàn)基于51單片機的UDP實時傳輸工具
    發(fā)表于 09-21 13:40 ?7次下載
    <b class='flag-5'>實現(xiàn)</b>基于51<b class='flag-5'>單片機</b>的UDP<b class='flag-5'>實時</b>傳輸工具

    實時時鐘的單片機項目需要學習什么知識

    實現(xiàn)實時時鐘是單片機開發(fā)學習過程中,一個里程碑的綜合性項目,如果能獨立完成實現(xiàn)實時時鐘的相關顯示,設置等功能,那就代表著單片機編程已經(jīng)完全
    的頭像 發(fā)表于 10-13 11:53 ?3830次閱讀
    <b class='flag-5'>實時</b>時鐘的<b class='flag-5'>單片機</b>項目需要學習什么知識

    轉(zhuǎn)載:DIY:給單片機寫個實時操作系統(tǒng)內(nèi)核

    轉(zhuǎn)載:DIY:給單片機寫個實時操作系統(tǒng)內(nèi)核!
    發(fā)表于 11-13 19:36 ?1次下載
    轉(zhuǎn)載:DIY:給<b class='flag-5'>單片機</b>寫個<b class='flag-5'>實時</b>操作系統(tǒng)<b class='flag-5'>內(nèi)核</b>!

    單片機內(nèi)核及指令集

    單片機由中央處理單元(CPU)、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、周邊外設(Peripheral)、及程序數(shù)據(jù)總線(BUS)等單元組成。單片機發(fā)展的過程中,出現(xiàn)過很多的中央處理單元
    發(fā)表于 11-15 13:06 ?37次下載
    <b class='flag-5'>單片機</b>的<b class='flag-5'>內(nèi)核</b>及指令集

    cc2530單片機內(nèi)核是什么_一位15年經(jīng)驗的老司機教你學習單片機

    初學者的態(tài)度在我學習單片機的年代,只有單片機而且只有一種51單片機,沒的選擇?,F(xiàn)在,有51內(nèi)核的系列單片機、有MSP430
    發(fā)表于 11-19 20:06 ?11次下載
    cc2530<b class='flag-5'>單片機</b>的<b class='flag-5'>內(nèi)核</b>是什么_一位15年經(jīng)驗的老司機教你學習<b class='flag-5'>單片機</b>

    cc2530單片機內(nèi)核是什么_一位15年經(jīng)驗的老司機教你學習單片機

    初學者的態(tài)度在我學習單片機的年代,只有單片機而且只有一種51單片機,沒的選擇。現(xiàn)在,有51內(nèi)核的系列單片機、有MSP430
    發(fā)表于 11-26 14:36 ?2次下載
    cc2530<b class='flag-5'>單片機</b>的<b class='flag-5'>內(nèi)核</b>是什么_一位15年經(jīng)驗的老司機教你學習<b class='flag-5'>單片機</b>

    單片機/嵌入實時性疑問解答

    1 前言最近有一組學弟學妹問我一個問題,他們做的飛控系統(tǒng),實時性總是達不到標準,來問我是怎么回事。這涉及到了單片機/嵌入系統(tǒng)實時性的問題,學長在這做一個系統(tǒng)性的解答。2
    發(fā)表于 12-01 16:21 ?1次下載
    <b class='flag-5'>單片機</b>/嵌入<b class='flag-5'>式</b>的<b class='flag-5'>實時</b>性疑問解答

    基于RISC-V內(nèi)核單片機移植RTOS實時操作系統(tǒng)(二)

      今天聊下移植RTOS時RISC-V內(nèi)核單片機任務棧保存哪些內(nèi)容。
    的頭像 發(fā)表于 01-31 13:50 ?1977次閱讀
    基于RISC-V<b class='flag-5'>內(nèi)核</b><b class='flag-5'>單片機</b>移植RTOS<b class='flag-5'>實時</b>操作系統(tǒng)(二)

    8051單片機與ARM單片機的區(qū)別是什么

    單片機屬于集成電路(IC),相當小獨立的計算機,它被設計來執(zhí)行嵌入系統(tǒng)的特定任務。8051內(nèi)核和ARM內(nèi)核都屬于單片機成員,8051
    的頭像 發(fā)表于 07-07 11:32 ?4051次閱讀

    PC與多臺單片機實時通信系統(tǒng)的設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《PC與多臺單片機實時通信系統(tǒng)的設計與實現(xiàn).doc》資料免費下載
    發(fā)表于 10-19 16:29 ?4次下載
    PC<b class='flag-5'>機</b>與多臺<b class='flag-5'>單片機</b><b class='flag-5'>實時</b>通信系統(tǒng)的設計與<b class='flag-5'>實現(xiàn)</b>

    PC單片機實時通信的設計與實現(xiàn)

    電子發(fā)燒友網(wǎng)站提供《PC單片機實時通信的設計與實現(xiàn).pdf》資料免費下載
    發(fā)表于 10-31 09:55 ?3次下載
    PC<b class='flag-5'>機</b>與<b class='flag-5'>單片機</b>多<b class='flag-5'>機</b><b class='flag-5'>實時</b>通信的設計與<b class='flag-5'>實現(xiàn)</b>