使用 VS Code 當成撰寫 MSP430 程式碼的編輯器

硬體

2023.7.15:在步驟加入重新打開VSCode的提示(感謝學弟提醒)。

前言

在撰寫一款單晶片韌體,單晶片廠家通常都會附贈配套開發工具(如:IDE,SDK…等),其中IDE(Integrated development environment,整合式開發環境)的出現會讓新手或者韌體工程師可以省下環境建置的麻煩,更能夠快速地開發一個Project。
通常單晶片所配套的IDE很多種,但大部分常見的會是Arm的Keil MDK(最近官方好像在推廣使用VS Code核心的Keil MDK 6)、IAR的Embedded Workbench、以及Eclipse基金會的Eclipse IDE
Arm Keil MDK
IAR Embedded Workbench
STM32CubeIDE
其中,由於Eclipse的開放原始碼特性,許多廠商會基於Eclipse IDE,往上疊加自身的功能,改成可以撰寫與偵錯自家單晶片的IDE工具。本文下面所介紹的CCS(Code Composer Studio)也是基於Eclipse IDE 修改而來。
但是,有使用過Eclipse IDE的工程師或者使用者,不難免都會遇到一種情況:如果在C/C++的環境下,不會像其他的IDE(如:IDE,SDK…等)沒有「很完全的」代碼提示的功能。僅僅是在撰寫Structure與Class這兩個資料型態時才會出現。

如果需要更完全的代碼提示功能,兩種方式都可以:

  • 一是:修改Eclipse CDT的原始碼,並重新編譯。
  • 另一種方式:就是使用其他款帶有代碼提示功能的編輯器做程式碼的撰寫,下面的介紹會使用這種方法。

前置作業

  1. 確保電腦上已經安裝編輯MSP430的IDE軟體(筆者使用Ti官方提供的Code Composer Studio作為示範)
  2. 下載Visual Studio Code,並根據安裝工具的提示,一步步將VS Code安裝到電腦上。
  3. 打開VS Code,點左邊Plugins按鈕,安裝C/C++開發插件。

    PS: 如果看不懂英文,可以另外安裝繁體中文語言插件。

  4. 等待兩個插件都安裝完畢後,關閉且重新啟動Visual Studio Code。

步驟

  1. 打開Code Composer Studio,按照往常新建一個Project / 選擇現有Project。

  2. 點選Includes資料夾,把原先匯入的兩個資料夾目錄記錄下來。
  3. 打開VS Code,開啟當前CCS所打開的Project的所在目錄。
  4. 鍵盤按下Ctrl + Shift + P,叫出上方快捷功能欄,輸入C/C++ Edit Configurations (UI),進入C/C++設定介面。
  5. 在設定介面裡面,將Compiler path修改成當前MSP430的編譯器位置。

    PS: 可以在CCS按一次編譯(Build),在Console視窗中會出現當前調用哪個編譯器。

  6. 將設定介面的Include path額外新增兩行剛才的Include目錄,並在目錄後加入/**讓VS Code可以讀到子目錄的.h.c檔案。
  7. 將設定介面的Defines新增一行預編譯指令。
    由於筆者使用的MSP430晶片型號為MSP430FR5994,則須在這裡輸入__MSP430FR5994__
    如果使用不同晶片,則輸入的預編譯指令也會不同,但基本上只要修改型號為你的晶片即可。
  8. 上述操作完成之後,按下Ctrl + S保存設定,之後可以在左邊的檔案瀏覽中找到.vscode資料夾,
    資料夾內有一個C/C++插件的設定檔案,可以將其打開,並跟我下方提供的設定檔對照看看:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    {
    "configurations": [
    {
    "name": "Win32",
    "includePath": [
    "${workspaceFolder}/**",
    "C:/ti/ccs1230/ccs/tools/compiler/ti-cgt-msp430_21.6.1.LTS/include/**",
    "C:/ti/ccs1230/ccs/ccs_base/msp430/include/**"
    ],
    "defines": [
    "_DEBUG",
    "UNICODE",
    "_UNICODE",
    "__MSP430FR5969__"
    ],
    "compilerPath": "C:\\ti\\ccs1230\\ccs\\tools\\compiler\\ti-cgt-msp430_21.6.1.LTS\\bin\\cl430.exe",
    "cStandard": "c17",
    "cppStandard": "gnu++17",
    "intelliSenseMode": "gcc-x64"
    }
    ],
    "version": 4
    }
  9. 若操作都正常,請記得 「重新打開VScode載入設定檔」,之後開啟原先在CCS編輯的程式碼,之後就可以愉快的編輯程式了~

注意事項

  1. 如果沒有在設定介面的Defines輸入晶片型號,則後續在VS Code編輯程式碼的時候,會因為沒有定義晶片型號,而無法讓代碼提示的功能生效。
  2. 如果在VS Code編輯一部分並有按下保存,則切換到CCS的時候,CCS「有機率」會提示需要重新載入檔案,這個時候千萬要按Yes,否則你的程式碼還是舊的。
  3. 這種方法不僅適用於MSP430 CCS,也可以用在使用其他不帶代碼提示 / 「很完全的」代碼提示功能的IDE上面,僅需配置好相關設定即可。

好久沒更新了,上來清一下灰塵www

參考資料

Comments

Unable to load Disqus, please make sure your network can access.