目錄
- 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 https://github.com/libopencm3/libopencm3-template.git
或者
git clone --recurse-submodules https://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 https://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 了.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/431401.html
標籤:其他
下一篇:如何基于矩陣創建資料框?
