【大廠內參】第9期:掌握IoT開發,從操作系統LiteOS內核源碼學習開始

      網友投稿 709 2025-04-03

      Huawei LiteOS 是華為面向IoT領域開發的一個基于實時內核的輕量級操作系統。Huawei LiteOS主要包括硬件Hardware、硬件抽象層、基礎內核和內核增強等組成部分。


      現有基礎內核包括不可裁剪的極小內核和可裁剪的其他模塊。極小內核包含任務管理、內存管理、異常管理、系統時鐘和中斷管理??刹眉裟K包括信號量、互斥鎖、隊列管理、事件管理、軟件定時器等。

      Huawei LiteOS自開源社區發布以來,圍繞NB-IoT物聯網市場從技術、生態、解決方案、商用支持等多維度使能合作伙伴,構建開源的物聯網生態,為開發者提供 “一站式” 完整軟件平臺,有效降低了開發門檻、縮短開發周期。

      為了更好地讓大家了解和掌握LiteOS開發,我們通過介紹Huawei LiteOS的體系結構,詳細解讀LiteOS各模塊開發及其實現原理。專題內容適用于Huawei LiteOS的開發者,及物聯網端側軟件開發工程師和物聯網架構設計師。

      數據結構應用之最:雙向循環鏈表Doubly Linked List

      在學習Huawei LiteOS源代碼的時候,常常會遇到一些數據結構的使用。如果沒有掌握這它們的用法,閱讀LiteOS源代碼的時候會很費解、很吃力。本文為大家介紹LiteOS源碼中應用最多的數據結構——雙向循環鏈表Doubly Linked List。

      Priority Queue:讓接口更靈活支持任務優先調度

      本文為大家介紹LiteOS源碼中經常使用的數據結構——Priority Queue優先級隊列。優先級隊列是個雙向循環鏈表數組,提供更加方便的接口支持任務基于優先級進行調度。

      時間到期、超時…排序鏈表SortLinkList助你輕松處理

      SortLinkList是LiteOS另外一個比較重要的數據結構,它在LOS_DL_LIST雙向鏈表結構體的基礎上,增加了RollNum滾動數,用于涉及時間到期、超時的業務場景。

      Percpu:記錄著每一個CPU信息內容

      LiteOS提供一個結構體Percpu來記錄每一個CPU的相關信息,包含任務排序鏈表,定時器排序劉安邦,鎖任務調度標記、請求調度標記等。

      一文了解SpinLock自旋鎖及LockDep死鎖檢測特性

      本文為大家帶來LiteOS 5.0引入的LockDep死鎖檢測特性。

      中斷Hwi:提高系統實時性及執行效率的秘密武器

      介紹中斷的概念,帶領大家一起剖析LiteOS中斷模塊的源代碼。

      踩準時鐘節拍,LiteOS內核時間管理有妙招

      LiteOS的時間管理模塊為任務調度提供必要的時鐘節拍,會向應用程序提供所有和時間有關的服務,如時間轉換、統計、延遲功能。

      解析LiteOS內核位操作的四個常用API

      位操作是指對二進制數的bit位進行操作。程序可以設置某一變量為狀態字,狀態字中的每一bit位(標志位)可以具有自定義的含義。

      保存局部變量、寄存器、函數參數…任務棧有一套

      LiteOS任務棧是高地址向低地址生長的遞減棧,棧指針指向即將入棧的元素位置。

      任務LOS_Task:小身板,大責任

      Huawei LiteOS的任務模塊可以給用戶提供多個任務,實現任務間的切換,幫助用戶管理業務程序流程。本文帶來任務模塊的結構體,任務初始化的源代碼及操作指導內容。

      從結構體到常用操作的源代碼,帶你掌握任務LOS_Task(1)

      Huawei LiteOS的任務模塊可以給用戶提供多個任務,實現任務間的切換,幫助用戶管理業務程序流程。本文帶來任務模塊的任務常用操作的源代碼及操作指導內容。

      從結構體到常用操作的源代碼,帶你掌握任務LOS_Task(2)

      Huawei LiteOS的任務模塊可以給用戶提供多個任務,實現任務間的切換,幫助用戶管理業務程序流程。本文帶來任務模塊的任務常用操作的源代碼及操作指導內容。

      調度Schedule:任務處理、資源使用的指揮官

      Schedule也稱為Dispatch,是操作系統的一個重要模塊,它負責選擇系統要處理的下一個任務。調度模塊需要協調處于就緒狀態的任務對資源的競爭,按優先級策略從就緒隊列中獲取高優先級的任務,給予資源使用權。

      互斥鎖Mutex:處理臨界資源獨占的“法官”

      互斥鎖是一種特殊的二值性信號量,用于實現對臨界資源的獨占式處理,還可以解決信號量存在的優先級翻轉問題。

      信號量Semaphore:任務間“互斥訪問”通信機制

      信號量(Semaphore)是一種實現任務間通信的機制,可以實現任務間同步或共享資源的互斥訪問。一個信號量的數據結構中,通常有一個計數值,用于對有效資源數的計數,表示剩下的可被使用的共享資源數。

      事件Event:帶你體驗一對多、多對多任務同步

      事件(Event)是一種任務間通信的機制,可用于任務間的同步。多任務環境下,任務之間往往需要同步操作,一個等待即是一個同步。事件可以提供一對多、多對多的同步操作。

      消息隊列Queue:幫你把任務間的消息讀寫安排的明明白白

      隊列(Queue)是一種常用于任務間通信的數據結構。任務能夠從隊列里面讀取消息,也能夠往隊列里寫入消息。消息隊列提供了異步處理機制,同時還有緩沖消息的作用。

      軟件定時器Swtmr:不受數量限制,滿足用戶一切定時需求

      軟件定時器(Software Timer)是基于系統Tick時鐘中斷且由軟件來模擬的定時器。LiteOS提供了軟件定時器功能可以提供更多的定時器,滿足用戶需求。

      LiteOS內存管理要想效率高,靜態內存Static Memory必不可少

      LiteOS的內存管理分為靜態內存管理和動態內存管理,靜態內存實質上是一個靜態數組,靜態內存池內的塊大小在初始化時設定,初始化后塊大小不可變更。靜態內存池由一個控制塊和若干相同大小的內存塊構成。

      從四大結構體,帶你掌握LiteOS動態內存Bestfit算法(1)

      本文為大家剖析LiteOS動態內存模塊bestfit算法的源代碼,包含動態內存的結構體、動態內存池初始化、動態內存申請、釋放等。

      從四大結構體,帶你掌握LiteOS動態內存Bestfit算法(2)

      本文為大家剖析LiteOS動態內存模塊bestfit算法的源代碼,包含動態內存的結構體、動態內存池初始化、動態內存申請、釋放等。

      bestfit_little算法:降低內存碎片產生的可能性,讓內存得以完美利用

      bestfit_little算法是在最佳適配算法的基礎上加入slab機制形成的算法。最佳適配算法使得每次分配內存時,都會選擇內存池中最小最適合的內存塊進行分配,而slab機制可以用于分配固定大小的內存塊,從而減小產生內存碎片的可能性。

      本合集為《大廠內參》009期,歡迎大家持續關注。

      大廠內參

      根據開發者普遍關注的熱門技術領域,匯編實踐精華內容。從業務場景選型,應用案例分析,到前瞻趨勢預測。以專題的形式,深度解讀華為云核心技術,分享一線工程師的實戰經驗。

      【第一期】敏捷&Devops:80+篇實踐干貨分享,深度解讀敏捷&DevOps如何革新軟件開發

      【第二期】數據庫:從數據庫科普到核心技術解讀、上云案例分享,全方位剖析云數據庫

      【大廠內參】第9期:掌握IoT開發,從操作系統LiteOS內核源碼學習開始

      【第三期】云服務器:選型解讀+案例分享:云服務器“軟硬技術”全公開

      【第四期】人工智能:海量實戰經驗教你零門檻進場AI開發,無成本負擔玩轉AI應用

      【第五期】云原生:讀懂云原生2.0,看它如何重塑業務開發架構

      【第六期】云安全:Get防范云安全的必殺技,學會構建云上完整安全體系

      【第七期】物聯網:“端邊云”IoT全棧技術大揭秘,開發實戰指南帶你輕松上手IoT

      【第八期】數據倉庫:8大場景系列玩轉數倉運維,做個不禿頭的DBA

      IoT 單片機 輕量級操作系統 LiteOS

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:在Excel中AMORDEGRC函數如何使用?
      下一篇:word表格怎么拆分?(Word表格怎么拆分成2個標題欄不變)
      相關文章
      久久亚洲国产精品123区| 亚洲欧洲中文日韩av乱码| 亚洲AV无码久久| 国产亚洲av人片在线观看| 亚洲精品视频在线看| 亚洲av中文无码| 亚洲成A人片77777国产| www亚洲一级视频com| 亚洲A丁香五香天堂网| 亚洲国产成人久久一区久久 | 婷婷亚洲久悠悠色悠在线播放| 亚洲男同帅GAY片在线观看| 亚洲熟女少妇一区二区| 亚洲日韩欧洲乱码AV夜夜摸| 亚洲色成人中文字幕网站| 亚洲中文字幕无码一久久区| 成人午夜亚洲精品无码网站| 亚洲精品亚洲人成在线观看| 国产亚洲精品a在线观看app| 亚洲A∨无码无在线观看| 亚洲男人都懂得羞羞网站| 亚洲人成在线观看| 亚洲精品国产成人中文| 亚洲欧洲日产专区| 国产精品亚洲精品| 亚洲丁香婷婷综合久久| 国产精品亚洲综合网站| 日韩亚洲精品福利| 久久久久亚洲精品男人的天堂| 中文亚洲AV片在线观看不卡| 亚洲高清国产拍精品26U| 一区二区三区亚洲| 亚洲av无码一区二区三区天堂古代| 亚洲AV日韩综合一区尤物| 久久综合亚洲色hezyo| 亚洲精品国产自在久久| 精品国产亚洲一区二区三区| 精品亚洲成a人片在线观看| 亚洲免费闲人蜜桃| 亚洲国产精品无码久久98| 亚洲精品国产精品乱码不卡|