點(diǎn)擊藍(lán)字 ╳ 關(guān)注我們
開源項(xiàng)目 OpenHarmony是每個(gè)人的 OpenHarmony
冷欽街
軟通動(dòng)力
高級(jí)技術(shù)專家、產(chǎn)品推薦官
以下內(nèi)容來自嘉賓分享,不代表開放原子開源基金會(huì)觀點(diǎn)一、背景
OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)輕量系統(tǒng)面向MCU類處理器例如ARM Cortex-M、RISC-V 32位的設(shè)備,硬件資源極其有限,支持的設(shè)備最小內(nèi)存為128KiB,可以提供多種輕量級(jí)網(wǎng)絡(luò)協(xié)議,輕量級(jí)的圖形框架,以及豐富的IOT總線讀寫部件等。可支撐的產(chǎn)品如智能家居領(lǐng)域的連接類模組、傳感器設(shè)備、穿戴類設(shè)備等。 在輕量系統(tǒng)內(nèi)核中,由于可用內(nèi)存資源少,一般的數(shù)據(jù)資源都是小批量的,所以其資源管理方式都比較簡單且相似,本文重點(diǎn)講解在輕量系統(tǒng)內(nèi)核中,典型的資源的存儲(chǔ)和訪問方式。這些典型的資源包括互斥鎖,信號(hào)量、消息隊(duì)列、事件、定時(shí)器等。 本文以互斥鎖為例來探究其內(nèi)核資源的主要管理方式。 互斥鎖軟件模塊相關(guān)的代碼在如下位置 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二、模塊使能和容量
互斥鎖軟件模塊是編譯可裁剪模塊,可以通過編譯配置宏來打開或者關(guān)閉具體的編譯配置宏定義在https://gitee.com/openharmony/kernel_liteos_m/blob/master/kernel/include/los_config.h文件中



三、數(shù)據(jù)訪問方式
由于輕量系統(tǒng)的計(jì)算資源相對(duì)受限,因此需要在算法上斤斤計(jì)較。目前提供了ID方式(數(shù)組下標(biāo)訪問)和鏈表訪問2種方式,如下進(jìn)行詳細(xì)說明。1.通過ID訪問 在los_mux.h中,定義了通過id訪問互斥鎖的方法,其實(shí)質(zhì)就是數(shù)組下標(biāo)訪問,獲取具體互斥鎖資源的地址




四、健壯性考慮
1.空閑狀態(tài)雙保險(xiǎn) 除了通過判斷是否在空閑鏈表上來判斷描述符是否空閑以外,在結(jié)構(gòu)體中也保存了是否空閑的狀態(tài),這樣可以增加空閑狀態(tài)判斷的健壯性;另外,通過直接判斷狀態(tài)也比判斷是否在鏈表中性能更高。如下(los_mux.c中):



五、總結(jié)
輕量系統(tǒng)中內(nèi)核資源多采用數(shù)組與空閑鏈表相結(jié)合的方式。除了OpenHarmony輕量系統(tǒng),其他嵌入式系統(tǒng)中這類的數(shù)據(jù)存儲(chǔ)方式也比較常見。這種方式有如下幾個(gè)突出的優(yōu)點(diǎn)●簡單易懂●讀寫效率高
●代碼緊湊
原文標(biāo)題:OpenHarmony輕量系統(tǒng)中內(nèi)核資源主要管理方式
文章出處:【微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
OpenHarmony
+關(guān)注
關(guān)注
26文章
3824瀏覽量
18143
原文標(biāo)題:OpenHarmony輕量系統(tǒng)中內(nèi)核資源主要管理方式
文章出處:【微信號(hào):gh_e4f28cfa3159,微信公眾號(hào):OpenAtom OpenHarmony】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
【匯總】OpenHarmony輕量系統(tǒng)開發(fā)目錄和個(gè)人感悟
從零移植OpenHarmony輕量系統(tǒng)【1】移植思路
移植OpenHarmony輕量系統(tǒng)【7】燒錄與驗(yàn)證
從零開始移植OpenHarmony輕量系統(tǒng)
OpenHarmony支持的系統(tǒng)類型及內(nèi)核
OpenHarmony輕量與小型系統(tǒng)入門概述
OpenHarmony輕量系統(tǒng)中內(nèi)核資源主要管理方式
OpenHarmony Dev-Board-SIG專場:ARM架構(gòu)和MIPS架構(gòu)移植OpenHarmony輕量系統(tǒng)

OpenHarmony Dev-Board-SIG專場:MIPS架構(gòu)移植OpenHarmony輕量系統(tǒng)展示

OpenHarmony、輕量系統(tǒng)、小型系統(tǒng)、標(biāo)準(zhǔn)系統(tǒng)的差異

關(guān)于OpenHarmony輕量系統(tǒng)開發(fā)
OpenHarmony輕量系統(tǒng)開發(fā)【1】初始OH
OpenHarmony輕量系統(tǒng)書籍推薦《OpenHarmony輕量設(shè)備開發(fā)理論與實(shí)戰(zhàn)》
【開源鴻蒙】使用QEMU運(yùn)行OpenHarmony輕量系統(tǒng)

評(píng)論