女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

嵌入式 Linux 設計:詳細實時 ?

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

掃碼添加小助手

加入工程師交流群

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

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

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

它管理多個活動之間的內部存儲共享。

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

它發送有關操作狀態和已發生的任何錯誤的消息。

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

通過規則和政策為項目奠定堅實的基礎,以確保一致性和可重復性。

簡化開發過程并提高生產力:豐富的內核服務 (API) 集允許節省編寫擴展代碼的時間,而系統開銷過多,無法完成相同的事情。

對處理器的抽象,而不關注許多硬件細節。

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

清理功能的高效管理:保存和恢復日志集以及管理內存緩沖區。

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

優化系統資源的使用,提高產品的可靠性、可維護性和質量。

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

pYYBAGLeBIGAVJJHAABWWh3k9IU129.jpg

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

pYYBAGLeBI6ANbYoAACRUe2ffa8556.jpg

圖 2:實時系統 (RTOS) – 調度程序

實時操作系統的組件

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

屬性和功能

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

主要要求:
· 管理處理器和其他系統資源以滿足應用程序的需要。
· 同步事件。
· 在進程之間有效地移動數據。
· 管理與時間等獨立變量相關的流程需求。
· 可預測地執行在可預測的時間段內發生的操作

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

資源管理系統

RTOS 的主要功能是管理某些系統資源,例如 CPU、內存和時間。每個資源必須在并發進程之間共享,以實現系統的一般功能,如下原則:

系統內存是有限資源,因此必須共享。

由于 CPU 的運行速度比執行控制或監視的物理進程快得多,因此可以共享 CPU 以避免處理延遲。這種延遲可能會違反基本的系統策略。

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

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

多任務處理

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

pYYBAGLeBJuAPYerAABr7_9vmq8427.jpg

圖 3:多任務處理

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

優先和搶占

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

調度模型

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

poYBAGLeBKeAd0AEAACgYuBxRSE998.jpg

圖 4:循環

poYBAGLeBLKANSjOAABsL-voIQs629.jpg

圖 5:任務搶占

pYYBAGLeBL6AfLINAACGmQcIl_o812.jpg

圖 6:內核服務

內核類

RTOS 在一組通常稱為類的結構上運行。每個類都支持一組通常稱為內核服務的運算符(圖 6),這些運算符由應用程序進程調用以實現預期的行為。這些類如下:

任務:管理程序代碼的執行;每個活動都獨立于其他活動,但能夠以多種形式與其他活動建立關系,包括數據結構、輸入、輸出或其他構造。

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

內核服務:執行某些系統行為的例程。當應用程序代碼實體請求內核提供的功能時,會啟動對該功能的內核服務請求。

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

編譯具有實時支持的 Linux 內核

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

http://www.kernel.org/內核版本;

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

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

下一步:
制作 oldconfig

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

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

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

制作菜單配置

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

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

制作 -j5 bzImage

制作 -j5 模塊

制作modules_install

現在復制文件:/bootfolder中的arch / x86 / boot / bzImage。您有兩個選項來運行測試:在啟動時使用 grub shell 并手動加載文件,或者為 grub 創建一個新條目。這可以通過將默認內核版本的值復制到/boot/grub/menu并適當地修改路徑和名稱來完成。

pYYBAGLeBMqAPysdAACSIOYmzKg158.jpg

圖 7:QNX 微內核示例

pYYBAGLeBNSAA6TGAADtchHpHXI073.jpg

圖 8:使用 RTOS 編譯內核

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5150

    文章

    19668

    瀏覽量

    317465
  • Linux
    +關注

    關注

    87

    文章

    11510

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    一文讀懂:嵌入式Linux實時性進階

    在工業控制、機器人、汽車電子等關鍵領域,嵌入式系統對實時性要求極高。 Linux作為強大的通用操作系統,其原生實時性能難以滿足最嚴苛的硬實時
    發表于 07-10 15:26

    怎么結合嵌入式Linux,和FPGA三個方向達到一個均衡發展?

    嵌入式領域,不少人都懷揣著讓嵌入式Linux 和 FPGA 三個方向實現均衡發展的夢想,然而實踐中卻面臨諸多挑戰。就像備受矚目的全棧工程師稚暉君,他從大學玩單片機起步,憑借將智能算法融入
    的頭像 發表于 06-25 10:08 ?317次閱讀
    怎么結合<b class='flag-5'>嵌入式</b>,<b class='flag-5'>Linux</b>,和FPGA三個方向達到一個均衡發展?

    Linux嵌入式和單片機嵌入式的區別?

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

    嵌入式開發入門指南:從零開始學習嵌入式

    基礎 3. 學習路徑推薦第一階段:熟悉開發環境(如Keil、IAR、STM32)第二階段:掌握裸機編程與驅動開發第三階段:學習RTOS(實時操作系統)如FreeRTOS第四階段:深入理解Linux嵌入式
    發表于 05-15 09:29

    嵌入式主板開發詳細指南

    嵌入式主板開發涉及硬件設計、軟件集成、系統優化等多個環節,需要結合具體應用場景進行深度定制。以下是嵌入式主板開發的詳細指南,涵蓋關鍵步驟、工具、挑戰及實際案例:一、開發流程與關鍵步驟1.需求分析
    的頭像 發表于 04-02 11:35 ?547次閱讀
    <b class='flag-5'>嵌入式</b>主板開發<b class='flag-5'>詳細</b>指南

    怎么嵌入式linux下控制dlp?

    請問怎么嵌入式linux 下控制dlp,有沒有支持
    發表于 03-03 07:02

    嵌入式 Linux 操作系統配置

    隨著物聯網(IoT)和智能設備的快速發展,嵌入式系統在各個領域扮演著越來越重要的角色。Linux因其開源、靈活和穩定的特性,成為嵌入式系統的首選操作系統。 1. 硬件選擇 在配置嵌入式
    的頭像 發表于 11-06 10:22 ?1195次閱讀

    【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植

    【北京迅為】i.mx8mm嵌入式linux開發指南第四篇 嵌入式Linux系統移植篇第六十九章uboot移植
    的頭像 發表于 10-22 14:46 ?1165次閱讀
    【北京迅為】i.mx8mm<b class='flag-5'>嵌入式</b><b class='flag-5'>linux</b>開發指南第四篇 <b class='flag-5'>嵌入式</b><b class='flag-5'>Linux</b>系統移植篇第六十九章uboot移植

    嵌入式系統的原理和應用

    嵌入式系統是一種專用的計算機系統,其設計初衷是執行特定任務,而非作為通用計算機使用。這類系統通常作為更大系統的一部分,起到控制、監控或輔助的作用,具有資源受限、實時性高、可靠性強等特點。下面將從嵌入式系統的原理、應用兩個方面進行
    的頭像 發表于 10-05 17:03 ?2200次閱讀

    嵌入式linux開發的基本步驟有哪些?

    嵌入式Linux開發是一個復雜的過程,涉及到硬件選擇、操作系統移植、驅動開發、應用程序開發等多個方面。以下是嵌入式Linux開發的基本步驟,以及每個步驟的說明。 硬件選擇 在開始
    的頭像 發表于 09-02 09:11 ?1234次閱讀

    嵌入式linux開發板怎么操作

    開發板概述 嵌入式Linux開發板是一種專門為嵌入式系統開發而設計的硬件平臺。它具有體積小、功耗低、性能高等特點,廣泛應用于工業控制、智能家居、醫療設備、汽車電子等領域。與傳統的PC機相比,
    的頭像 發表于 09-02 09:09 ?798次閱讀

    嵌入式linux開發板芯片的工作原理

    嵌入式Linux開發板是一種基于Linux操作系統的嵌入式系統開發平臺,它廣泛應用于工業控制、智能家居、智能交通、醫療設備等領域。 嵌入式
    的頭像 發表于 09-02 09:07 ?819次閱讀

    嵌入式系統中的實時操作系統

    嵌入式RTOS是嵌入式應用程序運行、相互交互和與外界通信的底層軟件機制。在本節中,您將了解嵌入式軟件開發人員使用哪些流行RTOS以及它們運行的嵌入式硬件平臺。
    的頭像 發表于 08-20 11:28 ?882次閱讀

    【出版發行】嵌入式系統原理與開發——基于RISC-V和Linux系統

    【出版發行】嵌入式系統原理與開發——基于RISC-V和Linux系統
    的頭像 發表于 07-26 08:36 ?674次閱讀
    【出版發行】<b class='flag-5'>嵌入式</b>系統原理與開發——基于RISC-V和<b class='flag-5'>Linux</b>系統

    專家力薦|《嵌入式系統原理與開發——基于RISC-V和Linux系統》新書發售

    當前,嵌入式系統已成為智能設備的核心之一,RISC-V+Linux的開源力量為嵌入式系統注入強大的創新動力。作為中國RISC-V軟硬件生態領導者,賽昉科技與業界專家合作推出《嵌入式系統
    的頭像 發表于 07-24 08:20 ?1100次閱讀
    專家力薦|《<b class='flag-5'>嵌入式</b>系統原理與開發——基于RISC-V和<b class='flag-5'>Linux</b>系統》新書發售