日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 當(dāng)前嵌入式系統(tǒng)已無所不在,應(yīng)用于各行各業(yè)。在嵌入式系統(tǒng)中,有一類很重要的成員,即實時嵌入式系統(tǒng)。其中,WindRiver公司的 VxWorks是目前軟件工程師采用最多的,用于開

 當(dāng)前嵌入式系統(tǒng)已無所不在,應(yīng)用于各行各業(yè)。在嵌入式系統(tǒng)中,有一類很重要的成員,即實時嵌入式系統(tǒng)。其中,WindRiver公司的 VxWorks是目前軟件工程師采用最多的,用于開發(fā)實時嵌入式系統(tǒng)的商用實時嵌入式操作系統(tǒng),以其可靠性及強(qiáng)大的工具支持著稱。很多程序開發(fā)人員由 Windows編程轉(zhuǎn)向嵌入式編程時感到困難,因為在Windows的API函數(shù)中有不少操作系統(tǒng)內(nèi)核機(jī)制都進(jìn)行了封裝(如信號量、消息等),往往不必了解這些概念,而優(yōu)秀的VxWorks編程者則需要更加了解與內(nèi)核相關(guān)的概念。下面通過現(xiàn)實生活中的一些事例進(jìn)行類比來說明這些概念,即使是初學(xué)者也能輕松領(lǐng)悟。

1 實時性與非實時性

VxWorks作為實時操作系統(tǒng),實時性指的是對外部事件的響應(yīng)在規(guī)定的時間內(nèi)完成。舉個工作中的例子,有一種情況:假如你的公司規(guī)定對客戶的投訴必須在當(dāng)天予以解決,因而當(dāng)接到投訴時,你馬上去往客戶處交涉并解決問題。另一種情況:公司在收到客戶投訴后,并不馬上解決,而是在一段時間后匯總并根據(jù)客戶所在地集中解決。第一種情況就好比實時系統(tǒng),在規(guī)定時間內(nèi)對外部事件進(jìn)行響應(yīng);第二種情況好比非實時系統(tǒng)。很可能出現(xiàn)的一種情形就是,剛解決好一個客戶的問題后回公司,得知又一位同一地點的客戶要求你去,因此懊悔不已,接到投訴后不如不馬上行動。同樣,非實時系統(tǒng)也需要付出額外的代價,因此不能簡單地說哪種系統(tǒng)效率更高或性能更好。第一種公司制度更讓客戶滿意,因為它能在規(guī)定時間內(nèi)給客戶反饋,雖然效率不一定最高。具體選用哪一種管理制度應(yīng)該結(jié)合實際經(jīng)營情況而定,同理,實時系統(tǒng)也有它適合的應(yīng)用。比如汽車控制設(shè)備、國防系統(tǒng)中,不在預(yù)定時間內(nèi)對外部隨機(jī)事件作出響應(yīng)是很不合理的;而在 Windows系統(tǒng)中,鼠標(biāo)點擊在系統(tǒng)繁忙時可能好幾秒才響應(yīng)過來。

2 多任務(wù)與單任務(wù)

多任務(wù)好比一個團(tuán)隊的多個人分工合作完成一項工作,而單任務(wù)則是一個人獨立完成一項工作。假如這項工作就是去郵局郵寄一份文件,那么一個人足以勝任,多個人反而顯得多余。假如這項工作包括去郵局郵寄文件,收取客戶Email并及時回復(fù),接聽電話,那么一個人就顯得雜亂無章,不能及時回復(fù)郵件,或錯過電話。如果安排兩個人完成此項工作就容易得多,一人去郵寄文件,一人留單位接聽電話并收取Email.從程序設(shè)計角度來說,單任務(wù)或多任務(wù)都沒有絕對優(yōu)勢,因此應(yīng)用程序是采用何種任務(wù)劃分,需根據(jù)具體應(yīng)用而定。

還有一個問題,畢竟CPU資源是固定的,如果同時運行多個任務(wù),那么每個任務(wù)的處理能力都降低了,整體性能是否提高了呢?假如需要將兩個文件從 A地分別送往B地和C地,如圖1所示。一個行走速度極快的運動員從A地到B地需要10 min,交接文件需10 min,從B地返回A地需10 min,再從A地到C地需15 min,交接文件需10 min,總共花費55 min.而兩個行走較慢的人共同完成該任務(wù),一人從A地到B地需20 min,交接文件10 min,30 min完成;另一人從A地往C地需30 min,交接文件需10 min,總共也就40 min.交接文件時間越長,兩個人的優(yōu)勢越明顯。在程序中等待慢設(shè)備的應(yīng)答信號就是這種情況,不能將整個CPU的時間花費在等待中。但假如任務(wù)就是將文件從A送到B,那么多個行走慢的人就不如一個速度快的人了。

圖1 文件派送兩地示意圖

3 信號量(semaphore)

VxWorks系統(tǒng)中,信號量包括互斥信號量、二進(jìn)制信號量和計數(shù)信號量,其他操作系統(tǒng)基本上也是如此。按作用劃分為同步和互斥機(jī)制。通過信號量的同步和互斥機(jī)制可以方便、高效地協(xié)調(diào)任務(wù)?;コ夥绞降墓δ苁遣煌蝿?wù)可以利用信號量互斥地訪問臨界資源?,F(xiàn)實生活中也是如此,比如單位會議室只有一個,可能有多個部門使用會議室,單位采取如下管理方式:使用前向負(fù)責(zé)人申請,若會議室空閑就可以使用,會議結(jié)束后通知負(fù)責(zé)人;否則,等待負(fù)責(zé)人通知。這里的會議室就好比臨界資源,申請和通知這種方式就好比信號量的互斥機(jī)制,如圖2所示。

圖2 信號量互斥機(jī)制與會議室管理機(jī)制對比

信號量的同步機(jī)制有所不同,提供的任務(wù)同步功能是指一個任務(wù)可以利用信號量控制自己的執(zhí)行進(jìn)度,使自己同步于一組外部事件。好比甲等待乙的電話再一起吃飯。甲接電話之前沒有任何行動,好比這個任務(wù)阻塞;接到電話好比獲取信號量(乙打電話好比釋放信號量);去吃飯就好比繼續(xù)執(zhí)行任務(wù)。

計數(shù)信號量與二進(jìn)制信號量都可以用于任務(wù)之間的同步與互斥,不同之處在于,計數(shù)信號量能夠記錄信號量釋放的次數(shù),可以用來監(jiān)視某一資源的使用狀況。好比存錢與消費:存入的金額計數(shù)累加(釋放信號量計數(shù)),消費時金額減少(獲取信號量計數(shù)減少),只要金額不為零就還有消費能力(信號量可用),金額為零就只能等待存入(獲取信號量但無信號量可用只能等待其他任務(wù)釋放信號量)。

4 消息機(jī)制

僅通過信號量的同步、互斥是無法提供完善的響應(yīng)式交互信息的。消息(message)機(jī)制通過消息隊列保存多個消息,一般來說,消息是按照 FIFO的順序通過消息隊列的。信號量好比是兩人相互約定,電話鈴響,不用接聽,直接出門迎接;而消息機(jī)制發(fā)送就是,接聽電話并根據(jù)電話內(nèi)容執(zhí)行相應(yīng)操作。接聽電話并根據(jù)電話內(nèi)容辦理相應(yīng)事情,比電話鈴響就按約定辦理事情多花費時間,同樣,消息機(jī)制比信號量更耗費時間;但接聽電話后根據(jù)電話內(nèi)容辦事比前者更加靈活,適應(yīng)更多的場合,同樣,消息機(jī)制的使用比信號量更加靈活,并且電話內(nèi)容可以是臨時增加的,類似消息內(nèi)容的可擴(kuò)展性。

5 信號

信號(signal)與信號量聽起來很相似,其實是完全不同的兩種機(jī)制,一定需要明確區(qū)分。信號是一種由事件觸發(fā)的軟件中斷,它可以異步地改變信號接收任務(wù)的執(zhí)行流程,使其轉(zhuǎn)向?qū)?yīng)的信號處理程序執(zhí)行。即使該任務(wù)當(dāng)前處于阻塞狀態(tài),一旦接收信號后就會處于準(zhǔn)備執(zhí)行狀態(tài),但是當(dāng)信號處理程序執(zhí)行之后繼續(xù)處于阻塞狀態(tài)。舉個例子,上班時你可以隨意安排你的工作,就好比任務(wù)中程序的順序執(zhí)行;單位出現(xiàn)突發(fā)事件需要你立刻解決,當(dāng)前工作被打斷,就好比該任務(wù)接收到信號,當(dāng)前程序被打斷;處理完突發(fā)事件后繼續(xù)工作,就好比信號處理程序執(zhí)行完返回原來被打斷的地方繼續(xù)執(zhí)行。這個突發(fā)事件就好比一個信號,該信號影響的任務(wù)立刻跳轉(zhuǎn)到指定的程序;這個突發(fā)事件是隨機(jī)、不可預(yù)料的,就好比信號接收的不可預(yù)料性,在程序中信號機(jī)制常用于異常處理。不同于信號量用顯式語句表示何時需要獲取或釋放信號量,信號機(jī)制允許程序在任何地方被信號中斷而轉(zhuǎn)向相應(yīng)的處理程序。[!--empirenews.page--]

以上是對VxWorks操作系統(tǒng)一些相關(guān)概念的理解和總結(jié),在技術(shù)交流中很容易被接受,希望能分享給更多的朋友。

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

在工業(yè)物聯(lián)網(wǎng)設(shè)備部署中,Modbus通信故障是導(dǎo)致系統(tǒng)停機(jī)的首要原因之一。據(jù)統(tǒng)計,超過60%的現(xiàn)場問題源于通信配置錯誤或數(shù)據(jù)解析異常。本文從嵌入式系統(tǒng)開發(fā)視角,系統(tǒng)闡述Modbus通信調(diào)試的方法論,結(jié)合實際案例解析如何高...

關(guān)鍵字: 嵌入式系統(tǒng) Modbus通信

在嵌入式系統(tǒng)開發(fā)中,看門狗(Watchdog Timer, WDT)是保障系統(tǒng)可靠性的核心組件,其初始化時機(jī)的選擇直接影響系統(tǒng)抗干擾能力和穩(wěn)定性。本文從硬件架構(gòu)、軟件流程、安全規(guī)范三個維度,系統(tǒng)分析看門狗初始化的最佳實踐...

關(guān)鍵字: 單片機(jī) 看門狗 嵌入式系統(tǒng)

人工智能(AI)和機(jī)器學(xué)習(xí)(ML)是使系統(tǒng)能夠從數(shù)據(jù)中學(xué)習(xí)、進(jìn)行推理并隨著時間的推移提高性能的關(guān)鍵技術(shù)。這些技術(shù)通常用于大型數(shù)據(jù)中心和功能強(qiáng)大的GPU,但在微控制器(MCU)等資源受限的器件上部署這些技術(shù)的需求也在不斷增...

關(guān)鍵字: 嵌入式系統(tǒng) 人工智能 機(jī)器學(xué)習(xí)

Zephyr開源項目由Linux基金會維護(hù),是一個針對資源受限的嵌入式設(shè)備優(yōu)化的小型、可縮放、多體系結(jié)構(gòu)實時操作系統(tǒng)(RTOS)。近年來,Zephyr RTOS在嵌入式開發(fā)中的采用度逐步增加,支持的開發(fā)板和傳感器不斷增加...

關(guān)鍵字: 嵌入式系統(tǒng) 軟件開發(fā) 實時操作系統(tǒng) Zephyr項目

在資源受限的嵌入式系統(tǒng)中,代碼執(zhí)行效率和內(nèi)存占用始終是開發(fā)者需要權(quán)衡的核心問題。內(nèi)聯(lián)函數(shù)(inline functions)和宏(macros)作為兩種常見的代碼展開技術(shù),在性能、可維護(hù)性和安全性方面表現(xiàn)出顯著差異。本文...

關(guān)鍵字: 內(nèi)聯(lián)函數(shù) 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和服務(wù)器開發(fā)中,日志系統(tǒng)是故障排查和運行監(jiān)控的核心組件。本文基于Linux環(huán)境實現(xiàn)一個輕量級C語言日志庫,支持DEBUG/INFO/WARN/ERROR四級日志分級,并實現(xiàn)按大小滾動的文件輪轉(zhuǎn)機(jī)制。該設(shè)計在某...

關(guān)鍵字: C語言 嵌入式系統(tǒng)

在嵌入式系統(tǒng)和底層驅(qū)動開發(fā)中,C語言因其高效性和可控性成為主流選擇,但缺乏原生單元測試支持成為開發(fā)痛點。本文提出一種基于宏定義和測試用例管理的輕量級單元測試框架方案,通過自定義斷言宏和測試注冊機(jī)制,實現(xiàn)無需外部依賴的嵌入...

關(guān)鍵字: C語言 嵌入式系統(tǒng) 驅(qū)動開發(fā)

在嵌入式系統(tǒng)與驅(qū)動開發(fā)中,內(nèi)存映射I/O(Memory-Mapped I/O, MMIO)是一種將硬件寄存器映射到處理器地址空間的技術(shù),允許開發(fā)者通過指針直接讀寫寄存器,實現(xiàn)高效、低延遲的硬件控制。本文通過C語言實戰(zhàn)案例...

關(guān)鍵字: 內(nèi)存映射 I/O操作 嵌入式系統(tǒng)

在嵌入式系統(tǒng)開發(fā)和多線程編程中,程序崩潰、內(nèi)存越界等復(fù)雜問題常令開發(fā)者困擾。GDB作為強(qiáng)大的調(diào)試工具,其條件斷點和內(nèi)存查看功能可精準(zhǔn)定位隱蔽缺陷。本文通過實際案例演示這些高級功能的應(yīng)用,幫助開發(fā)者提升調(diào)試效率。

關(guān)鍵字: GDB 嵌入式系統(tǒng)
關(guān)閉