VS代码无法识别TI C2000编译器



我正试图在"compilerPath";,但VS代码上写着:

无法使用compilerPath解析配置"bin/cl2000.exe";。使用";cl.exe"相反

有没有办法做到这一点,例如手动指定在哪里可以找到包含文件等,或者无论我做什么,除了大型编译器(gcc、clang(之外的编译器都无法使用VS代码?

我不需要调试器、库文档等功能,但我确实需要intellisense(msvc-x64(。我可以只使用cl.exe作为一个定义的编译器,但它不能识别一些特定于编译器的东西,比如__attributes__((ramfunc)),它没有使用正确的<stdint.h>等。

使用当前的C/C++扩展(v1.7.1(,我不认为您想要的是可以实现的,因为它似乎需要与编译器进行某种集成,以提取大量的"隐藏的";信息,目前只支持微软的C编译器Clang和GCC(来源(。

在任何情况下,使用正确的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位一样错误,所以在那里选择毒药。请记住,像sizeof或指针的值这样的东西在VS代码中是错误的(正如您告诉它将它们视为32位体系结构一样(。

请尝试此配置。在某些include下,您会看到很多红色的歪歪扭扭的线,但其中大多数应该在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
}

请记住,在使用微控制器时,有很多定制工作要做,但我认为这会让你走上正轨。

相关内容

最新更新