Zephyr學習專題

2021-09-07 15:13:47 字數 1526 閱讀 6435

本來想學習zyphyr的power management,但是看著看著就被帶進去了。

你看功耗,裡面的suspend涉及到時間補償相關的吧,然後就涉及到了kernel clocks/timers/thread sleeping。

然後你得知道核心運**況,想去獲取訊息,就得熟悉核心的logging,包括system logging和kernel event logger。

如果想看到核心實時狀態,就還需乙個管道取一窺究竟,這就離不開shell。

如果覺得這已經夠了,那就錯了。zephry doc已經將zephyr的方方面面文件歸納總結了。

所以覺得花點時間梳理一下官方文件,了解其知識地圖,有利於快速學習、快速查詢。

在zephyr kernel primer關於kernel的概述介紹了zephyr核心的:

source tree structure:目錄結構

threads:執行緒的生命週期、執行緒排程、執行緒私有資料、系統執行緒(idle/main)、工作佇列。

timing:核心時鐘和定時器。

memory allocation:記憶體分配器、記憶體池和對記憶體池。

synchronization:核心同步相關的semaphore、mutex和alert。

data passing:介紹了不同執行緒間或者執行緒和中斷間傳遞引數的方式fifo、lifo、stack、訊息佇列、管道、mailbox。

other services:介紹了核心其他服務中斷、原子操作、輪詢api、ring buffer、浮點數、c++支援、cpu idling(強制進入idle)、memory domain(記憶體共享)。

device and driver support裝置驅動是核心的很大一塊,所以單獨介紹。

device drivers and device model介紹了驅動通用裝置模型以及編寫裝置驅動api、範例等等。裝置驅動的配置資料device tree介紹了如何定義乙個裝置各種屬性。

zephyr將一些重要的功能單獨成為subsystem子系統,包括:

bluetooth藍芽、乙個裁剪最小化的standard c library、日誌logging(system logging和kernel event logger)、zephyr的網路支援networking、低功耗管理power management、感測器sensor drivers、shell、測試tesing相關的測試框架test framework和可用性測試sanity test、usb。

如何移植zephyr(架構和主機板)porting guides,對zephyr的配置選項configuration options reference guide逐個詳細介紹,還需要熟悉核心應用開發的api documentation。

2 zephyr官方文件地圖基本上覆蓋了zephry的幫助文件,然後就可以根據需要展開了。

zephyr的power management

zephyr的time、timer、sleep

zephyr的logging

zephyr的shell

zephyr的threads

zephyr學習筆記 前言

一直在找適合用於教學嵌入式作業系統。在我心目中,適合用於教學的作業系統應具備如下特點 contiki是非實時作業系統,實時作業系統中的那些機制它幾乎都沒有,用於教學的確是不合適。當初學contiki主要原因是它實現了6lowpan,也是在為將來學華為liteos作準備。之後學ti rtos也是因為大...

Zephyr 教程 核心基礎( )

本節對 zephyr 核心的概念和功能進行概述。zephyr 核心的中心元素是微核心和超微核心。zephyr 核心也包含一些列輔助的子系統,比如裝置驅動庫和網路庫。應用程式由兩種開發模式 同時使用微核心和超微核心 只使用超微核心。超微核心具有核心的一系列基礎特徵,是乙個高效能 多執行緒的執行環境。超...

zephyr筆記 2 1 4 系統執行緒

我正在學習 zephyr,乙個很可能會用到很多物聯網裝置上的作業系統,如果你也感興趣,可點此檢視帖子zephyr學習筆記彙總。系統執行緒是核心在系統初始化時自動產生的執行緒。核心產生以下系統執行緒。該執行緒執行核心初始化,然後呼叫應用程式的 main 函式 如果已定義 預設情況下,主線程使用最高配置...