91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

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

嵌入式 Linux 設(shè)計:詳細(xì)實時 ?

王英 ? 來源:hdfsf ? 作者:hdfsf ? 2022-07-26 10:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

實時系統(tǒng)必須尊重時間限制,以確保其執(zhí)行具有功能意義。實時操作系統(tǒng)或 RTOS(有時稱為實時執(zhí)行內(nèi)核)是一個函數(shù)庫,用于實現(xiàn)計算機(jī)系統(tǒng)的時間關(guān)鍵管理和資源分配的規(guī)則和策略。RTOS 常用于嵌入式系統(tǒng)。

RTOS 為微控制器處理器 (CPU) 提供了一個軟件抽象層,具有一組管理 CPU 資源調(diào)度和訪問的固有功能。簡而言之,RTOS的功能可以總結(jié)如下:

它確定應(yīng)用程序中的哪些執(zhí)行實體應(yīng)該控制 CPU、以什么順序以及在放棄對處理器的控制之前允許多長時間。

它管理多個活動之間的內(nèi)部存儲共享。

它管理連接的硬件設(shè)備的輸入和輸出,例如控制器設(shè)備的串行端口和 I/O 總線。

它發(fā)送有關(guān)操作狀態(tài)和已發(fā)生的任何錯誤的消息。

精心設(shè)計的 RTOS(圖 1)提供了許多切實的好處,例如:

通過規(guī)則和政策為項目奠定堅實的基礎(chǔ),以確保一致性和可重復(fù)性。

簡化開發(fā)過程并提高生產(chǎn)力:豐富的內(nèi)核服務(wù) (API) 集允許節(jié)省編寫擴(kuò)展代碼的時間,而系統(tǒng)開銷過多,無法完成相同的事情。

對處理器的抽象,而不關(guān)注許多硬件細(xì)節(jié)。

實施可靠的編程系統(tǒng)以成功管理共享同一處理器的多個操作:這使您可以管理對各種處理器或外圍資源的訪問,以便可以在不受干擾的情況下成功執(zhí)行操作。

清理功能的高效管理:保存和恢復(fù)日志集以及管理內(nèi)存緩沖區(qū)。

集成和管理來自通信和中間件堆棧(TCP/IP、USBCAN、FAT 和 Flash 文件系統(tǒng)等)的必要資源。

優(yōu)化系統(tǒng)資源的使用,提高產(chǎn)品的可靠性、可維護(hù)性和質(zhì)量。

RTOS 可以將所有這些元素整合到一個平臺中。它實現(xiàn)了便利的開發(fā)過程,并允許更短的上市時間、更高的可靠性和更低的風(fēng)險。

pYYBAGLeBIGAVJJHAABWWh3k9IU129.jpg

圖 1:通用實時系統(tǒng) (RTOS)

pYYBAGLeBI6ANbYoAACRUe2ffa8556.jpg

圖 2:實時系統(tǒng) (RTOS) – 調(diào)度程序

實時操作系統(tǒng)的組件

RTOS 的組件是調(diào)度程序、函數(shù)庫、類和用戶定義的數(shù)據(jù)對象。讓我們分別詳細(xì)地分析它們。調(diào)度程序(圖 2)是 RTOS 的關(guān)鍵組件,它確定應(yīng)用程序代碼的哪些實體以何種順序訪問 CPU。在大多數(shù)商業(yè) RTOS 中,存在三種編程模型:搶占式、協(xié)作式(也稱為循環(huán))和時間片模型。RTOS 函數(shù)庫用作應(yīng)用程序代碼和 RTOS 之間的接口。這些功能也稱為應(yīng)用程序接口 (API),將 RTOS 的操作需求封裝在其眾多服務(wù)中。應(yīng)用程序代碼實體通過 API 向內(nèi)核發(fā)出請求,然后確定應(yīng)用程序所需的編程行為。類和用戶定義的數(shù)據(jù)對象:RTOS 采用的數(shù)據(jù)結(jié)構(gòu)通常根據(jù)操作類型排列成組或類。RTOS 將用來控制程序的每個類中的對象集由用戶定義。名稱可能不同,具體取決于適當(dāng)設(shè)計的 RTOS 系統(tǒng)。

屬性和功能

RTOS 的屬性和功能可分為主要要求和次要要求。

主要要求:
· 管理處理器和其他系統(tǒng)資源以滿足應(yīng)用程序的需要。
· 同步事件。
· 在進(jìn)程之間有效地移動數(shù)據(jù)。
· 管理與時間等獨立變量相關(guān)的流程需求。
· 可預(yù)測地執(zhí)行在可預(yù)測的時間段內(nèi)發(fā)生的操作

次要要求:
· 高效的 RAM 管理。
· 獨占訪問系統(tǒng)資源。

資源管理系統(tǒng)

RTOS 的主要功能是管理某些系統(tǒng)資源,例如 CPU、內(nèi)存和時間。每個資源必須在并發(fā)進(jìn)程之間共享,以實現(xiàn)系統(tǒng)的一般功能,如下原則:

系統(tǒng)內(nèi)存是有限資源,因此必須共享。

由于 CPU 的運行速度比執(zhí)行控制或監(jiān)視的物理進(jìn)程快得多,因此可以共享 CPU 以避免處理延遲。這種延遲可能會違反基本的系統(tǒng)策略。

時間是 RTOS 管理的最困難的資源。

RTOS 服務(wù)的執(zhí)行速度決定了系統(tǒng)對物理過程變化的響應(yīng)。然而,對于每項服務(wù)而言,在時間方面盡可能地具有確定性(可預(yù)測性)同樣重要。如果沒有可預(yù)測的時序,系統(tǒng)設(shè)計人員無法保證滿足物理過程的時間限制。

多任務(wù)處理

如果沒有專用于每個代碼實體的 CPU,就不可能同時執(zhí)行操作。但是,可以共享 CPU 訪問時間以實現(xiàn)同時操作方面。許多活動之間的切換順序是多任務(wù)處理概念的基礎(chǔ)。圖 3 顯示了如何實現(xiàn)多任務(wù)處理。左側(cè)顯示了處理器的典型模型,由 CPU、一些寄存器、處理器狀態(tài)、程序計數(shù)器 (PC) 和堆棧組成。

pYYBAGLeBJuAPYerAABr7_9vmq8427.jpg

圖 3:多任務(wù)處理

要共享物理處理器,每個任務(wù)必須具有與物理處理器相同的屬性:一組寄存器、一個狀態(tài)、一個指向任務(wù)中下一條可執(zhí)行指令的 PC,以及一個用于局部變量的堆棧。當(dāng)然,每個活動也會有自己的一組運行代碼。另一方面,圖 2 的右側(cè)顯示了幾個虛擬處理器(任務(wù))。每個任務(wù)都等待其在物理處理器中激活其屬性的機(jī)會。調(diào)度程序不斷地決定 CPU 在給定時刻應(yīng)該控制哪些活動。當(dāng)需要停止正在運行的任務(wù)并將 CPU 控制權(quán)交給新任務(wù)時,調(diào)度程序會將正在運行的任務(wù)的屬性(操作上下文)與新任務(wù)的屬性(操作上下文)進(jìn)行交換。此過程稱為“上下文切換”。

優(yōu)先和搶占

為了實現(xiàn)效率和共享 CPU 利用率,實時多任務(wù)操作系統(tǒng)使用從一個任務(wù)到另一個任務(wù)的適當(dāng)控制轉(zhuǎn)移。為了實現(xiàn)這一點,調(diào)度程序必須監(jiān)控系統(tǒng)資源和每個任務(wù)的執(zhí)行狀態(tài),以確保每個實體及時接收 CPU 控制權(quán)。
這里的關(guān)鍵詞是及時性。沒有在正確的時間執(zhí)行必要任務(wù)的實時系統(tǒng)是無效的。這個錯誤可能會產(chǎn)生從良性到災(zāi)難性的后果。這意味著內(nèi)核服務(wù)請求的響應(yīng)時間和這些服務(wù)的執(zhí)行時間必須是快速且可預(yù)測的。RTOS 固有的可預(yù)測性允許設(shè)計應(yīng)用程序代碼以確保檢測和處理所有需求。實時應(yīng)用程序通常由多個進(jìn)程(任務(wù)和線程)組成,由于外部或內(nèi)部事件,這些進(jìn)程需要在不同時間控制系統(tǒng)資源。

調(diào)度模型

有幾種調(diào)度模型允許任務(wù)從處理器接收執(zhí)行時間。這些中的每一個的有用性取決于
Round-Robin (Cooperative) 應(yīng)用要求:所有活動同等重要,具有相同的優(yōu)先級。一旦任務(wù)接收到處理器控制,它將一直運行,直到完成或到達(dá)重新調(diào)度點。然后它放棄對 CPU 的控制權(quán),以允許調(diào)度確定下一個任務(wù),從而獲得對 CPU 的控制權(quán)。在其執(zhí)行周期中,行循環(huán)任務(wù)(圖 4)不能凍結(jié)、等待、暫?;驁?zhí)行任何可能允許另一個任務(wù)獲得 CPU 控制權(quán)的操作,但它可以被中斷(異常)搶占。Tick-Sliced Scheduling:是循環(huán)調(diào)度的一種變體。兩種方法都是相似的,只是任務(wù)滴答只能由可以表示時間或某些其他特定單位的關(guān)聯(lián)計數(shù)器執(zhí)行預(yù)定義的次數(shù)(量子滴答)。任務(wù)保持對 CPU 的控制,直到時間量刻度到期或直到活動阻塞。如果量子滴答到期,如果有另一個具有相同優(yōu)先級的任務(wù)等待執(zhí)行,則調(diào)度會強(qiáng)制任務(wù)出售其業(yè)務(wù)。Preemptive Scheduling:是導(dǎo)致預(yù)防性計劃概念的策略,其中物理處理器的控制權(quán)委托給具有最高優(yōu)先級的任務(wù)。如圖 5 所示,較低優(yōu)先級的任務(wù)(任務(wù) 2)在發(fā)生激活或釋放任務(wù) 1 的事件時被搶占。是導(dǎo)致預(yù)防性計劃概念的策略,其中物理處理器的控制委托給具有最高優(yōu)先級的任務(wù)。如圖 5 所示,較低優(yōu)先級的任務(wù)(任務(wù) 2)在發(fā)生激活或釋放任務(wù) 1 的事件時被搶占。是導(dǎo)致預(yù)防性計劃概念的策略,其中物理處理器的控制委托給具有最高優(yōu)先級的任務(wù)。如圖 5 所示,較低優(yōu)先級的任務(wù)(任務(wù) 2)在發(fā)生激活或釋放任務(wù) 1 的事件時被搶占。

poYBAGLeBKeAd0AEAACgYuBxRSE998.jpg

圖 4:循環(huán)

poYBAGLeBLKANSjOAABsL-voIQs629.jpg

圖 5:任務(wù)搶占

pYYBAGLeBL6AfLINAACGmQcIl_o812.jpg

圖 6:內(nèi)核服務(wù)

內(nèi)核類

RTOS 在一組通常稱為類的結(jié)構(gòu)上運行。每個類都支持一組通常稱為內(nèi)核服務(wù)的運算符(圖 6),這些運算符由應(yīng)用程序進(jìn)程調(diào)用以實現(xiàn)預(yù)期的行為。這些類如下:

任務(wù):管理程序代碼的執(zhí)行;每個活動都獨立于其他活動,但能夠以多種形式與其他活動建立關(guān)系,包括數(shù)據(jù)結(jié)構(gòu)、輸入、輸出或其他構(gòu)造。

任務(wù)間通信:將信息從一項任務(wù)傳遞到另一項執(zhí)行的任務(wù)。用于交互任務(wù)的常用類是信號量、隊列和管道。紅綠燈提供了一種使活動與各種事件同步的方法。

內(nèi)核服務(wù):執(zhí)行某些系統(tǒng)行為的例程。當(dāng)應(yīng)用程序代碼實體請求內(nèi)核提供的功能時,會啟動對該功能的內(nèi)核服務(wù)請求。

ISR(中斷服務(wù)程序):是一個軟件程序,被激活以響應(yīng)中斷

編譯具有實時支持的 Linux 內(nèi)核

要編譯具有實時支持的 linux 內(nèi)核(圖 7),您必須首先實時獲取源代碼和補丁。–

http://www.kernel.org/內(nèi)核版本;

http://www.kernel.org/pub/linux/kernel/projects/rt/獲取 RTOS 補丁

下載兼容版本很重要,否則編譯不會產(chǎn)生積極的結(jié)果。解壓文件夾后,復(fù)制舊配置文件:
cp /boot/config/kernel path/

下一步:
制作 oldconfig

完成上述命令后,運行以下命令:

bzcat/路徑dellapatch/patch-2.6。Xx-rtyy。柏油。Bz2 | 補丁-p1

這會將實時補丁插入 Linux 內(nèi)核。此時鍵入以下命令:

制作菜單配置

轉(zhuǎn)到“處理器類型和功能”(圖 8)并在“搶占模式”下選擇“完全搶占(實時)”。

在“定時器頻率”下選擇值,例如 1000 Hz。除了修改內(nèi)核的其他功能外,設(shè)置完成后必須立即執(zhí)行以下命令:

制作 -j5 bzImage

制作 -j5 模塊

制作modules_install

現(xiàn)在復(fù)制文件:/bootfolder中的arch / x86 / boot / bzImage。您有兩個選項來運行測試:在啟動時使用 grub shell 并手動加載文件,或者為 grub 創(chuàng)建一個新條目。這可以通過將默認(rèn)內(nèi)核版本的值復(fù)制到/boot/grub/menu并適當(dāng)?shù)匦薷穆窂胶兔Q來完成。

pYYBAGLeBMqAPysdAACSIOYmzKg158.jpg

圖 7:QNX 微內(nèi)核示例

pYYBAGLeBNSAA6TGAADtchHpHXI073.jpg

圖 8:使用 RTOS 編譯內(nèi)核

審核編輯 黃昊宇

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

    關(guān)注

    5200

    文章

    20481

    瀏覽量

    334558
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11772

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    Linux 下開發(fā)嵌入式必備命令速查表

    嵌入式開發(fā)中,Linux系統(tǒng)幾乎成為必備的開發(fā)環(huán)境。不管你是在做STM32、RaspberryPi、還是基于ARM的板子,熟練掌握Linux命令不僅能加快開發(fā)效率,還能讓你在調(diào)試、交叉編譯、文件
    的頭像 發(fā)表于 01-19 09:06 ?902次閱讀
    <b class='flag-5'>Linux</b> 下開發(fā)<b class='flag-5'>嵌入式</b>必備命令速查表

    如何在Zynq UltraScale+ MPSoC平臺上通過JTAG啟動嵌入式Linux鏡像

    在之前文章中,我們介紹了如何使用 XSCT 工具通過 JTAG 在 Zynq SoC 上啟動嵌入式 Linux 鏡像(從 JTAG 啟動 Zynq-7000 嵌入式 Linux:使用
    的頭像 發(fā)表于 01-13 11:45 ?4646次閱讀

    什么是嵌入式應(yīng)用開發(fā)?

    系統(tǒng)中,用于控制、監(jiān)測或通信等特定用途。與一般計算機(jī)系統(tǒng)不同,嵌入式系統(tǒng)通常具有較小的存儲容量、處理能力和功耗,且需要滿足特定的實時性、可靠性和安全性要求?。 應(yīng)用領(lǐng)域 嵌入式系統(tǒng)廣泛應(yīng)用于各種設(shè)備
    發(fā)表于 01-12 16:13

    從小白到大牛:Linux嵌入式系統(tǒng)開發(fā)的完整指南

    技術(shù)融合:嵌入式開發(fā)常需結(jié)合其他技術(shù)領(lǐng)域,如物聯(lián)網(wǎng)(MQTT 協(xié)議、LwIP 協(xié)議棧)、人工智能(邊緣計算、TensorFlow Lite 部署)、實時系統(tǒng)(RT-Linux、FreeRTOS
    發(fā)表于 12-16 10:42

    什么是嵌入式操作系統(tǒng)?

    發(fā)者不用直接操作底層寄存器,能高效開發(fā)復(fù)雜功能。 二、嵌入式 OS vs 我們熟悉的 Windows/Linux(桌面 / 服務(wù)器 OS) 很多開發(fā)者會疑惑Linux 也是 OS,為什么
    發(fā)表于 12-09 10:33

    嵌入式實時操作系統(tǒng)的特點

    實時嵌入式操作系統(tǒng)(Real-Time Embedded Operating System)是專門設(shè)計用于嵌入式系統(tǒng)的實時操作系統(tǒng)。嵌入式
    發(fā)表于 11-13 06:30

    嵌入式Linux新手入門:為什么迅為RK3568+迅為資料是黃金組合

    嵌入式Linux新手入門:為什么迅為RK3568+迅為資料是黃金組合
    的頭像 發(fā)表于 11-04 14:05 ?542次閱讀
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>新手入門:為什么迅為RK3568+迅為資料是黃金組合

    嵌入式需要掌握哪些核心技能?

    嵌入式需要掌握哪些核心技能? 若想通過學(xué)習(xí)嵌入式技術(shù)提升就業(yè)競爭力,需重點掌握C語言、嵌入式硬件架構(gòu)、RTOS/Linux開發(fā)、通信協(xié)議四大核心技能,并結(jié)合行業(yè)需求積累項目經(jīng)驗。
    發(fā)表于 10-21 16:25

    嵌入式達(dá)到什么水平才能就業(yè)?

    :包括GPIO、定時器、中斷、ADC 等外設(shè)的配置與調(diào)試,能實現(xiàn)如溫濕度采集、電機(jī)控制等功能掌握嵌入式 Linux 驅(qū)動開發(fā)基礎(chǔ):能編寫簡單字符設(shè)備驅(qū)動,實現(xiàn)設(shè)備的初始化、讀寫操作,會用內(nèi)核調(diào)試
    發(fā)表于 09-15 10:20

    【「Yocto項目實戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)」閱讀體驗】+基礎(chǔ)概念學(xué)習(xí)理解

    。為了對珠峰更了解些,開始接觸 Linux 系統(tǒng)開發(fā),并逐漸認(rèn)識到 Yocto 項目在定制嵌入式 Linux 系統(tǒng)方面的重要性。所以很想拜讀下此書。 二、書籍內(nèi)容概述 基礎(chǔ)知識 書中首先回顧了
    發(fā)表于 08-04 22:29

    一文讀懂:嵌入式Linux實時性進(jìn)階

    在工業(yè)控制、機(jī)器人、汽車電子等關(guān)鍵領(lǐng)域,嵌入式系統(tǒng)對實時性要求極高。 Linux作為強(qiáng)大的通用操作系統(tǒng),其原生實時性能難以滿足最嚴(yán)苛的硬實時
    發(fā)表于 07-10 15:26

    怎么結(jié)合嵌入式,Linux,和FPGA三個方向達(dá)到一個均衡發(fā)展?

    嵌入式領(lǐng)域,不少人都懷揣著讓嵌入式、Linux 和 FPGA 三個方向?qū)崿F(xiàn)均衡發(fā)展的夢想,然而實踐中卻面臨諸多挑戰(zhàn)。就像備受矚目的全棧工程師稚暉君,他從大學(xué)玩單片機(jī)起步,憑借將智能算法融入
    的頭像 發(fā)表于 06-25 10:08 ?891次閱讀
    怎么結(jié)合<b class='flag-5'>嵌入式</b>,<b class='flag-5'>Linux</b>,和FPGA三個方向達(dá)到一個均衡發(fā)展?

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    Linux嵌入式與單片機(jī)嵌入式在多個方面存在顯著的區(qū)別,以下是詳細(xì)的比較和歸納: 一、基本概念 1. Linux
    發(fā)表于 06-20 09:46

    嵌入式開發(fā)入門指南:從零開始學(xué)習(xí)嵌入式

    基礎(chǔ) 3. 學(xué)習(xí)路徑推薦第一階段:熟悉開發(fā)環(huán)境(如Keil、IAR、STM32)第二階段:掌握裸機(jī)編程與驅(qū)動開發(fā)第三階段:學(xué)習(xí)RTOS(實時操作系統(tǒng))如FreeRTOS第四階段:深入理解Linux嵌入式
    發(fā)表于 05-15 09:29

    嵌入式主板開發(fā)詳細(xì)指南

    嵌入式主板開發(fā)涉及硬件設(shè)計、軟件集成、系統(tǒng)優(yōu)化等多個環(huán)節(jié),需要結(jié)合具體應(yīng)用場景進(jìn)行深度定制。以下是嵌入式主板開發(fā)的詳細(xì)指南,涵蓋關(guān)鍵步驟、工具、挑戰(zhàn)及實際案例:一、開發(fā)流程與關(guān)鍵步驟1.需求分析
    的頭像 發(fā)表于 04-02 11:35 ?1415次閱讀
    <b class='flag-5'>嵌入式</b>主板開發(fā)<b class='flag-5'>詳細(xì)</b>指南