VSCode?IDE?配置環(huán)境過程解析
如果用 PlatformIO 創(chuàng)建 libopencm3 項目可以做到零配置, 只是 libopencm3 的版本會舊一點. 這里說的是僅使用 VSCode 創(chuàng)建C/CPP項目時的配置. VSCode 有代碼提示, 定位來源和各種快捷鍵, 更適合日常編碼工作.
說明
因為 PlatformIO 的 platform:st-stm32 自帶 libopencm3, 如果用 PlatformIO 創(chuàng)建 libopencm3 項目可以做到零配置, 只是 libopencm3 的版本會舊一點. 這里說的是僅使用 VSCode 創(chuàng)建C/CPP項目時的配置. VSCode 有代碼提示, 定位來源和各種快捷鍵, 更適合日常編碼工作.
前提條件
參考如何linux環(huán)境下配置環(huán)境變量過程圖解 ,自行百度先將 GNU Arm Embedded Toolchain 和 st-flash 工具準(zhǔn)備好
創(chuàng)建項目
導(dǎo)出模板項目
git clone --recurse-submodules https://github.com/libopencm3/libopencm3-template.git 或者 git clone --recurse-submodules https://gitee.com/iosetting/libopencm3-template.git
VSCode 創(chuàng)建項目
用 VSCode 的 Open Folder 打開. 需要修改一下 my-project/Makefile 中的配置, 將 DEVICE 修改為實際使用的MCU型號
DEVICE=stm32f103c8t6
配置C/CPP環(huán)境
快捷鍵Ctrl
+Shift
+P
, 在打開的對話框中, 輸入/找到 C/C++: Edit Configurations (JSON)
, 用JSON進行配置
配置內(nèi)容
{ "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 根據(jù)自己的工具鏈路徑進行修改
- defines 下的 STM32F1 與編譯無關(guān)(編譯使用的是DEVICE和鏈接庫), 不設(shè)置也能正確編譯, 設(shè)置這個是為了 VSCode 能正確定位變量和函數(shù)聲明
配置編譯任務(wù)
快捷鍵Ctrl
+Shift
+P
, 在打開的對話框中, 輸入/找到 Tasks: Configure Task
, 用others模板創(chuàng)建
配置內(nèi)容, 其中TARGETS=stm32/f1
根據(jù)實際的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
調(diào)出菜單并選中執(zhí)行.
先執(zhí)行一次 build libopencm3 , 生成 libopencm3 的鏈接庫之后, 編譯項目就只需要執(zhí)行 build 了.
到此這篇關(guān)于VSCode IDE 環(huán)境配置的文章就介紹到這了,更多相關(guān)VSCode IDE 環(huán)境配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Visual Studio 2022無法打開源文件的解決方式
這篇文章主要介紹了Visual Studio 2022無法打開源文件的解決方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01C++數(shù)據(jù)結(jié)構(gòu)之實現(xiàn)鄰接表與鄰接矩陣的相互轉(zhuǎn)換
這篇文章主要為大家學(xué)習(xí)介紹了C++如何實現(xiàn)鄰接表與鄰接矩陣的相互轉(zhuǎn)換,文中的示例代碼簡潔易懂,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-07-07C語言執(zhí)行時,程序控制臺輸出窗口 一閃而過問題及解決
這篇文章主要介紹了C語言執(zhí)行時,程序控制臺輸出窗口 一閃而過問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11C語言main函數(shù)的參數(shù)及其返回值詳細(xì)解析
main函數(shù)的返回值用于說明程序的退出狀態(tài)。如果返回0,則代表程序正常退出;返回其它數(shù)字的含義則由系統(tǒng)決定。通常,返回非零代表程序異常退出2013-10-10C語言枚舉(enum)和聯(lián)合(union)實例分享
在本篇文章里小編給大家整理了關(guān)于C語言枚舉(enum)和聯(lián)合(union)實例內(nèi)容,需要的朋友們可以學(xué)習(xí)下。2020-03-03