應廣大讀者朋友的熱情邀請,我們特別策劃了“Zephyr領進門”系列介紹(共十篇),旨在為大家深度剖析Zephyr OS——這一備受矚目的開源實時操作系統。從使用MCUXPresso插件進行開發的基礎知識,到構建工具的詳解,再到環境安裝的步驟指導,我們將一步步帶你走進Zephyr的世界。此外,我們還準備了如何從0寫自己的helloWorld示例來詳細介紹調試技巧,助你輕松上手并深入掌握。
背景與發展
Zephyr OS的開發始于2016年,旨在提供一種適用于低功耗設備的實時操作系統。隨著物聯網(IoT)技術的迅速發展,Zephyr OS逐漸演變為一個由Linux基金會主辦的社區驅動項目,支持多種硬件架構,包括ARM Cortex-M系列、x86、RISC-V等。Zephyr的設計理念是為各種資源受限的設備提供一個高效、可擴展的操作系統解決方案。
隨著時間的發展,ZephyrOS的開發得到了全球開發者和企業的支持,形成了一個活躍的社區。
主要特性
1. 輕量級設計
Zephyr OS的內核非常小巧,通常在幾KB到幾十KB之間,這使得它能夠在極低功耗和資源受限的環境中運行。其設計目標是盡量減少內存使用和CPU占用,使得開發者能夠在小型微控制器上運行復雜的應用程序。
2. 模塊化架構
Zephyr OS采用模塊化設計,允許開發者根據具體需求選擇和配置功能模塊。開發者可以通過Kconfig系統輕松啟用或禁用特定功能,從而優化系統性能和資源使用。這種靈活性使得Zephyr能夠適應多種不同的應用場景。
3. 多線程與調度
Zephyr OS支持多線程編程,提供優先級調度機制,允許開發者創建響應迅速的應用程序。其調度算法能夠有效管理多個任務,確保實時性和穩定性。開發者可以為每個線程設置優先級,從而優化任務的執行順序,滿足實時應用的需求。
4. 設備驅動支持
Zephyr OS內置了多種設備驅動程序,支持各種傳感器、通信模塊和外設。通過統一的API,開發者可以方便地與硬件交互,簡化開發過程。此外,Zephyr還支持設備樹(Device Tree)機制,使得硬件描述更加靈活,便于移植和擴展。
5. 網絡支持
Zephyr OS支持多種網絡協議,包括IPv4、IPv6、Bluetooth、LoRa、Zigbee等。這使得它能夠輕松連接到各種網絡,適應不同的應用場景。Zephyr的網絡堆棧經過優化,能夠在資源有限的設備上高效運行。
6. 安全性
隨著IoT設備的普及,安全性成為一個重要問題。Zephyr OS在設計時考慮了安全性,提供了多種安全功能,如安全啟動、加密、訪問控制等。此外,Zephyr還支持TLS/SSL協議,確保數據傳輸的安全性。
開發環境
Zephyr OS提供了一套完整的開發工具鏈,包括SDK、編譯器和調試工具。開發者可以使用C或C++編寫應用程序,并通過Zephyr的命令行工具進行構建和調試。1. Zephyr SDK
Zephyr SDK是一個跨平臺的開發環境,包含了構建Zephyr應用所需的所有工具。它支持Linux、Windows和macOS等操作系統,方便開發者在不同平臺上進行開發。SDK中包含了編譯器、調試器、模擬器等工具,幫助開發者快速構建和測試應用。
2. 示例應用
Zephyr OS提供了豐富的示例應用程序,幫助開發者快速上手。這些示例涵蓋了從簡單的LED閃爍到復雜的傳感器數據采集等多種應用場景。開發者可以根據這些示例學習如何使用Zephyr的API和功能,加速開發過程。
3. 文檔與支持
Zephyr OS提供了詳細的官方文檔,包括API參考、開發指南和教程,幫助開發者理解和使用Zephyr。此外,社區也提供了多種支持渠道,如郵件列表、論壇和社交媒體,開發者可以在這些平臺上交流經驗、解決問題。
NXP與Zephyr
恩智浦(NXP)作為Zephyr項目的創始成員之一,一直以六大白金會員的身份持續堅定地支持該項目。Zephyr項目的特點與恩智浦面向邊緣連接設備的產品組合高度契合,特別是在安全、互聯且具備安全認證的設備方面。目前,多個恩智浦平臺已獲得恩智浦客戶和Zephyr社區的共同支持。為了進一步推動產品系列中超級平臺的更全面支持,恩智浦正在加大投入。這不僅為低端部件提供了更便捷的支持路徑(例如,從i.MX RT1064平臺衍生出對i.MX RT1020的支持等)。當然除了NXP官方對于不同嵌入式平臺的支持,一些社區和愛好者們也為NXP平臺的Zephyr支持貢獻了自己的一份力量。
NXP與Zephyr開發模式
恩智浦(NXP)及社區共同貢獻并維護了Zephyr的upstream工作組。NXP積極參與upstram工作組的開發工作,并在MCUXpresso SDK的基礎上進行開發。SDK的裸機驅動程序和CMSIS設備頭文件已被貢獻到上游。通過Shim驅動程序將SDK接口適配到Zephyr接口,以最大化代碼重用。此外,所有經過推送的Zephyr代碼,都會在NXP的boardfarm中進行硬件測試以保證代碼的可靠性以及穩定性。
當新產品發布后,NXP會首先提供新產品的Zephyr基礎支持,所謂基礎支持可以理解為Zephyr的最小系統,如下表所示,包括系統內核、控制臺以及一些基礎驅動的支持:
Kernel | Threads |
Semaphores | |
Mutexes | |
Condition Variables | |
Work queues | |
Data Passing | |
Memory Heaps | |
Memory Slabs | |
Hardware Stack Protection | |
Userspace | |
Drivers | UART |
GPIO | |
Timer - SYSTICK | |
Console | UART |
RTT | |
Logging | UART |
RTT | |
Shell | UART |
RTT |
從2021年開始,恩智浦就已經遵循此規范進行開發,從基礎支持開始,逐步推進,并最終推出完整的外設支持:
第一個里程碑是在NXP的新產品發布后,在最近的Zephyr版本中進行基礎版本的開發以及代碼推送。
第二個里程碑是完整的代碼發布。
當然,NXP歡迎Zephyr社區和客戶為任何恩智浦平臺貢獻和增強驅動程序代碼。
最終,我們會將完整的代碼支持全部推送到Zephyr主線中,以FRDM-K64F為例,全平臺支持。
NXP的Zephyr支持
當使用NXP的產品開發Zephyr并遇到問題時,可以通過公共的Zephyr社區進行支持-NXP Zephyr Community。這樣可以將所有公開討論和解決方案集中在同一位置,并且客戶可以從整個Zephyr社區的幫助中受益。
此外,恩智浦也提供了私人支持。恩智浦的公共社區還中有一個專門的Zephyr頁面,恩智浦的支持團隊會實時監控Zephyr社區,以幫助客戶解決特定于恩智浦平臺的問題。 當然也可以通過正常的支持渠道,聯系CAS和DFAEs獲得Zephyr支持。
-
內核
+關注
關注
3文章
1402瀏覽量
40904 -
物聯網
+關注
關注
2921文章
45648瀏覽量
384694 -
操作系統
+關注
關注
37文章
7012瀏覽量
124651 -
Zephyr
+關注
關注
0文章
33瀏覽量
6170
原文標題:Zephyr領進門系列:使用MCUXPresso插件開發Zephyr
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
使用Tracealyzer調試Zephyr中的優先級反轉

恩智浦與Zephyr賦能安全可靠的嵌入式開發
恩智浦分享Zephyr調試技巧
恩智浦解讀Zephyr log系統的使用 Zephyr的shell和log功能介紹

恩智浦發布新版MCUXpresso SDK

IAR加入Zephyr項目,強化開源協作承諾
IAR正式加入Zephyr項目,成為銀牌會員
IAR正式加入Zephyr項目
JetBrains IDE上架開發微信小程序的官方插件

用MCUXPresso for VS Code插件 從0開始打造HelloWorld

使用MCUXpresso for VS Code插件開發Zephyr的hello world

Zephyr領進門系列:MCUXPresso for VS Code插件安裝

評論