使用当前的 C/C++ 扩展 (v1.7.1) 我不认为您想要什么是可以实现的,因为它似乎需要与编译器进行某种集成才能从中提取大量“隐藏”信息它,目前只支持微软的 C 编译器、Clang 和 GCC (source)。
无论如何,使用正确的c_cpp_settings.json,您可以获得很多功能。
这是我当前在 F280049C 上的项目设置的副本。我在项目文件夹中添加了电机控制 SDK 作为子模块,您可能不需要。确保添加与您的项目相关的所有不同的 SDK 和其他零碎。
对于defines 属性,我在Code Composer 中检查了项目属性,然后在CSS Build / C2000 Compiler / Predefined Symbols 中有一个通过命令行传递的定义列表。有一堆“隐藏”的定义我不知道如何获取,请参阅下面代码中的评论。拿例子中的那些加点盐,你的定义可能会有所不同。
可以在命令行中传递的标志中检查 C 和 C++ 标准(在我的项目中它们是 C++03 和 C11)。
编译器路径必须留空 (""),因为扩展无法使用 C2000 编译器,这就是您收到 Unable to resolve configuration with compilerPath ".../bin/cl2000.exe". Using "cl.exe" instead. 错误的原因。我猜 VS Code 看到了“cl.exe”编译器,C/C++ 扩展可以使用的编译器(它是微软的 VS 编译器,可能它的名字与 TI 的相似这一事实会误导你)
关于intelliSense 模式,C2000 的恶魔架构将无法正常工作。我更喜欢将 intelliSense 设置为 32 位,但这与 64 位一样错误,所以在那里选择你的毒药。请记住,在 VS Code 中,sizeof 或指针之类的值将是错误的(因为您告诉它将它们视为 32 位架构)。
试试这个配置。您会在某些包含下看到许多红色波浪线,但其中大部分应该在您的 browse 路径中,并且可以通过单击黄色灯泡图标自动添加。
{
"env": {
"SDKPath": "${workspaceFolder}/../lib/C2000Ware_MotorControl_SDK_3_01_00_00",
"StdLibPath": "C:/ti/ccs1031/ccs/tools/compiler/ti-cgt-c2000_20.2.5.LTS",
"XDCTools": "C:/ti/ccs1031/xdctools_3_62_00_08_core",
"TIBIOS": "C:/ti/bios_6_83_00_18/packages/"
},
"configurations": [
{
"name": "TI",
"includePath": [
"${workspaceFolder}/**"
],
"browse": {
"path": [
"${StdLibPath}/**",
"${SDKPath}/**",
"${XDCTools}/**",
"${TIBIOS}/**"
]
},
"defines": [
"_F28004x",
"DEBUG",
"_INLINE",
"_FLASH",
"DRV8353_SPI",
// Hidden predefined symbols. They are set by the compiler by default, but
// they are not output on the command line and I haven't found a way to
// list them yet
// needed for STL (see s_c__system.h)
"_STLP_COMPILER",
"__TI_COMPILER_VERSION__"
],
"compilerPath": "",
"cStandard": "c11",
"cppStandard": "c++03",
"intelliSenseMode": "gcc-x86"
}
],
"version": 4
}
请记住,使用微控制器时需要进行大量自定义,但我认为这会让您走上正轨。