我想用VS代码使用stm32F0 (基于arm)实现一个嵌入式项目。该项目在其他系统上运行正常。
在visual中添加了C/C++扩展,为windows.
。
c_cpp_properties.json文件
{
"configurations": [
{
"name": "Win32",
"includePath": [
"${workspaceFolder}/**" ,
"C:\\Users\\lib\\chibios\\ChibiOS-313416b8fda90d9973a749a0a35970956852c286\\os\\hal\\include",
"C:\\Users\\lib\\chibios\\ChibiOS-313416b8fda90d9973a749a0a35970956852c286\\os\\common\\ports\\ARM\\compilers\\GCC",
"C:\\Users\\lib\\chibios\\ChibiOS-313416b8fda90d9973a749a0a35970956852c286\\os\\nil\\include"
],
"defines": [
"_DEBUG",
"UNICODE",
"_UNICODE"
],
"compilerPath": "E:\\tools-vs\\gcc-arm-none-eabi-10-2020-q4-major\\bin\\arm-none-eabi-g++",
"cStandard": "gnu11",
"cppStandard": "gnu++14",
"intelliSenseMode": "gcc-arm",
"browse": {
"path": [
"E:\\tools-vs\\gcc-arm-none-eabi-10-2020-q4-major\\lib\\gcc\\arm-none-eabi\\10.2.1\\include"
]
}
}
],
"version": 4
}添加这些路径后,仍然会出现错误:
#包括检测到的错误。请更新您的includePath。此翻译单元无法打开源代码文件"avr/io.h“(依赖于"hal.h"),因此禁用了Squiggles。
由于嵌入式项目有大量的库和依赖项,所以不可能一个一个地添加依赖路径。在解决并为一个依赖项添加路径后,应该会出现另一个错误。
另一个问题是,我甚至无法在目录中自己找到依赖的avr/io.h。
我以前曾在其他项目中使用过Keil。当我编译代码时,它会自动调用所有依赖项。在编译之前,我没有看到树节上的依赖项,也没有看到头文件依赖项的任何错误。
但是,VS代码在编译之前如何找到依赖项呢?我还想知道我是否应该在VS代码的配置文件中添加一个main.cpp文件和其他C和CPP文件的路径来解决这些problems?
中添加了路径,但列表中没有任何调试器。
非常感谢任何命令或有用的资源,提前。
发布于 2021-06-04 20:08:05
谢谢你的回答。
使用visualGDB代替visualGDB的gcc-arm-none-eabi)
所有这些步骤为我解决了这个问题。
发布于 2021-05-27 13:45:59
无法打开源文件avr/io.h (依赖hal.h)
您似乎在使用ChibiOS,它有一个包含halcon.h的文件hal.h,其中包含mcucon.h。显然,您似乎有一个AVR端口的ChibiOS,您需要STM32或ARM的皮质-M支持。
但是,在编译之前,VS代码如何找到依赖项呢?
与编译器/预处理器一样,通过配置包含路径,解析项目文件并计算任何外部定义的宏(命令行)。
我还想知道是否应该在VS代码的配置文件中为main.cpp文件和其他C和CPP文件添加一个路径来解决这些问题?
我相信它在任何情况下都会解析项目文件。它只需要找到源文件中包含的头文件,就可以为解析源文件提供上下文。
对于调试,我没有在列表中看到任何调试器,尽管我安装了
并在环境变量中添加了路径
这是一个完全不同的问题--发布一个新的问题。
发布于 2021-05-27 15:05:53
您有8位AVR微控制器的代码,并尝试使用ARM工具链直接编译它。这是行不通的。您将需要重写此程序(不仅包括,而且几乎包括所有内容。中断处理程序、寄存器,甚至硬件架构也不同(Harvard/von )。
对于初学者来说,这是不可能的任务。
https://stackoverflow.com/questions/67715691
复制相似问题