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