www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]嵌入式實時操作系統(tǒng)Salvo的內核分析與配置

    摘要:簡要介紹Salvo的基本特點;詳細分析Salvo的內核管理、運行機制;深入探討Salvo用戶目標代碼的生成與配置,并給出不同用戶目標代碼生成方式下的用戶目標代碼生成流程。

    關鍵詞:嵌入式操作系統(tǒng) Salvo 內核分析 任務控制塊 配置

引言

目前電子產品開發(fā)廣泛采用以微處理器為核心的電子系統(tǒng)。開發(fā)以微處理器為核心的電子系統(tǒng)(以下簡稱微處理器系統(tǒng))采用傳統(tǒng)的無限循環(huán)函數模式,產品的開發(fā)周期和穩(wěn)定性都無法保障,因此,在微處理器系統(tǒng)開發(fā)中引入嵌入式實時操作系統(tǒng)RTOS。RTOS的引入消耗了部分系統(tǒng)資源。這部分系統(tǒng)資源對于高檔微處理器系統(tǒng)影響不大;對于中小規(guī)模微處理器系統(tǒng),特別是單片機系統(tǒng),由于RTOS資源的占用,使用戶可用資源大大減少,嚴重影響系統(tǒng)的實時性,甚至系統(tǒng)功能無法完成。市場上雖然有一些專用于單片機的RTOS,如應用于51系列單片機RTX51 tiny,但由于功能相對薄弱,無太大實用價值;另外也有一些功能較強的RTOS可移植到單片機系統(tǒng),但由于占用資源較多,需擴展大量的RAM和ROM,并且產時性差。本文介紹一種適用于小容量存儲器單片機(如PIC系列)系統(tǒng)且功能強大的RTOS—Salvo。

1 Salvo特點

嵌入式實時操作系統(tǒng)Salvo有兩大特點:①占用系統(tǒng)資源少;②功能強大。

(1)Salvo占用的系統(tǒng)資源

Salvo最大的特點是占用系統(tǒng)資源少,特別是占用存儲器資源極少。它不但適用于51系列單片機,也適用于存儲器資源更少的PIC系列單片機。Salvo占用ROM資源取決于用戶調用的系統(tǒng)函數,占用RAM取決于用戶定義的變量、任務和事件的數量。以PIC16系列單片機為例,每個全局變量占10B,任務點5B,事件占3B。

(2)Salvo功能和性能

Salvo是一個基于優(yōu)先級任務切換,支持事件驅動的多任務嵌入式實時操作系統(tǒng)。Salvo共支持16個任務優(yōu)先級。且多個任務可以共用一個優(yōu)先級,任務按優(yōu)先級高低切換,對于多個同一優(yōu)先級的任務,以時間片循環(huán)方式 (round-robin)切換。Salvo支持任務和事件的數量不限,取決于RAM的大小。(Salvo默認支持255個任務、255個事件和255個消息隊列)

圖1

    Salvo內核主要提供以下幾類函數供用戶應用程序引用:

①任務管理—提供任務建立、任務撤消等功能;

②時間管理—提供任務延時函數等功能;

③信號管理—提供信號量建立、刪除、等待、發(fā)出等功能;

④消息管理—提供消息建立、刪除、等待、發(fā)出等功能。

2 Salvo的內核分析

(1)任務狀態(tài)及狀態(tài)轉移

Salvo的用戶任務具有以下幾種狀態(tài):

①運行狀態(tài)。任務占用系統(tǒng)資源正在運行中,任務一時刻只能有一個任務可以處于運行狀態(tài);

②就緒狀態(tài)。由于任務的優(yōu)先級不是最高優(yōu)先級,任務正在等待運行;

③延時狀態(tài)。任務先前已運行過,現在暫停運行等待延時時間到達,一旦延時時間到達,任務處于就緒狀態(tài);

④停止狀態(tài)。任務先前已運行過,現在由于某種確定原因暫停運行,直到RTOS再次啟動該任務;

⑤等待狀態(tài)。任務暫停運行,直到它的等待事件發(fā)生。

Salvo的任務狀態(tài)轉移圖如圖1所示。

(2)任務同步和通信

為保證應用系統(tǒng)各任務的協調和信息傳輸,嵌入式操作系統(tǒng)需要同步和通信機制。一般采用信號量、事件標志、消息和消息隊列實現任務間的同步和通信。

信號量(semaphores)分二進制信號量和計數式信號量,用于表示事件的發(fā)生或對共享資源的訪問。信號量使用前應先采用OSCreateSem()函數產生,信號量接收的任務在處理中用OS_WaitSem()函數等待事件發(fā)生而掛起。一旦信號量發(fā)送,任務根據事件的發(fā)送情況用OSSignalSem()函數設置信號量,掛起的信號量接收任務繼續(xù)運行。對于二進制信號量,Salvo提供OSCreateBinSem()、OS_WaitBinSem()、OSSignalBinSem()等函數用于二進制信號量的產生、等待和設置等功能。

圖2

    事件標志(event flags)用于某任務與多個事件的同步。任務與多個事件的同步可以是獨立同步(邏輯或關系),也可以是關聯同步(邏輯與關系)。Salvo提供OSCreateEFlag()、OS_WaitEFlag、OSSignalEFlag()等函數用于事件標志的產生、等待和設置等功能。

信號量和事件標志只能用于傳遞事件的發(fā)生或對共享事件的訪問,任務間其它信息的傳遞通過消息(messages)實現。消息可以傳遞各種信息,包括數值、字符、數組、函數、指針等。任務間傳遞的并非消息本身,而是指向消息的指針,消息內容的含義由發(fā)送和接收消息的任務約定。Salvo提供OSCreateMsg()、OS_WaitMsg()、OSSignalMsg()等函數用于消息的產生、等待和設置等功能。消息隊列實際是消息陣列,用于任務或中斷服務程序(ISR)向一個或多個任務發(fā)送消息,隊列中的消息按先進選出(FIFO)原則被任務讀取。Salvo提供OSCreateMsgQ()、OS_WaitMsg()、OSSignalMsgQ()等函數用于消息的產生、等待和設置等功能。

(3)任務調度和任務控制塊

Salvo是基于優(yōu)先級的嵌入式實時操作系統(tǒng),Salvo總是運行就緒任務表中優(yōu)先級最高的任務。(Salvo允許2個以上任務處于同一優(yōu)先級,同一優(yōu)先級任務按時間片輪轉調度)Salvo由函數OSSched()實現任務調度。

在任務切換過程中,被剝奪CPU使用權的任務必須保存該任務的當前運行狀態(tài),如CPU內寄存器的值;而獲得CPU使用權的任務必須恢復前一次被剝奪CPU使用權時的運行狀態(tài),繼續(xù)運行。為完成這些功能,Salvo為每一個建立的任務建立一個任務控制埠(TCB)。任務控制埠是一個數據結構,當任務的CPU使用權被剝奪時,Salvo用它來保存該任務的運行狀態(tài);當任務重新獲得CPU使用權時,任務控制塊能確保任務從當時被中斷處繼續(xù)運行。

3 Salvo的配置

當了成功地編譯Salvo應用程序,并使編譯后的目標代碼小,系統(tǒng)運行時占用RAM空間少,在編譯Salvo應用程序時,需要對Salvo進行配置。

(1)目標代碼建立方式

Salvo應用程序目標代碼建立方式有兩種:基于庫的建立和基于源泉代碼的建立。

在基于庫的目標代碼建立中,Salvo提供的用戶函數包含在預編譯的Salvo庫文件中,Salvo應用程序從用戶程序源代碼(包括C語言和匯編語言)、Salvo庫和Salvo的mem.c建立而成。由于Salvo庫是預先編譯的,應用程序編譯時的配置文件對Salvo庫,即用戶函數無效?;趲斓哪繕舜a建立過程如圖2所示。

在基于源代碼的目標代碼建立中,Salvo提供用戶函數的源代碼。Salvo應用程序從用戶程序源代碼、Salvo用戶函數源代碼(包括C語言和匯編語言)和Salvo的mem.c建立而成。由于Salvo用戶函數是源代碼形式,Salvo應用程序編譯時的配置文件對Salvo的用戶函數有效?;谠创a的目標代碼建立過程如圖3所示。

相對于基于庫的建立方式,基于源代碼的目標代碼建立配置文件作用范圍更大,生成的目標代碼更貼近應用系統(tǒng)。即目標代碼更小,運行時占用RAM更少。

圖3

    (2)Salvo配置

Salvo的配置信息保存在應用程序同一目標的salvocfg.h文件中,文件以文本形式,每項配置操作通過C語言的#define語句實現。Salvo的配置主要有以下幾類操作:

①任務和事件—配置任務數,開啟/關閉信號量、消息和消息隊列;

②大小指定—配置延時RAM、計數器、事件標志、標記的位數;

③定時和標記—開啟/關閉定時器;

④優(yōu)化操作—優(yōu)化運行速度、消息隊列、全局變量等;

⑤監(jiān)視和調試—配置指針、延時、任務、事件的監(jiān)視;

⑥錯誤檢查—開啟/關閉用戶函數錯誤檢查;

⑦存儲器定位—配置Salvo對象在RAM中的位置。

典型的配置文件格式如下:

#define OSBYTES_OF_DELAYS 1

//設置延時RAM長度

#define OSENABLE_MESSAGES TRUE

//開啟消息處理功能

#define OSEVENTS 1

//設置應用系統(tǒng)中事件數

#define OSTASKS 3

//設置應用程序系統(tǒng)中任務數

4 結論

以上分析可知,嵌入式實時操作系統(tǒng)Salvo以其功能強大、內核簡潔高效、占用資源少、可配置性強等特點,非常適合于資源較少,特別是存儲器資源少的單片機系統(tǒng)使用。在單片機系統(tǒng)中嵌入實時操作系統(tǒng)Salvo,可大大縮短產品開發(fā)周期,提高可靠性,增強產品市場競爭力。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據媒體報道,騰訊和網易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數據產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數據產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯合牽頭組建的NVI技術創(chuàng)新聯盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現場 NVI技術創(chuàng)新聯...

關鍵字: VI 傳輸協議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉