ModusToolbox™講堂 | 第三課 新建例程,點亮世界


賴春雷

英飛凌技術支持中心

高級工程師

 

通過前兩課的學習,相信大家已經對ModusToolbox™有了初步的印象。是否仍有些意猶未盡?

編程世界有一個浪漫,就是人類和工具可以通過HelloWorld例程來熟悉彼此,ModusToolbox™也不例外。下面,我們就在ModusToolbox™中創建第一個HelloWorld例程,來加深對彼此的認識吧!

 

▎讓ModusToolbox™說聲“HelloWorld”

大家可能會覺得意外,但ModusToolbox™有一個重要的基本概念,就是去IDE化。

圖01

 

如圖01中藍色箭頭所指,Eclipse IDE和partner IDEs都只是ModusToolbox™中定義的Tools中的一種,而非ModusToolbox™生態的中心。並且,ModusToolbox™中對Eclipse這個組件的實際稱呼,也只是“Eclipse IDE for ModusToolbox”。

由此可知Eclipse等IDE並不是必須的,依賴或不依賴Eclipse這些IDE都是允許的。對於ModusToolbox™生態而言,無論你是創建、編輯還是調試例程,都可以繞過IDE,進而直接使用更底層的工具鏈。Eclipse等IDE在ModusToolbox™生態的定義中,只是一個加分項。

這裡可以舉一個例子:比如,實際執行創建例程工作的載體是Project Creator,它除了可以在Eclipse IDE中被調用,也可以獨立運行。從圖01也可見,Project Creator其實是獨立在Eclipse IDE之外,和Eclipse IDE處於同一層級的,這有別於一般的設計。這不僅佐證了“IDE不是必須的”這個觀點,也說明接下來我們創建例程時,和我們實際打交道的不是IDE,而是這個Project Creator。

這裡還會牽扯到ModusToolbox™另外一個重要的基本概念:在ModusToolbox™中GUI(圖形界面)和CLI(命令行界面)是具有同等地位的。故Project Creator同時提供了GUI和CLI的界面,以滿足用戶的不同需要。

所以,我們創建例程就有如下兩種途經。

 

▎通過GUI創建HelloWorld例程

你可以在開始菜單中找到Project Creator並獨立運行它,或者在Eclipse IDE中通過左上角文件菜單喚起Project Creator。此時你打開的即是Project Creator的GUI界面,如圖02。

圖02

 

在Project Creator中,第一步先選擇你開發板對應的BSP(Board Support Package)。為方便創建HelloWorld例程,我們選擇PSoC™ 6 BSPs中的CY8CKIT-062S2-43012,選中後點擊“Next >”按鈕進入第二步,如圖03。

 

圖03

 

在第二步的列表中,Getting Started目錄中即有Hello_World例程,選擇它。除此之外,你還可以指定Application Root Path(即例程的工作區位置)和New Application Name(即例程在磁盤上的目錄名稱)等。最後點擊“Create”按鈕,即可開始創建例程。

例程在創建時是需要聯網實時下載數據的,故需要稍等片刻。如果你遇到了第二課中提到的網絡問題並需要使用LCS本地內容的話,則需要先導入LCS本地內容包,接著勾選Project Creator左上角菜單項中的“Settings -> Local Content”,如此便可啟用LCS。然後你再重複前述第一步和第二步操作,即可在不聯網的情況下創建例程。

例程創建後即可連接開發板運行例程,這裡暫不詳述,最終你可得到結果如圖04。

 

圖04

 

怎麼樣,感受到來自ModusToolbox™善意問候的你,有沒有對ModusToolbox™也多了一些了解?

 

▎通過CLI創建HelloWorld例程

你可以通過Eclipse中集成的Terminal入口,或者獨立出現在開始菜單中的modus-shell命令行環境,來運行Project Creator的CLI版本。CLI版本的Project Creator的路徑如下:

<Modustoolbox 安裝位置>/tools_X.Y/project-creator/project-creator-cli.exe

 

運行該命令之前,推薦你cd到其所在目錄。

 

你可使用下方命令查詢其可用參數和選項:

project-creator-cli.exe --help

 

通過查詢可知,“--list-boards”參數用於查詢可用的BSP,“--list-apps”參數用於查詢可用的例程。

 

然後,你可以仿照下方的示例,以創建HelloWorld例程:

project-creator-cli.exe --board-id CY8CKIT-062S2-43012 --app-id mtb-example-hal-hello-world --target-dir /cygdrive/d/mtw/ --user-app-name Hello_World_CLI_31

 

其中,“--board-id”參數指定了BSP為CY8CKIT-062S2-43012,“--app-id”參數指定了例程為mtb-example-hal-hello-world,“--target-dir”參數指定了例程的工作區位置為/cygdrive/d/mtw/(注意使用符合modus-shell和unix規範的路徑格式),“--user-app-name”參數則指定了例程在磁盤上的目錄名稱。

 

運行該命令,直到命令輸出如圖05的日誌,例程即創建成功。

圖05

 

▎獲取更多的例程

隨著後面你對ModusToolbox™理解的深入,漸漸地你或許會發現,Project Creator中提供的例程似乎有些少?

的確如此。默認地,你在ModusToolbox™中看到的在線資源,僅僅是標準的、經過充分驗證的產品開發資源。這是因為ModusToolbox™使用了一種稱作資源清單的機制來顯示相應的產品開發資源,而在預設狀態下,它加載的僅是標準的資源清單。出於對使用
安全和用戶利益的考慮,為防止用戶誤用,該版本的清單未包含其它增補的官方資源。

由此可見,想解鎖更多的資源,你需要在“資源清單”上做文章。所以你有以下幾個途徑,來讓你的ModusToolbox™解鎖更多的資源。

 

加載來自官方的額外資源清單

事實上,上述提到的這些增補的官方資源也是公開的,也同樣託管在github.com上。所以,如果你有充分的必要,你可以指定ModusToolbox™加載額外的官方資源清單,從而使用這些增補的官方資源。

你可以點擊這裡,了解官方有哪些額外的資源清單和具體的使用方式。粗略而言,你需要在<用戶目錄>/.modustoolbox/目錄下建立一個文本文件manifest.loc,然後在該文本文件中填入相應的清單超鏈接地址。請在充分了解風險以後再使用。使用增補的資源有可能對

你的設備造成損壞,這些資源也可能存在意想不到的bug。

 

加載來自第三方的額外資源清單

第三方也可能為ModusToolbox™製作並發布相應的資源清單,以分享他們希望提供的內容,只要清單符合ModusToolbox™對清單的格式要求,對應的資源也符合ModusToolbox™的使用規範即可。舉個例子,其實在官方的資源清單中,也使用了一些第三方提供的資源和清單,比如來自SensiML的例程及其資源清單,你可以點擊這裡一探究竟。



此外,就如第二課中所講的,如果你所在地區遭遇對github.com的服務阻斷,你其實也不能訪問託管在github.com上的資源清單。所幸的是,社區也有熱心用戶鏡像並重打包了官方的資源清單到其它類github.com的代碼託管平台上,並且對所有的官方資源清單(包括標準的和額外的資源清單),都進行了一對一的搬運,讓你無縫切換,繞開github.com引起的清單訪問失敗問題。

這類清單也可以看作是第三方提供的資源清單,雖然該清單實際指向的資源和官方資源別無二致。同時,這份鏡像列表也說明,ModusToolbox™的資源清單,可存放於任何WEB服務器上,並非局限於github.com。目前該鏡像列表已被發布到英飛凌開發者社區,你可以點擊這裡查看。

 

製作你自己的資源清單並與世界分享

看完前述,有一個結論已經呼之欲出,那就是:我們何不嘗試製作自己的資源清單!

的確如此。如果你有一些很好的點子、很好的MCU應用方面的例程想與其他人分享的話,你完全可以為之製作一份資源清單,並把你例程的相關資源和資源清單託管到github.com等平台,就像SensiML那樣。

製作的流程和清單的格式,在ModusToolbox™ Tools Package User Guide中的6.2節(Create your own manifest)中有詳盡介紹,感興趣的可以參閱。

製作完成後,你可以輕鬆地把資源和清單發布到網上。你甚至不需要搭建自己的服務器,依託github.com等代碼託管平台,你就能立刻分享你的成果。

然後,你只需把你的清單超鏈接地址分享出去,受眾就能立即在他的ModusToolbox™中加載並使用你的例程,就是這麼簡單!

或者,依託github.com的引流,你的例程可能會在github.com成千上萬次的搜索結果中出現。你只需在你的倉庫中添加必要的說明,別人就知道如何藉助ModusToolbox™來使用你的例程!

甚至,得益於ModusToolbox™資源清單的嵌套機制,你的清單可能被別人甚至官方的清單所包含和收編。你的成果得到了認可的同時,曝光量也會大幅增加!

你看到了嗎?藉助ModusToolbox™,你的成果火光更亮了,星星之火,也能照亮世界。ModusToolbox™除了幫助你完成開發,還讓你的成果走得更遠,離世界更近。

這就是ModusToolbox™面向開源內容的開放式架構設計的曼妙之處:如同IDE只是ModusToolbox™中的加分項而不是ModusToolbox™的中心,ModusToolbox™也旨在成為開源社區這個超集的加分項,而不是進入開源社區的中心或與中心競爭。對於

ModusToolbox™而言,內容、社區、以及用戶,都是優先於ModusToolbox™本身的。ModusToolbox™的願景,始終是為多方搭建橋樑,而非成為又一方。它雖然是一款專用的開發支持工具鏈軟體,但比其它專用軟體想了更多、做了更多。相信隨著後面課程的

展開,大家會越來越體會到ModusToolbox™那篤定而優美的一面。

別走開,我們下期再見!

 

如需了解更多信息,請點擊:

 

文章回顧:

“如何確保英飛凌工程師在24小時內給您回復?操作指南來了!” 

- 英飛凌技術支持系列|智能功率開關

- 英飛凌技術支持系列|智能高邊開關的開路檢測

- 英飛凌技術支持系列|智能高邊開關電流標定

- 英飛凌技術支持系列 | 智能高邊開關SPOC ™+2系列SPI檢測實例

- ModusToolbox™講堂 | 第一課ModusToolbox™簡介和安裝

- ModusToolbox™講堂 | 第二課 中國大陸用戶使用須知


 

★博文內容參考自 網站,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

參考來源

false: https://mp.weixin.qq.com/s/2TAT8i0dXXCiOHd6aL_F4Q

評論