色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

OpenHarmony輕量系統中內核資源主要管理方式

OpenAtom OpenHarmony ? 來源:未知 ? 2022-10-20 23:10 ? 次閱讀

點擊藍字 ╳ 關注我們

開源項目 OpenHarmony是每個人的 OpenHarmony e847a8aa-5088-11ed-a3b6-dac502259ad0.jpg

冷欽街

軟通動力

高級技術專家、產品推薦官

以下內容來自嘉賓分享,不代表開放原子開源基金會觀點

一、背景

OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)輕量系統面向MCU處理器例如ARM Cortex-M、RISC-V 32位的設備,硬件資源極其有限,支持的設備最小內存為128KiB,可以提供多種輕量級網絡協議,輕量級的圖形框架,以及豐富的IOT總線讀寫部件等。可支撐的產品如智能家居領域的連接類模組、傳感器設備、穿戴類設備等。 在輕量系統內核中,由于可用內存資源少,一般的數據資源都是小批量的,所以其資源管理方式都比較簡單且相似,本文重點講解在輕量系統內核中,典型的資源的存儲和訪問方式。這些典型的資源包括互斥鎖,信號量、消息隊列、事件、定時器等。 本文以互斥鎖為例來探究其內核資源的主要管理方式。 互斥鎖軟件模塊相關的代碼在如下位置 https://gitee.com/openharmony/kernel_liteos_m/blob/master/kernel/src/los_mux.c https://gitee.com/openharmony/kernel_liteos_m/blob/master/kernel/include/los_mux.h

二、模塊使能和容量

互斥鎖軟件模塊是編譯可裁剪模塊,可以通過編譯配置宏來打開或者關閉具體的編譯配置宏定義在https://gitee.com/openharmony/kernel_liteos_m/blob/master/kernel/include/los_config.h文件中 e8807ab8-5088-11ed-a3b6-dac502259ad0.png ? 通過這個文件可知,liteos_m內核默認是使能互斥鎖功能的,但我們根據具體產品可以對其進行設置,如某產品對應的配置文件https://gitee.com/openharmony/device_qemu/blob/master/arm_mps2_an386/liteos_m/board/target_config.h ?e895240e-5088-11ed-a3b6-dac502259ad0.png ? 這里明確看到此產品使用了互斥鎖功能,如果需要將其關閉,直接修改成0值即可。 互斥鎖支持的最大數目不同產品可以不同,當前這個產品為24,如果產品沒有定義容量限制,那么使用默認容量限制(見los_config.h中)。 ?e8af5c16-5088-11ed-a3b6-dac502259ad0.png ?1.數據保存方式 由于容量較小,采用數組這種簡單和原始的數據保存方式,在系統初始化的時候申請數組內存。如下(los_mux.c中) e8d362e6-5088-11ed-a3b6-dac502259ad0.png ?

三、數據訪問方式

由于輕量系統的計算資源相對受限,因此需要在算法上斤斤計較。目前提供了ID方式(數組下標訪問)和鏈表訪問2種方式,如下進行詳細說明。1.通過ID訪問 在los_mux.h中,定義了通過id訪問互斥鎖的方法,其實質就是數組下標訪問,獲取具體互斥鎖資源的地址 e8eb7bba-5088-11ed-a3b6-dac502259ad0.png ?2.通過空閑鏈表訪問 隨著互斥鎖的申請和釋放,系統中當前正在使用的互斥鎖數目是動態變化的。由于采用了數組存儲以及內存預留的策略,所以數組中的互斥鎖有些是空閑的,有些是正在使用的,并且其狀態隨著系統的運行過程而無規律地變化。 若僅依賴于數組方式訪問互斥鎖,則查詢空閑互斥鎖是一個稍耗時的算法,因為要遍歷數組。 為了加快空閑互斥鎖的查詢,本系統采用了將所有空閑互斥鎖組織成鏈表的方法。這樣每次取出鏈表第一個節點即可,可以極大提升性能。 在los_mux.h中,通過增加muxList字段將所有空閑的互斥鎖組織成鏈表 e8fd808a-5088-11ed-a3b6-dac502259ad0.png ? 在los_mux.c中,系統初始化時,所有互斥鎖都為空閑狀態,放入空閑鏈表 ?e91384ac-5088-11ed-a3b6-dac502259ad0.png ? 在los_mux.c中,創建互斥鎖時,從空閑鏈表取下空閑狀態的互斥鎖 ?e92d164c-5088-11ed-a3b6-dac502259ad0.png ? 在los_mux.c中,釋放互斥鎖時,將互斥鎖放入空閑鏈表 ?e9473a68-5088-11ed-a3b6-dac502259ad0.png ?

四、健壯性考慮

1.空閑狀態雙保險 除了通過判斷是否在空閑鏈表上來判斷描述符是否空閑以外,在結構體中也保存了是否空閑的狀態,這樣可以增加空閑狀態判斷的健壯性;另外,通過直接判斷狀態也比判斷是否在鏈表中性能更高。如下(los_mux.c中): e95c7464-5088-11ed-a3b6-dac502259ad0.png ?2.中斷上下文保護 由于在中斷上下文中不允許有睡眠操作,而互斥鎖獲取邏輯就是典型的具有睡眠操作的邏輯,所以,互斥鎖的獲取和釋放不能在中斷上下文中,如下(los_mux.c中)。 e974be20-5088-11ed-a3b6-dac502259ad0.png ?3.任務切換保護 IPC操作有時會需要任務切換,如果當前任務切換功能被臨時關閉,則不允許進行IPC操作,互斥鎖獲取操作也是IPC操作的一種。 代碼如下(los_mux.c): e98eb23a-5088-11ed-a3b6-dac502259ad0.png ?4.關鍵任務不允許切換 一些系統關鍵任務運行后,不允許執行IPC邏輯,比如軟件定時器任務:其監控多個定時器的超時。假定其執行IPC邏輯導致任務等待某資源比較長的時間,會導致后續部分定時器定時功能失效(不準確)。代碼如下(los_mux.c): e9a3b892-5088-11ed-a3b6-dac502259ad0.png ?

五、總結

輕量系統中內核資源多采用數組與空閑鏈表相結合的方式。除了OpenHarmony輕量系統,其他嵌入式系統中這類的數據存儲方式也比較常見。這種方式有如下幾個突出的優點簡單易懂

讀寫效率高

代碼緊湊


原文標題:OpenHarmony輕量系統中內核資源主要管理方式

文章出處:【微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

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

    關注

    26

    文章

    3806

    瀏覽量

    17950

原文標題:OpenHarmony輕量系統中內核資源主要管理方式

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 0人收藏

    評論

    相關推薦
    熱點推薦

    【匯總】OpenHarmony系統開發目錄和個人感悟

    前言還記得2020年9月OpenHarmony大會后,我開始在社區寫了一些OpenHarmony系統開發的文章,基于Hi3861。轉眼已
    發表于 01-20 09:04

    從零移植OpenHarmony系統【1】移植思路

    移植類型OpenHarmony系統的移植比較簡單,代碼解耦做得非常好。從代碼的設計理念上來看,移植
    發表于 01-26 17:18

    移植OpenHarmony系統【7】燒錄與驗證

    摘要:本文簡單介紹OpenHarmony系統移植,內核初始化和啟動適合群體:想自己動手移植OpenH
    發表于 02-09 18:09

    從零開始移植OpenHarmony系統

    內核移植到ARM單片機上,現在代碼開源、移植文章也完成7篇,后續會考慮增加視頻講解,直播。以便大家也可以自己移植。移植文章:移植OpenHarmony
    發表于 02-09 18:58

    OpenHarmony支持的系統類型及內核

    本文介紹OpenHarmony所不同的系統類型以及支持的內核系統類型OpenHarmony支持以下幾種
    發表于 04-19 11:29

    OpenHarmony與小型系統入門概述

    參考和小型系統快速入門(安裝包方式)。 開發環境 開發者通常習慣采用Windows+Ubuntu環境進行OpenHarmony開發: W
    發表于 05-06 15:48

    OpenHarmony系統內核資源主要管理方式

    資源少,一般的數據資源都是小批量的,所以其資源管理方式都比較簡單且相似,本文重點講解在系統
    發表于 10-21 11:34

    OpenHarmony Dev-Board-SIG專場:ARM架構和MIPS架構移植OpenHarmony系統

    OpenHarmony Dev-Board-SIG專場:ARM架構和MIPS架構移植OpenHarmony系統
    的頭像 發表于 12-28 16:00 ?2065次閱讀
    <b class='flag-5'>OpenHarmony</b> Dev-Board-SIG專場:ARM架構和MIPS架構移植<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>

    OpenHarmony Dev-Board-SIG專場:MIPS架構移植OpenHarmony系統展示

    OpenHarmony Dev-Board-SIG專場:MIPS構架移植OpenHarmony系統展示
    的頭像 發表于 12-28 16:07 ?1662次閱讀
    <b class='flag-5'>OpenHarmony</b> Dev-Board-SIG專場:MIPS架構移植<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>展示

    OpenHarmony系統、小型系統、標準系統的差異

    本文簡單介紹OpenHarmony系統、小型系統、標準系統的差異,以及相關的官方資料和文檔
    的頭像 發表于 01-24 14:47 ?7518次閱讀
    <b class='flag-5'>OpenHarmony</b>、<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>、小型<b class='flag-5'>系統</b>、標準<b class='flag-5'>系統</b>的差異

    關于OpenHarmony系統開發

    還記得2020年9月OpenHarmony大會后,我開始在社區寫了一些OpenHarmony系統開發的文章,基于Hi3861。
    的頭像 發表于 01-24 14:54 ?2044次閱讀

    如何移植OpenHarmony系統

    摘要:本文簡單介紹OpenHarmony系統移植,會分多篇
    的頭像 發表于 02-25 12:14 ?3319次閱讀
    如何移植<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>

    OpenHarmony系統開發【1】初始OH

    本文簡單介紹OpenHarmony系統、小型系統、標準系統的差異,以及相關的官方資料和文檔
    發表于 02-25 17:49 ?1127次閱讀

    OpenHarmony系統書籍推薦《OpenHarmony設備開發理論與實戰》

    最近大家問的智能家居套件方面有沒有可以參考的資料,這里給大家統一回復一下 推薦大家可以看這本書 《OpenHarmony設備開發理論與實戰》 本書系統地講授
    的頭像 發表于 07-20 12:43 ?1589次閱讀

    【開源鴻蒙】使用QEMU運行OpenHarmony系統

    本文將會介紹如何從源碼安裝QEMU 6.2.0,以及如何使用QEMU運行OpenHarmony系統。通過本文,你將會對QEMU和OpenHarm
    的頭像 發表于 09-14 08:51 ?1071次閱讀
    【開源鴻蒙】使用QEMU運行<b class='flag-5'>OpenHarmony</b><b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>
    主站蜘蛛池模板: 激情内射亚洲一区二区三区 | 夜色福利院在线看 | 99视频在线观看免费 | 在线观看99 | 精品亚洲欧美中文字幕在线看 | 在线精彩视频在线观看免费 | 伊人久久综合影院首页 | 国产精品美女久久久网站动漫 | 午夜想想爱午夜剧场 | 福利一区国产 | 日本人吃奶玩奶虐乳 | 久久99热只有频精品 | 少妇一夜未归暴露妓女身份 | 闺蜜撬开我的腿用黄瓜折磨我 | 野花视频在线观看免费 | 国产精品女上位好爽在线短片 | 欧美一区二区日韩一区二区 | 第一福利在线永久视频 | 欧美97色伦综合网 | 暖暖的视频完整视频免费韩国 | 久久久久久久久久久福利观看 | 亚洲国产中文字幕新在线 | WWW国产亚洲精品久久麻豆 | 高h肉肉乳共妻 | 日日a.v拍夜夜添久久免费 | 打扑克床上视频不用下载免费观看 | 消息称老熟妇乱视频一区二区 | 国产亚洲精品AAAAAAA片 | 欧美同志高清vivoeso | 成人网18免费韩国 | 忘忧草下载 | 亚洲国产在线2o20 | 欧美特级午夜一区二区三区 | 亚洲绝美精品一区二区 | 在线免费观看国产视频 | 果冻传媒2021一二三区 | 国产视频www | 在线观看免费视频播放视频 | 久久国产亚洲电影天堂 | 无码国产伦一区二区三区视频 | 无人区乱码1区2区3区网站 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品