性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

嵌入式操作系統(tǒng)三問(wèn):what?when?how?

大家好,很高興和各位一起分享我的文章,喜歡和支持我的工程師,一定記得給我點(diǎn)贊、收藏、分享。

加微信[xyzn3333]與作者溝通交流,免費(fèi)獲取更多單片機(jī)與嵌入式的海量電子資料。

在嵌入式領(lǐng)域中,嵌入式實(shí)時(shí)操作系統(tǒng)正得到越來(lái)越廣泛的應(yīng)用。采用嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)可以更合理、更有效地利用 CPU 的資源,簡(jiǎn)化應(yīng)用軟件的設(shè)計(jì),縮短系統(tǒng)開發(fā)時(shí)間,更好地保證系統(tǒng)的實(shí)時(shí)性和可靠性。本文我們對(duì)嵌入式實(shí)時(shí)操作系統(tǒng)進(jìn)行經(jīng)典三問(wèn):what?when?how?因此,以下是嵌入式設(shè)計(jì)需要RTOS解決方案的時(shí)間和原因。但在此之前,RTOS到底是什么,尤其是與裸機(jī)解決方案相比?

一:什么是嵌入式實(shí)時(shí)操作系統(tǒng)(RTOS)?

RTOS是一種操作系統(tǒng),旨在管理嵌入式系統(tǒng)的硬件資源;它創(chuàng)建了多個(gè)軟件執(zhí)行線程和一個(gè)調(diào)度程序來(lái)管理這些線程。另一種說(shuō)法是一個(gè)調(diào)度內(nèi)核,它創(chuàng)建了一個(gè)多任務(wù)和確定性的運(yùn)行時(shí)環(huán)境。

RTOS與無(wú)操作系統(tǒng)的“前后臺(tái)”設(shè)計(jì)的最本質(zhì)區(qū)別是任務(wù)調(diào)度器的設(shè)計(jì),調(diào)度器可以為正在運(yùn)行的任務(wù)分配精確且可重復(fù)的時(shí)間段的能力,

二:什么時(shí)候需要用RTOS?

當(dāng)有更多中斷源、更多功能和更多通信接口時(shí),通常使用RTOS。簡(jiǎn)而言之,應(yīng)用程序的復(fù)雜性在很大程度上決定了為MCU定制的RTO的使用。

剛開始學(xué)單片機(jī),基本都是從裸機(jī)開始,經(jīng)典的“項(xiàng)目”就是流水燈,也是你學(xué)習(xí)單片機(jī)的開始。但是隨著學(xué)習(xí)的不斷深入,裸機(jī)所暴露的問(wèn)題就越來(lái)越多,這里我給大家總結(jié)下吧:1、并發(fā)性:程序并發(fā)工作效率低在寫裸機(jī)軟件時(shí),不可避免的在主程序中會(huì)有一個(gè)超級(jí)大的 while(1) 循環(huán),這里面幾乎包含整個(gè)項(xiàng)目的所有業(yè)務(wù)邏輯。因?yàn)槊總€(gè)業(yè)務(wù)邏輯里面基本都會(huì)有 delay 這樣的循環(huán)等待函數(shù),這樣導(dǎo)致了所有的業(yè)務(wù)邏輯幾乎都是串行起來(lái)工作的。這個(gè)時(shí)候 CPU 就會(huì)有很多時(shí)間都浪費(fèi)在了延時(shí)函數(shù)里,一直在空轉(zhuǎn),導(dǎo)致軟件的并發(fā)效率非常差。2、模塊化:高內(nèi)聚,低耦合的原則從軟件工程的角度,我們?cè)谧鲕浖_發(fā)時(shí),都會(huì)強(qiáng)調(diào)高內(nèi)聚、低耦合的原則。而裸機(jī)的模塊化開發(fā)難度非常大,模塊間的耦合較重,這也導(dǎo)致了無(wú)法在大型項(xiàng)目使用裸機(jī)來(lái)開發(fā)。還是剛才 main 函數(shù)中大 while(1) 的例子,可以想象到那么多功能都緊緊的擠在一個(gè)函數(shù)里,不可拆分,模塊化開發(fā)的困難重重。舉一個(gè)非常貼切的例子,在一些使用看門狗的項(xiàng)目中,如果使用 delay 延時(shí)函數(shù),那得注意點(diǎn),萬(wàn)一延時(shí)過(guò)長(zhǎng),主函數(shù)來(lái)不及喂狗,看門狗就被觸發(fā)了。最后會(huì)產(chǎn)生這樣一種感覺,一個(gè)簡(jiǎn)簡(jiǎn)單單的 delay 還得考慮喂狗功能,裸機(jī)開發(fā)時(shí)操的心太多了,自然無(wú)法應(yīng)用在大型項(xiàng)目中。3、生態(tài):很多高級(jí)軟件組件,必須依賴于操作系統(tǒng)來(lái)實(shí)現(xiàn)比如說(shuō),前些年一個(gè)基于 FreeModbus 的 Modbus 主機(jī)協(xié)議棧,因?yàn)橐紤]各個(gè)平臺(tái)適配問(wèn)題,原本計(jì)劃支持各種各樣的操作系統(tǒng),甚至是裸機(jī)平臺(tái)。在各個(gè)操作系統(tǒng)上的適配都非常容易,但再去嘗試著適配裸機(jī)時(shí),發(fā)現(xiàn)難度重重,有一些函數(shù)在裸機(jī)上實(shí)現(xiàn)起來(lái)非常復(fù)雜,而且針對(duì)于不同的裸機(jī)環(huán)境,幾乎沒有通用性可言,太耗費(fèi)精力了。所以我最終就放棄了裸機(jī)適配,一直到現(xiàn)在,在裸機(jī)上都沒用這個(gè) Modbus 主機(jī)協(xié)議棧。還有一些軟件無(wú)法運(yùn)行在裸機(jī)上,比如:樂(lè)鑫,Realtek、 ti 和 聯(lián)發(fā)科 提供的 WIFi SOC SDK ,一些藍(lán)牙 SOC 的 SDK 也都是只支持操作系統(tǒng)。所以,如果你不了解、不會(huì)使用操作系統(tǒng),這些芯片也就玩不轉(zhuǎn)了。4、實(shí)時(shí)性:功能復(fù)雜的情況下,實(shí)時(shí)性無(wú)法保證軟件的實(shí)時(shí)性在一些領(lǐng)域會(huì)有一定的要求,軟件的每個(gè)步驟必須在指定的時(shí)間被觸發(fā)。工控領(lǐng)域就是最常見到的場(chǎng)景,如果實(shí)時(shí)性無(wú)法保證,機(jī)械設(shè)備可能就無(wú)法按照指定時(shí)序要求去動(dòng)作,以至于發(fā)生機(jī)械事故,甚至?xí){到人的生命。回過(guò)來(lái)接著看裸機(jī)軟件,如果軟件變得龐大以后,可以想象到,主程序中那么大的一個(gè) while(1) 循環(huán),代碼耦合嚴(yán)重,到處都是 delay 延時(shí),要保證實(shí)時(shí)性幾乎是不可能的。5、可重用性:軟件可重用性差,總是重復(fù)造輪子可重用性與模塊化程度有直接的關(guān)系。相信大家每個(gè)人在工作中都不想做很多重復(fù)性的工作,同樣在寫代碼時(shí),也想著盡可能少寫一些功能相似的代碼。但在這個(gè)嵌入式碎片化極其嚴(yán)重的時(shí)代,各式各樣的芯片,想要讓同樣的代碼,在裸機(jī)環(huán)境下同時(shí)適配不同的硬件,難度非常大。這樣也就導(dǎo)致了裸機(jī)的代碼會(huì)過(guò)多的依賴于底層硬件,重復(fù)造輪子的過(guò)程也就不可避免。

三:選擇RTOS需要考慮的因素

現(xiàn)在開源或不開源的RTOS非常多,當(dāng)我們選擇具體使用哪個(gè)RTOS時(shí)主要需要考慮哪些因素呢?響應(yīng)性:RTOS調(diào)度算法、中斷延遲和上下文切換時(shí)間將顯著定義系統(tǒng)的響應(yīng)性和確定性。最重要的考慮是需要什么類型的響應(yīng)——是否需要硬實(shí)時(shí)響應(yīng)?這意味著有精確定義的最后期限,如果不滿足,將導(dǎo)致系統(tǒng)失敗。或者,非確定性的軟實(shí)時(shí)響應(yīng)是否合適?在這種情況下,無(wú)法保證每項(xiàng)任務(wù)何時(shí)完成。可用系統(tǒng)資源:微內(nèi)核使用最少的系統(tǒng)資源,并提供有限但必不可少的任務(wù)調(diào)度功能。微內(nèi)核通常提供硬實(shí)時(shí)響應(yīng),廣泛用于RAM/ROM容量有限的嵌入式微處理器,但也適用于較大的嵌入式處理器系統(tǒng)。或者,可以使用Linux或WinCE等功能齊全的操作系統(tǒng)。它們提供了功能豐富的操作系統(tǒng)環(huán)境,通常隨驅(qū)動(dòng)程序、GUI和中間件組件一起提供。與微內(nèi)核相比,功能齊全的操作系統(tǒng)通常響應(yīng)速度較慢,需要更多的內(nèi)存和處理能力,主要用于系統(tǒng)資源豐富的強(qiáng)大嵌入式處理器上。開源或?qū)I(yè)許可有廣泛使用的、免費(fèi)的開源RTOS可用,在GPL或修改的GPL許可下分發(fā)。然而,這些許可證可能包含保留拷貝的限制,提供的保護(hù)很少。專業(yè)授權(quán)的RTOS產(chǎn)品取消了版權(quán)限制,提供完整的知識(shí)產(chǎn)權(quán)侵權(quán)賠償和擔(dān)保。此外,只有一家公司提供支持,并對(duì)產(chǎn)品質(zhì)量負(fù)責(zé)。質(zhì)量:RTOS供應(yīng)商在其組織內(nèi)對(duì)質(zhì)量的重視程度如何?質(zhì)量不僅僅是編碼標(biāo)準(zhǔn)。是否有正確的程序來(lái)保證未來(lái)產(chǎn)品和支持的質(zhì)量?管理良好、重視質(zhì)量的公司往往通過(guò)ISO 9001認(rèn)證。安全認(rèn)證:預(yù)認(rèn)證和可認(rèn)證RTO可用于需要按照國(guó)際設(shè)計(jì)標(biāo)準(zhǔn)(如DO-178C和IEC 61508)認(rèn)證的應(yīng)用。這些RTO提供了關(guān)鍵的安全特性,以及認(rèn)證機(jī)構(gòu)要求的設(shè)計(jì)證據(jù),以確認(rèn)用于開發(fā)RTO的過(guò)程符合相關(guān)設(shè)計(jì)標(biāo)準(zhǔn)。許可證:它不僅是您需要考慮的RTOS功能和特性,而且是對(duì)您的項(xiàng)目預(yù)算和公司的“投資回報(bào)”最有效的許可模式。RTOS供應(yīng)商:RTOS背后的公司與選擇正確的RTOS本身一樣重要。理想情況下,您希望與供應(yīng)商建立關(guān)系,不僅支持您當(dāng)前的產(chǎn)品,而且支持您未來(lái)的產(chǎn)品。要做到這一點(diǎn),你需要選擇一個(gè)具有良好聲譽(yù)的積極主動(dòng)的供應(yīng)商,與領(lǐng)先的硅制造商合作,確保他們能夠支持最新的處理器和工具。信任、產(chǎn)品質(zhì)量和支持質(zhì)量是一切。

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 3
收藏 3
關(guān)注 51
成為作者 賺取收益
全部留言
0/200
成為第一個(gè)和作者交流的人吧