Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
[原文发表地址] ARM GCC Cross Compilation in Visual Studio
[原文发表时间] 2017/10/23
- 在Visual Studio 2017 15.5预览2中,我们引入了针对ARM微控制器的交叉编译的支持。要在安装中启用此选项,请使用C ++工作负载选择Linux开发,并选择嵌入式和IoT开发选项。这将添加ARM GCC交叉编译工具和Make进行安装。
我们的交叉编译支持使用我们的“Open Folder”功能,因此没有涉及项目系统。我们正在使用来自其他Open Folder场景的相同的JOSN配置文件,并添加了其他选项来支持这里介绍的工具链。我们希望这为许多风格的嵌入式开发提供了灵活性。开始使用此功能并了解功能的最佳方法是使用ARM mbed在线编译器导出的项目。我们将在这里介绍基础知识,了解有关在线编译器的更多信息,请参阅ARM的教程,您可以在这里注册一个账号。
ARM的在线编译器可以让您选择目标平台并相应地配置您的项目。我们正在使用ST Nucleo-F411RE,但编译器支持的任何一个板都应该是正常的。单击新建,然后在打开的对话框中选择一个模板以开始使用。我选择了“Blinky LED test for ST Nucleo boards”。
在导出程序对话框中,为导出目标选择GCC(ARM Embedded)。
这将下载Zip文件到您的计算机。将该文件的内容提取到您喜欢的位置并打开Visual Studio。现在用File-->Open-->Folder打开它。我们需要通知VS这是什么类型的的C++代码,所以进入项目菜单并选择Edit Settings-->CppProperties.json。修改内容,所以只有一个条目与以下匹配。
{
"configurations": [
{
"inheritEnvironments": [
"gcc_arm"
],
"name": "gccarm",
"includePath": [
"${env.INCLUDE}"
],
"defines": [
]
}
]
}
gcc_arm的环境定义设置了VS安装的ARM GCC工具链的路径。它还触发扫描名为mbed的子菜单,以正确设置用于智能感应的包含路径。当您打开main.cpp时您会看到这个。您期望工作的一切将自动完成,定义,窥视定义等。您可以指定其他包含目录,但请注意,当前存在的子目录也必须在此时显示声明。
Open Folder还支持makefile的语法高亮显示,所以请打开它来查看。要编译项目,请右键单击Makefile并选择构建。
您现在将在解决方案资源管理器中看到一个新的BUILD输出文件夹。这是您的输出二进制文件,它是您的程序名称.bin您可以在您的主板上闪光。
关于mbed板的伟大之处之一是使用该二进制文件轻松实现。当连接到PC时,它们显示为USB大容量存储设备,因此您只需将bin文件拖放到驱动器,则主板将重置并运行程序。如果要从Visual Studio中控制,可以使用任务。选择二进制,右键单击并选择配置任务。这将创建一个名为tasks.vs.json的文件,您可以在其中配置将在其配置的文件的上下文菜单中显示的任务。下面显示的示例任务会将指定的二进制文件复制到D盘中,您可以修改这个以匹配您的系统。命令$ {env.COMSPEC} 提供了传递参数的命令提示符环境。
{
"version": "0.2.1",
"tasks": [
{
"taskName": "flash",
"appliesTo": "BUILD/Nucleo_blink_led.bin",
"type": "launch",
"command": "${env.COMSPEC}",
"args": [
"copy BUILD\\Nucleo_blink_led.bin D:"
]
}
]
}
下载Visual Studio 2017 Preview,安装Linux C ++ Workload,选择嵌入式和IoT开发选项,并用您的项目尝试一下。
我们有原型调试支持,并希望在将来的版本中补充。它使用与其他Open Folder方案相同的launch.vs.json格式,因此如果您知道需要为您的电路板和gdbserver指定什么,可以在此版本中使用。
我们正在积极地为嵌入式场景提供额外的支持。您的反馈对我们来说非常重要。我们期待着您的回音,并看到您所做的事情。
找到我们的最佳方式是通过我们的GitHub托管的问题列表,直接通过邮件vcpplinux-support@microsoft.com 或在Twitter上找到我@robotdad。
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in