當前位置:
首頁 > 科技 > BayLibre:為什麼選擇Zephyr開發可穿戴設備?

BayLibre:為什麼選擇Zephyr開發可穿戴設備?

可穿戴市場經過一輪火爆發展,吸引了眾多創業者的目光,有人說這都是一片紅海了,創業者們何必再來蹚上一遭,其實踩著市場的熱點推出新品更能抓住市場機會,小米雷軍不是說過站在風口上的豬都能飛起來嗎?今天我們就請來一家叫BayLibre的公司現身說法,看看他們怎麼樣設計可穿戴設備 ?以及如何為可穿戴設備選擇合適的操作系統?

BayLibre是一家來自法國的嵌入式設備公司,他們在著手設計開發一款新的 可穿戴產品 時, 首先考慮到選擇怎樣的操作系統的問題。

選Zephyr 、NuttX還是設計自有操作系統?前者完勝

BayLibre:為什麼選擇Zephyr開發可穿戴設備?

產品框架圖

從這個產品框架圖可以看出,BayLibre的設備裡面有一個ARM Cortex-A SoC, 通過SPI匯流排連接到Cortex-M4 STM32L4xx。這通過I2C連接到其他更輕量級的Cortex-M內核。他們需要一個免費的、獲得認證許可的RTOS,而且還需要用於UART、I2C主機和SPI從機的驅動程序。同時需要具有調度程序、計時器、任務、線程和鎖定等功能。經過篩選對比,BayLibre 的Parent 和 Armstrong很快鎖定了三種方案:推出自有的操作系統,採用Apache 2.0授權的Zephyr,或者是具有3條BSD許可的NuttX。

大部分創業者對創新充滿了興趣,很多人選擇設計自有操作系統,優點是可以根據自己的產品量身定做,而且設計完成後團隊充滿成就感。但是大家也別忘了,自行開發操作系統周期長不說,還需要耗費巨大的人力物力成本,而且很難實時維護,沒有足夠時間修復缺陷完善系統。權衡利弊,方案一放棄。

再看NuttX,它以運行在Pixhawk無人機控制器上而聞名,而且Parent曾在谷歌放棄的Ara項目中工作了兩年,對NuttX的操作比較熟悉。缺點是它的構建系統完全不可靠,Parent解釋,「在Ara項目中,無論何時更改配置,我們都無法確定NuttX是否能夠正常工作。此外, NuttX基本上全部由一個人編寫,所以沒有同行評審。儘管有NuttX的BSD許可證,但在其存儲庫內有許多代碼需要新的許可證,如GPL,所以沒準什麼時候你可能會不小心採用了這些代碼,後果太可怕了。」

當他們發現Zephyr時,眼前一亮。Zephyr具有模塊化、可擴展、開源等優點,其內核可以運行在內存8KB 到512KB的設備上,並且能夠針對特殊設備啟用或者禁用任何功能數量,目前支持ARM-Cortex-Mx,英特爾X86,ARC,新思 Nios 2和RISC-V等架構,57種主板,給設計者提供儘可能大的選擇範圍。另外,它的編碼風格、構建系統以及維護者概念都與Linux很相似,Zephyr具有詳細的文檔,在開源社區的支持下不斷完善。

經過三套方案的優、劣勢對比,Parent 和 Armstrong毫不猶豫地選擇了Zephyr操作系統。

如何移植和upstream一個新平台?

Zephyr在他們開始該項目之前幾周才發布,當時它並不支持STM32L4xx SoC,只支持較舊的STM32F1xx型號。但他們很快發現這是一個非常容易處理的挑戰,不像想像的那麼複雜。SoC被證明都非常相似,所以更新埠只花費了一天半的時間,測試在一周內就完成了。

在開發產品的過程中,upstream本身也具有挑戰,而且Zephyr自去年推出以後一直在快速更新,現在已經更新到了1.8版本。Parent 和 Armstrong做第一個rebase時,什麼都行不通,於是他們不得不重寫了三次電源管理代碼,他們得出結論,「一旦你有了乾淨的代碼,就應該嘗試儘快upstream它。否則,你要花費好幾個小時來rebase所有東西。」

他們在進行最初的設計時,Zephyr還在使用Gerrit進行補丁審查,並使用JIRA進行功能請求,此外還有一個郵件列表。Parent解釋,「Gerrit使你不大容易忘記補丁,但是它真的很慢,而且很複雜。最大的問題之一是,你必須單獨選擇評審者,而不是進行廣播。沒有補丁系列的概念,所以你必須添加主題到你的補丁系列,這使得發送補丁更加複雜。它的檔案搜索很糟糕,而且很難看到補丁的全貌。JIRA是管理人員友好型的,作圖很容易;但它不是開發人員友好型的,沒有什麼好的信息介紹如何使用它,它是又一種與郵件列表和Gerrit相重疊的通信媒介。」

為了解決在設計中存在的這些問題,Zephyr已經將所有代碼遷移到了GitHub上,開源社區的開發者們可以利用GitHub更簡單地完善Zephyr,可以對GitHub Repo 進行分支和複製,通過拉式請求提交變更,像針對GitHub中的問題一樣,提出有關代碼錯誤、強化和功能方面的問題,參加開發者郵件列表的討論。

Armstrong總結了第一次使用Zephyr設計產品的經驗,他表示,「Zephyr適用於小型CPU上低內存或低性能配置的良好設計,是為數不多的針對可穿戴產品優化的開源RTOS之一。和Linux非常相似,API簡單易懂,有清晰的文檔,而且有一個活躍的開源社區,缺陷能夠很快得到修復。『 Amstrong 特彆強調』它的編碼風格、構建系統以及維護者概念都與Linux很相似。Zephyr也有很好的文檔,它正在快速發展出一個強大的社區。Zephyr支持低內存使用,它是高度可配置的、模塊化的。它提供現代化的、合作性的、搶先的線程功能,並且最終將增加安全性預認證。『 當然他也指出了遇到的一些問題 – 『Zephyr的代碼仍然很年輕,API變化很快,所以開發者需要針對每個版本測試代碼以確定它們是否仍然能夠正常運行。 一些功能的規劃和評審也需要澄清和改進」。

Zephyr操作系統也在根據用戶需求不斷更新,自去年2月推出以來已經推出了8個版本,而且將代碼遷移到GitHub,未來通過開源社區和開發者們的貢獻會更加完善。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 太平洋電腦網 的精彩文章:

機頂盒可以玩VR!HTC聯合大連天途有線雲VR平台上線
體驗可媲美高端機 千元價位高關注手機推薦
VR遊戲推薦:VR版「節奏大師」 抖腿停不下來
電競主播的新寵?華碩ROG STRIX MAGUNS電競麥克風評測

TAG:太平洋電腦網 |