vscode嵌入式开发配置
背景
虽然vscode提供了许多嵌入式开发插件,但是质量参差不齐,所以本人大多是情况下依旧还是保留着:嵌入式IDE+VSCode并行的开发模式,VSCode纯粹作为代码编辑器。而VSCode只需要配置c/c++的includepath路径就可以了。这里针对不同嵌入式平台给出不同的c_cpp_properties.json文件
ESP32
经过多次尝试后,还是选择本身的Espressif-IDE配置编译+VSCode代码编辑的开发模式。
c_cpp_properties.json如下
{
"configurations": [
{
"name": "ESP-IDF",
"compilerPath": "${env:IDF_TOOLS_PATH}\\tools\\xtensa-esp32-elf\\esp-2021r2-patch5-8.4.0\\xtensa-esp32-elf\\bin\\xtensa-esp32-elf-gcc.exe",
"cStandard": "c11",
"cppStandard": "c++17",
"includePath": [
"${env:IDF_TOOLS_PATH}/frameworks/esp-idf-v4.4.3/components/**",
"${env:IDF_TOOLS_PATH}/frameworks/esp-idf-v4.4.3/examples/**",
"${workspaceFolder}/**"
],
"browse": {
"path": [
"${env:IDF_TOOLS_PATH}/frameworks/esp-idf-v4.4.3/components/",
"${env:IDF_TOOLS_PATH}/frameworks/esp-idf-v4.4.3/examples/**",
"${workspaceFolder}"
],
"limitSymbolsToIncludedHeaders": false
},
"configurationProvider": "ms-vscode.makefile-tools"
}
],
"version": 4
}
QT
{
"env": {
"qtPath": "D:\\soft\\Qt5.15\\5.15.2\\mingw81_32",
"qtToolPath":"D:\\soft\\Qt5.15\\Tools\\mingw81_32\\i686-w64-mingw32",
"qtbuildPath":"D:\\data\\.buildCashe\\PID_prj\\pidCtrl_winapp\\build-TempCtrlTool-Desktop_Qt_5_15_2_MSVC2019_32bit-Debug\\**"
},
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${qtbuildPath}",
"${qtPath}/include",
"${qtPath}/include/QtCore",
"${qtPath}/include/QtGui",
"${qtPath}/include/QtWidgets",
"${qtPath}/include/QtNetwork",
"${qtPath}/include/QtSerialPort",
"${qtPath}/include/QtSerialBus",
"${qtPath}/include/QtCharts",
"${qtToolPath}/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"browse": {
"path": [
"${workspaceFolder}",
"${qtPath}/include",
"${qtToolPath}/include",
"${qtbuildPath}",
],
"limitSymbolsToIncludedHeaders": true
},
"intelliSenseMode": "${default}",
"compilerPath": "${qtPath}/bin/cl.exe",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
STM32
{
"env": {
"MDK5Path": "C:\\Keil_v5"
},
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**",
"${MDK5Path}/ARM/ARMCLAN/include",
"${MDK5Path}/ARM/ARMCC/include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE",
"USE_STDPERIPH_DRIVER",
"GD32F30X_HD",
"__CC_ARM"
],
"browse": {
"path": [
"${workspaceFolder}",
"${MDK5Path}/ARM/ARMCLAN/include",
"${MDK5Path}/ARM/ARMCC/include"
],
"limitSymbolsToIncludedHeaders": true
},
"intelliSenseMode": "${default}",
"cStandard": "c11",
"cppStandard": "c++17"
}
],
"version": 4
}
DSP F28335
后续更新。。。
DSP 6678
后续更新。。。
VxWorks
后续更新。。。
Linux内核
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/arch/arm64/include/**",
"${workspaceFolder}/include/**",
"${workspaceFolder}/include/linux/**",
"${workspaceFolder}/arch/arm64/**",
"${workspaceFolder}/**"
],
"defines": [
"__KERNEL__"
],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c17",
"cppStandard": "gnu++14",
"intelliSenseMode": "linux-gcc-x64",
"browse": {
"limitSymbolsToIncludedHeaders": true,
"databaseFilename": "${workspaceFolder}/.vscode/browse.VC.db"
}
}
],
"version": 4
}
{
"search.exclude": {
"**/node_modules": true,
"**/bower_components": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,
/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,
/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,
/* 屏蔽掉不用的DTB文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
"arch/arm/boot/dts/*.tmp":true,
},
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
"**/*.o":true,
"**/*.su":true,
"**/*.cmd":true,
"Documentation":true,
/* 屏蔽不用的架构相关的文件 */
"arch/alpha":true,
"arch/arc":true,
"arch/arm64":true,
"arch/avr32":true,
"arch/[b-z]*":true,
"arch/arm/plat*":true,
"arch/arm/mach-[a-h]*":true,
"arch/arm/mach-[n-z]*":true,
"arch/arm/mach-i[n-z]*":true,
"arch/arm/mach-m[e-v]*":true,
"arch/arm/mach-k*":true,
"arch/arm/mach-l*":true,
/* 屏蔽排除不用的配置文件 */
"arch/arm/configs/[a-h]*":true,
"arch/arm/configs/[j-z]*":true,
"arch/arm/configs/imo*":true,
"arch/arm/configs/in*":true,
"arch/arm/configs/io*":true,
"arch/arm/configs/ix*":true,
/* 屏蔽掉不用的DTB文件 */
"arch/arm/boot/dts/[a-h]*":true,
"arch/arm/boot/dts/[k-z]*":true,
"arch/arm/boot/dts/in*":true,
"arch/arm/boot/dts/imx1*":true,
"arch/arm/boot/dts/imx7*":true,
"arch/arm/boot/dts/imx2*":true,
"arch/arm/boot/dts/imx3*":true,
"arch/arm/boot/dts/imx5*":true,
"arch/arm/boot/dts/imx6d*":true,
"arch/arm/boot/dts/imx6q*":true,
"arch/arm/boot/dts/imx6s*":true,
"arch/arm/boot/dts/imx6ull-9x9*":true,
"arch/arm/boot/dts/imx6ull-14x14-ddr*":true,
"arch/arm/boot/dts/*.tmp":true,
}
}