用 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 的初始投入是有成本的,但彈性和擴充性的回報是值得的。
Keep reading
More paths through this garden
Responses