chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

openEuler Embedded軟實(shí)時(shí)系統(tǒng)的特性說(shuō)明

openEuler ? 來(lái)源:openEuler ? 作者:openEuler ? 2022-05-10 15:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要介紹 openEuler Embedded 軟實(shí)時(shí)系統(tǒng)的特性說(shuō)明,構(gòu)建方式和性能測(cè)試。

軟實(shí)時(shí)特性介紹

「實(shí)時(shí)性簡(jiǎn)介」

實(shí)時(shí)的訴求通常是事件的響應(yīng)時(shí)間不能超過(guò)規(guī)定的期限,一個(gè)事件的最大響應(yīng)時(shí)間應(yīng)該是確定的、可以預(yù)測(cè)的。

「Preempt_RT 補(bǔ)丁簡(jiǎn)介」

Preempt_RT 補(bǔ)丁(以下簡(jiǎn)稱 RT 補(bǔ)?。┛芍苯哟蛟趦?nèi)核源碼上,并通過(guò)內(nèi)核配置選項(xiàng) CONFIG_PREEMPT_RT=y 使能軟實(shí)時(shí)功能。RT 補(bǔ)丁實(shí)現(xiàn)的核心在于最小化內(nèi)核中不可搶占部分的代碼,從而使高優(yōu)先級(jí)任務(wù)就緒時(shí)能及時(shí)搶占低優(yōu)先級(jí)任務(wù),減少切換時(shí)延。除此之外,補(bǔ)丁通過(guò)多種降低時(shí)延的措施,對(duì)鎖、驅(qū)動(dòng)等模塊也進(jìn)行了優(yōu)化。

openEuler Embedded 版本中可使用的 RT 補(bǔ)丁請(qǐng)參考:

  1. QEMU:
?
  1. patch-5.10.0-60.10.0-rt62.patch
  2. patch-5.10.0-60.10.0-rt62_openeuler_defconfig.patch
?
  1. raspberrypi
?
  1. 0000-raspberrypi-kernel.patch(樹莓派補(bǔ)丁)
  2. 0001-add-preemptRT-patch.patch
  3. 0002-modifty-bcm2711_defconfig-for-rt-rpi-kernel.patch
?

「補(bǔ)丁獲取地址」

https://gitee.com/src-openeuler/kernel/blob/openEuler-22.03-LTS

「補(bǔ)丁關(guān)鍵功能舉例」

  1. 增加中斷程序的可搶占性(中斷線程化、軟中斷線程化)
  2. 增加臨界區(qū)的可搶占性(如自旋鎖)
  3. 增加關(guān)中斷代碼的可搶占性
  4. 解決優(yōu)先級(jí)反轉(zhuǎn)問(wèn)題(優(yōu)先級(jí)繼承)

軟實(shí)時(shí)鏡像構(gòu)建指導(dǎo)

具體下載源碼和編譯流程建議參考容器環(huán)境下的快速構(gòu)建指導(dǎo):https://openeuler.gitee.io/yocto-meta-openeuler/yocto/quickbuild/container-build.html

「QEMU RT 鏡像構(gòu)建方式」

  • 步驟:

下載源碼 --> 修改 bb 文件打入 RT 補(bǔ)丁 --> 手動(dòng)打開 CONFIG_PREEMPT_RT --> 編譯構(gòu)建

  • 更改 aarch64 鏡像內(nèi)核 bb 文件,使其構(gòu)建時(shí)自動(dòng)打入 RT 補(bǔ)丁,示例:
cd /usr1/openeuler/src/yocto-meta-openeuler/meta-openeuler/recipes-kernel/linux/

sed -i '/0001-arm64-add-zImage/a    file://src-kernel-5.10/patch-5.10.0-60.10.0-rt62.patch \' linux-openeuler.bb

sed -i '/patch-5.10.0-60.10.0-rt62.patch/a    file://src-kernel-5.10/patch-5.10.0-60.10.0-rt62_openeuler_defconfig.patch \' linux-openeuler.bb

git diff 輸出示例:

diff --git a/meta-openeuler/recipes-kernel/linux/linux-openeuler.bb b/meta-openeuler/recipes-kernel/linux/linux-openeuler.bb
index 77d8717..5a4b2b8 100644
--- a/meta-openeuler/recipes-kernel/linux/linux-openeuler.bb
+++ b/meta-openeuler/recipes-kernel/linux/linux-openeuler.bb
@@ -11,6 +11,8 @@ SRC_URI = "file://kernel-5.10 
 # add patches only for aarch64
 SRC_URI_append_aarch64 += " 
     file://yocto-embedded-tools/patches/${ARCH}/0001-arm64-add-zImage-support-for-arm64.patch 
+    file://src-kernel-5.10/patch-5.10.0-60.10.0-rt62.patch 
+    file://src-kernel-5.10/patch-5.10.0-60.10.0-rt62_openeuler_defconfig.patch 
 "

 # add patches for OPENEULER_PLATFROM such as aarch64-pro
  • 打開 aarch64 鏡像 defconfig 中的 CONFIG_PREEMPT_RT,示例:
cd /usr1/openeuler/src/yocto-embedded-tools/config/arm64/

sed -i 's/CONFIG_PREEMPT=y/CONFIG_PREEMPT_RT=y/g' defconfig-kernel

git diff 輸出示例:

diff --git a/config/arm64/defconfig-kernel b/config/arm64/defconfig-kernel
index dece4f7..c4ef7ab 100644
--- a/config/arm64/defconfig-kernel
+++ b/config/arm64/defconfig-kernel
@@ -80,7 +80,7 @@ CONFIG_HIGH_RES_TIMERS=y

 # CONFIG_PREEMPT_NONE is not set
 # CONFIG_PREEMPT_VOLUNTARY is not set
-CONFIG_PREEMPT=y
+CONFIG_PREEMPT_RT=y
 CONFIG_PREEMPT_COUNT=y
 CONFIG_PREEMPTION=y
  • 編譯時(shí)選擇 aarch64-std 架構(gòu),示例:
cd /usr1/openeuler/src/yocto-meta-openeuler/scripts

source compile.sh aarch64-std /usr1/build /usr1/openeuler/gcc/openeuler_gcc_arm64le

bitbake openeuler-image
  • 構(gòu)建鏡像生成目錄:

    /usr1/build/output/

  • 二進(jìn)制介紹:

  1. Image-5.10.0:QEMU RT 內(nèi)核鏡像
  2. openeuler-image-qemu-aarch64-<時(shí)間戳>.rootfs.cpio.gz:QEMU 文件系統(tǒng)
  3. openeuler-glibc-x86-64-openeuler-image-aarch64-qemu-aarch64-toolchain-22.03.shSDK 工具鏈
  4. zImage:QEMU RT 內(nèi)核的壓縮鏡像

「樹莓派 RT 鏡像構(gòu)建方式」

  • 步驟:

下載源碼 --> 修改 bb 文件打入 RT 補(bǔ)?。ㄑa(bǔ)丁已自動(dòng)打開 CONFIG_PREEMPT_RT) --> 編譯構(gòu)建

  • 更改 raspberrypi 鏡像內(nèi)核 bb 文件,使其構(gòu)建時(shí)自動(dòng)打入 RT 補(bǔ)丁并打開 CONFIG_PREEMPT_RT,示例:
cd /usr1/openeuler/src/yocto-meta-openeuler/bsp/meta-openeuler-bsp/raspberrypi/recipes-kernel/linux/

sed -i '/0000-raspberrypi-kernel.patch/a    file://src-kernel-5.10/0001-add-preemptRT-patch.patch \' linux-openeuler.bbappend

sed -i '/0001-add-preemptRT-patch.patch/a    file://src-kernel-5.10/0002-modifty-bcm2711_defconfig-for-rt-rpi-kernel.patch \' linux-openeuler.bbappend

git diff 輸出示例:

diff --git a/bsp/meta-openeuler-bsp/raspberrypi/recipes-kernel/linux/linux-openeuler.bbappend b/bsp/meta-openeuler-bsp/raspberrypi/recipes-kernel/linux/linux-openeuler.bbappend
index ad6ebab..cf52b3d 100644
--- a/bsp/meta-openeuler-bsp/raspberrypi/recipes-kernel/linux/linux-openeuler.bbappend
+++ b/bsp/meta-openeuler-bsp/raspberrypi/recipes-kernel/linux/linux-openeuler.bbappend
@@ -1,5 +1,7 @@
 SRC_URI += "
     file://src-kernel-5.10/0000-raspberrypi-kernel.patch 
+    file://src-kernel-5.10/0001-add-preemptRT-patch.patch 
+    file://src-kernel-5.10/0002-modifty-bcm2711_defconfig-for-rt-rpi-kernel.patch 
 "
 OPENEULER_KERNEL_CONFIG = "${S}/arch/${ARCH}/configs/bcm2711_defconfig"
 do_configure_prepend() {
  • 編譯時(shí)選擇 raspberrypi4-64 架構(gòu),示例:
cd /usr1/openeuler/src/yocto-meta-openeuler/scripts

source compile.sh raspberrypi4-64 /usr1/build /usr1/openeuler/gcc/openeuler_gcc_arm64le

bitbake openeuler-image
  • 構(gòu)建鏡像生成目錄:

    /usr1/build/output/

  • 二進(jìn)制介紹:

  1. Image:樹莓派 RT 內(nèi)核鏡像
  2. openeuler-image-raspberrypi4-64-<時(shí)間戳>.rootfs.rpi-sdimg:樹莓派 RT 支持 SD 卡鏡像
  3. openeuler-glibc-x86-64-openeuler-image-cortexa72-raspberrypi4-64-toolchain-22.03.sh:SDK 工具鏈

樹莓派 4B 的具體使用方法后期會(huì)詳細(xì)介紹。

?

「說(shuō)明」

  • 如果開發(fā)人員使用的內(nèi)核配置不是 RT 補(bǔ)丁中修改的 defconfig(QEMU:arch/arm64/configs/openeuler\_defconfig,樹莓派:arch/arm64/configs/bcm2711\_defconfig),則需要在自己的 defconfig 中開啟內(nèi)核配置選項(xiàng)CONFIG_PREEMPT_RT,例如上面 QEMU 構(gòu)建方式中的 yocto-embedded-tools/config/arm64/defconfig-kernel
  • openEuler Embedded 軟實(shí)時(shí)特性當(dāng)前僅支持 arm64 架構(gòu)
?

驗(yàn)證環(huán)境的軟實(shí)時(shí)是否使能

  • 查看系統(tǒng)是否有 PREEMPT_RT 字樣:

輸入示例:

uname -a

輸出示例:

Linux openeuler 5.10.0-rt62-v8 #1 SMP PREEMPT_RT Fri Mar 25 0322 UTC 2022 aarch64 GNU/Linux

軟實(shí)時(shí)性能測(cè)試

「軟實(shí)時(shí)相關(guān)測(cè)試」

參考 RT-Tests 指導(dǎo)

https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/rt-tests

進(jìn)行軟實(shí)時(shí)相關(guān)測(cè)試,用例包括但不限于:

  1. cyclictest 時(shí)延性能測(cè)試
  2. pi_stress 優(yōu)先級(jí)繼承測(cè)試
  3. hackbench 負(fù)載構(gòu)造工具

下面以 cyclictest 時(shí)延性能測(cè)試為例進(jìn)行說(shuō)明。

「cyclictest 時(shí)延性能測(cè)試」

  1. 準(zhǔn)備開發(fā)環(huán)境

安裝 SDK,準(zhǔn)備編譯環(huán)境,示例:

sh openeuler-glibc-x86_64-openeuler-image-aarch64-qemu-aarch64-toolchain-22.03.sh

. /path/to/sdk/environment-setup-aarch64-openeuler-linux
  1. 編譯用例
git clone https://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git

cd rt-tests

git checkout stable/v1.0

make all
  1. 執(zhí)行用例

編譯完成后生成二進(jìn)制 cyclictest,傳入單板環(huán)境后可查看執(zhí)行 cyclictest 時(shí)可配置的參數(shù):

./cyclictest --help

cyclictest 有多種參數(shù)配置方法,用例具體的入?yún)⒃O(shè)計(jì)可參考 test-design

https://wiki.linuxfoundation.org/realtime/documentation/howto/tools/cyclictest/test-design

輸入示例:

./cyclictest -p 90 -m -i 100 -n -h 100 -l 10000000

輸出示例:

# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 2.32 1.99 1.58 1/95 311

T: 0 (  311) P:90 I:100 C:10000000 Min:      7 Act:    9 Avg:    8 Max:      16

即用例循環(huán) 1000 萬(wàn)次后,平均時(shí)延為 8us,最壞時(shí)延為 16us(該數(shù)據(jù)僅為示例,具體以環(huán)境實(shí)測(cè)為準(zhǔn))。

?

「說(shuō)明:」

如果樹莓派 4B 的空載情況下,平均時(shí)延較差(如超過(guò) 20us),可查看使用的樹莓派固件是否將 CPU 頻率配置為了節(jié)能模式,并根據(jù)需要將 CPU 頻率配置為最高運(yùn)行頻率。如無(wú) cpufreq 相關(guān)接口,則不涉及。

?

輸入示例:

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor

輸出示例:

powersave

如上結(jié)果表示 CPU 頻率為節(jié)能模式。

配置 CPU 最高運(yùn)行頻率,輸入示例:

echo performance > /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
審核編輯 :李倩

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

    關(guān)注

    7

    文章

    2820

    瀏覽量

    52771
  • 源碼
    +關(guān)注

    關(guān)注

    8

    文章

    682

    瀏覽量

    31062
  • openEuler
    +關(guān)注

    關(guān)注

    2

    文章

    335

    瀏覽量

    6659

原文標(biāo)題:openEuler Embedded 軟實(shí)時(shí)系統(tǒng)介紹

文章出處:【微信號(hào):openEulercommunity,微信公眾號(hào):openEuler】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    開啟功能的MOS管開關(guān)電路說(shuō)明

    電源開關(guān)電路,經(jīng)常用在各“功能模塊”電路的電源通斷控制,是常用電路之一。本文要講解的電源開關(guān)電路,是用MOS管實(shí)現(xiàn)的,且?guī)?b class='flag-5'>軟開啟功能。 電路說(shuō)明 電源開關(guān)電路,尤其是MOS管電源開關(guān)電路,經(jīng)常用在各
    發(fā)表于 12-01 08:23

    潤(rùn)和軟件亮相操作系統(tǒng)大會(huì)openEuler Summit 2025

    2025年11月14-15日,以“智躍無(wú)界,開源致遠(yuǎn)”為主題的操作系統(tǒng)大會(huì)&openEuler Summit 2025在北京隆重舉辦。本次大會(huì)由開放原子開源歐拉(OpenAtom
    的頭像 發(fā)表于 11-20 09:36 ?197次閱讀
    潤(rùn)和軟件亮相操作<b class='flag-5'>系統(tǒng)</b>大會(huì)<b class='flag-5'>openEuler</b> Summit 2025

    通動(dòng)力成為openEuler社區(qū)首批全球化先鋒伙伴

    11月14—15日,操作系統(tǒng)大會(huì)&openEuler Summit 2025在北京隆重舉行。本次大會(huì)由開放原子開源歐拉社區(qū)協(xié)同通動(dòng)力等數(shù)十家產(chǎn)業(yè)伙伴共同舉辦,旨在匯聚全球產(chǎn)業(yè)界力量,打造極具創(chuàng)新力的操作
    的頭像 發(fā)表于 11-19 17:25 ?495次閱讀

    嵌入式實(shí)時(shí)操作系統(tǒng)的特點(diǎn)

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

    通動(dòng)力攜手openEuler推動(dòng)開源生態(tài)全球化發(fā)展

    8月29日,開放原子開源基金會(huì)園區(qū)行在重慶召開。開放原子開源基金會(huì)openEuler社區(qū)作為開源社區(qū)代表參會(huì),開源歐拉用戶委員會(huì)主席、通動(dòng)力助理副總裁王軍應(yīng)邀分享了開源歐拉社區(qū)的治理經(jīng)驗(yàn)與通動(dòng)力攜手開源歐拉的國(guó)際化實(shí)踐。
    的頭像 發(fā)表于 09-01 11:39 ?500次閱讀

    請(qǐng)問(wèn)在Vision Five2上怎樣安裝openeuler24.03 LTS SP1?

    在Vision Five2上怎樣安裝openeuler24.03 LTS SP1?
    發(fā)表于 07-29 09:02

    通動(dòng)力加入openEuler社區(qū)AI聯(lián)合工作組

    近日,2025開放原子開源生態(tài)大會(huì)開幕,openEuler社區(qū)攜手軟通動(dòng)力與社區(qū)成員單位共同發(fā)起成立“openEuler社區(qū)AI聯(lián)合工作組”,工作組將整合芯片、算法、應(yīng)用等全產(chǎn)業(yè)鏈力量,推動(dòng)操作系統(tǒng)
    的頭像 發(fā)表于 07-25 14:42 ?809次閱讀

    openEuler 22.03為什么無(wú)法運(yùn)行在VisionFive2上?

    (求助)openEuler 22.03無(wú)法運(yùn)行在VisionFive2上
    發(fā)表于 06-19 07:13

    CODESYS全平臺(tái)適配openEuler 布局工業(yè)4.0前沿

    OpenAtom openEuler(簡(jiǎn)稱“openEuler”)社區(qū)與工業(yè)自動(dòng)化全球領(lǐng)軍企業(yè)CODESYS集團(tuán)聯(lián)合宣布,經(jīng)過(guò)深度技術(shù)合作, CODESYS全系列開發(fā)平臺(tái)(含CODESYS
    的頭像 發(fā)表于 06-10 18:27 ?1335次閱讀

    什么樣的才叫實(shí)時(shí)工業(yè)操作系統(tǒng)

    實(shí)時(shí)工業(yè)操作系統(tǒng)的核心是在嚴(yán)格時(shí)間約束下保證任務(wù)執(zhí)行的確定性、可靠性和安全性,通常需通過(guò)專用架構(gòu)、實(shí)時(shí)調(diào)度算法和工業(yè)級(jí)認(rèn)證來(lái)滿足嚴(yán)苛的工業(yè)環(huán)境需求。選擇時(shí)需根據(jù)具體場(chǎng)景的實(shí)時(shí)性等級(jí)(硬
    的頭像 發(fā)表于 04-17 10:09 ?553次閱讀
    什么樣的才叫<b class='flag-5'>實(shí)時(shí)</b>工業(yè)操作<b class='flag-5'>系統(tǒng)</b>

    通動(dòng)力亮相openEuler Developer Day 2025

    的技術(shù)成果,分享各行各業(yè)基于openEuler的商業(yè)實(shí)踐。通動(dòng)力作為openEuler項(xiàng)目群黃金捐贈(zèng)人、openEuler社區(qū)重要參與者和貢獻(xiàn)者,應(yīng)邀出席本次大會(huì)并參加“2025-2
    的頭像 發(fā)表于 04-15 17:21 ?856次閱讀

    Bosch Sensortec亮相Embedded World 2025

    2025年3月11日至13日,全球嵌入式系統(tǒng)盛會(huì) Embedded World 2025在德國(guó)紐倫堡展覽中心圓滿落幕。
    的頭像 發(fā)表于 04-15 17:03 ?1050次閱讀

    openEuler Developer Day 2025成功舉辦

    近日,由OpenAtom openEuler(簡(jiǎn)稱“openEuler”)社區(qū)發(fā)起的openEuler Developer Day 2025(簡(jiǎn)稱“大會(huì)”)在杭州成功舉辦。
    的頭像 發(fā)表于 04-14 16:11 ?939次閱讀

    潤(rùn)和軟件亮相openEuler Developer Day 2025

    近日,openEuler Developer Day 2025 (ODD 2025)在杭州成功舉行。本次會(huì)議由開放原子開源基金會(huì)openEuler社區(qū)發(fā)起,全面解讀了全新發(fā)布的openEuler 25.03 版本創(chuàng)新
    的頭像 發(fā)表于 04-14 11:42 ?1306次閱讀

    回顧2024年度潤(rùn)和軟件與openEuler的精彩瞬間

    openEuler生態(tài)系統(tǒng)蓬勃發(fā)展中扮演了關(guān)鍵角色。讓我們共同回顧2024年度潤(rùn)和軟件與openEuler的精彩瞬間!
    的頭像 發(fā)表于 01-07 18:12 ?1542次閱讀