谷歌開源 Pigweed,用于提升嵌入式開發效率

五嘎子 4年前發布 | 3K 次閱讀 Pigweed

  谷歌于 1 月下旬曾向 USPTO(美國專利及商標局)遞交了名為 “Pigweed” 的新商標申請。根據申請內容來看,Pigweed 商標涵蓋“計算機操作軟件”。當時,人們猜測這是一款新的操作系統商標,但并未有任何相關信息提供。

  昨日,谷歌毫無征兆地公布并開源了 Pigweed。與之前的猜想不同,這是一個嵌入式庫(或模塊)的集合。使用 Pigweed 模塊可??以在 32 位微控制器( 即嵌入單電路芯片中的小型計算機 )上實現更快、更可靠的開發。

  Pigweed 提供的模塊可滿足嵌入式開發人員的廣泛需求。從整個生命周期來看,Pigweed 從設置,到開發,再到代碼提交,都能夠有效提高嵌入式開發的效率。谷歌以上述開發過程為軸,圍繞這幾個方面分別介紹了 Pigweed 的一些模塊。

  嵌入式空間中的經典挑戰是減少從運行 git clone 到在設備上執行二進制文件的時間。對于生產嵌入式項目,往往通常需要一整套工具。而 Pigweed 能夠通過虛擬環境提供簡化設置的工具,具體來說,Pigweed 的 pw_env_setup 模塊中的引導腳本可設置當前的 shell 以訪問一組標準化工具——包括 Python 3.8、clang 格式以及 ARM 編譯器。所有這些都是在虛擬環境中完成的,因此無需修改系統的默認環境。  

  在典型的嵌入式開發中,即使添加很小的更改也需要一些額外的手動步驟。而 Pigweed 的 pw_watch 模塊直接解決了這種效率低下的問題,它提供了一個監視者(watcher),該監視者可以在保存文件時自動調用構建,還可以運行受代碼更改影響的特定測試。這大大縮短了更改的編輯——編譯——刷新——測試(edit-compile-flash-test)周期。

  這些測試都是自動完成的,用戶無需離開自己的代碼編輯器。此外,還可以使用 pw_target_runner 模塊在多個設備上并行運行測試,從而節省更多時間。

  團隊開發代碼需要強調一致性,然而,設置 lint、配置代碼格式以及添加自動的提交前檢查等通常會使這項工作無限期延遲。這時,Pigweed 的 pw_presubmit 模塊可派上用場。它會基于用戶可能已經使用的工具提供現成的 Lint 集成套件,并預先配置好,可以立即供微控制器開發人員使用。

  至于該項目為什么取名為 “Pigweed”,谷歌給出了解釋:“Pigweed,又稱 amaranth ,是一種營養豐富的谷物和綠葉沙拉菜,也是一種快速生長的雜草。”Pigweed 項目團隊希望名字有趣,又能反映項目本身的成長,就像快速生長的雜草 Pigweed 一樣。

  目前,Pigweed 已提供了不少模塊,后續將會有更多模塊被添加進來。需要注意的是,它仍處于早期開發階段,目前不適合用于生產。

 本文由用戶 五嘎子 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!
  轉載自:https://www.oschina.net/news/114249/google-open-sources-pigweed