痞子衡嵌入式半月刊: 第 111 期
這裡分享嵌入式領域有用有趣的專案/工具以及一些熱點新聞,農曆年分二十四節氣,希望在每個交節之日準時釋出一期。
本期刊是開源專案(GitHub: JayHeng/pzh-mcu-bi-weekly),歡迎提交 issue,投稿或推薦你知道的嵌入式那些事兒。
上期回顧 :《痞子衡嵌入式半月刊: 第 110 期》
嘮兩句
歷史上的今天:1843年11月17日,上海開埠,中外貿易中心轉移。
本期共 1 個專案、4 個工具,希望對你有幫助!
專案類
1、Zephyr - 面向物聯網嵌入式小型可擴充套件RTOS
Zephyr OS 是一個開源協作專案,旨在為物聯網 (IoT) 構建實時作業系統 (RTOS)。它基於專為佔用資源的系統而設計的小巧核心,從簡單的嵌入式環境感測器和 LED 穿戴式裝置到複雜的智慧手錶和物聯網無線閘道器,應有盡有。
Zephyr 核心具有佔用空間較小、高效能、多執行緒的執行環境及各種可用功能。Zephyr 生態系統的其餘部分(包括裝置驅動程式、網路堆疊和應用專用程式碼)使用核心的功能來建立完整的應用。
- 專案地址:https://www.zephyrproject.org/
工具類
1、CMake - 一個跨平臺的自動化構建系統
CMake 是一個跨平臺的安裝(編譯)工具,可以用簡單的語句來描述所有平臺的安裝(編譯過程)。它能夠輸出各種各樣的 makefile 或者 project 檔案,能測試編譯器所支援的 C++ 特性,類似 UNIX下 的automake。只是 CMake 的組態檔取名為 CMakeLists.txt。
Cmake 並不直接建構出最終的軟體,而是產生標準的建構檔(如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces),然後再依一般的建構方式使用。這使得熟悉某個整合開發環境(IDE)的開發者可以用標準的方式建構他的軟體,這種可以使用各平臺的原生建構系統的能力是 CMake 和 SCons 等其他類似系統的區別之處。
- 專案地址:https://cmake.org/
2、Ninja - 開源的輕量級快速構建工具
Ninja 是一個小型、快速的依賴驅動的構建系統,由 Google 的 Chris Martine 開發。它旨在提高構建速度,透過與其他構建系統(如 CMake 或 Meson)配合使用,生成中間構建檔案,從而高效地編譯原始碼。Ninja 的設計哲學是簡化構建過程並最佳化磁碟和記憶體的使用,特別適合大規模軟體工程的構建。
- 專案地址:https://ninja-build.org/
3、Kconfig - 一種用於配置系統選項和特性的配置系統
Kconfig 是 Linux 核心(以及 Zephyr)一種用於配置系統選項和特性的配置系統。它是一種配置語言和配置工具的組合,用於管理核心的各種功能和選項,使開發者能夠根據其需求自定義核心的構建。Kconfig 不僅用於配置核心的構建選項,還用於配置核心中各個功能的開啟或關閉狀態,從而構建出適合特定硬體和需求的定製化核心。
- 專案地址:https://github.com/zephyrproject-rtos/zephyr/blob/main/doc/build/kconfig
以下是 Kconfig 的一些關鍵特點和概念:
- 選單和選項: Kconfig 使用樹形選單的方式組織各個配置選項。每個選單都可以包含一系列的配置選項或子選單,這些選項可以是布林值、字串或整數等不同型別的資料。
- 依賴關係: 在 Kconfig 中,配置選項可以有依賴關係。某些選項可能只能在某些條件滿足時才能被啟用,這些條件可以是其他選項的狀態或硬體支援情況。
- 視覺化配置介面: Kconfig 提供了一個視覺化的配置介面,通常透過 make menuconfig 命令啟動。這個介面允許開發者在互動式環境中瀏覽和配置各種選項,從而生成配置檔案。
- 配置檔案生成: 配置介面的更改會導致生成一個 .config 檔案,其中包含了使用者所做的配置選項。這個配置檔案可以傳遞給構建系統,用於指導核心的編譯和構建。
- 構建系統整合: Kconfig 整合在 Linux 核心構建系統中,透過 Makefile 和其他構建工具來解析配置選項並根據配置生成適當的編譯指令。
4、West - 用於Zephyr專案的可擴充套件命令列管理工具
West 是 Zephyr 專案提供的一款命令列工具,也被 Zephyr 官網稱作”瑞士軍刀“,可擴充套件的命令列工具,負責 Zephyr 工作區管理,管理不同的倉庫,下載所有 Zephyr 原始碼以及其他依賴包配置工作區,透過呼叫其他工具,來實現工程的構建,燒寫以及除錯,支援新增自定義擴充套件指令。
- 專案地址:https://github.com/zephyrproject-rtos/west
歡迎訂閱325228
文章會同時釋出到我的 部落格園主頁、CSDN主頁、知乎主頁、微信公眾號 平臺上。
微信搜尋"痞子衡嵌入式"或者掃描下面二維碼,就可以在手機上第一時間看了哦。