自學華爲IoT物聯網_12 Huawei LiteOS基礎架構
點擊返回自學華爲IoT物流網html
自學華爲IoT物聯網_12 Huawei LiteOS基礎架構
1、1個Huawei LiteOS Kernel
1.1 huawei LiteOS Kernel基本框架圖
嵌入式開發單片機芯片: 單進程多線程算法
1.1.1 Kernel模塊--任務
- 任務是競爭系統資源的最小運行單元。任務可使用或等待CPU、使用內存空間等系統資源,並獨立於其它任務運行。
- Huawei LiteOS的任務模塊提供任務的建立、刪除、延遲、掛起、恢復等功能,以及鎖定和解鎖任務調度。任務是搶佔式調度機制,同時支持時間片輪轉調度方式。
- 經常使用編程實例:
如建立2個任務:TaskHi和TaskLo
TaskHi爲高優先級任務
TaskLo爲低優先任務
1.1.2 Kernel模塊--內存管理
- 內存管理模塊管理系統的內存資源,它是操做系統的核心模塊之一。
- Huawei LiteOS的內存管理提供靜態內存和動態內存兩種算法,支持內存申請、釋放。目前支持的內存管理算法有固定大小的BOX算法、動態申請DLINK算法。
- 通內存統計、內存越界檢測功能。
- 經常使用編程實例:
如初始化一個動態內存池
在動態內存池中申請一個內存塊
使用這塊內存塊存放一個數據
打印出存放在內存塊中的數據
釋放掉這塊內存
1.1.3 Kernel模塊--中斷
- 中斷是指出現須要時,CPU暫停執行當前程序,轉而執行新程序的過程。
- Huawei LiteOS的中斷支持中斷建立、開/關中斷、恢復中斷、中斷使能、中斷屏蔽等功能。
1.1.4 Kernel模塊--隊列
- 隊列又稱消息隊列,是一種經常使用於任務間通訊的數據結構,實現了接收來自任務或中斷的不固定長度的消息,並根據不一樣接口選擇傳遞消息是否存放在本身空間。
- Huawei LiteOS的隊列支持隊列的建立、刪除、發送和接受功能。
- 經常使用編程實例:
如 經過LOS_TaskCreate建立任務1和任務2:;
經過LOS_QueueCreate建立一個消息隊列;
在任務1 send_Entry中發送消息;
在任務2 recv_Entry中接收消息;
經過LOS_QueueDelete刪除隊列
1.1.5 Kernel模塊--信號量
- 信號量是一種實現任務間通訊的機制,實現任務之間同步或臨界資源的互斥訪問。經常使用股協助一組相互競爭的任務來訪問臨界資源。
- Huawei LiteOS的信號量支持信號量的建立、刪除、PV等功能
- 經常使用編程實例:
如
1. 測試任務Example_Semphore建立一個信號量,鎖任務調度,建立兩個任務Example_SemTask一、Example_SemTask2, Example_SemTask2優先級高於Example_SemTask1;兩個任務中申請同一個信號量,解鎖任務調度後兩任務阻塞,測試任務Example_Semphore釋放信號量;
2. Example_SemTask2獲得信號量,被調度,而後任務休眠20Tick,Example_SemTask2延遲,Example_SemTask1被喚醒;
3. Example_SemTask1定時阻塞模式申請信號量,等待時間10Tick,因信號量仍被Example_SemTask2持有,Example_SemTask1掛起,10Tick後仍未獲得信號量,Example_SemTask1被喚醒,試圖以永久阻塞模式申請信號量,Example_SemTask1掛起;
4. 20Tick後Example_SemTask2喚醒,釋放信號量後,Example_SemTask1獲得信號量被調度運行,最後釋放信號量。
5. Example_SemTask1執行完,40Tick後任務Example_Semphore被喚醒,執行刪除信號量,刪除兩個任務。
1.2 huawei LiteOS Kernel的優點
- 高實時性,高穩定性
- 超小內核,基礎內核體積能夠剪裁至不到10KB
- 低功耗
- 支持動態加載、分散加載
- 支持功能靜態剪裁
2、Huawei LiteOS 中間件
2.1 互聯框架
- 互聯框架解決不一樣協議終端的互聯互通
- 優化Mesh自組網能力,知足海量終端組網
2.2 傳感框架
傳感框架提供多傳感器統一管理。編程
2.3 安全框架
2.4 運行引擎
- 更輕框架、更好性能,應用智能化
- 高性能、輕量級JavaScript虛擬機
極小的ROM和內存佔用空間
提供獨立用戶空間和應用隔離,保護應用安全
- 面向互聯網的應用開發框架
使能輕量級物聯網設備JavaScript開發
JS框架、JS虛擬機和OS系統優化性能和功耗
2.5 JavaScript框架
JS框架優點安全
- 簡化跨硬件平臺和中間件的系統集成
- 用高級語言抽象來隱藏部分變成細節
- 兼容大量已有的第三方庫來豐富平臺功能
- 虛擬機提供基於語言的安全性
JS虛擬機數據結構
- 針對資源高度受限的設備設計和優化
- 與OS、應用架構協同來提升性能
3、OPEN的API接口
- 開放的API屏蔽底層差別,讓應有開發者只需關注上層應用開發
- 友好的接口設計使得已熟悉在Linux系統上開發應用的開發者,可以很是平滑的切換到Huawei Lite、OS系統上開發,同時因爲Huawei LiteOS系統的精簡內核特性,使得開發者更容易理解內核。
.....多線程
歡迎關注本站公眾號,獲取更多信息