Back to Home

用 VS Code 打造高效 Firmware 開發環境

分享我的 VS Code 設定,讓嵌入式開發流程更順暢。

前言

我從 Keil 轉移到 VS Code 開發 firmware 已經兩年了,整體體驗提升非常多。這篇文章分享我的設定。

必裝擴充套件

{
  "recommendations": [
    "ms-vscode.cpptools",
    "marus25.cortex-debug",
    "ms-vscode.cmake-tools",
    "jeff-hykin.better-cpp-syntax",
    "streetsidesoftware.code-spell-checker"
  ]
}

Cortex-Debug 設定

這是讓 VS Code 可以 debug ARM Cortex-M 的關鍵套件。需要搭配 OpenOCD 或 J-Link:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug (OpenOCD)",
      "type": "cortex-debug",
      "request": "launch",
      "servertype": "openocd",
      "cwd": "${workspaceRoot}",
      "executable": "./build/firmware.elf",
      "configFiles": [
        "interface/stlink.cfg",
        "target/stm32f4x.cfg"
      ],
      "svdFile": "./STM32F407.svd",
      "runToEntryPoint": "main"
    }
  ]
}

CMake 設定

對於 cross-compilation,toolchain file 很重要:

set(CMAKE_SYSTEM_NAME Generic)
set(CMAKE_SYSTEM_PROCESSOR arm)

set(CMAKE_C_COMPILER arm-none-eabi-gcc)
set(CMAKE_CXX_COMPILER arm-none-eabi-g++)
set(CMAKE_ASM_COMPILER arm-none-eabi-gcc)

set(CMAKE_C_FLAGS "-mcpu=cortex-m4 -mthumb -mfpu=fpv4-sp-d16 -mfloat-abi=hard")

我的 settings.json 片段

{
  "editor.formatOnSave": true,
  "C_Cpp.clang_format_style": "file",
  "editor.rulers": [80, 120],
  "files.trimTrailingWhitespace": true
}

結語

從 IDE 遷移到 VS Code 的初始投入是有成本的,但彈性和擴充性的回報是值得的。

0

Keep reading

More paths through this garden

Responses

Leave a note