From b9b5f7a900a77b447811e5452c0bdcf4c4c7c39d Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Wed, 14 Jul 2021 14:37:47 +0200 Subject: [PATCH 1/2] Added shields to indicate the supported distros of the tutorials. Signed-off-by: Ralph Lange --- _docs/tutorials/core/first_application_linux/index.md | 2 +- _docs/tutorials/core/programming_rcl_rclc/index.md | 2 ++ _docs/tutorials/core/teensy_with_arduino/index.md | 7 ++++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/_docs/tutorials/core/first_application_linux/index.md b/_docs/tutorials/core/first_application_linux/index.md index b1f57641..d53db0c1 100644 --- a/_docs/tutorials/core/first_application_linux/index.md +++ b/_docs/tutorials/core/first_application_linux/index.md @@ -3,7 +3,7 @@ title: First micro-ROS Application on Linux permalink: /docs/tutorials/core/first_application_linux/ --- -## Target platform + In this tutorial, you’ll learn the use of micro-ROS with Linux by testing a Ping Pong application. In the follow-up tutorial [*First micro-ROS application on an RTOS*](/docs/tutorials/core/first_application_rtos/), diff --git a/_docs/tutorials/core/programming_rcl_rclc/index.md b/_docs/tutorials/core/programming_rcl_rclc/index.md index ba53e732..8d5ff504 100644 --- a/_docs/tutorials/core/programming_rcl_rclc/index.md +++ b/_docs/tutorials/core/programming_rcl_rclc/index.md @@ -3,6 +3,8 @@ title: Programming with rcl and rclc permalink: /docs/tutorials/core/programming_rcl_rclc/ --- + + In this tutorial, you'll learn the basics of the micro-ROS C API. The major concepts (publishers, subscriptions, services,timers, ...) are identical with ROS 2. They even rely on the *same* implementation, as the micro-ROS C API is based on the ROS 2 client support library (rcl), enriched with a set of convenience functions by the package [rclc](https://github.com/ros2/rclc/). That is, rclc does not add a new layer of types on top of rcl (like rclcpp and rclpy do) but only provides functions that ease the programming with the rcl types. New types are introduced only for concepts that are missing in rcl, such as the concept of an executor. * [Creating a node](#node) diff --git a/_docs/tutorials/core/teensy_with_arduino/index.md b/_docs/tutorials/core/teensy_with_arduino/index.md index 79d86f49..901ecf2c 100644 --- a/_docs/tutorials/core/teensy_with_arduino/index.md +++ b/_docs/tutorials/core/teensy_with_arduino/index.md @@ -3,13 +3,15 @@ title: Teensy with Arduino permalink: /docs/tutorials/core/teensy_with_arduino/ --- -## Target platform + In this tutorial you will learn how to connect Teensy with micro-ROS and ROS 2. You will also learn how to install micro-ROS agent in Linux systems to communicate with Teensy-based Arduino board using Arduino IDE. This tutorial will also cover a simple publisher topic published from teensy and subscribed using ROS 2 interface. +## Target platform + To start with, we will need a host computer with either having a native Ubuntu 20.04 installed ROS 2 Foxy or using a docker version of the freshly build ROS 2 Foxy from this link. Now let us also look at the connection diagram which will help us @@ -18,6 +20,7 @@ understand the full picture better. ![Illustration of Connection diagram of Teensy 3.2 with Host PC running ros2 and micro-ros-agent](Teensy_micro_ros_connection.png) ## Installing ROS 2 and micro-ROS in the host computer: + Note: These first few steps are the same as in the micro-ROS installation page as in this link For this tutorial you have to install ROS 2 Foxy Fitzroy on your Ubuntu 20.04 LTS computer. @@ -193,3 +196,5 @@ If we listen to the topic we will see something like this: ![Illustration of ros2 topic showing data](topic_show.png) The integer msg data increasing in each cycle. + +_Note: This tutorial was first published by the author [Manzur Murshid](https://github.com/shazib2t) on https://manzurmurshid.medium.com/how-to-connect-teensy-3-2-with-micro-ros-and-ros2-foxy-6c8f99c9b66a._ From 87f6ea5995835753d1fd6009f5384b8def5690a8 Mon Sep 17 00:00:00 2001 From: Ralph Lange Date: Thu, 15 Jul 2021 17:57:14 +0200 Subject: [PATCH 2/2] Added badges to all other tutorials. Signed-off-by: Ralph Lange --- .../tutorials/advanced/benchmarking/index.md | 2 ++ .../create_custom_static_library/index.md | 2 ++ .../create_custom_transports/index.md | 2 ++ .../create_dds_entities_by_ref/index.md | 2 ++ .../advanced/create_new_type/index.md | 2 ++ .../advanced/handling_type_memory/index.md | 2 ++ .../microxrcedds_rmw_configuration/index.md | 2 ++ _docs/tutorials/advanced/tracing/index.md | 2 ++ .../core/first_application_rtos/freertos.md | 2 +- .../core/first_application_rtos/nuttx.md | 2 +- .../core/first_application_rtos/zephyr.md | 2 +- _docs/tutorials/core/zephyr_emulator/index.md | 2 +- _docs/tutorials/demos/crazyflie_demo/index.md | 2 ++ _docs/tutorials/demos/demobox_demo/index.md | 2 ++ _docs/tutorials/demos/kobuki_demo/index.md | 2 ++ _docs/tutorials/demos/moveit2_demo/index.md | 2 ++ .../demos/openmanipulator_demo/index.md | 2 ++ _docs/tutorials/demos/thumper_demo/index.md | 2 ++ _docs/tutorials/demos/tof_demo/index.md | 2 ++ _docs/tutorials/old/6lowpan/index.md | 14 ++++++------- .../old/add_microros_config/index.md | 6 +----- _docs/tutorials/old/debugging/index.md | 2 +- .../tutorials/old/microros_nuttx_bsp/index.md | 20 +++++++++---------- _docs/tutorials/old/nsh/index.md | 2 +- 24 files changed, 53 insertions(+), 29 deletions(-) diff --git a/_docs/tutorials/advanced/benchmarking/index.md b/_docs/tutorials/advanced/benchmarking/index.md index 817931b9..227f76aa 100644 --- a/_docs/tutorials/advanced/benchmarking/index.md +++ b/_docs/tutorials/advanced/benchmarking/index.md @@ -6,6 +6,8 @@ redirect_from: - /benchmarking/ --- + + - [Benchmarking an applicastion with the TFA Shadow-builder](#benchmarking-an-applicastion-with-the-tfa-shadow-builder) - [Prerequisites](#prerequisites) - [TFA Plugin](#tfa-plugin) diff --git a/_docs/tutorials/advanced/create_custom_static_library/index.md b/_docs/tutorials/advanced/create_custom_static_library/index.md index d3ee3cbe..cfafbed8 100644 --- a/_docs/tutorials/advanced/create_custom_static_library/index.md +++ b/_docs/tutorials/advanced/create_custom_static_library/index.md @@ -3,6 +3,8 @@ title: Creating custom static micro-ROS library permalink: /docs/tutorials/advanced/create_custom_static_library/ --- + + This tutorial aims at providing step-by-step guidance for those users interested in compiling micro-ROS as a standalone library in order to integrate it in custom development tools. This tutorial starts in a previously created micro-ROS environment. Check the first steps of [**First micro-ROS application on an RTOS**](../../core/first_application_rtos/) for instructions on how to create a micro-ROS environment for embedded platforms. diff --git a/_docs/tutorials/advanced/create_custom_transports/index.md b/_docs/tutorials/advanced/create_custom_transports/index.md index b34ffc66..eec4cd93 100644 --- a/_docs/tutorials/advanced/create_custom_transports/index.md +++ b/_docs/tutorials/advanced/create_custom_transports/index.md @@ -3,6 +3,8 @@ title: Creating custom micro-ROS transports permalink: /docs/tutorials/advanced/create_custom_transports/ --- + + This tutorial aims at providing step-by-step guidance for those users interested in creating micro-ROS custom transports, instead of using the ones provided by default in the micro-ROS tools set. This tutorial starts from a previously created micro-ROS environment. Check the first steps of [**First micro-ROS application on an RTOS**](../../core/first_application_rtos/) for instructions on how to create a micro-ROS environment for embedded platforms. diff --git a/_docs/tutorials/advanced/create_dds_entities_by_ref/index.md b/_docs/tutorials/advanced/create_dds_entities_by_ref/index.md index 8a0ab588..c95adaf9 100644 --- a/_docs/tutorials/advanced/create_dds_entities_by_ref/index.md +++ b/_docs/tutorials/advanced/create_dds_entities_by_ref/index.md @@ -4,6 +4,8 @@ permalink: /docs/tutorials/advanced/create_dds_entities_by_ref/ --- + + This tutorial explains the procedure for creating micro-ROS entities using fully configurable QoS settings. The micro-ROS default middleware (Micro XRCE-DDS Client) allows the user to take two different approaches for creating ROS 2 (DDS) entities in the micro-ROS Agent (Please check the [architecture section](https://micro-ros.github.io/docs/overview/) for detailed information): - By XML (the default option in micro-ROS RMW) - By reference diff --git a/_docs/tutorials/advanced/create_new_type/index.md b/_docs/tutorials/advanced/create_new_type/index.md index 9aa806c2..09e5aaa8 100644 --- a/_docs/tutorials/advanced/create_new_type/index.md +++ b/_docs/tutorials/advanced/create_new_type/index.md @@ -3,6 +3,8 @@ title: How to include a custom ROS message in micro-ROS permalink: /docs/tutorials/advanced/create_new_type/ --- + + This tutorial starts in a previously created micro-ROS environment. Check [**First micro-ROS application on an RTOS**](../../core/first_application_rtos/) for instructions about how to create a micro-ROS environment for embedded platforms. Once your micro-ROS workspace is created, go to `firmware/mcu_ws` and run the package creating command: diff --git a/_docs/tutorials/advanced/handling_type_memory/index.md b/_docs/tutorials/advanced/handling_type_memory/index.md index 6bc61fa6..65f57715 100644 --- a/_docs/tutorials/advanced/handling_type_memory/index.md +++ b/_docs/tutorials/advanced/handling_type_memory/index.md @@ -3,6 +3,8 @@ title: Handling messages memory in micro-ROS permalink: /docs/tutorials/advanced/handling_type_memory/ --- + + This page aims to explain how to handle messages and types memory in micro-ROS. First of all, since the micro-ROS user is in an embedded C99 environment, it is important to be aware of what messages and ROS 2 types are being used in order to handle memory correctly. diff --git a/_docs/tutorials/advanced/microxrcedds_rmw_configuration/index.md b/_docs/tutorials/advanced/microxrcedds_rmw_configuration/index.md index b9b5f220..75d714ae 100644 --- a/_docs/tutorials/advanced/microxrcedds_rmw_configuration/index.md +++ b/_docs/tutorials/advanced/microxrcedds_rmw_configuration/index.md @@ -3,6 +3,8 @@ title: Middleware Configuration permalink: /docs/tutorials/advanced/microxrcedds_rmw_configuration/ --- + + micro-ROS targets microcontroller, devices with low memory resources. With that in mind, micro-ROS try to address the memory management issue prioritizing the use of static memory instead of dynamic memory and optimizing the memory footprint of the applications. This, of course, has a cost that the users must agree to pay, a precompile tunning. diff --git a/_docs/tutorials/advanced/tracing/index.md b/_docs/tutorials/advanced/tracing/index.md index e90c4da6..831dfbb9 100644 --- a/_docs/tutorials/advanced/tracing/index.md +++ b/_docs/tutorials/advanced/tracing/index.md @@ -6,6 +6,8 @@ redirect_from: - /tracing/ --- + + - [Introduction](#introduction) - [Setup](#setup) - [Simple tracing example](#simple-tracing-example) diff --git a/_docs/tutorials/core/first_application_rtos/freertos.md b/_docs/tutorials/core/first_application_rtos/freertos.md index b3ec516c..9536b5ca 100644 --- a/_docs/tutorials/core/first_application_rtos/freertos.md +++ b/_docs/tutorials/core/first_application_rtos/freertos.md @@ -5,7 +5,7 @@ redirect_from: - /docs/tutorials/advanced/freertos/freertos_getting_started/ --- -## Target platform + In this tutorial, you'll learn the use of micro-ROS with FreeRTOS by testing a Ping Pong application. {% include first_application_common/target_hardware.md %} diff --git a/_docs/tutorials/core/first_application_rtos/nuttx.md b/_docs/tutorials/core/first_application_rtos/nuttx.md index 1ee29ed8..8e1adebe 100644 --- a/_docs/tutorials/core/first_application_rtos/nuttx.md +++ b/_docs/tutorials/core/first_application_rtos/nuttx.md @@ -5,7 +5,7 @@ redirect_from: - /docs/tutorials/advanced/nuttx/nuttx_getting_started/ --- -## Target platform + In this tutorial, you'll learn the use of micro-ROS with NuttX by testing a Ping Pong application. {% include first_application_common/target_hardware.md %} diff --git a/_docs/tutorials/core/first_application_rtos/zephyr.md b/_docs/tutorials/core/first_application_rtos/zephyr.md index 892e0853..6da4c122 100644 --- a/_docs/tutorials/core/first_application_rtos/zephyr.md +++ b/_docs/tutorials/core/first_application_rtos/zephyr.md @@ -5,7 +5,7 @@ redirect_from: - /docs/tutorials/advanced/zephyr/zephyr_getting_started/ --- -## Target platform + In this tutorial, you'll learn the use of micro-ROS with Zephyr by testing a Ping Pong application. {% include first_application_common/target_hardware.md %} diff --git a/_docs/tutorials/core/zephyr_emulator/index.md b/_docs/tutorials/core/zephyr_emulator/index.md index b188b276..d97f870d 100644 --- a/_docs/tutorials/core/zephyr_emulator/index.md +++ b/_docs/tutorials/core/zephyr_emulator/index.md @@ -3,7 +3,7 @@ title: Zephyr Emulator permalink: /docs/tutorials/core/zephyr_emulator/ --- -## Target platform + In this tutorial, you'll learn the use of micro-ROS with a **[Zephyr RTOS](https://www.zephyrproject.org/)** emulator (also known as [Native POSIX](https://docs.zephyrproject.org/latest/boards/posix/native_posix/doc/index.html)) diff --git a/_docs/tutorials/demos/crazyflie_demo/index.md b/_docs/tutorials/demos/crazyflie_demo/index.md index 7447d116..0df4e46c 100644 --- a/_docs/tutorials/demos/crazyflie_demo/index.md +++ b/_docs/tutorials/demos/crazyflie_demo/index.md @@ -6,5 +6,7 @@ redirect_from: - /crazyflie_demo/ --- + + {% capture my_include %}{% include crazyflie_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} \ No newline at end of file diff --git a/_docs/tutorials/demos/demobox_demo/index.md b/_docs/tutorials/demos/demobox_demo/index.md index 85f24f0b..82be0c27 100644 --- a/_docs/tutorials/demos/demobox_demo/index.md +++ b/_docs/tutorials/demos/demobox_demo/index.md @@ -6,5 +6,7 @@ redirect_from: - /demobox_demo/ --- + + {% capture my_include %}{% include demobox_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} diff --git a/_docs/tutorials/demos/kobuki_demo/index.md b/_docs/tutorials/demos/kobuki_demo/index.md index 141ed9f0..6d31af01 100644 --- a/_docs/tutorials/demos/kobuki_demo/index.md +++ b/_docs/tutorials/demos/kobuki_demo/index.md @@ -5,6 +5,8 @@ redirect_from: - /kobuki_demo/ --- + + The micro-ROS Kobuki Demo illustrates the use of micro-ROS on the Kobuki platform, which is the mobile base of the well-known Turtlebot 2 research robot. The basic idea and working principle of this demo is as follows: Instead of a laptop running ROS, the Kobuki is equipped with a STM32F4 microcontroller only. This STM32F4 runs the micro-ROS stack and a port of the [thin_kobuki driver](https://github.com/Lab-RoCoCo/thin_drivers), which interacts with the robot's firmware (which runs on a built-in microcontroller). The STM32F4 communicates the sensor data via DDS-XRCE to a remote laptop running a standard ROS 2 stack, the micro-ROS agent and rviz. At the same time, using the other direction of communication, the Kobuki can be remote-controlled. diff --git a/_docs/tutorials/demos/moveit2_demo/index.md b/_docs/tutorials/demos/moveit2_demo/index.md index 8930afce..3966770c 100644 --- a/_docs/tutorials/demos/moveit2_demo/index.md +++ b/_docs/tutorials/demos/moveit2_demo/index.md @@ -4,5 +4,7 @@ layout: docs_noheader permalink: /docs/tutorials/demos/moveit2_demo/ --- + + {% capture my_include %}{% include moveit2_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} \ No newline at end of file diff --git a/_docs/tutorials/demos/openmanipulator_demo/index.md b/_docs/tutorials/demos/openmanipulator_demo/index.md index 3e709dff..4c7b5b04 100644 --- a/_docs/tutorials/demos/openmanipulator_demo/index.md +++ b/_docs/tutorials/demos/openmanipulator_demo/index.md @@ -4,5 +4,7 @@ layout: docs_noheader permalink: /docs/tutorials/demos/openmanipulator_demo/ --- + + {% capture my_include %}{% include openmanipulator_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} \ No newline at end of file diff --git a/_docs/tutorials/demos/thumper_demo/index.md b/_docs/tutorials/demos/thumper_demo/index.md index 5ecac5c2..7a566ed2 100644 --- a/_docs/tutorials/demos/thumper_demo/index.md +++ b/_docs/tutorials/demos/thumper_demo/index.md @@ -6,5 +6,7 @@ redirect_from: - /thumper_demo/ --- + + {% capture my_include %}{% include thumper_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} diff --git a/_docs/tutorials/demos/tof_demo/index.md b/_docs/tutorials/demos/tof_demo/index.md index f9a4d19d..e98e2b44 100644 --- a/_docs/tutorials/demos/tof_demo/index.md +++ b/_docs/tutorials/demos/tof_demo/index.md @@ -4,5 +4,7 @@ layout: docs_noheader permalink: /docs/tutorials/demos/tof_demo/ --- + + {% capture my_include %}{% include sensors_demo/README.md %}{% endcapture %} {{ my_include | markdownify }} \ No newline at end of file diff --git a/_docs/tutorials/old/6lowpan/index.md b/_docs/tutorials/old/6lowpan/index.md index c15af474..b6a84143 100644 --- a/_docs/tutorials/old/6lowpan/index.md +++ b/_docs/tutorials/old/6lowpan/index.md @@ -3,11 +3,11 @@ title: 6LoWPAN Guide permalink: /docs/tutorials/old/6lowpan/ --- -**Disclaimer: this tutorial is currently unmantained** + In this guide, we will show how to use micro-ROS over 6LoWPAN communication. -# What is 6LoWPAN? +## What is 6LoWPAN? 6LoWPAN is an acronym o IPv6 over Low-Power Wireless Personal Area Networks. This communication protocol allows wireless communication over IEEE 802.15.4 based networks using IPv6. Some of the main advantages are: @@ -15,7 +15,7 @@ This communication protocol allows wireless communication over IEEE 802.15.4 bas - Easy to use on UDP and TCP server/clients. - A protocol designed for low power and constrained devices, perfect or micro-ROS remote sensors. -# Needed hardware +## Needed hardware At present, 6LoWPAN is only available for the NuttX RTOS. In order to implement the steps highlighted in this guide, you need the following devices: @@ -29,11 +29,11 @@ In order to implement the steps highlighted in this guide, you need the followin You can find a guide of how to setup the micro-ROS-bridge_RPI at its [repository](https://github.com/micro-ROS/micro-ROS-bridge_RPI/blob/new_bridge_tools/Readme.md). In the micro-ROS-bridge-RPI guide, you can find everything that you need to set-up this device base. -# Configure the board +## Configure the board The configuration of the board is divided into two parts: hardware and software set-up. -## Hardware set-up +### Hardware set-up First we are going to connect the PmodRF2 radio. @@ -52,7 +52,7 @@ To ease the set-up process, you can use the [RPi pinout](https://pinout.xyz/#) a The last step is to connect a mini-USB cable to the OTG2 USB port (this USB port next to the Ethernet port). -## Software set-up +### Software set-up To create and flash the firmware, we are going to use the micro-ROS build system. You can find the instructions at the micro_ros_setup's [README](https://github.com/micro-ROS/micro_ros_setup/blob/dashing/micro_ros_setup/README.md). @@ -60,7 +60,7 @@ For this particular guide, it is necessary to use the branch `dashing` and the c Once you follow all the instructions in the build system and flash the board, everything is ready. -# How to use it? +## How to use it? - Turn on the Olimex board and open the NSH console on a terminal. - Check if all the applications are ready by typing `?` on the console. It should return the following: diff --git a/_docs/tutorials/old/add_microros_config/index.md b/_docs/tutorials/old/add_microros_config/index.md index 50cdecc9..b1feaa5a 100644 --- a/_docs/tutorials/old/add_microros_config/index.md +++ b/_docs/tutorials/old/add_microros_config/index.md @@ -3,11 +3,7 @@ title: Micro-ROS configuration for NuttX permalink: /docs/tutorials/old/add_microros_config/ --- -**Disclaimer: this tutorial is currently unmantained** - -| RTOS | ROS2 Version | -|:-----:|:------------:| -| NuttX | Dashing | + In this tutorial, we will see how to set a basic Micro-ROS configuration for NuttX over serial communication. Since this guide is only focused on setting the configuration, you should check the tutorial linked here before: [First micro-ROS Application on an RTOS](https://micro-ros.github.io/docs/tutorials/core/first_application_rtos/) diff --git a/_docs/tutorials/old/debugging/index.md b/_docs/tutorials/old/debugging/index.md index c5e82392..56b54737 100644 --- a/_docs/tutorials/old/debugging/index.md +++ b/_docs/tutorials/old/debugging/index.md @@ -4,7 +4,7 @@ permalink: /docs/tutorials/old/debugging/ author: Ingo Lütkebohle (merged by Tomasz Kołcon) --- -**Disclaimer: this tutorial is currently unmantained** + This tutorial consists of two parts: First, debugging a NuttX target with GDB and OpenOCD. This part covers tool installation and debugging via command line. Second, debugging with Visual Studio Code, i.e. using a modern IDE. diff --git a/_docs/tutorials/old/microros_nuttx_bsp/index.md b/_docs/tutorials/old/microros_nuttx_bsp/index.md index 68a6bcb3..1c4798c9 100644 --- a/_docs/tutorials/old/microros_nuttx_bsp/index.md +++ b/_docs/tutorials/old/microros_nuttx_bsp/index.md @@ -3,23 +3,21 @@ title: Adding Micro-ROS to a NuttX board configuration permalink: /docs/tutorials/old/microros_nuttx_bsp/ --- -# Introduction + -**If you want to use Micro-ROS on a board that is not yet supported, this tutorial is for you.** +**If you want to use Micro-ROS on a board that is not yet supported, this tutorial is for you!** However, we can only explain what you have to do on a board which is supported by NuttX already, that is, a board that has a board configuration. Writing a completely new board support package and configuration is beyond the scope of what the Micro-ROS project can teach. -However, we can only explain what you have to do on a board which is supported by NuttX already, that is, a board that has a board configuration. Writing a completely new board support package and configuration is beyond the scope of what the Micro-ROS project can teach. - -## Caveats +### Caveats 1. The instructions in this tutorial have been tested on Linux only and since they use Linux shell commands, they will probably not work on Windows. 1. We have only ever used ARM-based boards. Boards using different microcontrollers might needs a different approach. 1. Our approach to adding C++ atomic swap instructions is problematic and needs further work, but it'll get you started. -## Basics +### Basics Compiling Micro-ROS for NuttX requires that the Board Configuration has a few C++ settings enabled. This tutorial explains what has to be added to an existing NuttX board configuration. -## Background: NuttX Board Configurations +### Background: NuttX Board Configurations **Note** This section is just for background, you don't need to create a board configuration yourself! @@ -29,7 +27,7 @@ Therefore, the RTOS needs to be told which peripherals are used on a given board This is what we call the "board *configuration*". It differs from the so-called "Board Support *Package* (BSP)" which would contain the drivers for the micro-controller and its peripherals. -## Directory Structure +### Directory Structure In NuttX up to version 7.x (which Micro-ROS currently uses), the configurations are stored in the `configs/` subdirectory. @@ -39,7 +37,7 @@ Within the board base directory, there are two things: 1) Board configuration directories, specifically `include`, `scripts`, and `src`. 2) Predefined NuttX *build configurations*. These directories only have a `defconfig` file in them, and they are the directories you can pass to `scripts/configure.sh`. -# Adding Micro-ROS support +## Adding Micro-ROS support To add Micro-ROS build support, have two to 2 things: @@ -48,7 +46,7 @@ To add Micro-ROS build support, have two to 2 things: A good example of the necessary modifications can be found in commit [26917196](https://github.com/micro-ROS/NuttX/commit/26917196e744b22433e699af71da1fcb86a96623). - ## Enabling the right C++ settings + ### Enabling the right C++ settings All the compiler configuration is found in `scripts/Make.defs`. @@ -80,7 +78,7 @@ EXTRA_LIBPATHS = -L "${shell dirname "$(LIBSUPXX)"}" EXTRA_LIBS = -lsupc++ ``` -## Add C++ atomics builtins +### Add C++ atomics builtins C++11 and up requires that the toolchain provides atomic swap operations. These are hardware specific and in the toolchain version we currently use, they are not yet available for ARM. Therefore, we add a compatibility file called `libatomic.c` diff --git a/_docs/tutorials/old/nsh/index.md b/_docs/tutorials/old/nsh/index.md index 62f08497..52bb6ec2 100644 --- a/_docs/tutorials/old/nsh/index.md +++ b/_docs/tutorials/old/nsh/index.md @@ -3,7 +3,7 @@ title: NSH console over UART & USB permalink: /docs/tutorials/old/nsh/ --- -**Disclaimer: this tutorial is currently unmantained** + | RTOS | Board compatible | | :---: | :---------------: |