LibOpenCM3(四) VSCode IDE 環境配置
- 2022 年 2 月 24 日
- 筆記
- linux, STM32, Mobile/Embed, LibOpenCM3
目錄
- LibOpenCM3(一) Linux下命令行開發環境配置
- LibOpenCM3(二) 項目模板 Makefile分析
- LibOpenCM3(三) .ld文件(連接器腳本)和startup程式碼說明
- LibOpenCM3(四) VSCode IDE 環境配置
說明
因為 PlatformIO 的 platform:st-stm32 自帶 libopencm3, 如果用 PlatformIO 創建 libopencm3 項目可以做到零配置, 只是 libopencm3 的版本會舊一點. 這裡說的是僅使用 VSCode 創建C/CPP項目時的配置. VSCode 有程式碼提示, 定位來源和各種快捷鍵, 更適合日常編碼工作.
前提條件
參考 Linux下命令行開發環境配置, 先將 GNU Arm Embedded Toolchain 和 st-flash 工具準備好
創建項目
導出模板項目
git clone --recurse-submodules //github.com/libopencm3/libopencm3-template.git
或者
git clone --recurse-submodules //gitee.com/iosetting/libopencm3-template.git
VSCode 創建項目
用 VSCode 的 Open Folder 打開. 需要修改一下 my-project/Makefile 中的配置, 將 DEVICE 修改為實際使用的MCU型號
DEVICE=stm32f103c8t6
配置C/CPP環境
快捷鍵Ctrl+Shift+P, 在打開的對話框中, 輸入/找到 C/C++: Edit Configurations (JSON), 用JSON進行配置
配置內容
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"${workspaceFolder}/libopencm3/include"
],
"defines": [
"STM32F1"
],
"compilerPath": "/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi-gcc",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-arm"
}
],
"version": 4
}
- compilerPath 根據自己的工具鏈路徑進行修改
- defines 下的 STM32F1 與編譯無關(編譯使用的是DEVICE和鏈接庫), 不設置也能正確編譯, 設置這個是為了 VSCode 能正確定位變數和函數聲明
配置編譯任務
快捷鍵Ctrl+Shift+P, 在打開的對話框中, 輸入/找到 Tasks: Configure Task, 用others模板創建
配置內容, 其中TARGETS=stm32/f1根據實際的MCU型號修改
{
// See //go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build libopencm3",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- TARGETS=stm32/f1 make -C libopencm3",
"problemMatcher": []
},
{
"label": "build clean libopencm3",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C libopencm3 clean",
"problemMatcher": []
},
{
"label": "build",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C my-project",
"problemMatcher": []
},
{
"label": "build clean",
"type": "shell",
"command": "PREFIX=/opt/gcc-arm/gcc-arm-none-eabi-10.3-2021.10/bin/arm-none-eabi- make -C my-project clean",
"problemMatcher": []
},
{
"label": "build download",
"type": "shell",
"command": "st-flash --reset write my-project/awesomesauce.bin 0x8000000",
"problemMatcher": []
}
]
}
使用時, 通過Shift + Alt + F10調出菜單並選中執行.
先執行一次 build libopencm3 , 生成 libopencm3 的鏈接庫之後, 編譯項目就只需要執行 build 了.

