http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/b3522a13/develop/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json
index 23eceed..0af8892 100644
--- a/develop/mkdocs/search_index.json
+++ b/develop/mkdocs/search_index.json
@@ -107,7 +107,7 @@
         }, 
         {
             "location": "/os/introduction/", 
-            "text": "Introduction\n\n\nWelcome to Apache Mynewt\n\n\nApache 
Mynewt is an operating system that makes it easy to develop\napplications for 
microcontroller environments where power and cost\nare driving factors. 
Examples of these devices are connected locks,\nlights, and 
wearables.\n\n\nMicrocontroller environments have a number of characteristics 
that\nmakes the operating system requirements for them unique:\n\n\n\n\n\n\nLow 
memory footprint: memory on these systems range from\n8-16KB (on the low end) 
to 16MB (on the high end).\n\n\n\n\n\n\nReduced code size: code often runs out 
of flash, and total available code size ranges from 64-128KB to 
16-32MB.\n\n\n\n\n\n\nLow processing speed: processor speeds vary from 10-12MHz 
to 160-200MHz.  \n\n\n\n\n\n\nLow power operation: devices operate in mostly 
sleeping mode, in order to conserve\nbattery power and maximize power 
usage.\n\n\n\n\n\n\nAs more and more devices get connected, these 
interconnected devices perform complex 
 tasks. To\nperform these tasks, you need low-level operational functionality 
built into the operating system.\nTypically, connected devices built with these 
microcontrollers perform a myriad of functions:\n\n\n\n\n\n\nNetworking Stacks: 
Bluetooth Low Energy and Thread\n\n\n\n\n\n\nPeripherals: PWM to drive motors, 
ADCs to measure sensor data, and RTCs\nto keep time.\n\n\n\n\n\n\nScheduled 
Processing: actions must happen on a calendared or periodic 
basis.\n\n\n\n\n\n\nApache Mynewt accomplishes all the above easily, by 
providing a complete\noperating system for constrained devices, 
including:\n\n\n\n\n\n\nA fully open-source Bluetooth Low Energy stack with 
both Host and\nController implementations.\n\n\n\n\n\n\nA pre-emptive, 
multi-tasking Real Time operating system kernel\n\n\n\n\n\n\nA Hardware 
Abstraction Layer (HAL) that abstracts the MCU's\nperipheral functions, 
allowing developers to easily write 
cross-platform\ncode.\n\n\n\n\n\n\n\n\nNewt\n\n\nIn order to provide all this 
func
 tionality, and operate in an\nextremely low resource environment, Mynewt 
provides a very fine-grained source\npackage management and build system tool, 
called \nnewt\n.\n\n\nYou can install and build \nnewt\n for \nLinux\n or 
\nMac\n.\n\n\n\n\nNewt Manager\n\n\nIn order to enable a user to communicate 
with remote instances of Mynewt OS and query, configure, and operate them, 
Mynewt provides an application tool called Newt Manager or 
\nnewtmgr\n.\n\n\nYou can install and build \nnewtmgr\n from source code on 
\nLinux or Mac\n.\n\n\n\n\nBuild your first Mynewt App with Newt\n\n\nWith the 
introductions out of the way, now is a good time to \nget set up and\nstarted\n 
with your first Mynewt application.\n\n\nHappy Hacking!", 
+            "text": "Introduction\n\n\nWelcome to Apache Mynewt\n\n\nApache 
Mynewt is an operating system that makes it easy to develop\napplications for 
microcontroller environments where power and cost\nare driving factors. 
Examples of these devices are connected locks,\nlights, and 
wearables.\n\n\nMicrocontroller environments have a number of characteristics 
that\nmakes the operating system requirements for them unique:\n\n\n\n\n\n\nLow 
memory footprint: memory on these systems range from\n8-16KB (on the low end) 
to 16MB (on the high end).\n\n\n\n\n\n\nReduced code size: code often runs out 
of flash, and total available code size ranges from 64-128KB to 
16-32MB.\n\n\n\n\n\n\nLow processing speed: processor speeds vary from 10-12MHz 
to 160-200MHz.  \n\n\n\n\n\n\nLow power operation: devices operate in mostly 
sleeping mode, in order to conserve\nbattery power and maximize power 
usage.\n\n\n\n\n\n\nAs more and more devices get connected, these 
interconnected devices perform complex 
 tasks. To\nperform these tasks, you need low-level operational functionality 
built into the operating system.\nTypically, connected devices built with these 
microcontrollers perform a myriad of functions:\n\n\n\n\n\n\nNetworking Stacks: 
Bluetooth Low Energy and Thread\n\n\n\n\n\n\nPeripherals: PWM to drive motors, 
ADCs to measure sensor data, and RTCs\nto keep time.\n\n\n\n\n\n\nScheduled 
Processing: actions must happen on a calendared or periodic 
basis.\n\n\n\n\n\n\nApache Mynewt accomplishes all the above easily, by 
providing a complete\noperating system for constrained devices, 
including:\n\n\n\n\n\n\nA fully open-source Bluetooth Low Energy stack with 
both Host and\nController implementations.\n\n\n\n\n\n\nA pre-emptive, 
multi-tasking Real Time operating system kernel\n\n\n\n\n\n\nA Hardware 
Abstraction Layer (HAL) that abstracts the MCU's\nperipheral functions, 
allowing developers to easily write 
cross-platform\ncode.\n\n\n\n\n\n\n\n\nNewt\n\n\nIn order to provide all this 
func
 tionality, and operate in an\nextremely low resource environment, Mynewt 
provides a very fine-grained source\npackage management and build system tool, 
called \nnewt\n.\n\n\nYou can install \nnewt\n for \nMac OS\n or 
\nLinux\n.\n\n\n\n\nNewt Manager\n\n\nIn order to enable a user to communicate 
with remote instances of Mynewt OS and query, configure, and operate them, 
Mynewt provides an application tool called Newt Manager or 
\nnewtmgr\n.\n\n\nYou can install \nnewtmgr\n for \nMac OS\n or 
\nLinux\n.\n\n\n\n\nBuild your first Mynewt App with Newt\n\n\nWith the 
introductions out of the way, now is a good time to \nget set up and\nstarted\n 
with your first Mynewt application.\n\n\nHappy Hacking!", 
             "title": "toc"
         }, 
         {
@@ -122,12 +122,12 @@
         }, 
         {
             "location": "/os/introduction/#newt", 
-            "text": "In order to provide all this functionality, and operate 
in an\nextremely low resource environment, Mynewt provides a very fine-grained 
source\npackage management and build system tool, called  newt .  You can 
install and build  newt  for  Linux  or  Mac .", 
+            "text": "In order to provide all this functionality, and operate 
in an\nextremely low resource environment, Mynewt provides a very fine-grained 
source\npackage management and build system tool, called  newt .  You can 
install  newt  for  Mac OS  or  Linux .", 
             "title": "Newt"
         }, 
         {
             "location": "/os/introduction/#newt-manager", 
-            "text": "In order to enable a user to communicate with remote 
instances of Mynewt OS and query, configure, and operate them, Mynewt provides 
an application tool called Newt Manager or  newtmgr .  You can install and 
build  newtmgr  from source code on  Linux or Mac .", 
+            "text": "In order to enable a user to communicate with remote 
instances of Mynewt OS and query, configure, and operate them, Mynewt provides 
an application tool called Newt Manager or  newtmgr .  You can install  newtmgr 
 for  Mac OS  or  Linux .", 
             "title": "Newt Manager"
         }, 
         {
@@ -137,60 +137,15 @@
         }, 
         {
             "location": "/os/get_started/get_started/", 
-            "text": "Quick Start\n\n\nIf you are curious about Mynewt and want 
to get a quick feel for the project, you've come to the right place. We have 
two options for you:\n\n\n\n\nOption 1\n is the quick and easy way to get up 
and running with Mynewt. The Newt tool and build toolchains are all available 
in a single \nAll-in-one Docker Container\n that you can install on your laptop 
or computer.\n\n\n\n\nOption 2\n allows you to install the Newt tool, instances 
of the Mynewt OS (for simulated targets), and toolchains for developing 
embedded software (e.g. GNU toolchain) natively on your laptop or computer. You 
may want this if you are already familiar with such environments or are 
concerned about performance on your machine. Follow the instructions to 
\ninstall native tools\n and \ninstall cross tools for ARM\n if you prefer this 
option.\n\n\n\n\nYou can then proceed with the instructions on how to \n* 
\nCreate Your First Project\n - on simulated hardware.\n\n\nUpon successful 
 start, several tutorials await your eager attention!\n\n\n\n\nSend us an email 
on the dev@ mailing list if you have comments or suggestions!\n If you haven't 
joined the mailing list, you will find the links \nhere\n.", 
+            "text": "Quick Start\n\n\nIf you are curious about Mynewt and want 
to get a quick feel for the project, you've come to the right place. We have 
two options for you:\n\n\n\n\nOption 1\n is an easy, self-contained way to get 
up and running with Mynewt - but has limitations! The Newt tool and build 
toolchains are all available in a single \nAll-in-one Docker Container\n that 
you can install on your laptop or computer.\n\n\nHowever, this is not a 
long-term option since support is not likely for all features useful or 
critical to embedded systems development. For example, USB device mapping 
available in the Docker toolkit (used in this Option 1) is no longer available 
in the new Docker releases. The Docker option is also typically slower than the 
native install option. \n\n\n Therefore, the recommended option is Option 2 
below. \n\n\n\n\nOption 2 (Recommended)\n allows you to install the Newt tool, 
instances of the Mynewt OS (for simulated targets), and toolchains for develop
 ing embedded software (e.g. GNU toolchain) natively on your laptop or 
computer. We have tried to make the process easy. For example, for the Mac OS 
we created brew formulas. \n\n\nYou want this option if you are familiar with 
such environments or are concerned about performance on your machine. Follow 
the instructions to \ninstall native tools\n and \ninstall cross tools for 
ARM\n if you prefer this option.\n\n\n\n\nYou can then proceed with the 
instructions on how to \n* \nCreate Your First Project\n - on simulated 
hardware.\n\n\nUpon successful start, several tutorials await your eager 
attention!\n\n\n\n\nSend us an email on the dev@ mailing list if you have 
comments or suggestions!\n If you haven't joined the mailing list, you will 
find the links \nhere\n.", 
             "title": "toc"
         }, 
         {
             "location": "/os/get_started/get_started/#quick-start", 
-            "text": "If you are curious about Mynewt and want to get a quick 
feel for the project, you've come to the right place. We have two options for 
you:   Option 1  is the quick and easy way to get up and running with Mynewt. 
The Newt tool and build toolchains are all available in a single  All-in-one 
Docker Container  that you can install on your laptop or computer.   Option 2  
allows you to install the Newt tool, instances of the Mynewt OS (for simulated 
targets), and toolchains for developing embedded software (e.g. GNU toolchain) 
natively on your laptop or computer. You may want this if you are already 
familiar with such environments or are concerned about performance on your 
machine. Follow the instructions to  install native tools  and  install cross 
tools for ARM  if you prefer this option.   You can then proceed with the 
instructions on how to \n*  Create Your First Project  - on simulated hardware. 
 Upon successful start, several tutorials await your eager attention!
    Send us an email on the dev@ mailing list if you have comments or 
suggestions!  If you haven't joined the mailing list, you will find the links  
here .", 
+            "text": "If you are curious about Mynewt and want to get a quick 
feel for the project, you've come to the right place. We have two options for 
you:   Option 1  is an easy, self-contained way to get up and running with 
Mynewt - but has limitations! The Newt tool and build toolchains are all 
available in a single  All-in-one Docker Container  that you can install on 
your laptop or computer.  However, this is not a long-term option since support 
is not likely for all features useful or critical to embedded systems 
development. For example, USB device mapping available in the Docker toolkit 
(used in this Option 1) is no longer available in the new Docker releases. The 
Docker option is also typically slower than the native install option.    
Therefore, the recommended option is Option 2 below.    Option 2 (Recommended)  
allows you to install the Newt tool, instances of the Mynewt OS (for simulated 
targets), and toolchains for developing embedded software (e.g. GNU toolchain) 
 natively on your laptop or computer. We have tried to make the process easy. 
For example, for the Mac OS we created brew formulas.   You want this option if 
you are familiar with such environments or are concerned about performance on 
your machine. Follow the instructions to  install native tools  and  install 
cross tools for ARM  if you prefer this option.   You can then proceed with the 
instructions on how to \n*  Create Your First Project  - on simulated hardware. 
 Upon successful start, several tutorials await your eager attention!   Send us 
an email on the dev@ mailing list if you have comments or suggestions!  If you 
haven't joined the mailing list, you will find the links  here .", 
             "title": "Quick Start"
         }, 
         {
-            "location": "/os/get_started/docker/", 
-            "text": "Everything You Need in a Docker Container\n\n\nDocker 
provides a quick and easy way to get up and running with Mynewt. The\nnewt 
command line tool and the entire build toolchain is available in a 
single\ndocker container. The container is all that's needed to run your Mynewt 
based\napplication in the simulator.  Enabling USB2 with your docker 
installation will\nallow you to load your application on a supported 
device.\n\n\nDocker is the only supported option if you are working on a 
Windows machine. If you are using Mac OS X or Linux, you have the choice of 
installing a Docker container of tools and toolchains or installing them 
natively. This chapter describes how to set up the Docker image for all three 
platforms.\n\n\n\n\nInstall Docker\n\n\nInstall docker for your platform. \nMac 
OS X\n / \nWindows\n / \nLinux\n\n\nMac and Windows\n\n\nMac and Windows 
require Docker Toolbox to interact with USB devices.  Docker\nfor Mac and 
Docker for Windows do not support U
 SB. Docker Toolbox uses\nVirtualBox and allows you to map USB devices into 
docker containers as\ndescribed below.\n\n\nMake sure to double click the 
Docker Quickstart Terminal application if you're\non Mac or 
Windows.\n\n\nLinux\n\n\nThe docker daemon listens on a Unix domain socket on 
Linux.  That socket is\nowned by root, which means by default you must be root 
to start a container.\nMake sure to follow the optional step of adding yourself 
to the docker group so\nyou can start the newt container as 
yourself.\n\n\n\n\nUse the newt wrapper script\n\n\nUse the newt wrapper script 
to invoke newt.  Create the following file, name it\n\nnewt\n, make it 
executable, and put it in your path. This will allow you to run newt as if it 
was natively installed.  You can now follow the normal tutorials using the newt 
wrapper script.\n\n\n#!/bin/bash\n\n\n\nif\n \n[\n \n$1\n \n=\n \ndebug\n \n]\n 
\n||\n \n[\n \n$1\n \n=\n \nrun\n \n]\n\n\nthen\n\n    
\nti=\n-ti\n\n\nfi\n\n\ndocker run -e \nNEWT_US
 ER=\n$(\nid -u\n)\n -e \nNEWT_GROUP=\n$(\nid -g\n)\n -e 
\nNEWT_HOST=\n$(\nuname\n)\n \n$ti\n --rm --device\n=\n/dev/bus/usb 
--privileged -v \n$(pwd)\n:/workspace -w /workspace mynewt/newt:latest /newt 
\n$@\n\n\n\n\n\n\n\n\nNote 1:\n Remember to point to the correct subdirectory 
level when invoking \nnewt\n. For example, invoke it using \n../newt\n in the 
example below.\n\n\nuser@~/dockertest$ ls\nmyproj  newt\nuser@~/dockertest$ cd 
myproj\n\nuser@~/dockertest/myproj$ ../newt version\n\nApache Newt (incubating) 
version: 0.8.0-b2\n\n\n\n\n\n\n\nNote 2:\n You can upgrade your container by 
running \ndocker pull mynewt/newt:latest\n when updates are made 
available.\n\n\n\n\nEnable USB2 Support for Mac or Windows\n\n\nIf you plan on 
loading your application on an actual device, do the steps 
below.\n\n\n\n\nInstall VirtualBox extension pack\n\n\nDocker uses a VirtualBox 
Linux VM to run containers.  A free VirtualBox\nextension pack is required to 
enable USB2 support.  Download the \nVirtua
 lBox\n5.0.16 Oracle VM VirtualBox Extension\nPack\n\nand double click to 
install\n\n\n\n\nEnable USB2 and select your device\n\n\n\n\n\n\nThe 
\"default\" VM created by docker-machine must first be stopped before you\n  
can enable USB2.  You have two options:\n\n\n\n\nRun the command 
\ndocker-machine stop default\n in the terminal window or\n\n\nUse the 
VirtualBox UI. Right click on \ndefault\n -\n Close -\n Power 
Off\n\n\n\n\n\n\n\n\nEnable USB2 using the VirtualBox UI. Select the 
\"default\"\n  VM-\nSettings-\nPorts-\nUSB2 to enable USB2.   Add your device 
to the USB Device\n  Filters to make the device visible in the docker 
container.  See the image below.\n\n\n\n\n\n\n\n\n\n\nRestart the \"default\" 
VM. You have two options:\n\n\nRun \ndocker-machine start default\n in the 
terminal window or \n\n\nUse the VirtualBox UI. Make sure the \"default\" 
machine is highlighted. Click the green \"Start\" button. Select \"Headless 
Start\".\n\n\n\n\n\n\n\n\n\n\nNote 3\n: When working with ac
 tual hardware, remember that each board has an ID. If you swap boards and do 
not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale 
and the Docker instance may not be able to see the board correctly. For 
example, you may see an error message like \nError: unable to find CMSIS-DAP 
device\n when you try to load or run an image on the board. In that case, you 
need to click on the USB link in VirtualBox UI, remove the existing USB Device 
Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101]\") by clicking on the \"Removes 
selected USB filter\" button, and add a new filter by clicking on the \"Adds 
new USB filter\" button.", 
-            "title": "Docker Container Option"
-        }, 
-        {
-            "location": 
"/os/get_started/docker/#everything-you-need-in-a-docker-container", 
-            "text": "Docker provides a quick and easy way to get up and 
running with Mynewt. The\nnewt command line tool and the entire build toolchain 
is available in a single\ndocker container. The container is all that's needed 
to run your Mynewt based\napplication in the simulator.  Enabling USB2 with 
your docker installation will\nallow you to load your application on a 
supported device.  Docker is the only supported option if you are working on a 
Windows machine. If you are using Mac OS X or Linux, you have the choice of 
installing a Docker container of tools and toolchains or installing them 
natively. This chapter describes how to set up the Docker image for all three 
platforms.", 
-            "title": "Everything You Need in a Docker Container"
-        }, 
-        {
-            "location": "/os/get_started/docker/#install-docker", 
-            "text": "Install docker for your platform.  Mac OS X  /  Windows  
/  Linux", 
-            "title": "Install Docker"
-        }, 
-        {
-            "location": "/os/get_started/docker/#mac-and-windows", 
-            "text": "Mac and Windows require Docker Toolbox to interact with 
USB devices.  Docker\nfor Mac and Docker for Windows do not support USB. Docker 
Toolbox uses\nVirtualBox and allows you to map USB devices into docker 
containers as\ndescribed below.  Make sure to double click the Docker 
Quickstart Terminal application if you're\non Mac or Windows.", 
-            "title": "Mac and Windows"
-        }, 
-        {
-            "location": "/os/get_started/docker/#linux", 
-            "text": "The docker daemon listens on a Unix domain socket on 
Linux.  That socket is\nowned by root, which means by default you must be root 
to start a container.\nMake sure to follow the optional step of adding yourself 
to the docker group so\nyou can start the newt container as yourself.", 
-            "title": "Linux"
-        }, 
-        {
-            "location": "/os/get_started/docker/#use-the-newt-wrapper-script", 
-            "text": "Use the newt wrapper script to invoke newt.  Create the 
following file, name it newt , make it executable, and put it in your path. 
This will allow you to run newt as if it was natively installed.  You can now 
follow the normal tutorials using the newt wrapper script.  #!/bin/bash  if   [ 
  $1   =   debug   ]   ||   [   $1   =   run   ]  then \n     ti= -ti  fi 
\n\ndocker run -e  NEWT_USER= $( id -u )  -e  NEWT_GROUP= $( id -g )  -e  
NEWT_HOST= $( uname )   $ti  --rm --device = /dev/bus/usb --privileged -v  
$(pwd) :/workspace -w /workspace mynewt/newt:latest /newt  $@    Note 1:  
Remember to point to the correct subdirectory level when invoking  newt . For 
example, invoke it using  ../newt  in the example below.  user@~/dockertest$ 
ls\nmyproj  newt\nuser@~/dockertest$ cd myproj user@~/dockertest/myproj$ 
../newt version Apache Newt (incubating) version: 0.8.0-b2   Note 2:  You can 
upgrade your container by running  docker pull mynewt/newt:latest  when updates 
are
  made available.", 
-            "title": "Use the newt wrapper script"
-        }, 
-        {
-            "location": 
"/os/get_started/docker/#enable-usb2-support-for-mac-or-windows", 
-            "text": "If you plan on loading your application on an actual 
device, do the steps below.", 
-            "title": "Enable USB2 Support for Mac or Windows"
-        }, 
-        {
-            "location": 
"/os/get_started/docker/#install-virtualbox-extension-pack", 
-            "text": "Docker uses a VirtualBox Linux VM to run containers.  A 
free VirtualBox\nextension pack is required to enable USB2 support.  Download 
the  VirtualBox\n5.0.16 Oracle VM VirtualBox Extension\nPack \nand double click 
to install", 
-            "title": "Install VirtualBox extension pack"
-        }, 
-        {
-            "location": 
"/os/get_started/docker/#enable-usb2-and-select-your-device", 
-            "text": "The \"default\" VM created by docker-machine must first 
be stopped before you\n  can enable USB2.  You have two options:   Run the 
command  docker-machine stop default  in the terminal window or  Use the 
VirtualBox UI. Right click on  default  -  Close -  Power Off     Enable USB2 
using the VirtualBox UI. Select the \"default\"\n  VM- Settings- Ports- USB2 to 
enable USB2.   Add your device to the USB Device\n  Filters to make the device 
visible in the docker container.  See the image below.      Restart the 
\"default\" VM. You have two options:  Run  docker-machine start default  in 
the terminal window or   Use the VirtualBox UI. Make sure the \"default\" 
machine is highlighted. Click the green \"Start\" button. Select \"Headless 
Start\".      Note 3 : When working with actual hardware, remember that each 
board has an ID. If you swap boards and do not refresh the USB Device Filter on 
the VirtualBox UI, the ID might be stale and the Docker instance may not be abl
 e to see the board correctly. For example, you may see an error message like  
Error: unable to find CMSIS-DAP device  when you try to load or run an image on 
the board. In that case, you need to click on the USB link in VirtualBox UI, 
remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG 
CMSIS-DAP[0101]\") by clicking on the \"Removes selected USB filter\" button, 
and add a new filter by clicking on the \"Adds new USB filter\" button.", 
-            "title": "Enable USB2 and select your device"
-        }, 
-        {
             "location": "/os/get_started/native_tools/", 
             "text": "Installing Native Mynewt Tools\n\n\nThis page shows how 
to install tools for native Mynewt targets (simulated targets on your 
laptop/computer) without using a Docker container. In other words, it allows 
you to run Mynewt OS as a native application on your Mac or Linux machine to 
simulate a target and use the Newt tool running natively on your machine to 
manage the simulated target. It also allows you to run the test suites for all 
packages not requiring HW support. You may choose to do this instead of using 
the build toolchain and Newt tool available in a Docker container.\n\n\nThis 
page provides guidance for MAC and Linux. See the relevant sections 
below.\n\n\n\n\nSet up toolchain for Mac\n\n\nInstall Brew\n\n\nIf you have not 
already installed Homebrew from the \n\nnewt\n tutorials pages\n, install it. 
\n\n\n\n\nInstall gcc/libc\n\n\nOS X ships with a C compiler called Clang.  To 
build applications for the Mynewt simulator with, a different compiler is used 
as
  default: gcc.\n\n\n$ brew install gcc\n...\n...\n==\n Summary\n\ud83c\udf7a  
/usr/local/Cellar/gcc/5.2.0: 1353 files, 248M\n\n\n\n\n\n\n\nCheck the gcc 
version you have installed (either using brew or previously installed). The 
brew-installed version can be checked using \nbrew list gcc\n. The default 
compiler.yml configuration file in Mynewt expects version 5.x for Mac users, so 
if the installed version is 6.x and you wish to continue with this newer 
version, modify the 
\nmynewt-src-directory\n/repos/apache-mynewt-core/compiler/sim/compiler.yml\n 
file to change the default \ngcc-5\n defined there to \ngcc-6\n. In other 
words, replace the lines shown highlighted below:\n\n\n# OS 
X.\n\ncompiler.path.cc.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-5\n\n\ncompiler.path.as.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-5 -x 
assembler-with-cpp\n\n\ncompiler.path.objdump.DARWIN.OVERWRITE: 
\ngobjdump\n\ncompiler.path.objsize.DARWIN.OVERWRITE: 
\nobjsize\n\ncompiler.path.objcopy.DARWIN.OVERWRITE: \ngobjc
 opy\n\n\n\n\n\n\nwith the following:\n\n\ncompiler.path.cc.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-6\n\ncompiler.path.as.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-6 -x assembler-with-cpp\u201d\n\n\n\n\n\n\n\nIn case you 
wish to use Clang, you can change your 
\nmynewt-src-directory\n/repos/apache-mynewt-core/compiler/sim/compiler.yml\n 
to use Clang. Delete the gcc-5 DARWIN.OVERWRITE lines highlighted below.\n\n\n# 
OS X.\n\ncompiler.path.cc.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-5\n\n\ncompiler.path.as.DARWIN.OVERWRITE: 
\n/usr/local/bin/gcc-5 -x 
assembler-with-cpp\n\n\ncompiler.path.objdump.DARWIN.OVERWRITE: 
\ngobjdump\n\ncompiler.path.objsize.DARWIN.OVERWRITE: 
\nobjsize\n\ncompiler.path.objcopy.DARWIN.OVERWRITE: 
\ngobjcopy\n\n\n\n\n\n\n\n\nNOTE:\n Both the newer gcc 6.x and Clang report a 
few warnings but they can be ignored.\n\n\n\n\nFURTHER NOTE:\n Mynewt 
developers mostly use gcc 5.x for sim builds; so it may take a little while to 
fix issues reported by the newer compiler. One option
  is to \ndisable warnings\n. To do that, remove the \n-Werror\n flag as an 
option for the compiler in the  
\nmynewt-src-directory\n/repos/apache-mynewt-core/compiler/sim/compiler.yml\n 
file as shown below. \n\n\ncompiler.flags.base: \n\n\n    -m32 -Wall 
-ggdb\n\n\n\n\n\nYou may alternatively choose to \nspecify the precise warnings 
to ignore\n depending on the error thrown by the compiler. For example, if you 
see a \n[-Werror=misleading-indentation]\n error while building the sim image, 
add \n-Wno-misleading-indentation]\n as a compiler flag in the same line from 
the 
\nmynewt-src-directory\n/repos/apache-mynewt-core/compiler/sim/compiler.yml\n 
file.\n\n\ncompiler.flags.base: \n\n\n    -m32 -Wall -Werror -ggdb 
-Wno-misleading-indentation\n\n\n\n\n\nA third option is to simply \ndowngrade 
to gcc 5.x\n.\n\n\n\n\nInstall gdb\n\n\n$ brew install gdb\n...\n...\n==\n 
Summary\n\ud83c\udf7a  /usr/local/Cellar/gdb/7.10.1: XXX 
files,YYM\n\n\n\n\n\n\n\nNOTE:\n When running a program with gdb, y
 ou may need to sign your gdb\nexecutable.  \nThis page\n\nshows a recipe for 
gdb signing. Alternately you can skip this step and\ncontinue without the 
ability to debug your mynewt application on your PC.*\n\n\n\n\nSet up toolchain 
for Linux\n\n\nThe below procedure can be used to set up a Debian-based Linux 
system (e.g.,\nUbuntu).  If you are running a different Linux distribution, you 
will need to\nsubstitute invocations of \napt-get\n in the below steps with the 
package manager\nthat your distro uses.\n\n\n\n\nInstall gcc/libc that will 
produce 32-bit executables:\n\n\n$ sudo apt-get install gcc-multilib 
libc6-i386\n\n\n\n\n\n\n\nInstall gdb\n\n\n$ sudo apt-get install 
gdb\n\nReading package lists... Done\nBuilding dependency tree       \nReading 
state information... Done\nSuggested packages:\n  gdb-doc gdbserver\nThe 
following NEW packages will be installed:\n  gdb\n...\nProcessing triggers for 
man-db (2.6.7.1-1ubuntu1) ...\nSetting up gdb (7.7.1-0ubuntu5~14.04.2) 
...\n\n\n\n\n\n
 \n\nAt this point you have installed all the necessary software to build and 
test code on a simluator running on your Mac or Linux. Proceed to the \nCreate 
Your First Project\n section.", 
             "title": "toc"
@@ -237,43 +192,33 @@
         }, 
         {
             "location": "/newt/install/newt_mac/", 
-            "text": "Install newt tool on your Mac\n\n\nGetting your Mac 
Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, follow 
the following steps:\n\n\n\n\n1. Install Homebrew on your Mac OS X\n\n\n\n\nDo 
you have Homebrew? If not, open a terminal on your Mac and paste the following 
at a Terminal prompt. It will ask you for your sudo password.\n\n\n\n\n        
$ ruby -e \n$(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)\n\n\n\n\n\n\nAlternatively,
 you can just extract (or \ngit clone\n) Homebrew and install it to 
\n/usr/local\n.\n\n\n\n\n2. Install Go, the programming 
language\n\n\n\n\n\n\nGo language environment dictates a directory structure. 
Known in Go parlanace as workspace, it must contain three sibling directories 
with the directory names src, pkg and bin, as explained below. 
\n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package 
per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n
 \n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. To setup this 
workspace environment, create a 'dev' directory and then a 'go' directory under 
it. Set the GOPATH environment variable to this directory where you will soon 
clone the \nnewt\n tool repository.\n\n\n\n\n\n\n\n\n        $ cd $HOME\n       
 $ mkdir -p dev/go  \n        $ cd dev/go\n        $ export 
GOPATH=`pwd`\n\n\n\n\n\n(Note that you need to add export statements to 
~/.bash_profile to export variables permanently. Don't forget to source the 
file for the change to go into effect.)\n\n\n\n\n        $ vi ~/.bash_profile\n 
       $ source ~/.bash_profile\n\n\n\n\n\n\n\n\n\nNext, using \nbrew\n, 
install Go. When installed, Go offers you as a developer a language environment 
(to compile Go code), construct Go packages (to assemble Go packages) and 
import Go code (from github). In the next step, you will use the Go commands to 
import \nnewt\n rep
 o into your local Go environment.\n\n\n\n\n        $ brew install go\n        
==\n \n        ...\n        ... \n        ==\n *Summary*\n        \ud83c\udf7a  
/usr/local/Cellar/go/1.5.1: 5330 files, 273M\n\n\n\n\n\nAlternatively, you can 
download the Go package directly from (https://golang.org/dl/) instead of 
brewing it. Install it in /usr/local directory.\n\n\n\n\n3. Create local 
repository\n\n\n\n\nUse Go commands to copy the directory (currently the ASF 
incubator directory). Be patient as it may take a minute or two. Check the 
directories installed.\n\n\n\n\n        $ go get 
mynewt.apache.org/newt/...\n\n\n\n\n\n\n\nCheck that newt.go is in 
place.\n\n\n\n\n        $ ls $GOPATH/src/mynewt.apache.org/newt\n        
DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     
README.md   newtmgr     util        yaml\n\n\n\n\n\n\n\n4. Build the Newt 
tool\n\n\n\n\nUse Go to run the newt.go program to build the \nnewt\n tool. The 
command \ngo install\n compiles and writes 
 the resulting executable to an output file named \nnewt\n, which is then 
installed, along with its dependencies, in $GOPATH/bin.\n\n\n\n\n        $ cd 
$GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls 
\n$GOPATH\n/bin/\n        newt newtmgr newtvm\n\n\n\n\n\n\n\n\n\nAt this point, 
you can try using \nnewt\n. For example, check for the version number by typing 
'newt version'. See all the possible commands available to a user of newt by 
typing 'newt -h'.\n\n\n\n\n(Note: If you are going to be modifying the \nnewt\n 
often and going to be compile the program every time you call it, you will want 
to store the command in a variable in your .bash_profile. So type in \nexport 
newt=\"go run $GOPATH/mynewt.apache.org/newt/newt/newt.go\"\n in your 
.bash_profile and execute it by calling \n$newt\n at the prompt instead of 
\nnewt\n. Essentially, \n$newt\n calls \ngo run\n which runs the compiled 
binary directly without producing an executable. Don't forget to reload the 
 updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! 
)\n\n\n        $ newt version\n        Newt version:  1.0\n        $ newt -h\n  
      Newt allows you to create your own embedded application based on the 
Mynewt \n        operating system. Newt provides both build and package 
management in a single \n        tool, which allows you to compose an embedded 
application, and set of \n        projects, and then build the necessary 
artifacts from those projects. For more \n        information on the Mynewt 
operating system, please visit \n        https://mynewt.apache.org/. \n\n       
 Please use the newt help command, and specify the name of the command you want 
\n        help for, for help on how to use a specific command\n\n        
Usage:\n          newt [flags]\n          newt [command]\n\n        Examples:\n 
         newt\n          newt help [\ncommand-name\n]\n            For help on 
\ncommand-name\n.  If not specified, print this message.\n\n        Available
  Commands:\n          build        Build one or more targets\n          clean  
      Delete build artifacts for one or more targets\n          create-image 
Add image header to target binary\n          debug        Open debugger session 
to target\n          info         Show project info\n          install      
Install project dependencies\n          load         Load built target to 
board\n          mfg          Manufacturing flash image commands\n          new 
         Create a new project\n          pkg          Create and manage 
packages in the current workspace\n          run          
build/create-image/download/debug \ntarget\n\n          size         Size of 
target components\n          sync         Synchronize project dependencies\n    
      target       Commands to create, delete, configure, and query targets\n   
       test         Executes unit tests for one or more packages\n          
upgrade      Upgrade project dependencies\n          vals         Display valid 
values f
 or the specified element type(s)\n          version      Display the Newt 
version number\n\n        Flags:\n          -h, --help              Help for 
newt commands\n          -j, --jobs int          Number of concurrent build 
jobs (default 8)\n          -l, --loglevel string   Log level (default 
\nWARN\n)\n          -o, --outfile string    Filename to tee output to\n        
  -q, --quiet             Be quiet; only display error output\n          -s, 
--silent            Be silent; don\nt output anything\n          -v, --verbose  
         Enable verbose output when executing commands\n\n        Use \nnewt 
[command] --help\n for more information about a comma\n\n\n\n\n\n\n\n5. 
Updating the Newt tool\n\n\n\n\nYou will update the newt tool in the same place 
as you initially installed the newt tool.\n\n\nStart by updating the git 
repository of the newt tool (you can change to a different branch using git 
checkout [branch] if you need to)\n\n\nThen update each of the tools newt, 
newtmgr a
 nd newtvm as needed\n\n\n\n\n        $ cd $GOPATH/src/mynewt.apache.org/newt\n 
       $ git pull\n        $ cd newt\n        $ go install\n        $ cd 
../newtmgr\n        $ go install\n        $ cd ../newtvm\n        $ go 
install\n        $ ls \n$GOPATH\n/bin/\n        newt newtmgr 
newtvm\n\n\n\n\n\nThat should have updated your newt, newtmgr and newtvm to the 
latest versions based on the git repository you used.", 
+            "text": "Installing Newt on Mac OS\n\n\nNewt is supported on Mac 
OS X 64 bit platforms and has been tested on Mac OS 10.9 and higher.\n\n\nThis 
page shows you how to install the following versions of newt:\n\n\n\n\nThe 
latest stable release version (1.0.0) \n\n\nThe latest from the master branch 
(unstable)\n\n\n\n\nNote:\n If you would like to contribute to the newt tool, 
see \nSetting Up Go Environment to Contribute to Newt and Newtmgr 
Tools\n.\n\n\nInstalling Homebrew\n\n\nIf you do not have Homebrew installed, 
run the following command. You will be prompted for your sudo password.\n\n\n$ 
ruby -e \n$(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)\n\n\n\n\n\n\nYou
 can also extract (or \ngit clone\n) Homebrew and install it to 
/usr/local.\n\n\n\n\nInstalling Newt\n\n\nAdd the \n runtimeco/homebrew-mynewt 
\n tap:\n\n\n$brew tap runtimeco/homebrew-mynewt\n$brew 
update\n\n\n\n\n\n\n\nInstalling the Latest Release Version of 
Newt\n\n\nInstall t
 he latest stable release version (1.0.0) of newt:\n\n\n$brew install 
mynewt-newt\n==\n Installing mynewt-newt from runtimeco/mynewt\n==\n 
Downloading 
https://github.com/runtimeco/binary-releases/raw/master/mynewt-newt-tools_1.0.0/mynewt-newt-1.0.0.mavericks.bottle.tar.gz\n==\n
 Downloading from 
https://raw.githubusercontent.com/runtimeco/binary-releases/master/mynewt-newt-tools_1.0.0/mynewt-newt-1.0.0.mavericks.\n########################################################################
 100.0%\n==\n Pouring mynewt-newt-1.0.0.mavericks.bottle.tar.gz\n\ud83c\udf7a  
/usr/local/Cellar/mynewt-newt/1.0.0: 3 files, 10.4MB\n\n\n\n\n\n\n\nNote:\n 
This installs the newt 1.0.0 binary that has been tested on Mac OS 10.9 and 
higher. If you are running an earlier version of Mac OS, the installation will 
install the latest version of Go and compile newt locally.\n\n\n\nCheck that 
you are using the installed version of newt:\n\n\n$which 
newt\n/usr/local/bin/newt\n$ls -l /usr/local/bin/newt\nlrwxr-xr-x
   1 user  staff  36 Apr 15 08:18 /usr/local/bin/newt -\n 
../Cellar/mynewt-newt/1.0.0/bin/newt\n$newt version\nApache Newt (incubating) 
version: 1.0.0\n\n\n\n\n\nNote:\n If you previously built newt from source and 
the output of \nwhich newt\n shows \"$GOPATH/bin/newt\", you will need to move 
\"$GOPATH/bin\"  after \"/usr/local/bin\" in your $PATH.\n\n\n\nGet information 
about newt: \n\n\n$newt help\nNewt allows you to create your own embedded 
application based on the Mynewt \noperating system. Newt provides both build 
and package management in a single \ntool, which allows you to compose an 
embedded application, and set of \nprojects, and then build the necessary 
artifacts from those projects. For more \ninformation on the Mynewt operating 
system, please visit \nhttps://mynewt.apache.org/. \n\nPlease use the newt help 
command, and specify the name of the command you want \nhelp for, for help on 
how to use a specific command\n\nUsage:\n  newt [flags]\n  newt 
[command]\n\nExamples:\n 
  newt\n  newt help [\ncommand-name\n]\n    For help on \ncommand-name\n.  If 
not specified, print this message.\n\nAvailable Commands:\n  build        Build 
one or more targets\n  clean        Delete build artifacts for one or more 
targets\n  create-image Add image header to target binary\n  debug        Open 
debugger session to target\n  info         Show project info\n  install      
Install project dependencies\n  load         Load built target to board\n  mfg  
        Manufacturing flash image commands\n  new          Create a new 
project\n  pkg          Create and manage packages in the current workspace\n  
run          build/create-image/download/debug \ntarget\n\n  size         Size 
of target components\n  sync         Synchronize project dependencies\n  target 
      Commands to create, delete, configure, and query targets\n  test         
Executes unit tests for one or more packages\n  upgrade      Upgrade project 
dependencies\n  vals         Display valid values for the speci
 fied element type(s)\n  version      Display the Newt version 
number\n\nFlags:\n  -h, --help              Help for newt commands\n  -j, 
--jobs int          Number of concurrent build jobs (default 8)\n  -l, 
--loglevel string   Log level (default \nWARN\n)\n  -o, --outfile string    
Filename to tee output to\n  -q, --quiet             Be quiet; only display 
error output\n  -s, --silent            Be silent; don\nt output anything\n  
-v, --verbose           Enable verbose output when executing commands\n\nUse 
\nnewt [command] --help\n for more information about a 
command.\n\n\n\n\n\n\n\nInstalling Newt from the Master Branch\n\n\nWe 
recommend that you use the latest stable release version (1.0.0) of newt. If 
you would like to use the master branch with the latest updates, you can 
install newt from the HEAD of the master branch. \n\n\n Notes: \n\n\n\n\nThe 
master branch may be unstable.\n\n\nThis installation will install the latest 
version of Go on your computer, if it is not installe
 d, and compile newt locally. \n\n\n\n\n\nIf you previously installed newt 
using brew, unlink the current version:\n\n\n$brew unlink 
mynewt-newt\n\n\n\n\n\n\nInstall the latest unstable version of newt from the 
master branch:\n\n\n$brew install --HEAD mynewt-newt\n==\n Installing 
mynewt-newt from runtimeco/mynewt\n==\n Cloning 
https://github.com/apache/incubator-mynewt-newt.git\nCloning into 
\nUsers/\nusername\n/Library/Caches/Homebrew/mynewt-newt--git\n...\nremote: 
Counting objects: 623, done.\nremote: Compressing objects: 100% (501/501), 
done.\nremote: Total 623 (delta 154), reused 323 (delta 84), pack-reused 
0\nReceiving objects: 100% (623/623), 1.10 MiB | 0 bytes/s, done.\nResolving 
deltas: 100% (154/154), done.\n==\n Checking out branch master\n==\n go 
install\n\ud83c\udf7a  /usr/local/Cellar/mynewt-newt/HEAD-409f7d3: 3 files, 
10.4MB, built in 10 seconds\n$newt version\nApache Newt (incubating) version: 
1.0.0-dev\n\n\n\n\n\n\nTo switch back to the stable release version (1.0.0) 
 of newt, you can run:\n\n\n$brew switch mynewt-newt 1.0.0\nCleaning 
/usr/local/Cellar/mynewt-newt/1.0.0\nCleaning 
/usr/local/Cellar/mynewt-newt/HEAD-409f7d3\n1 links created for 
/usr/local/Cellar/mynewt-newt/1.0.0\n$newt version\nApache Newt (incubating) 
version: 1.0.0", 
             "title": "Install Newt on Mac"
         }, 
         {
-            "location": 
"/newt/install/newt_mac/#install-newt-tool-on-your-mac", 
-            "text": "", 
-            "title": "Install newt tool on your Mac"
-        }, 
-        {
-            "location": "/newt/install/newt_mac/#getting-your-mac-ready", 
-            "text": "If you want to build the  newt  tool from its source 
code, follow the following steps:", 
-            "title": "Getting your Mac Ready"
-        }, 
-        {
-            "location": 
"/newt/install/newt_mac/#1-install-homebrew-on-your-mac-os-x", 
-            "text": "Do you have Homebrew? If not, open a terminal on your Mac 
and paste the following at a Terminal prompt. It will ask you for your sudo 
password.           $ ruby -e  $(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)   
Alternatively, you can just extract (or  git clone ) Homebrew and install it to 
 /usr/local .", 
-            "title": "1. Install Homebrew on your Mac OS X"
+            "location": "/newt/install/newt_mac/#installing-newt-on-mac-os", 
+            "text": "Newt is supported on Mac OS X 64 bit platforms and has 
been tested on Mac OS 10.9 and higher.  This page shows you how to install the 
following versions of newt:   The latest stable release version (1.0.0)   The 
latest from the master branch (unstable)   Note:  If you would like to 
contribute to the newt tool, see  Setting Up Go Environment to Contribute to 
Newt and Newtmgr Tools .", 
+            "title": "Installing Newt on Mac OS"
         }, 
         {
-            "location": 
"/newt/install/newt_mac/#2-install-go-the-programming-language", 
-            "text": "Go language environment dictates a directory structure. 
Known in Go parlanace as workspace, it must contain three sibling directories 
with the directory names src, pkg and bin, as explained below.     src contains 
Go source files organized into packages (one package per directory),    pkg 
contains package objects, and    bin contains executable commands.    The 
GOPATH environment variable specifies the location of your workspace. To setup 
this workspace environment, create a 'dev' directory and then a 'go' directory 
under it. Set the GOPATH environment variable to this directory where you will 
soon clone the  newt  tool repository.             $ cd $HOME\n        $ mkdir 
-p dev/go  \n        $ cd dev/go\n        $ export GOPATH=`pwd`  (Note that you 
need to add export statements to ~/.bash_profile to export variables 
permanently. Don't forget to source the file for the change to go into effect.) 
          $ vi ~/.bash_profile\n        $ source ~/.bash_profile   
  Next, using  brew , install Go. When installed, Go offers you as a developer 
a language environment (to compile Go code), construct Go packages (to assemble 
Go packages) and import Go code (from github). In the next step, you will use 
the Go commands to import  newt  repo into your local Go environment.           
$ brew install go\n        ==  \n        ...\n        ... \n        ==  
*Summary*\n        \ud83c\udf7a  /usr/local/Cellar/go/1.5.1: 5330 files, 273M  
Alternatively, you can download the Go package directly from 
(https://golang.org/dl/) instead of brewing it. Install it in /usr/local 
directory.", 
-            "title": "2. Install Go, the programming language"
+            "location": "/newt/install/newt_mac/#installing-homebrew", 
+            "text": "If you do not have Homebrew installed, run the following 
command. You will be prompted for your sudo password.  $ ruby -e  $(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)   You can 
also extract (or  git clone ) Homebrew and install it to /usr/local.", 
+            "title": "Installing Homebrew"
         }, 
         {
-            "location": "/newt/install/newt_mac/#3-create-local-repository", 
-            "text": "Use Go commands to copy the directory (currently the ASF 
incubator directory). Be patient as it may take a minute or two. Check the 
directories installed.           $ go get mynewt.apache.org/newt/...   Check 
that newt.go is in place.           $ ls $GOPATH/src/mynewt.apache.org/newt\n   
     DISCLAIMER  NOTICE      newt        newtvm      viper\n        LICENSE     
README.md   newtmgr     util        yaml", 
-            "title": "3. Create local repository"
+            "location": "/newt/install/newt_mac/#installing-newt", 
+            "text": "Add the   runtimeco/homebrew-mynewt   tap:  $brew tap 
runtimeco/homebrew-mynewt\n$brew update", 
+            "title": "Installing Newt"
         }, 
         {
-            "location": "/newt/install/newt_mac/#4-build-the-newt-tool", 
-            "text": "Use Go to run the newt.go program to build the  newt  
tool. The command  go install  compiles and writes the resulting executable to 
an output file named  newt , which is then installed, along with its 
dependencies, in $GOPATH/bin.           $ cd 
$GOPATH/src/mynewt.apache.org/newt/newt\n        $ go install\n        $ ls  
$GOPATH /bin/\n        newt newtmgr newtvm    At this point, you can try using  
newt . For example, check for the version number by typing 'newt version'. See 
all the possible commands available to a user of newt by typing 'newt -h'.   
(Note: If you are going to be modifying the  newt  often and going to be 
compile the program every time you call it, you will want to store the command 
in a variable in your .bash_profile. So type in  export newt=\"go run 
$GOPATH/mynewt.apache.org/newt/newt/newt.go\"  in your .bash_profile and 
execute it by calling  $newt  at the prompt instead of  newt . Essentially,  
$newt  calls  go run  which runs the compile
 d binary directly without producing an executable. Don't forget to reload the 
updated bash profile by typing  source ~/.bash_profile  at the prompt! )        
  $ newt version\n        Newt version:  1.0\n        $ newt -h\n        Newt 
allows you to create your own embedded application based on the Mynewt \n       
 operating system. Newt provides both build and package management in a single 
\n        tool, which allows you to compose an embedded application, and set of 
\n        projects, and then build the necessary artifacts from those projects. 
For more \n        information on the Mynewt operating system, please visit \n  
      https://mynewt.apache.org/. \n\n        Please use the newt help command, 
and specify the name of the command you want \n        help for, for help on 
how to use a specific command\n\n        Usage:\n          newt [flags]\n       
   newt [command]\n\n        Examples:\n          newt\n          newt help [ 
command-name ]\n            For help on  comman
 d-name .  If not specified, print this message.\n\n        Available 
Commands:\n          build        Build one or more targets\n          clean    
    Delete build artifacts for one or more targets\n          create-image Add 
image header to target binary\n          debug        Open debugger session to 
target\n          info         Show project info\n          install      
Install project dependencies\n          load         Load built target to 
board\n          mfg          Manufacturing flash image commands\n          new 
         Create a new project\n          pkg          Create and manage 
packages in the current workspace\n          run          
build/create-image/download/debug  target \n          size         Size of 
target components\n          sync         Synchronize project dependencies\n    
      target       Commands to create, delete, configure, and query targets\n   
       test         Executes unit tests for one or more packages\n          
upgrade      Upgrade p
 roject dependencies\n          vals         Display valid values for the 
specified element type(s)\n          version      Display the Newt version 
number\n\n        Flags:\n          -h, --help              Help for newt 
commands\n          -j, --jobs int          Number of concurrent build jobs 
(default 8)\n          -l, --loglevel string   Log level (default  WARN )\n     
     -o, --outfile string    Filename to tee output to\n          -q, --quiet   
          Be quiet; only display error output\n          -s, --silent           
 Be silent; don t output anything\n          -v, --verbose           Enable 
verbose output when executing commands\n\n        Use  newt [command] --help  
for more information about a comma", 
-            "title": "4. Build the Newt tool"
+            "location": 
"/newt/install/newt_mac/#installing-the-latest-release-version-of-newt", 
+            "text": "Install the latest stable release version (1.0.0) of 
newt:  $brew install mynewt-newt\n==  Installing mynewt-newt from 
runtimeco/mynewt\n==  Downloading 
https://github.com/runtimeco/binary-releases/raw/master/mynewt-newt-tools_1.0.0/mynewt-newt-1.0.0.mavericks.bottle.tar.gz\n==
  Downloading from 
https://raw.githubusercontent.com/runtimeco/binary-releases/master/mynewt-newt-tools_1.0.0/mynewt-newt-1.0.0.mavericks.\n########################################################################
 100.0%\n==  Pouring mynewt-newt-1.0.0.mavericks.bottle.tar.gz\n\ud83c\udf7a  
/usr/local/Cellar/mynewt-newt/1.0.0: 3 files, 10.4MB   Note:  This installs the 
newt 1.0.0 binary that has been tested on Mac OS 10.9 and higher. If you are 
running an earlier version of Mac OS, the installation will install the latest 
version of Go and compile newt locally.  \nCheck that you are using the 
installed version of newt:  $which newt\n/usr/local/bin/newt\n$ls -l 
/usr/local/bin/newt\nlrwxr-xr-x
   1 user  staff  36 Apr 15 08:18 /usr/local/bin/newt -  
../Cellar/mynewt-newt/1.0.0/bin/newt\n$newt version\nApache Newt (incubating) 
version: 1.0.0  Note:  If you previously built newt from source and the output 
of  which newt  shows \"$GOPATH/bin/newt\", you will need to move 
\"$GOPATH/bin\"  after \"/usr/local/bin\" in your $PATH.  \nGet information 
about newt:   $newt help\nNewt allows you to create your own embedded 
application based on the Mynewt \noperating system. Newt provides both build 
and package management in a single \ntool, which allows you to compose an 
embedded application, and set of \nprojects, and then build the necessary 
artifacts from those projects. For more \ninformation on the Mynewt operating 
system, please visit \nhttps://mynewt.apache.org/. \n\nPlease use the newt help 
command, and specify the name of the command you want \nhelp for, for help on 
how to use a specific command\n\nUsage:\n  newt [flags]\n  newt 
[command]\n\nExamples:\n  newt\n  newt help [ c
 ommand-name ]\n    For help on  command-name .  If not specified, print this 
message.\n\nAvailable Commands:\n  build        Build one or more targets\n  
clean        Delete build artifacts for one or more targets\n  create-image Add 
image header to target binary\n  debug        Open debugger session to target\n 
 info         Show project info\n  install      Install project dependencies\n  
load         Load built target to board\n  mfg          Manufacturing flash 
image commands\n  new          Create a new project\n  pkg          Create and 
manage packages in the current workspace\n  run          
build/create-image/download/debug  target \n  size         Size of target 
components\n  sync         Synchronize project dependencies\n  target       
Commands to create, delete, configure, and query targets\n  test         
Executes unit tests for one or more packages\n  upgrade      Upgrade project 
dependencies\n  vals         Display valid values for the specified element 
type(s)\n  vers
 ion      Display the Newt version number\n\nFlags:\n  -h, --help              
Help for newt commands\n  -j, --jobs int          Number of concurrent build 
jobs (default 8)\n  -l, --loglevel string   Log level (default  WARN )\n  -o, 
--outfile string    Filename to tee output to\n  -q, --quiet             Be 
quiet; only display error output\n  -s, --silent            Be silent; don t 
output anything\n  -v, --verbose           Enable verbose output when executing 
commands\n\nUse  newt [command] --help  for more information about a command.", 
+            "title": "Installing the Latest Release Version of Newt"
         }, 
         {
-            "location": "/newt/install/newt_mac/#5-updating-the-newt-tool", 
-            "text": "You will update the newt tool in the same place as you 
initially installed the newt tool.  Start by updating the git repository of the 
newt tool (you can change to a different branch using git checkout [branch] if 
you need to)  Then update each of the tools newt, newtmgr and newtvm as needed  
         $ cd $GOPATH/src/mynewt.apache.org/newt\n        $ git pull\n        $ 
cd newt\n        $ go install\n        $ cd ../newtmgr\n        $ go install\n  
      $ cd ../newtvm\n        $ go install\n        $ ls  $GOPATH /bin/\n       
 newt newtmgr newtvm  That should have updated your newt, newtmgr and newtvm to 
the latest versions based on the git repository you used.", 
-            "title": "5. Updating the Newt tool"
+            "location": 
"/newt/install/newt_mac/#installing-newt-from-the-master-branch", 
+            "text": "We recommend that you use the latest stable release 
version (1.0.0) of newt. If you would like to use the master branch with the 
latest updates, you can install newt from the HEAD of the master branch.    
Notes:    The master branch may be unstable.  This installation will install 
the latest version of Go on your computer, if it is not installed, and compile 
newt locally.    \nIf you previously installed newt using brew, unlink the 
current version:  $brew unlink mynewt-newt  \nInstall the latest unstable 
version of newt from the master branch:  $brew install --HEAD mynewt-newt\n==  
Installing mynewt-newt from runtimeco/mynewt\n==  Cloning 
https://github.com/apache/incubator-mynewt-newt.git\nCloning into  Users/ 
username /Library/Caches/Homebrew/mynewt-newt--git ...\nremote: Counting 
objects: 623, done.\nremote: Compressing objects: 100% (501/501), 
done.\nremote: Total 623 (delta 154), reused 323 (delta 84), pack-reused 
0\nReceiving objects: 100% (623/623), 1.10 
 MiB | 0 bytes/s, done.\nResolving deltas: 100% (154/154), done.\n==  Checking 
out branch master\n==  go install\n\ud83c\udf7a  
/usr/local/Cellar/mynewt-newt/HEAD-409f7d3: 3 files, 10.4MB, built in 10 
seconds\n$newt version\nApache Newt (incubating) version: 1.0.0-dev  \nTo 
switch back to the stable release version (1.0.0) of newt, you can run:  $brew 
switch mynewt-newt 1.0.0\nCleaning 
/usr/local/Cellar/mynewt-newt/1.0.0\nCleaning 
/usr/local/Cellar/mynewt-newt/HEAD-409f7d3\n1 links created for 
/usr/local/Cellar/mynewt-newt/1.0.0\n$newt version\nApache Newt (incubating) 
version: 1.0.0", 
+            "title": "Installing Newt from the Master Branch"
         }, 
         {
             "location": "/newt/install/newt_linux/", 
@@ -356,6 +301,51 @@
             "title": "Install OpenOCD"
         }, 
         {
+            "location": "/os/get_started/docker/", 
+            "text": "Everything You Need in a Docker Container\n\n\nDocker 
provides a quick and easy way to get up and running with Mynewt. The\nnewt 
command line tool and the entire build toolchain is available in a 
single\ndocker container. The container is all that's needed to run your Mynewt 
based\napplication in the simulator.  Enabling USB2 with your docker 
installation will\nallow you to load your application on a supported 
device.\n\n\nDocker is the only supported option if you are working on a 
Windows machine. If you are using Mac OS X or Linux, you have the choice of 
installing a Docker container of tools and toolchains or installing them 
natively. This chapter describes how to set up the Docker image for all three 
platforms.\n\n\n\n\nInstall Docker\n\n\nInstall docker for your platform. \nMac 
OS X\n / \nWindows\n / \nLinux\n\n\nMac and Windows\n\n\nMac and Windows 
require Docker Toolbox to interact with USB devices.  Docker\nfor Mac and 
Docker for Windows do not support U
 SB. Docker Toolbox uses\nVirtualBox and allows you to map USB devices into 
docker containers as\ndescribed below.\n\n\nMake sure to double click the 
Docker Quickstart Terminal application if you're\non Mac or 
Windows.\n\n\nLinux\n\n\nThe docker daemon listens on a Unix domain socket on 
Linux.  That socket is\nowned by root, which means by default you must be root 
to start a container.\nMake sure to follow the optional step of adding yourself 
to the docker group so\nyou can start the newt container as 
yourself.\n\n\n\n\nUse the newt wrapper script\n\n\nUse the newt wrapper script 
to invoke newt.  Create the following file, name it\n\nnewt\n, make it 
executable, and put it in your path. This will allow you to run newt as if it 
was natively installed.  You can now follow the normal tutorials using the newt 
wrapper script.\n\n\n#!/bin/bash\n\n\n\nif\n \n[\n \n$1\n \n=\n \ndebug\n \n]\n 
\n||\n \n[\n \n$1\n \n=\n \nrun\n \n]\n\n\nthen\n\n    
\nti=\n-ti\n\n\nfi\n\n\ndocker run -e \nNEWT_US
 ER=\n$(\nid -u\n)\n -e \nNEWT_GROUP=\n$(\nid -g\n)\n -e 
\nNEWT_HOST=\n$(\nuname\n)\n \n$ti\n --rm --device\n=\n/dev/bus/usb 
--privileged -v \n$(pwd)\n:/workspace -w /workspace mynewt/newt:latest /newt 
\n$@\n\n\n\n\n\n\n\n\nNote 1:\n Remember to point to the correct subdirectory 
level when invoking \nnewt\n. For example, invoke it using \n../newt\n in the 
example below.\n\n\nuser@~/dockertest$ ls\nmyproj  newt\nuser@~/dockertest$ cd 
myproj\n\nuser@~/dockertest/myproj$ ../newt version\n\nApache Newt (incubating) 
version: 0.8.0-b2\n\n\n\n\n\n\n\nNote 2:\n You can upgrade your container by 
running \ndocker pull mynewt/newt:latest\n when updates are made 
available.\n\n\n\n\nEnable USB2 Support for Mac or Windows\n\n\nIf you plan on 
loading your application on an actual device, do the steps 
below.\n\n\n\n\nInstall VirtualBox extension pack\n\n\nDocker uses a VirtualBox 
Linux VM to run containers.  A free VirtualBox\nextension pack is required to 
enable USB2 support.  Download the \nVirtua
 lBox\n5.0.16 Oracle VM VirtualBox Extension\nPack\n\nand double click to 
install\n\n\n\n\nEnable USB2 and select your device\n\n\n\n\n\n\nThe 
\"default\" VM created by docker-machine must first be stopped before you\n  
can enable USB2.  You have two options:\n\n\n\n\nRun the command 
\ndocker-machine stop default\n in the terminal window or\n\n\nUse the 
VirtualBox UI. Right click on \ndefault\n -\n Close -\n Power 
Off\n\n\n\n\n\n\n\n\nEnable USB2 using the VirtualBox UI. Select the 
\"default\"\n  VM-\nSettings-\nPorts-\nUSB2 to enable USB2.   Add your device 
to the USB Device\n  Filters to make the device visible in the docker 
container.  See the image below.\n\n\n\n\n\n\n\n\n\n\nRestart the \"default\" 
VM. You have two options:\n\n\nRun \ndocker-machine start default\n in the 
terminal window or \n\n\nUse the VirtualBox UI. Make sure the \"default\" 
machine is highlighted. Click the green \"Start\" button. Select \"Headless 
Start\".\n\n\n\n\n\n\n\n\n\n\nNote 3\n: When working with ac
 tual hardware, remember that each board has an ID. If you swap boards and do 
not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale 
and the Docker instance may not be able to see the board correctly. For 
example, you may see an error message like \nError: unable to find CMSIS-DAP 
device\n when you try to load or run an image on the board. In that case, you 
need to click on the USB link in VirtualBox UI, remove the existing USB Device 
Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101]\") by clicking on the \"Removes 
selected USB filter\" button, and add a new filter by clicking on the \"Adds 
new USB filter\" button.", 
+            "title": "Docker Container Option"
+        }, 
+        {
+            "location": 
"/os/get_started/docker/#everything-you-need-in-a-docker-container", 
+            "text": "Docker provides a quick and easy way to get up and 
running with Mynewt. The\nnewt command line tool and the entire build toolchain 
is available in a single\ndocker container. The container is all that's needed 
to run your Mynewt based\napplication in the simulator.  Enabling USB2 with 
your docker installation will\nallow you to load your application on a 
supported device.  Docker is the only supported option if you are working on a 
Windows machine. If you are using Mac OS X or Linux, you have the choice of 
installing a Docker container of tools and toolchains or installing them 
natively. This chapter describes how to set up the Docker image for all three 
platforms.", 
+            "title": "Everything You Need in a Docker Container"
+        }, 
+        {
+            "location": "/os/get_started/docker/#install-docker", 
+            "text": "Install docker for your platform.  Mac OS X  /  Windows  
/  Linux", 
+            "title": "Install Docker"
+        }, 
+        {
+            "location": "/os/get_started/docker/#mac-and-windows", 
+            "text": "Mac and Windows require Docker Toolbox to interact with 
USB devices.  Docker\nfor Mac and Docker for Windows do not support USB. Docker 
Toolbox uses\nVirtualBox and allows you to map USB devices into docker 
containers as\ndescribed below.  Make sure to double click the Docker 
Quickstart Terminal application if you're\non Mac or Windows.", 
+            "title": "Mac and Windows"
+        }, 
+        {
+            "location": "/os/get_started/docker/#linux", 
+            "text": "The docker daemon listens on a Unix domain socket on 
Linux.  That socket is\nowned by root, which means by default you must be root 
to start a container.\nMake sure to follow the optional step of adding yourself 
to the docker group so\nyou can start the newt container as yourself.", 
+            "title": "Linux"
+        }, 
+        {
+            "location": "/os/get_started/docker/#use-the-newt-wrapper-script", 
+            "text": "Use the newt wrapper script to invoke newt.  Create the 
following file, name it newt , make it executable, and put it in your path. 
This will allow you to run newt as if it was natively installed.  You can now 
follow the normal tutorials using the newt wrapper script.  #!/bin/bash  if   [ 
  $1   =   debug   ]   ||   [   $1   =   run   ]  then \n     ti= -ti  fi 
\n\ndocker run -e  NEWT_USER= $( id -u )  -e  NEWT_GROUP= $( id -g )  -e  
NEWT_HOST= $( uname )   $ti  --rm --device = /dev/bus/usb --privileged -v  
$(pwd) :/workspace -w /workspace mynewt/newt:latest /newt  $@    Note 1:  
Remember to point to the correct subdirectory level when invoking  newt . For 
example, invoke it using  ../newt  in the example below.  user@~/dockertest$ 
ls\nmyproj  newt\nuser@~/dockertest$ cd myproj user@~/dockertest/myproj$ 
../newt version Apache Newt (incubating) version: 0.8.0-b2   Note 2:  You can 
upgrade your container by running  docker pull mynewt/newt:latest  when updates 
are
  made available.", 
+            "title": "Use the newt wrapper script"
+        }, 
+        {
+            "location": 
"/os/get_started/docker/#enable-usb2-support-for-mac-or-windows", 
+            "text": "If you plan on loading your application on an actual 
device, do the steps below.", 
+            "title": "Enable USB2 Support for Mac or Windows"
+        }, 
+        {
+            "location": 
"/os/get_started/docker/#install-virtualbox-extension-pack", 
+            "text": "Docker uses a VirtualBox Linux VM to run containers.  A 
free VirtualBox\nextension pack is required to enable USB2 support.  Download 
the  VirtualBox\n5.0.16 Oracle VM VirtualBox Extension\nPack \nand double click 
to install", 
+            "title": "Install VirtualBox extension pack"
+        }, 
+        {
+            "location": 
"/os/get_started/docker/#enable-usb2-and-select-your-device", 
+            "text": "The \"default\" VM created by docker-machine must first 
be stopped before you\n  can enable USB2.  You have two options:   Run the 
command  docker-machine stop default  in the terminal window or  Use the 
VirtualBox UI. Right click on  default  -  Close -  Power Off     Enable USB2 
using the VirtualBox UI. Select the \"default\"\n  VM- Settings- Ports- USB2 to 
enable USB2.   Add your device to the USB Device\n  Filters to make the device 
visible in the docker container.  See the image below.      Restart the 
\"default\" VM. You have two options:  Run  docker-machine start default  in 
the terminal window or   Use the VirtualBox UI. Make sure the \"default\" 
machine is highlighted. Click the green \"Start\" button. Select \"Headless 
Start\".      Note 3 : When working with actual hardware, remember that each 
board has an ID. If you swap boards and do not refresh the USB Device Filter on 
the VirtualBox UI, the ID might be stale and the Docker instance may not be abl
 e to see the board correctly. For example, you may see an error message like  
Error: unable to find CMSIS-DAP device  when you try to load or run an image on 
the board. In that case, you need to click on the USB link in VirtualBox UI, 
remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG 
CMSIS-DAP[0101]\") by clicking on the \"Removes selected USB filter\" button, 
and add a new filter by clicking on the \"Adds new USB filter\" button.", 
+            "title": "Enable USB2 and select your device"
+        }, 
+        {
             "location": "/os/get_started/project_create/", 
             "text": "Create Your First Mynewt Project\n\n\nThis page shows how 
to create a Mynewt Project using the \nnewt\n command-line 
tool.\n\n\n\n\nPre-Requisites\n\n\n\n\nNewt:\n\n\nIf you have taken the Docker 
route, you have already installed Newt.\n\n\nIf you have taken the native 
install route, you have to ensure that you have installed the Newt tool 
following the instructions for \nMac\n or \nLinux\n as appropriate, and that 
the \nnewt\n command is in your system path. \n\n\n\n\n\n\nYou must have 
Internet connectivity to fetch remote Mynewt components.\n\n\nYou must 
\ninstall the compiler tools\n to \nsupport native compiling to build the 
project this tutorial creates.  \n\n\n\n\n\n\nNewt New\n\n\nChoose a project 
name. For this tutorial we will call this project \nmyproj\n.\nEnter the \nnewt 
new myproj\n command. \n\n\n$ newt new myproj\nDownloading project skeleton 
from apache/incubator-mynewt-blinky...\nInstalling skeleton in 
myproj...\nProject myproj successfully crea
 ted.\n\n\n\n\n\n\n\nNewt populates this new project with a base skeleton of a 
new Apache Mynewt \nproject.  It has the following structure. \n\n\nNote\n: If 
you do not have \ntree\n, install it by running \nbrew install tree\n.\n\n\n$ 
cd myproj\n$ tree \n.\n\u251c\u2500\u2500 DISCLAIMER\n\u251c\u2500\u2500 
LICENSE\n\u251c\u2500\u2500 NOTICE\n\u251c\u2500\u2500 
README.md\n\u251c\u2500\u2500 apps\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
blinky\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 pkg.yml\n\u2502\u00a0\u00a0   
  \u2514\u2500\u2500 src\n\u2502\u00a0\u00a0         \u2514\u2500\u2500 
main.c\n\u251c\u2500\u2500 project.yml\n\u2514\u2500\u2500 targets\n    
\u251c\u2500\u2500 my_blinky_sim\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 
pkg.yml\n    \u2502\u00a0\u00a0 \u2514\u2500\u2500 target.yml\n    
\u2514\u2500\u2500 unittest\n        \u251c\u2500\u2500 pkg.yml\n        
\u2514\u2500\u2500 target.yml\n\n6 directories, 11 files\n\n\n\n\n\n\n\nThe 
Newt tool has installed the base files for a
  project comprising the following:\n\n\n\n\nThe file \nproject.yml\n contains 
the repository list that the project uses to fetch\nits packages. Your project 
is a collection of repositories.  In this case, the project just\ncomprises the 
core mynewt repository.  Later you will add more repositories\nto include other 
mynewt components.\n\n\nThe file \napps/blinky/pkg.yml\n contains the 
description of your application\nand its package dependencies.\n\n\nA 
\ntarget\n directory containing \nmy_blinky_sim\n, a target descriptor used 
to\nbuild a version of myproj.  Use \nnewt target show\n to see available build 
\ntargets.\n\n\nA non-buildable target called \nunittest\n.  This is used 
internally by \nnewt\n and is not a formal build target.\n\n\n\n\nNOTE:\n The 
actual code and package files are not installed \n(except the template for 
\nmain.c\n).  See the next step for installing the packages.\n\n\nNOTE:\n By 
default newt uses the code in the master branch. This is the latest stable\ncode
  for newt. If you need to use a different branch, you can set this in the 
project.yml\nfile. \n\n\nrepository.apache-mynewt-core:\n    type: github\n    
vers: 1-latest\n    user: apache\n    repo: 
incubator-mynewt-core\n\n\n\n\n\nChanging to 1-dev will put you on the develop 
branch. \nThe Develop Branch may not be stable and you may encounter bugs or 
other problems.\n\n\n\n\nNewt Install\n\n\nOnce you've switched into your new 
project's directory, the next step is to fetch\nany dependencies this project 
has.  By default, all Newt projects rely on a\nsingle remote repository, 
apache-mynewt-core.  The \nnewt install\n command will\nfetch this 
repository.\n\n\n$ newt install\napache-mynewt-core\n\n\n\n\n\nNOTE:\n 
\napache-mynewt-core\n may take a while to download.  To see progress,\nuse the 
\n-v\n (verbose) option to install. \n\n\n\n\nOnce \nnewt install\n has 
successfully finished, the contents of \napache-mynewt-core\n will have been 
downloaded into your local directory.  You can v
 iew them by issuing the following commands in the base directory of the new 
project. The actual output will depend on what is in the latest 'master' branch 
you have pulled from.\n\n\n$ tree -L 2 
repos/apache-mynewt-core/\n\nrepos/apache-mynewt-core/\n\u251c\u2500\u2500 
CODING_STANDARDS.md\n\u251c\u2500\u2500 DISCLAIMER\n\u251c\u2500\u2500 
LICENSE\n\u251c\u2500\u2500 NOTICE\n\u251c\u2500\u2500 
README.md\n\u251c\u2500\u2500 RELEASE_NOTES.md\n\u251c\u2500\u2500 
apps\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 blecent\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 blehci\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
bleprph\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bleprph_oic\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 blesplit\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
bletest\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bletiny\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bleuart\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
boot\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 fat2native\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 ffs2native\n\u25
 02\u00a0\u00a0 \u251c\u2500\u2500 ocf_sample\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 slinky\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
slinky_oic\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 spitest\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 splitty\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 testbench\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 timtest\n\u251c\u2500\u2500 boot\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 boot_serial\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
bootutil\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 split\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 split_app\n\u251c\u2500\u2500 compiler\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 arm-none-eabi-m0\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
arm-none-eabi-m4\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
gdbmacros\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mips\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 sim\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
sim-mips\n\u251c\u2500\u2500 crypto\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
mbedtls\n\u25
 02\u00a0\u00a0 \u2514\u2500\u2500 tinycrypt\n\u251c\u2500\u2500 
docs\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 doxygen.xml\n\u251c\u2500\u2500 
encoding\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 base64\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 cborattr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
json\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 tinycbor\n\u251c\u2500\u2500 
fs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 disk\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 fatfs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
fcb\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 fs\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 nffs\n\u251c\u2500\u2500 hw\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bsp\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
cmsis-core\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 drivers\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 hal\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
mcu\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 scripts\n\u251c\u2500\u2500 
kernel\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 os\n\u251c\u2500\u2500 
libc\n\u2502\u00a0\u00a0 \u2514\u250
 0\u2500 baselibc\n\u251c\u2500\u2500 mgmt\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 imgmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
mgmt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 newtmgr\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 oicmgr\n\u251c\u2500\u2500 net\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 ip\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
nimble\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 oic\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 wifi\n\u251c\u2500\u2500 project.yml\n\u251c\u2500\u2500 
repository.yml\n\u251c\u2500\u2500 sys\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
config\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 console\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 coredump\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
defs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 flash_map\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 id\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
log\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mfg\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 reboot\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
shell\n\u2502\u00a0\u00a0 \u251c\u2
 500\u2500 stats\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
sysinit\n\u251c\u2500\u2500 targets\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
unittest\n\u251c\u2500\u2500 test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
crash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
flash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 runtest\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 testutil\n\u251c\u2500\u2500 time\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 datetime\n\u2514\u2500\u2500 util\n    \u251c\u2500\u2500 
cbmem\n    \u251c\u2500\u2500 crc\n    \u2514\u2500\u2500 mem\n\n94 
directories, 9 files\n\n\n\n\n\nAs you can see, the core of the Apache Mynewt 
operating system has been brought \ninto your local directory. \n\n\n\n\nTest 
the project's packages\n\n\nYou have already built your first basic project. 
You can ask Newt to execute the unit tests in a package. For example, to test 
the \nsys/config\n package in the \napache-mynewt-core\n repo, call newt as 
shown below.\n\n\n$ newt test @apache-mynewt-core/sys/config\
 nTesting package @apache-mynewt-core/sys/config/test-fcb\nCompiling 
bootutil_misc.c\nCompiling image_ec.c\nCompiling image_rsa.c\nCompiling 
image_validate.c\n\n    ...\n\nLinking 
~/dev/myproj/bin/targets/unittest/sys_config_test-fcb/app/sys/config/test-fcb/sys_config_test-fcb.elf\nExecuting
 test: 
~/dev/myproj/bin/targets/unittest/sys_config_test-fcb/app/sys/config/test-fcb/sys_config_test-fcb.elf\nTesting
 package @apache-mynewt-core/sys/config/test-nffs\nCompiling 
repos/apache-mynewt-core/encoding/base64/src/hex.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_cli.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_dirent.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_mkdir.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_mount.c\nCompiling 
repos/apache-mynewt-core/encoding/base64/src/base64.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_file.c\nCompiling 
repos/apache-mynewt-core/fs/disk/src/disk.c\nCompiling 
repos/apache-mynewt-core/fs/fs/src/fs_nmgr.c\nCompiling repos/a
 pache-mynewt-core/fs/fs/src/fsutil.c\nCompiling 
repos/apache-mynewt-core/fs/nffs/src/nffs.c\n\n     ...\n\nLinking 
~/dev/myproj/bin/targets/unittest/sys_config_test-nffs/app/sys/config/test-nffs/sys_config_test-nffs.elf\nExecuting
 test: 
~/dev/myproj/bin/targets/unittest/sys_config_test-nffs/app/sys/config/test-nffs/sys_config_test-nffs.elf\nPassed
 tests: [sys/config/test-fcb sys/config/test-nffs]\nAll tests 
passed\n\n\n\n\n\nNOTE:\n If you've installed the latest gcc using homebrew on 
your Mac, you will likely be running gcc-6. Make sure you have adjusted the 
compiler.yml configuration to reflect that as noted in \nNative Install 
Option\n. You can choose to downgrade to gcc-5 in order to use the default gcc 
compiler configuration for MyNewt.\n\n\nNOTE:\n If you are running the standard 
gcc for 64-bit machines, it does not support 32-bit. In that case you will see 
compilation errors. You need to install multiboot gcc (e.g. gcc-multilib if you 
running on a 64-bit Ubuntu).\n\n\n$ brew 
 uninstall gcc-6\n$ brew link gcc-5\n\n\n\n\n\n\n\nTo test all the packages in 
a project, specify \nall\n instead of the package name.\n\n\n$ newt test 
all\nTesting package @apache-mynewt-core/boot/boot_serial/test\nCompiling 
repos/apache-mynewt-core/boot/boot_serial/test/src/boot_test.c\nCompiling 
repos/apache-mynewt-core/boot/boot_serial/test/src/testcases/boot_serial_setup.c\n\n
     ...\n\nLinking 
~/dev/myproj/bin/targets/unittest/boot_boot_serial_test/app/boot/boot_serial/test/boot_boot_serial_test.elf\n\n...lots
 of compiling and testing...\n\nLinking 
~/dev/myproj/bin/targets/unittest/util_cbmem_test/app/util/cbmem/test/util_cbmem_test.elf\nExecuting
 test: 
~/dev/myproj/bin/targets/unittest/util_cbmem_test/app/util/cbmem/test/util_cbmem_test.elf\nPassed
 tests: [boot/boot_serial/test boot/bootutil/test crypto/mbedtls/test 
encoding/base64/test encoding/cborattr/test encoding/json/test fs/fcb/test 
fs/nffs/test kernel/os/test net/ip/mn_socket/test net/nimble/host/test 
net/oic/test sys
 /config/test-fcb sys/config/test-nffs sys/flash_map/test sys/log/full/test 
util/cbmem/test]\nAll tests passed\n\n\n\n\n\n\n\nBuild the Project\n\n\nTo 
build and run your new application, simply issue the following command:\n\n\n$ 
newt build my_blinky_sim \nBuilding target targets/my_blinky_sim\nCompiling 
repos/apache-mynewt-core/hw/hal/src/hal_common.c\nCompiling 
repos/apache-mynewt-core/hw/drivers/uart/src/uart.c\nCompiling 
repos/apache-mynewt-core/hw/hal/src/hal_flash.c\nCompiling 
repos/apache-mynewt-core/hw/bsp/native/src/hal_bsp.c\nCompiling 
repos/apache-mynewt-core/hw/drivers/uart/uart_hal/src/uart_hal.c\nCompiling 
apps/blinky/src/main.c\n\n    ...\n\n\nArchiving sys_mfg.a\nArchiving 
sys_sysinit.a\nArchiving util_mem.a\nLinking 
~/dev/myproj/bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf\nTarget 
successfully built: targets/my_blinky_sim\n\n\n\n\n\n\n\nRun the 
Project\n\n\nYou can run the simulated version of your project and see the 
simulated LED\nblink. If you are using n
 ewt docker, use \nnewt run\n to run the simulated binary.\n\n\n$ newt run 
my_blinky_sim\nLoading app image into slot 1\n    ...\nDebugging 
~/dev/myproj/bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf\n    
...\nReading symbols from 
/bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf...done.\n(gdb)\n\n\n\n\n\nType
 \nr\n at the \n(gdb)\n prompt to run the project. You will see an output 
indicating that the hal_gpio pin is toggling between 1 and 0 in a simulated 
blink.\n\n\nIf you natively install the toolchain, you can either use \nnewt 
run\n or call the binary directly. Generally, \nnewt run\n is the expected way 
to call things.\n\n\n$ 
./bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf\nhal_gpio set pin  1 to 
0\n\n\n\n\n\n\n\nComplete\n\n\nCongratulations, you have created your first 
project!  The blinky application\nis not terribly exciting when it is run in 
the simulator, as there is no LED to\nblink.  Apache Mynewt has a lot more 
functionality than just running simulated
 \napplications.  It provides all the features you'll need to cross-compile 
your\napplication, run it on real hardware and develop a full featured 
application.\n\n\nIf you're interested in learning more, a good next step is to 
dig in to one of\nthe \ntutorials\n and get a Mynewt project running on real 
hardware.\n\n\nHappy Hacking!", 
             "title": "Create Your First Project"
@@ -1227,7 +1217,7 @@
         }, 
         {
             "location": "/os/tutorials/add_newtmgr/", 
-            "text": "Enabling Newt Manager in Your Application\n\n\n\nIn order 
for your application to communicate with the newtmgr tool and process Newt 
Manager commands, you must \nenable Newt Manager device management and the 
support to process Newt Manager commands \nin your application.  This tutorial 
explains how to add the support to your application.\n\n\nThis tutorial assumes 
that you have read the \nDevice Management with Newt Manager\n\nguide and are 
familiar with the \nnewtmgr\n and \noicmgr\n frameworks and all the options 
that are available \nto customize your application.\n\n\nThis tutorial shows 
you how to configure your application to:\n\n\n\n\nUse the newtmgr 
framework.\n\n\nUse serial transport to communicate with the newtmgr 
tool.\n\n\nSupport all Newt Manager commands.\n\n\n\n\nSee \nOther 
Configuration Options\n on how to customize your 
application.\n\n\n\n\nPrerequisites\n\n\nEnsure that you have met the following 
prerequisites before continuing with this tuto
 rial:\n\n\n\n\nInstall the \nnewt tool\n. \n\n\nInstall the \nnewtmgr 
tool\n.\n\n\nHave Internet connectivity to fetch remote Mynewt 
components.\n\n\nInstall the \ncompiler tools\n to \nsupport native compiling 
to build the project this tutorial creates.  \n\n\nHave a cable to establish a 
serial USB connection between the board and the laptop.\n\n\n\n\n\n\nUse an 
Existing Project\n\n\nWe assume that you have worked through at least some of 
the other tutorials and have an existing project.\nIn this example, we modify 
the \nble_tiny\n project to enable Newt Manager support. \nWe call our 
application \nmyble\n.  You can create the application using any name you 
choose. \n\n\nModify Package Dependencies and Configurations\n\n\nAdd the 
following packages to the \npkg.deps\n parameter in your target or application 
\npkg.yml\n file:\n\n\npkg.deps:\n    - mgmt/newtmgr\n    - 
mgmt/newtmgr/transport/nmgr_shell\n    - mgmt/imgmgr\n    - sys/log/full\n    - 
sys/stats/full\n    - sys/config\n   
  - test/crash_test\n    - test/runtest\n\n\n\n\n\nEach package provides the 
following Newt Manager functionality:\n\n\n\n\nmgmt/newtmgr\n: Supports the 
newtmgr framework and the \nNewt Manager \necho\n, \ntaskstats\n \nmpstats\n, 
\ndatetime\n, and \nreset\n commands.\n\n\nmgmt/newtmgr/transport/nmgr_shell\n: 
Supports serial transport.\n\n\nmgmt/imgmgr\n: Supports the \nnewtmgr image\n 
command \n\n\nsys/log/full\n : Supports the \nnewtmgr log\n 
command.\n\n\nsys/stats/full\n: Supports the \nnewtmgr stat\n command. 
\n\n\nsys/config\n: Supports the \nnewtmgr config\n command. 
\n\n\ntest/crash_test\n: Supports the \nnewtmgr crash\n command. 
\n\n\ntest/runtest\n: Supports the \nnewt run\n command.\n\n\n\n\nAdd the 
following configuration setting values to the \nsyscfg.vals\n parameter in the 
target or \napplication \nsyscfg.yml\n file:\n\n\nsyscfg.vals:\n    
LOG_NEWTMGR: 1\n    STATS_NEWTMGR: 1\n    CONFIG_NEWTMGR: 1\n    
CRASH_TEST_NEWTMGR: 1\n    RUNTEST_NEWTMGR: 1\n    SHELL_TASK: 1\n
 \n\n\n\n\nThe first five configuration settings enable support for the Newt 
Manager \nlog\n, \nstat\n, \nconfig\n, \ncrash\n, \nand \nrun\n commands. The 
\nSHELL_TASK\n setting enables the shell for serial transport.\n\n\nNote that 
you may need to override additional configuration settings that are specific to 
each package to customize the \npackage functionality.\n\n\n\n\nModify the 
Source\n\n\nBy default, the \nmgmt\n package uses the Mynewt default event 
queue to receive request events from the newtmgr tool. These events are 
processed in the context of the application main task. \n\n\nYou can specify a 
different event queue for the package to use.  If you choose to use a dedicated 
event queue, you must create a task to process events from this event queue.  
The \nmgmt\n package executes and handles newtmgr request events in the context 
of this task.  The \nmgmt\n package exports the \nmgmt_evq_set()\n function 
that allows you to specify an event queue. \n\n\nThis example uses the
  Mynewt default event queue and you do not need to modify your application 
source.  \n\n\nIf you choose to use a different event queue, see \nEvents and 
Event Queues\n for details on how to initialize an event queue and create a 
task to process the events. You will also need to modify your \nmain.c\n to add 
the call to the \nmgmt_evq_set()\n function as follows:\n\n\nAdd the 
\nmgmt/mgmt.h\n header file: \n\n\n#include \nmgmt/mgmt.h\n\n\n\n\n\n\n\nAdd 
the call to specify the event queue. In the \nmain()\n function, scroll down to 
the  \nwhile (1)\n loop and add the following statement above the loop: 
\n\n\nmgmt_evq_set(\nmy_eventq)\n\n\n\n\n\nwhere \nmy_eventq\n is an event 
queue that you have initialized.\n\n\nBuild the Targets\n\n\nBuild the two 
targets as follows:\n\n\n$ newt build nrf52_boot\n\nsnip\n\nApp successfully 
built: ./bin/nrf52_boot/apps/boot/boot.elf\n$ newt build myble\nCompiling 
hci_common.c\nCompiling util.c\nArchiving nimble.a\nCompiling 
os.c\n\nsnip\n\n\n\n\n\n\n\
 n\nCreate the Application Image\n\n\nGenerate a signed application image for 
the \nmyble\n target. You can use any version number you choose.\n\n\n$ newt 
create-image myble 1.0.0\nApp image successfully generated: 
./bin/makerbeacon/apps/bletiny/bletiny.img\nBuild manifest: 
./bin/makerbeacon/apps/bletiny/manifest.json\n\n\n\n\n\n\n\nLoad the 
Image\n\n\nEnsure the USB connector is in place and the power LED on the board 
is lit. Turn the power switch on your board off, \nthen back on to reset the 
board after loading the image.\n\n\n$ newt load nrf52_boot\n$ newt load 
myble\n\n\n\n\n\nSet Up a Connection Profile\n\n\nThe newtmgr tool requires a 
connection profile in order to connect to your board. If you have not done so, 
\nfollow the \ninstructions\n for setting up your connection 
profile.\n\n\n\n\nConnecting with Your Application\n\n\nOnce you have a 
connection profile set up, you can connect to your device with \nnewtmgr -c 
myconn \ncommand\n to run commands in your application. \n\n
 \nIssue the \necho\n command to ensure that your application is communicating 
with the newtmgr tool:\n\n\n# newtmgr -c myconn echo 
hello\nhello\n\n\n\n\n\nTest your application to ensure that it can process a 
Newt Manager command that is supported by a different package.\nIssue the 
\nstat\n command to see the BLE stats. \n\n\nnewtmgr -c myconn stat 
ble_att\nReturn Code = 0\nStats Name: ble_att\n  prep_write_req_tx: 0\n  
indicate_req_tx: 0\n  write_rsp_tx: 0\n  find_info_req_tx: 0\n  read_rsp_rx: 
0\n  read_group_type_rsp_tx: 0\n  indicate_req_rx: 0\n  find_type_value_rsp_tx: 
0\n\n       ...\n\n  read_req_rx: 0\n  read_type_req_rx: 0\n  notify_req_tx: 
0\n  mtu_rsp_tx: 0\n  find_type_value_req_rx: 0\n  read_blob_rsp_rx: 0\n  
read_group_type_req_tx: 0\n  exec_write_req_tx: 0\n\n\n\n\n\nYour application 
is now able to communicate with the newtmgr tool.\n\n\nOther Configuration 
Options\n\n\nThis section explains how to customize your application to use 
other Newt Manager protocol options.
 \n\n\nNewtmgr Framework Transport Protocol

<TRUNCATED>

Reply via email to