在 介紹 MeadowF7 晶片開發板 後,其安裝 Meadow 的 Visual Studio Extension 與 建立 Meadow 開發專案皆不是什麼難事,但要透過 Meadow.CLI 工具繼續來安裝(更新) MeadowF7 開發晶片板的作業系統 meadowOS,其處理還有點繁瑣,於是乎寫了這篇文章作些紀錄。
首先,若將 MeadowF7 開發晶片板透過 Boot 模式(將 Boot 鈕按著同時接上 USB 線即是 Boot 模式)連接到 Windows 電腦,在 Windows 的 "裝置管理員" 會看到類似如下畫面:
會發現 "STM32 BOOTLOADER" 會被視為其他裝置,且其驅動程式無法正確運作,此時就須要靠 Zadig 來更新相關的驅動程式(更詳細介紹可看 Scott 的 Blog 文章)。
來到 Zadig 的官網: https://zadig.akeo.ie/,並找到 Download 的連結下載最新的 Zadig 的執行安裝檔。
下載完成後如下:
執行該 Zadig 應用程式,預設會讀取到無法正確驅動的 "STM32 BOOTLOADER",注意此時的 Driver 會是呈現 None。
若沒有,可在 Zadig 在選單中點選 Options,再點選 "List All Devices"。
應該就會看到 Zadig 會列出 "STM32 BOOTLOADER" 裝置。
選取到 "STM32 BOOTLOADER" 之後即可點選 "Install Driver"。
請等待安裝,直到出現安裝完成的訊息畫面。
在 Zadig 的畫面在 "STM32 BOOTLOADER" 的 Driver 會呈現如下:
而在裝置管理員中確認 "STM32 BOOTLOADER" 也應已經能正常被識別成 "通用序列匯流排裝置" 且其驅動程式能正確運作。
接著請開啟 "命令提示字元" ,並鍵入 "dotnet tool install WildernessLabs.Meadow.CLI --global" 的指令。
安裝 Meadow.CLI 完成。
接著再利用系統管理員身分執行起另一個 "命令提示字元" 準備透過 meadow 來下載 DufUtil,鍵入以下指令 "meadow --InstallDfuUtil"。
但目前 v0.10 的版本沒有 Windows 的安裝執行檔可供下載,所以可選擇使用 Meadow.CLI 提供的指令下載該 Dfu-Util 工具。
若無意外,則在命令提示字元當中會顯示已下載安裝完畢。
這裡來解釋一下為什麼要用 "系統管理員" 身分,來另外執行一個命令提示字元下載 DfuUtil 的執行檔。
其原因是 Meadow.CLI 在執行 meadow --InstallDfuUtil 的指令時,預設會把 DfuUtil 的執行檔案下載到 Windows 資料夾底下的 System32 資料夾(熟悉 Windows 的人都知道 System32 資料夾是需要特殊權限才能存取的)。
所以如果更新完畢後會覺得有點怪的話,可以在更新完成後到 Windows 資料夾下的 System32 資料夾中把下圖的兩個檔案移除。
接著就可以回到原本的命令提示字元中下達 "meadow --Download" 指令,來下載最新版本的 meadowOS。
下載完成後,會告知 meadowOS 的最新版本已經下載到 "C:\Users\<<YourUserAccount>>\AppData\Local\Wildernesslabs\Firmware" 資料夾下。
後續為了方便起見,下面就直接透過 cd 指令切換到 "C:\Users\<<YourUserAccount>>\AppData\Local\Wildernesslabs\Firmware" 該資料夾中,操作後續指令。
接著就下達 "meadow --FlashOS" 的指令。
下面就是更新的過程截圖畫面:
更新完畢後,MeadowF7 晶片板會自動重啟,裝置管理員會重新抓到用一般模式連結電腦的 MeadowF7 晶片板,並且會有個 COM[Num] 的指定。
接著依照 "Wilderness Labs" 官方說明,更新玩 MeadowF7 晶片板的 meadowOS 之後,還需要調整 Mono 跟更新 Esp 晶片的部分,於是請先執行 "meadow --MonoDisable -s COM[Num]" 的指令。
若該指令成功後,最後會呈現 "Mono disabled, will not run app.exe" 等訊息。
完成後,再繼續執行 "meadow --MonoUpdateRt" 的指令,成功後會呈現 "Mono runtime successfully flashed" 等訊息。
完成後繼續調整 MeadowF7 晶片板上的 Esp 晶片的部分,下達 "meadow --FlashEsp" 的指令。
完成後就可以下達 "執行 "meadow --MonoEnable" 的指令",重啟 Mono 執行。成功後會出現 "Mono has been enabled, Restarting F7 Micro" 的訊息。
最後也可以使用 Meadow.CLI 的 "--GetDeviceInfo" 或 "--GetDeviceName" 指令看看並確認目前 MeadowF7 晶片板的 OS 版號 與 裝置序號 等資訊:
更新完成!!!
可喜可賀~~~可喜可賀~~~
接著就可以開啟 Visual Studo 來開啟 Meadow 專案測試部屬 Meadow 的專屬應用程式到晶片板上。
接下來就跟一般 .NET 開發動作相同,建置或編譯該應用專案。
正確編譯完成後,即可透過 Visual Studio 部屬該 Meadow 應用程式到 MeadowF7 晶片板中。
在部屬的同時可透過 Visual Studio 的輸出窗格中的 "建置" 了解部屬的過程。
完成後,可將輸出窗格切到 "偵錯" 觀看執行的輸出結果。
而官方說明在未來正式推出 MeadowOS 1.0 前會支援。
相關參考連結:
- Meadow OS Deployment:
http://developer.wildernesslabs.co/Meadow/Getting_Started/Deploying_Meadow/
I'm a Microsoft MVP - Developer Technologies (From 2015 ~).
I focus on the following topics: Xamarin Technology, Azure, Mobile DevOps, and Microsoft EM+S.
If you want to know more about them, welcome to my website:
https://jamestsai.tw
本部落格文章之圖片相關後製處理皆透過 Techsmith 公司 所贊助其授權使用之 "Snagit" 與 "Snagit Editor" 軟體製作。