Using Visual Studio and VS Code for Embedded C/C++ Development

Slides:



Advertisements
Similar presentations
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
Advertisements

Visual Studio 2010 SharePoint Developer Tools. Developer Tools for SharePoint  Familiar VS Experience  Build, Debug, Deploy SharePoint projects  Visual.
Future Directions for Leveraging Advanced XML Tools and Building Custom XML Solutions Denise Draper DAT321 Microsoft Corporation.
Introduction to The Linaro Toolchain Embedded Processors Training Multicore Software Applications Literature Number: SPRPXXX 1.
1 Introduction to Tool chains. 2 Tool chain for the Sitara Family (but it is true for other ARM based devices as well) A tool chain is a collection of.
WEB329 ASP.NET: A Lap Around the New Enhancements for Web Developers in Microsoft Visual Studio 2005 Omar Khan Lead Program Manager Web Platform and Tools.
StyleCop Breaking down the barriers to entry Gary Ewan Park Twitter: Blog:
Scalable Game Development William Roberts Senior Game Engineer
Developing C/C++ applications with the Eclipse CDT David Gallardo.
Tips & Tricks: Extending MSBuild with Tasks, Loggers, and Targets Faisal Mohamood TLNL01 Program Manager - MSBuild Microsoft Corporation.
DEV330 Visual Studio.NET IDE Tips and Tricks Billy Hollis Author / consultant.
Taking Control of Visual Studio through Extensions and Extensibility Anthony Cangialosi Senior Program Manager Lead Microsoft Corporation DEV311.
Connect with life Vedant Kulshreshtha Technology Solutions Professional – SharePoint | Microsoft India
Msdevcon.ru#msdevcon. ИЗ ПЕРВЫХ РУК: ДИАГНОСТИКА ПРИЛОЖЕНИЙ С ПОМОЩЮ ИНСТРУМЕНТОВ VISUAL STUDIO 2012 MAXIM GOLDIN Senior Developer, Microsoft.
Open project in Microsoft Visual Studio → build program in “Release” mode.
Tips and Tricks for Debugging ASP.NET Web Applications and Services Habib Heydarian TLNL05 Program Manager Microsoft Corporation.
Microsoft Connect /23/ :39 PM
12/29/2017 2:33 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Development Environment Setup
Microsoft Ignite /10/2018 3:38 AM
ADK HLK and E/WDK updates for the Windows 10 Fall Creators Update
5/15/2018 5:43 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
5/22/2018 3:04 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Tooling Breakout Session
Office 365 Development July 2014.
Jeff Hollan / Kevin Lam Program Manager / Principal Program Manager- Microsoft Bringing Logic Apps into DevOps with Visual Studio and monitoring.
Data Science & Web Dev with Python in Visual Studio
Windows Azure Jason Olson, Program Manager 4-142
Developing Drivers in Visual Studio
Microsoft Connect /23/2018 5:27 PM
CDT Build/Run/Debug in Container
SQL Server Data Tools for Visual Studio Part I: Core SQL Server Tools
Microsoft Connect /17/ :55 PM
Customizing your device experience with assigned access
Microsoft Ignite NZ October 2016 SKYCITY, Auckland.
Office Power Hour New developer APIs and features for Apps for Office
Build /21/2018 © 2015 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION.
11/19/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Microsoft Connect /23/ :48 AM
Microsoft Build /24/2018 4:02 PM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Microsoft Connect /26/2018 6:09 PM
Hosted Web Apps with Windows App Studio
Office 365 Development.
Tech Ed North America /27/ :47 PM Required Slide
Microsoft Build /28/2018 2:38 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Tooling and Diagnostics
SPC Developer 1/1/2019 Deep Dive on the Capabilities of SharePoint Online's New Public Website Josh Stickler Program Manager WCM Kevin Gjerstad Principal.
Jeff Hollan / Kevin Lam Program Manager / Principal Program Manager- Microsoft Bringing Logic Apps into DevOps with Visual Studio and monitoring.
Microsoft Connect /2/2019 9:06 AM
What's New in Visual Studio 2005
1/14/2019 3:57 AM © 2004 Microsoft Corporation. All rights reserved.
Microsoft Connect /17/2019 9:04 AM
Microsoft Connect /16/ :45 PM
Visual Studio 2010 SharePoint Development Tools Overview
Microsoft Ignite /17/2019 6:00 PM
C++ Productivity Improvements
Microsoft Connect /19/2019 2:33 PM
Microsoft Connect /23/ :38 AM
Office 365 Development.
Microsoft Visual C# IDE Tips and Tricks
Delivering great hardware solutions for Windows
4/12/2019 5:27 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
The complete developer's guide to the SkyDrive API
Martin MSBuild Martin
5/25/2019 2:40 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
SBS 2008 – One year on David Overton
MS Confidential : SharePoint 2010 Developer Workshop (Beta1)
11/11/2019 1:15 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Microsoft Connect /14/ :11 AM
VNet and Cross-Premises Connectivity
Presentation transcript:

Using Visual Studio and VS Code for Embedded C/C++ Development Marc Goodner, Principal Program Manager, Microsoft

Mission of C++ Product Team at Microsoft (DevDiv) Make the lives of all C++ developers on the planet better by participating with the C++ Standards committee by investing in the Microsoft Visual C++ (MSVC) Compiler by improving the Visual Studio IDE by continuing to enhance the C++ extension for Visual Studio Code

Agenda VS Code and mbed Visual Studio and mbed Visual Studio and Yocto SDKs Visual Studio C++ Extensibility

C/C++ extension for VS Code Enables C/C++ IntelliSense, code browsing, code formatting, and debugging. Over 6 million downloads since first shipped in Mach 2016.

Demo: VS Code with mbed

Linux C++ with Visual Studio

Linux support for C++ in Visual Studio Use Visual Studio with any Linux distro or Windows Subsystem for Linux (WSL) Remote system needs SSH, GDB, and GCC for compile Connect using user/password or private key IntelliSense supports GCC with standard Linux libraries Debug from your projects or attach to remote process Use either gdb or gdbserver on the remote Python pretty printer type visualizers supported in gdb mode Support for CMake 3.8+ (or MSBuild if you prefer) https://aka.ms/vslinux

Open Folder Ideal for non-MSBuild projects Easy to get started Microsoft Build 2017 11/24/2018 4:04 PM Open Folder Ideal for non-MSBuild projects e.g. CMake, make or other C++ build systems Easy to get started devenv.exe <directory> or “File > Open > Folder…” (Ctrl+Alt+Shift+O) Enables familiar VS experiences for any projects All C++ IntelliSense & code navigation operations External build system integration C++ debugging © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Internet of Things Edit, build and debug in Visual Studio for IoT devices running Linux (E.g. Raspberry Pi, Beaglebone, Yocto SDKs with some configuration) ARM GCC support Local cross compile uses ARM GCC compiler mbed folder-based project support Launch templates provided to illustrate how to debug devices http://aka.ms/vsgccarm 4:03:15 - 4:04 0:48:15 - 0:49:00

Demo: Visual Studio and mbed

Visual Studio and Yocto SDKs For Linux Visual Studio projects Create a solution with two Linux projects, one application and one makefile In the Application override x64 Project defaults to use Yocto cross compilers and sysroot on your build machine Post build event to copy output to the ARM configuration build output directory The ARM configuration connects to your device for debug but not build The makefile project should be configured to the same ARM device but is only used to copy the binary to the device For CMake use the proper toolchain file for cross compile Use tasks to copy output to ARM device Configure launch targets to point to ARM device instead of build machine

Demo: Visual Studio and Yocto https://github.com/robotdad/LinuxCrossCompile

Visual Studio C++ Extensibility Application Types Provide ability to use the VC project and build system Props files that define static values Targets files embed MSBUILD Targets and Tasks Toolsets within Application Types Allows the reuse of an application type platform with minimal rework Amount of extensibility depends on what Application Type provided Property Pages XML files that define the Project Property Pages

Start from an existing application type/toolset Linux application type [VS install dir]\Common7\IDE\VC\VCTargets\Application Type\Linux Linux remote GCC toolset 1.0\Platforms\[arch]\PlatformToolsets\Remote_GCC_1_0 Create your own toolset in place, restart Visual Studio to use

Visual Studio and VS Code extensions 11/24/2018 4:04 PM Visual Studio and VS Code extensions Add-ons that can customize the Visual Studio experience Add your own items to menus and toolbars Extend existing tool windows or create your own Customize IntelliSense for a language or add support for a new one Create new project templates The Visual Studio Marketplace provides a place to discover and publish extension to Over 700,000 extensions per month are downloaded from the marketplace © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Demo: Toolset in a VS Extension https://github.com/robotdad/CrossCompileExtension

Providing toolchains for CMake Package your compiler and other tools in an extension A CMake folder can be generated from a project template Include a CMake toolchain file for your compiler and a CMakeSettigns.json file that uses it Launch.vs.json to tailor launch settings for debug Tasks.vs.json showing how to run other tools that may be part of your solution

Demo: CMake Toolchain https://github.com/robotdad/CrossCompileExtension

Visual Studio extension references 11/24/2018 4:04 PM Visual Studio extension references http://aka.ms/extendvs GitHub samples repo: https://github.com/Microsoft/ VSSDK-Extensibility-Samples © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

VS Code extension resources 11/24/2018 4:04 PM VS Code extension resources Docs: https://code.visualstudio.com/docs/extensions/overview Extension generator: https://code.visualstudio.com/docs/extensions/yocode Extension samples: https://code.visualstudio.com/docs/extensions/samples © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Visual Studio C++ Linux Tips and Tricks Verbose build output is very helpful for troubleshooting Include files Mount /usr/include as a samba share Copy locally, e.g. scp -r root@192.168.2.15:/usr/include . Unexpected debugging results we will ask for a log, from a Visual Studio command window in the IDE Debug.MIDebugLog /On:path-to-a-log-file Then try to debug your project. After the failure enter: Debug.MIDebugLog /Off When using WSL check port 22 is available

Linux C++ Resources Feedback: “Report a problem” directly in the IDE User Voice: https://visualstudio.uservoice.com/ Visual Studio C++ team: Blog: https://blogs.msdn.microsoft.com/vcblog Twitter: @visualc Linux documentation: http://aka.ms/vslinux Arm cross compile: http://aka.ms/vsarmgcc Linux issues, discussion: https://github.com/microsoft/vslinux Contact: vcpplinux-support@microsoft.com Marc Goodner mgoodner@microsoft.com @robotdad