Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
899d27a
Merge branch 'main' of https://github.com/MicrosoftDocs/cpp-docs
gcampbell-msft Jul 11, 2022
2f4b5f3
add initial doc stubs
gcampbell-msft Jul 11, 2022
cb0713a
Initial docs push, contains stubs for some files and a stub for a lan…
gcampbell-msft Jul 12, 2022
de0c1f4
update some links
gcampbell-msft Jul 12, 2022
cd9e213
add more cards and links to the Hub page
gcampbell-msft Jul 12, 2022
e894b92
fix error
gcampbell-msft Jul 14, 2022
d312a7d
remove monikor's so it's easy to test, fix rtos-view.md path
gcampbell-msft Jul 14, 2022
a9aadfc
fix link
gcampbell-msft Jul 14, 2022
d589bad
add more to the sidebar
gcampbell-msft Jul 14, 2022
ec5ae2d
update peripheral view by consolidating to the table, change things t…
gcampbell-msft Jul 14, 2022
ed1e34e
add tabs
gcampbell-msft Jul 15, 2022
6c43f39
forgot to end tabbed section
gcampbell-msft Jul 15, 2022
64b62aa
fix items after adding tabs
gcampbell-msft Jul 15, 2022
a61a589
update h1
gcampbell-msft Jul 15, 2022
05e2849
slightly fix some wording
gcampbell-msft Jul 15, 2022
033bf71
add link from C++ and C workloads, features, and libraries to embedde…
gcampbell-msft Jul 15, 2022
0ea1812
move into own directory so that the url is better
gcampbell-msft Jul 15, 2022
159b4a4
fix some warnings
gcampbell-msft Jul 15, 2022
5cc7fca
remove next steps that pointed to linux items
gcampbell-msft Jul 15, 2022
476457b
prefer tabbed view vs table
gcampbell-msft Jul 15, 2022
69c901f
attempt to add moniker
gcampbell-msft Jul 18, 2022
e190444
attempt highest moniker in range
gcampbell-msft Jul 18, 2022
3a16181
assign to a specific version
gcampbell-msft Jul 18, 2022
207b164
push again to get new build
gcampbell-msft Jul 18, 2022
b6cdb67
add '=' sign to try and test it
gcampbell-msft Jul 18, 2022
cf4d8bd
add metadata for msvc-170
gcampbell-msft Jul 18, 2022
d6445bb
add moniker range for index.yml
gcampbell-msft Jul 18, 2022
0fe105c
remove inline moniker since we only need it on the files themselves
gcampbell-msft Jul 18, 2022
4fbb1d2
Follow up 4221 Acrolinx score for TN035
colin-home Jul 18, 2022
8958eba
Fix heading style
colin-home Jul 18, 2022
9fbee2e
Merge pull request #4423 from corob-msft/docs/corob/followup-4221
19BMG00 Jul 19, 2022
1a72857
Update C++-specific template info
colin-home Jul 19, 2022
6eef4ff
Fix links to raw and rendered markdown
colin-home Jul 21, 2022
048deb3
Merge pull request #4425 from corob-msft/docs/corob/template-style-up…
colin-home Jul 21, 2022
1d8fc06
Edit pass for house style
colin-home Jul 21, 2022
5f67eb0
add 'while debugging' for peripheral-view
gcampbell-msft Jul 21, 2022
0a0e7ef
Fix table issue, stray punctuation
colin-home Jul 21, 2022
56c97d5
Merge pull request #4418 from gcampbell-msft/dev/gcampbell/AddingEmbe…
colin-home Jul 21, 2022
d6b6890
Merge pull request #4428 from MicrosoftDocs/main
v-alje Jul 22, 2022
6da5080
Merging changes synced from https://github.com/MicrosoftDocs/cpp-docs…
opbld17 Jul 22, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 59 additions & 0 deletions docs/embedded/download-and-install-the-embedded-tooling.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: "Install the Embedded tooling in Visual Studio and Visual Studio Code"
description: "How to download and install the Embedded tooling in Visual Studio and Visual Studio Code."
ms.date: "07/12/2022"
ms.custom: intro-installation
author: gcampbell-msft
ms.author: gcampbell
monikerRange: '>=msvc-170'
---

# Download and install the Embedded tooling

# [Visual Studio](#tab/visual-studio)

In Visual Studio 2022 and later versions, you can use the Visual Studio IDE on Windows to edit and debug embedded projects. Use tools such as the [Peripheral Viewer](./peripheral-view.md), [RTOS Viewer](./rtos-view.md), and the [Serial Monitor](./serial-monitor.md) to help interact with and debug your embedded projects.

To use the embedded development tools in Visual Studio, you must install the required **Linux and embedded development with C++** workload.

## To install the Linux and embedded development with C++ workload

1. Enter "Visual Studio Installer" in the Windows search box:

![Screenshot showing the Windows search box.](../linux/media/visual-studio-installer-search.png)

1. Open the Visual Studio Installer. In Visual Studio Installer, choose **Modify** next to your installation of Visual Studio, and then select the **Workloads** tab. Scroll down to **Other toolsets** and select the **Linux and embedded development with C++** workload.

![Screenshot showing the Visual C++ for Linux Development workload item in Visual Studio Installer.](media/linux-and-embedded-workload.png)

1. Choose **Modify** to continue with the installation.

When installation completes, you're ready to use Visual Studio for embedded development.

# [Visual Studio Code](#tab/visual-studio-code)

## Install the Embedded extensions in Visual Studio Code

Microsoft provides an extension to Visual Studio Code that lets you use embedded tools such as a [Peripheral Viewer](./peripheral-view.md), [RTOS Viewer](./rtos-view.md), and a [Serial Monitor](./serial-monitor.md). Now you can use Microsoft tools to help debug your Linux-based embedded applications.

## To install the embedded extensions for Visual Studio Code

1. Enter "Visual Studio Code" in the Windows search box:

![Search-Visual-Studio-Code](media/windows-search-vscode.png)

1. Open Visual Studio Code. In Visual Studio Code, open the **Extensions Pane**.

![Visual Studio Code Extensions Pane](media/extensions-pane.png)

1. Search for and install the [Embedded Tools](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-embedded-tools) extension.

![Embedded Tools extension](media/embedded-tools-extension.png)

1. Search for and install the [Serial Monitor](https://marketplace.visualstudio.com/items?itemName=ms-vscode.vscode-serial-monitor) extension.

![Serial Monitor extension](media/serial-monitor-extension.png)

When installation completes, you're ready to use Visual Studio Code for embedded development.

---
59 changes: 59 additions & 0 deletions docs/embedded/index.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
### YamlMime:Landing
title: Embedded development with C++ | Create and debug embedded applications # < 60 chars
summary: Use Embedded tooling in Visual Studio 2022 and later to create and debug applications for Embedded. # < 160 chars

metadata:
title: Embedded development with C++
description: Learn how to use Embedded tooling in Visual Studio and Visual Studio Code to create and debug applications for Linux.
ms.topic: landing-page
author: gcampbell-msft
ms.author: gcampbell
ms.date: 07/12/2022
ms.custom: intro-landing-hub
monikerRange: '>=msvc-170'

# linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | tutorial | video | whats-new

landingContent:
# Cards and links should be based on top customer tasks or top subjects
# Start card title with a verb

# Card
- title: Build and debug embedded projects in Visual Studio and Visual Studio Code
linkLists:
- linkListType: get-started
links:
- text: Download the Embedded workload in Visual Studio and Visual Studio Code
url: download-and-install-the-embedded-tooling.md
- linkListType: how-to-guide
links:
- text: Getting started guides
url: https://github.com/azure-rtos/getting-started
- linkListType: tutorial
links:
- text: Embedded Software Development in Visual Studio
url: https://devblogs.microsoft.com/cppblog/visual-studio-embedded-development/
- text: Embedded Software Development in Visual Studio Code
url: https://devblogs.microsoft.com/cppblog/vscode-embedded-development/
- linkListType: whats-new
links:
- text: Zephyr support in Visual Studio and Visual Studio Code
url: https://devblogs.microsoft.com/cppblog/serial-and-zephyr-support/

- title: Embedded Tooling in Visual Studio and Visual Studio Code
linkLists:
- linkListType: reference
links:
- text: Peripheral Viewer
url: ./peripheral-view.md
- text: RTOS Viewer
url: ./rtos-view.md
- text: Serial Monitor
url: ./serial-monitor.md

- title: More embedded tools
linkLists:
- linkListType: whats-new
links:
- text: Bootstrap your development environment
url: https://devblogs.microsoft.com/cppblog/vcpkg-artifacts/
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/extensions-pane.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/peripheral-viewer-vscode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/peripheral-viewer.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/rtos-threads-vscode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/rtos-threads.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/serial-monitor-vscode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/serial-monitor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/embedded/media/windows-search-vscode.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
32 changes: 32 additions & 0 deletions docs/embedded/peripheral-view.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
title: "Peripheral View"
ms.date: "07/12/2022"
description: "Peripheral View that allows users to view and manipulate peripherals."
author: gcampbell-msft
ms.author: gcampbell
monikerRange: '>=msvc-170'
---
# Peripheral View

## Overview

The Peripheral View allows embedded developers to view and manipulate registers and peripherals defined in SVD (System View Description) files while debugging.

# [Visual Studio](#tab/visual-studio)

![Peripheral View in VS](media/peripheral-viewer.png)

# [Visual Studio Code](#tab/visual-studio-code)

![Peripheral View in Visual Studio Code](media/peripheral-viewer-vscode.png)

---

## Capabilities

| Capability | Description | Instructions | Keyboard shortcuts |
|--|--|--|--|
| Navigate peripherals | Navigate the peripheral tree view by collapsing and expanding components in the tree view. | Scroll to view all of the peripherals. Select the caret on each item to expand or collapse the view. | Use the **Up** or **Down** arrow keys to scroll. Use the **Left** and **Right** arrow keys to expand or collapse the view. |
| Edit peripheral values | Modify writeable peripheral values. | Select the peripheral value to edit. Use the **Enter** key to submit that value. | Use the **F2** key to edit, **Esc** to cancel editing, and **Enter** to submit edits. |
| Access memory | View the memory locations of peripherals. | Select the linked memory addresses to view. | Use **Tab** to select the link, and **Enter** to navigate to the link. |
| Pin peripherals | Pin important peripherals to the top of the view. | Select the pin icon to pin or unpin peripherals. | Use **Tab** to select the pin icon, and **Enter** to pin or unpin it. |
53 changes: 53 additions & 0 deletions docs/embedded/rtos-view.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
title: "RTOS Object Views"
ms.date: "07/12/2022"
description: "RTOS View that allows users to view RTOS data of their application."
author: gcampbell-msft
ms.author: gcampbell
monikerRange: '>=msvc-170'
---
# RTOS (Real time operating system) Object View

## Overview

The RTOS Object View allows users to view various components of an RTOS while debugging their application.

# [Visual Studio](#tab/visual-studio)

![RTOS View in VS](media/rtos-threads.png)

# [Visual Studio Code](#tab/visual-studio-code)

![RTOS View in VSCode](media/rtos-threads-vscode.png)

---

## Supported RTOSes and their supported object types

- ThreadX
- All of the types listed in **Available object types**
- FreeRTOS
- Threads
- Queues
- Zephyr
- All of the types listed in **Available object types**

### Available object types

- Block Pools
- Byte Pools
- Event Flag Groups
- Mutexes
- Queues
- Semaphores
- Threads
- Timers

## Usage

Use the RTOS Object View to:

- Access memory locations of various objects.
- Access thread variables or various objects in the Watch view.

Use the arrow keys to select objects within the view. Use the **Enter** key to navigate to the linked content.
40 changes: 40 additions & 0 deletions docs/embedded/serial-monitor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
title: "Serial Monitor"
ms.date: "07/12/2022"
description: "Serial Monitor allows users to configure, monitor, and communicate with serial ports."
author: gcampbell-msft
ms.author: gcampbell
monikerRange: '>=msvc-170'
---
# Serial Monitor

## Overview

The Serial Monitor allows users to configure, monitor, and communicate with serial ports.

# [Visual Studio](#tab/visual-studio)

![Serial Monitor in VS](media/serial-monitor.png)

# [Visual Studio Code](#tab/visual-studio-code)

![Serial Monitor in VSCode](media/serial-monitor-vscode.png)

---

## Capabilities

- **Monitor a serial port**: Choose the **Start Monitoring** or **Stop Monitoring** button to control whether to monitor data coming from the port.
- **Send data to a serial port**: Enter text into the text field at the bottom of the view. Use the **Enter** key or choose the **Send Message** button to send the data.
- **Clear the Serial Monitor output**: Choose the **Clear Output** button to clear the incoming data text field.
- **Configure Serial Monitor and port connection settings**: See the following table to learn about the settings that the Serial Monitor provides.

## Configurable settings

| Settings | Description | Usage | Available options |
|--|--|--|--|
| **Port** | Ports that are actively connected to a device | Use the **Port** dropdown | Serial port compatible devices connected to the machine |
| **Baud Rate** | Frequency at which the monitor attempts to communicate with the connected device | Use the **Baud Rate** dropdown | 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 74880, 115200, 230000, 250000 |
| **Line ending** | The line ending to use in messages sent to the connected device | Use the **Line Ending** dropdown | None, LF, CR, CRLF |
| **Timestamp** | Adds timestamps to the output of data received from the connected port | Use the **timestamp** toggle button | On/Off |
| **Auto-scroll** | Whether to auto-scroll new content that comes from the connected port | Use the **auto-scroll** toggle button | On/Off |
25 changes: 25 additions & 0 deletions docs/embedded/toc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
items:
- name: Embedded development with Visual Studio and Visual Studio code
href: ./index.yml
- name: Download and install the Embedded Tools
href: download-and-install-the-embedded-tooling.md
- name: Getting started guides
href: https://github.com/azure-rtos/getting-started
- name: Build and debug embedded projects
items:
- name: Embedded Software Development in Visual Studio
href: https://devblogs.microsoft.com/cppblog/visual-studio-embedded-development/
- name: Embedded Software Development in Visual Studio Code
href: https://devblogs.microsoft.com/cppblog/vscode-embedded-development/
- name: Zephyr support
href: https://devblogs.microsoft.com/cppblog/serial-and-zephyr-support/
- name: Embedded Tooling
items:
- name: Peripheral Viewer
href: ./peripheral-view.md
- name: RTOS Viewer
href: ./rtos-view.md
- name: Serial Monitor
href: ./serial-monitor.md
- name: vcpkg artifacts
href: https://devblogs.microsoft.com/cppblog/vcpkg-artifacts/
2 changes: 2 additions & 0 deletions docs/index.yml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,8 @@ additionalContent:
url: ./windows/desktop-applications-visual-cpp.md
- text: Linux development
url: linux/index.yml
- text: Embedded development
url: embedded/index.yml
- text: Mobile development
url: cross-platform/index.yml
- text: Game development
Expand Down