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