去年我們官宣了 Visual Studio Code 可以直接導入 ST 項目,今天再次宣布:它的好兄弟 Visual Studio 2022 17.6 也支持此功能,詳細請看下文。
在 ARM 微控制器領域,有許多芯片供應商,其中最大的是意法半導體(ST)。ST 擁有大量具有多種功能的可用器件,以及用于評估這些功能的支持開發板。他們還生產STM32CubeIDE,一種用于定位設備的自定義IDE,以及STM32CubeMX,一種用于配置設備屬性和生成項目的配置工具。
如果你是已經在使用過 ST 產品的開發人員,我不會告訴你任何新內容。你可能不知道我們為在 Visual Studio 中啟用嵌入式開發人員所做的工作。此嵌入式體驗依賴于新的 vcpkg 項目功能來幫助獲取工具鏈和配置開發環境。為了讓使用 ST 芯片的開發人員更容易嘗試 Visual Studio Code,我們一直在與意法半導體合作,實現 STM32CubeIDE 項目的導入。
我們通過從 ST 項目生成一個 CMake 項目來實現這一點。ST 在其產品組合中提供了許多示例項目。我們已經使用這種機制驗證了示例項目中的構建,其中超過3000個。目前,我們的通過率為 99%,我們正在繼續提高。這使我們相信,我們的方法將成功導入你自己的意法半導體項目。我們的嵌入式工具擴展還支持通過導入器進行設備刷寫和調試,盡管我們僅在我們擁有的硬件上對此進行了驗證。
這篇文章將介紹這個項目導入器功能如何與 vcpkg 和 ST 的工具結合使用。
在 Visual Studio 中使用 ST 項目
這篇文章假設對 ST 器件、開發工具和嵌入式開發有一定的了解。如果你需要一些背景知識,我們推薦以下Shawn Hymel關于STM32入門的文章。
《Introduction to STM32CubeIDE》
《Introduction to FreeRTOS》
我們依靠 vcpkg 來管理像 CMake 和 Ninja 這樣的依賴項,包括獲取它們并使它們可用于你的開發環境。你可以在 Visual Studio 嵌入式開發概述中了解有關 vcpkg 的更多信息。你可以將其安裝在適用于你的平臺的單個 shell 命令中,在 windows 上你應該使用此 PowerShell 命令。
iex (iwr -useb
- 1.
??https://aka.ms/vcpkg-init.ps1)??
你將需要隨 linux 和嵌入式開發一起安裝 Visual Studio 2022 17.6 預覽版 1 或更高版本C++并選擇工作負載。
今天,我們的導入器要求你將 STM32CubeIDE 軟件安裝在平臺的默認位置。我們一直在使用 STM32CubeIDE 1.9.0 和 STM32CubeMX 6.5.0 測試此功能。如果你并排安裝了多個實例,我們無法控制選擇哪個實例。
還需要在 STM32CubeIDE 中獲取設備的板級支持包。這樣我們就可以從 Visual Studio 中使用 ST 提供的編譯器和支持應用程序。
或者,你可以使用 STM32CubeCLT ,其中包括此體驗所需的一切,包括編譯器,編程器和調試器。
安裝我們的先決條件后,從 Visual Studio 中轉到文件,打開,導入 STM32CubeIDE 項目。
導航到你的 ST .cproject 所在的位置并選擇它。然后,可以選擇調試或發布配置。現在,可以選擇“生成”以使用 CMake 編譯固件。若要調試,請選擇“調試”視圖,然后選擇啟動按鈕。這將運行 STM32 編程器將固件燒錄到設備上并使用 GDB 連接。從這里,我們所有的嵌入式開發視圖(串行、RTOS 和外設)都可用。
如果你的項目有 .ioc 文件,你還可以打開上下文菜單并為您的項目打開 STM32CubeMX。
理解 CMake 互操作性
你可以看到簡單的 CMakeLists.txt,它是在 .cproject 所在的項目的根目錄中生成的。這依賴于 cmake 目錄下生成的 CMake 文件。這些文件中的路徑設置為計算機上 ST 編譯器的發現位置。如果你打算從 ST 項目格式遷移到 CMake,我們建議根據需要調整這些文件,尤其是在路徑可能不同的團隊中使用。
需要注意的另一件事是,有時在 STM32CubeIDE 示例中,項目可能位于源代碼的子目錄中。如果在文件視圖中看不到項目文件,這可能是原因。選擇 CMake 目標視圖,應會看到 CMake 用于生成生成的所有內容。
根據上述觀點,我們建議在使用 STM32CubeMX 生成項目時,將項目管理器中“在根下生成”中的默認值保留為選中狀態。這會將你的 .cproject 保留在包含生成的源文件的文件夾的根目錄中。STM32CubeIDE也是默認生成項目的方式。
如果在 STM32CubeIDE 中再次打開項目,則需要從項目中排除 CMake 使用的構建目錄。右鍵單擊生成目錄,然后選擇“資源配置”>“從生成中排除”。然后選擇“調試”和“發布”。
總結
可以使用 Visual Studio 編寫 ST 項目的代碼,確實是一個微軟進軍非 Windows 生態系統的好兆頭。
也說明了,她有了一些危機感。技術的升維變革,不會提前跟你打招呼,你需要始終看的更遠一點,并做好十足的準備應對挑戰。