Skip to contentSkip to navigationSkip to topbar
On this page

Install Microvisor App Development Tools on Unsupported Platforms


(warning)

Microvisor Public Beta

Microvisor is in a pre-release phase and the information contained in this document is subject to change. Some features referenced below may not be fully available until Microvisor's General Availability (GA) release.

(error)

Danger

These instructions are not supported. Use at your own risk!

Microvisor development is formally supported only under Ubuntu Linux 20.04. Supported development on other platforms involves running either a virtual machine into which you have installed Ubuntu 20.04, using Docker(link takes you to an external page), or (Windows only) using Windows Subsystem for Linux.

However, it is possible to build apps for Microvisor natively on other platforms, and this page collates the extra information you need to do so.

  • Windows
  • macOS
  • Raspberry Pi OS

Windows

windows page anchor

1. Install the pre-requisites

1-install-the-pre-requisites page anchor

Download and run the following tools' installers. In each case, make sure you accept the offered option to add the tools to the Path:

  1. Git for Windows(link takes you to an external page)
  2. The ARM toolchain(link takes you to an external page)
  3. CMake for Windows(link takes you to an external page)
  4. Visual Studio Build Tools 2022(link takes you to an external page)When the Visual Studio Installer runs, under the Workload tab select Desktop development with C++. In the Installation Details list at the right of the Window, make sure only MSVC v143 VS 2022 C++ and C++ CMake Tools for Windows are selected from among the options.
  5. Twilio CLI(link takes you to an external page)

2. Configure the Twilio CLI

2-configure-the-twilio-cli page anchor
  1. From the Start menu, select Visual Studio 2022 > Developer Command Prompt for VS 2022.
  2. Run twilio login to configure the tool and create a profile.

Still in the Developer Command Prompt, run these commands:

1
cd \Users\<YOUR_USER_NAME>
2
md GitHub
3
cd GitHub
4
git clone https://github.com/twilio/twilio-microvisor-freertos
5
cd twilio-microvisor-freertos
6
git submodule update --init --recursive
7
cmake -S . -B build -G "NMake Makefiles"
8
cmake --build build
9
twilio microvisor:apps:bundle build\Demo\gpio_toggle_demo.bin build\Demo\gpio_toggle_demo.zip
10
twilio microvisor:apps:create build\Demo\gpio_toggle_demo.zip

The easiest way to install the development tools under macOS is to use the Homebrew(link takes you to an external page) package manager, and this is the approach taken here. If you do not have Homebrew installed on your Mac, please get it now(link takes you to an external page).

1. Install Rosetta 2 (Apple Silicon Macs only)

1-install-rosetta-2-apple-silicon-macs-only page anchor

Not all of the available tools yet support Apple Silicon, so if you have a Mac based on the M1 or above, please make sure you also install Rosetta 2 to allow you to continue to run tools compiled for x86-64, such as the ARM cross-platform compiler:

softwareupdate --install-rosetta

2. Install the pre-requisites

2-install-the-pre-requisites page anchor
brew install cmake curl git jq node bash

3. Install the correct ARM GCC cross-compiler

3-install-the-correct-arm-gcc-cross-compiler page anchor

Homebrew can install the ARM GCC cross-compiler using the cask gcc-arm-embedded. However, the latest version, 12.2.rel1, doesn't compile Microvisor apps correctly. Instead, you must install an older release, 11.2-2022.02. This involves downloading an older version of the public Homebrew gcc-arm-embedded installation script:

1
curl https://raw.githubusercontent.com/Homebrew/homebrew-cask/17d156bba668109dcb6bba337a75fcf41be2d71b/Casks/gcc-arm-embedded.rb \
2
-o gcc-arm-embedded.rb
3
brew install --cask gcc-arm-embedded.rb
(warning)

Warning

Important If you subsequently run:

brew upgrade

you will update the ARM GCC cross-compiler to a more recent version that will not compile the Microvisor SDK. To avoid this issue, replace the last command with this one:

brew upgrade $(brew list | grep --invert-match gcc-arm-embedded)

This will upgrade all your installed Homenbrew formulae and casks but not gcc-arm-embedded.

4. Install the Twilio CLI

4-install-the-twilio-cli page anchor
brew tap twilio/brew && brew install twilio

Installing the ARM cross-compiler as outlined above also installed a suitable version of the debugger GDB.

To perform remote debugging operations on a Mac, follow the instructions in the remote debugging documentation but use arm-none-eabi-gdb in place of gdb-multiarch. For example, to initiate a debugging session for our Remote Debugging Demo, call:

arm-none-eabi-gdb -l 10 ./build/demo/mv-remote-debug-demo.elf

If you'd like to use Visual Studio Code to host remote debugging sessions, you will first need to edit the ./vscode/launch.json file. Look for the key gdbpath and set its value to the path to your arm-none-eabi-gdb installation. The command which arm-none-eabi-gdb will help you here.


Installing Microvisor development tools is straightforward, but requires some extra work to get an up-to-date version of Node.js and to install the Twilio CLI.

1. Install the pre-requisites

1-install-the-pre-requisites-1 page anchor

This will install an older version of the ARM GCC cross-compiler, but it is sufficient to compile Microvisor apps.

1
sudo apt install gcc-arm-none-eabi binutils-arm-none-eabi \
2
build-essential libsecret-1-dev cmake curl git jq \
3
gdb-multiarch

You will also need to install Node.js version 14.0 or higher in order to run the Twilio CLI:

1
curl -sL https://deb.nodesource.com/setup_19.x | sudo -E bash -
2
sudo apt install -y nodejs

2. Install the Twilio CLI

2-install-the-twilio-cli page anchor

Twilio does not recommend installing the Twilio CLI using npm. However, the recommend method, using apt, does not yet support either 32- or 64-bit Raspberry Pi OS, so you will have to use npm. This makes use of the version of Node.js you just installed.

npm install -g twilio-cli

Remote debugging on the Raspberry Pi uses the same gdb-multiarch tool as used under Ubuntu.

Need some help?

Terms of service

Copyright © 2024 Twilio Inc.