日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

VSCode?IDE?配置環境過程解析_C 語言

作者:Milton ? 更新時間: 2022-04-27 編程語言

如果用 PlatformIO 創建 libopencm3 項目可以做到零配置, 只是 libopencm3 的版本會舊一點. 這里說的是僅使用 VSCode 創建C/CPP項目時的配置. VSCode 有代碼提示, 定位來源和各種快捷鍵, 更適合日常編碼工作.

說明

因為 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
}
  1. compilerPath 根據自己的工具鏈路徑進行修改
  2. 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.cnblogs.com/milton/p/15929905.html

欄目分類
最近更新