STM32高級開發(18)-使用VS Code搭建STM32開發環境

以前在伴隨着開發平臺的轉換中,我嘗試過各種各樣的開發環境,而在最近一段時間的開發中我使用了Visual Studio Code來作爲代碼編輯器,其優異的工程管理,超快的啓動速度,各種各樣功能強大的插件,使我立刻愛上了這個文本編輯器。但是在開發中來來回回在編輯器和Keil等IDE之間來回切換對我造成了不少不方便,另外由於希望能夠在windows下使用gcc工具鏈開發,所以我嘗試使用插件來完整的在vscode上搭建了一個開發環境。可以說這是我在windows平臺下嘗試過的最好用的一種搭配,下面我就來詳細講述一下這個環境的搭建和基本使用方式。

ps:啓動真心快,在win下優化程度堪比記事本.

安裝軟件

  1. 下載安裝 Visual Studio Code

    過程按照正常方式安裝就可,記得在安裝快完成後的選項中勾選,添加右鍵打開文件和文件夾的選項,把有選擇的那頁全部勾選就行,這樣就可以很方便的在文件夾目錄下快速用VS Code打開文件或工程目錄了。

  2. 下載安裝 Clang

    用於提供語法補全代碼格式化等功能,正常完成安裝後將軟件的安裝目錄下的bin文件夾設置進入環境變量PATH中。 如:

    D:\LLVM\bin
    
  3. 下載安裝 Git for Windows

    提供Git支持和MINGW64指令終端。

  4. 下載 OpenOCD for Windows

    下載後的文件不是安裝包,把程序文件夾放入自己的軟件安裝目錄下,將軟件的bin文件夾路徑加入用戶環境變量PATH中。 如:

    D:\OpenOCD0.10.0\bin
    
  5. 下載安裝 arm-none-eabi-gcc

    正常安裝,安裝後需要將軟件的安裝目錄下的bin文件夾設置進入環境變量PATH中。 如:

    D:\GNU Tools ARM Embedded\7 2017-q4-major\bin
    

配置 VS Code

  1. 安裝插件

    在軟件左側選項中選擇擴展選項,在插件市場中搜索安裝 VS Code 插件如下:

    • ARM

      提供 ARM 彙編代碼的語法識別加亮

    • C/C++

      提供 C/C++ 的語法智能感知、加亮及調試功能

    • C/C++ Clang Command Adapter

      提供 Clang 功能的調用

    • Code Outline

      提供類似 eclipse 文件函數列表的功能

    • GBKtoUTF8

      用來識別調整文件的編碼格式

    • Makefiles support for VSCode

      提供對 Makefile 的語法識別等功能

  2. 設置 VS Code 功能

    點擊 文件 -> 首選項 -> 設置,來打開 VS Code 的配置文件( VS Code 採用 json 格式的文件進行配置,沒有圖形界面),在文件中加入如下配置(窗口左側爲系統殼配置選項及默認參數是隻讀的,右側窗口爲配置設置界面,可寫),尤其注意最後兩項執行程序的路徑要設到自己的路徑下:

    {
        "editor.detectIndentation": false,
        "git.ignoreMissingGitWarning": true,
        "files.autoGuessEncoding": true,
        "editor.formatOnSave": true,
        "editor.formatOnPaste": true,
        "editor.formatOnType": true,
        "terminal.integrated.shell.windows": "D:\\Git\\bin\\bash.exe",
        "terminal.external.windowsExec": "D:\\Git\\bin\\bash.exe",
    }
    

    然後我們我們重啓程序加載配置,而後點擊 查看 -> 集成終端 可以看到 VS Code 的內部終端已經改變爲 MINGW64 的終端。

    這裏寫圖片描述

開發工程

  1. 首先選擇一個用 CubeMX 生成的帶 Makefile 的工程目錄,右鍵點擊空白處,選擇以 Open With Code ,首先我們打開 Makefile 文件,修改求其中的 arm-none-gcc-eabi 的路徑設置,由於我們已經將工具鏈的路徑設置進入環境變量中,這裏只需要將執行指令前的路徑變量全部刪除即可,如下:

    #######################################
    # binaries
    #######################################
    BINPATH = 
    PREFIX = arm-none-eabi-
    CC = $(PREFIX)gcc
    AS = $(PREFIX)gcc -x assembler-with-cpp
    CP = $(PREFIX)objcopy
    AR = $(PREFIX)ar
    SZ = $(PREFIX)size
    HEX = $(CP) -O ihex
    BIN = $(CP) -O binary -S
    
  2. 修改樣本工程下的配置文件到自己的工程中

    .vscode 目錄下文件共有3個配置文件,實際上我們只需要配置launch.json文件就可以實現全部的調試功能,但是由於vscode不會自動識別makefile中的配置參數,所以如果想要使其代碼索引,智能感知運行正確的話,就需要我們單獨設置其中的c_cpp_properties.json文件。

    • c_cpp_properties.json 用於設定工程的 Include 路徑,宏定義及搜索瀏覽路徑,其中需要設定三個參數:

      • includePath 提供.h的搜索目錄
      • defines 編譯時在指令中加入的宏定義
      • path 使用右鍵或ctrl追蹤函數實現時搜索的目錄
    • launch.json 用於設定調試功能
      這個文件的參數很多,我們對於簡單的使用,只需要將其中的路徑改爲自己的工程路徑和名稱即可,有關於其具體意義和使用方式的說明可以查看c/c++插件的官方github userguid來學習使用。其中需要注意的是,由於我們的調試是在windows環境下使用mingw64來實現的,所以在調試的啓動過程中指令會在windows cmd和mingw64跳轉幾次,具體指令是在哪個終端內調用的要根據指令的類型來決定,所以我們必須很小心的來設置路徑參數,分清“ / ” 和 “ \ ”路徑的表示方法,如果執行起來有錯誤,就多看看啓動時,在調試窗口打印的記錄來調整修改正確。

    • settings.json 用於設定工程中 VS Code 的特殊設置
      可以設置特定的如代碼格式化樣式等。

  3. 啓動調試

    如果我們之前 c_cpp_properties.json 設置正確的話,這時在左側調試界面中,我們應該就可以看到,launch中有一個調試啓動選項了,在下方終端中使用make編譯生成elf文件,點擊啓動調試,即可開始調試了。啓動後與大多數編譯器操作是相同的,單步運行,右鍵運行到該行,鼠標懸停顯示數據等。(唯一注意的是由於插件本身的bug,調試啓動後不會自動停在代碼起始位置或main函數入口位置,對此我們只需要在調試前在代碼運行的第二行或者main函數入口手動加個斷點即可)

    這裏寫圖片描述

    這裏寫圖片描述

參考資料

樣板工程Github:https://github.com/zhengyangliu/VSCode_STM32_Templet

VS Code 擴展C/C++插件使用說明:https://github.com/Microsoft/vscode-cpptools

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章