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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

「實(shí)時(shí)性簡介」

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

「Preempt_RT 補(bǔ)丁簡介」

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

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

  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)先級反轉(zhuǎn)問題(優(yōu)先級繼承)

軟實(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ì)介紹。

?

「說明」

  • 如果開發(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í)性能測試

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

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

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

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

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

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

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

  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 萬次后,平均時(shí)延為 8us,最壞時(shí)延為 16us(該數(shù)據(jù)僅為示例,具體以環(huán)境實(shí)測為準(zhǔn))。

?

「說明:」

如果樹莓派 4B 的空載情況下,平均時(shí)延較差(如超過 20us),可查看使用的樹莓派固件是否將 CPU 頻率配置為了節(jié)能模式,并根據(jù)需要將 CPU 頻率配置為最高運(yùn)行頻率。如無 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)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2812

    瀏覽量

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

    關(guān)注

    8

    文章

    678

    瀏覽量

    30852
  • openEuler
    +關(guān)注

    關(guān)注

    2

    文章

    331

    瀏覽量

    6595

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    通動(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)力攜手開源歐拉的國際化實(shí)踐。
    的頭像 發(fā)表于 09-01 11:39 ?398次閱讀

    通動(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 ?695次閱讀

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

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

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

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

    通動(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 ?760次閱讀

    openEuler Developer Day 2025成功舉辦

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

    潤和軟件亮相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 ?1205次閱讀

    回顧2024年度潤和軟件與openEuler的精彩瞬間

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

    通動(dòng)力亮相openEuler Summit 2024

    近日,主題為“以智能,致世界”的openEuler Summit 2024在北京隆重舉行。本次大會(huì)由開放原子開源基金會(huì)孵化及運(yùn)營的 openEuler社區(qū)主辦,通動(dòng)力等產(chǎn)業(yè)伙伴參與協(xié)辦。會(huì)上,
    的頭像 發(fā)表于 11-26 16:50 ?978次閱讀

    RK3588J成功適配“歐拉”系統(tǒng)!助力能源電力國產(chǎn)OS!

    系統(tǒng)、分布式總線等特性,以及必要的基礎(chǔ)設(shè)施,將諸多的運(yùn)行時(shí)與Linux有機(jī)集成,共同為嵌入式系統(tǒng)提供高效、靈活、安全的解決方案。 圖 2open
    發(fā)表于 11-21 15:45

    通動(dòng)力榮膺2024年度openEuler社區(qū)突出貢獻(xiàn)單位

    近日,主題為“以智能 致世界”的操作系統(tǒng)大會(huì)2024在北京中關(guān)村國際創(chuàng)新中心舉辦,大會(huì)由openEuler社區(qū)和全球計(jì)算聯(lián)盟主辦,通動(dòng)力參與協(xié)辦。作為開放原子開源基金會(huì)白金捐贈(zèng)人
    的頭像 發(fā)表于 11-20 11:50 ?1052次閱讀

    華為亮相操作系統(tǒng)大會(huì)openEuler Summit 2024

    “以智能 致世界”為主題的操作系統(tǒng)大會(huì) & openEuler Summit 2024 在北京中關(guān)村國際創(chuàng)新中心舉行。本次大會(huì)由 openEuler社區(qū)、全球計(jì)算聯(lián)盟主辦。華為公司戰(zhàn)略部部長蓋剛出席該活動(dòng)并做大會(huì)致辭。
    的頭像 發(fā)表于 11-18 11:52 ?1011次閱讀

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

    近日,操作系統(tǒng)大會(huì)&openEuler Summit 2024在北京隆重舉辦。本次大會(huì)由openEuler社區(qū)和全球計(jì)算聯(lián)盟主辦,江蘇潤和軟件股份有限公司(以下簡稱“潤和軟件”)參與協(xié)辦。旨在匯聚全球產(chǎn)業(yè)發(fā)展力量,共同探討操作
    的頭像 發(fā)表于 11-17 09:08 ?1136次閱讀

    潤和軟件參與openEuler社區(qū)操作系統(tǒng)安全主題技術(shù)交流

    Meetup,分享和交流openEuler社區(qū)在操作系統(tǒng)安全領(lǐng)域的最新進(jìn)展、安全特性和實(shí)踐案例。江蘇潤和軟件股份有限公司(以下簡稱“潤和軟件”)作為openEuler項(xiàng)目群黃金捐贈(zèng)人受
    的頭像 發(fā)表于 11-13 16:14 ?987次閱讀

    第二屆openEuler生態(tài)大會(huì)圓滿結(jié)束

    近日,第二屆openEuler生態(tài)大會(huì)(中國·湖南)成功舉辦。大會(huì)以“根植openEuler共建開源生態(tài)”為主題,旨在響應(yīng)國家開源產(chǎn)業(yè)發(fā)展戰(zhàn)略,推動(dòng)建設(shè)以openEuler為根技術(shù)的開源操作
    的頭像 發(fā)表于 10-31 16:02 ?837次閱讀