http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/89c943e1/develop/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json
index 2ed4fec..03bdf0c 100644
--- a/develop/mkdocs/search_index.json
+++ b/develop/mkdocs/search_index.json
@@ -2,10 +2,20 @@
     "docs": [
         {
             "location": "/", 
-            "text": "Apache Mynewt is a real-time, modular operating system 
for connected IoT devices that need to operate for long periods of time under 
power, memory, and storage constraints. The first connectivity stack offered is 
BLE 4.2.", 
+            "text": "", 
             "title": "Home"
         }, 
         {
+            "location": "/pages/ble/", 
+            "text": "", 
+            "title": "Bluetooth Low Energy 4.2"
+        }, 
+        {
+            "location": "/pages/configurability/", 
+            "text": "", 
+            "title": "Newt build and configuration Tool"
+        }, 
+        {
             "location": "/quick-start/", 
             "text": "Get set\n\n\nApache Mynewt currently offers two ways to 
quickly get set up, each appealing to different personal preferences and levels 
of familiarity with embedded systems.\n\n\n\n\n\n\n\n\nOption 1:\n All-in-one 
docker container that bundles Newt tool, developer toolchains and libraries. 
For this option, go to \nDocker instructions\n\n\n\n\n\n\nOption 2:\n 
Step-by-step instructions to install the Newt tool, developer toolchains and 
libraries natively on your computer. For this option, go to \nNative 
Setup\n\n\n\n\n\n\n\n\nGo!\n\n\nStart a new project as explained under \nCreate 
Your First Project\n. The core Mynewt OS is automatically downloaded as part of 
the project installation.\n\n\n\n\n\n\n\n\nWhen you \nCreate Your First 
Project\n you define a simulated target and run Project Blinky, the Hello World 
equivalent in the embedded world.\n\n\n\n\n\n\nIf you have one of the supported 
\nboards\n, you can make real LEDs blink in \nProject Blinky\n. Simply choose
  the appropriate tutorial for the board and proceed.\n\n\n\n\n\n\n\n\nAnd 
More...\n\n\nExplore the \nTutorials\n section for other interesting projects 
or simply to learn more about Mynewt's capabilities and get familiar with its 
use.", 
             "title": "Quick Start"
@@ -46,6 +56,11 @@
             "title": "FAQ"
         }, 
         {
+            "location": "/talks/", 
+            "text": "", 
+            "title": "Talks"
+        }, 
+        {
             "location": "/download/", 
             "text": "Latest Apache Mynewt OS Release\n\n\n\n\nRelease Version: 
Mynewt 0.9.0-incubating\n\n\nRelease Date: June 6, 2016\n\n\nRelease Notes\n 
\n\n\n\n\nFresh install\n\n\nIf you are brand new to Mynewt, go to \nQuick 
Start\n. The Newt tool will automatically download the latest release.\n\n\nIf 
you have already installed the Newt tool but not started any project yet, go to 
\nCreate Your First Project\n. The Newt tool will automatically download the 
latest release.\n\n\nUpgrade\n\n\nIf you have already installed the Newt tool 
and started a project that installed a previous version of Apache Mynewt,  
upgrade using Newt tool:\n\n\n$ newt upgrade\n\n\n\n\n\nCode in 
development\n\n\nWhile the use of one of the official releases listed above is 
generally recommended, you may be interested in seeing work in 
progress.\n\n\nThe most recent code resides in the \ndevelop\n branch of the 
Mynewt git repository. You may view or fork the repositories for Mynewt OS and 
Newt Tool from 
 the Apache mirror on github.com.\n\n\n\n\nApache Mynewt OS mirror on 
github.com\n\n\nApache Newt Tool mirror on github.com\n\n\n\n\nAlternatively, 
you can clone the desired branch using git:\n\n\n$ git clone 
git://github.com/apache/incubator-mynewt-core.git -b develop\n$ git clone 
git://github.com/apache/incubator-mynewt-newt.git -b develop\n\n\n\n\n\n\n\nA 
relatively stable version of code in progress can be found in the \nmaster\n 
branch of the Mynewt git repository.\nYou may access the code for Mynewt OS and 
Newt Tool from the 'master` branch of the Apache mirror on github.com or clone 
it using git:\n\n\n$ git clone 
git://github.com/apache/incubator-mynewt-core.git\n$ git clone 
git://github.com/apache/incubator-mynewt-newt.git\n\n\n\n\n\n\n\nFor general 
information on using Git at Apache, go to 
https://git-wip-us.apache.org.\n\n\n\n\nRelease Archives\n\n\n\n\nMynewt 
0.8.0-incubating, \nRelease Notes\n\n\nMynewt 0.8.0-b2-incubating, \nRelease 
Notes", 
             "title": "Download"
@@ -267,7 +282,7 @@
         }, 
         {
             "location": "/newt/install/newt_linux/", 
-            "text": "Install newt tool on Linux\n\n\n\n\nGetting your Linux 
box Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, 
follow the following steps:\n\n\n1. Install git, libcurl\n\n\n        $ sudo 
apt-get install git \n        $ sudo apt-get install libcurl4-gnutls-dev 
\n\n\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        $ 
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\n\n\nNext, 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 repo 
into your local Go environment.\n\n\nNote\n: The Newt tool requires Go version 
1.5 or later. It uses the support for \"vendoring\" that was added in Go 1.5. 
Depending on the Ubuntu version you have, the following may install an earlier 
version. In that case, download the latest package of Go 1.5 
 or 1.6 from \nhttps://golang.org/dl/\n. You can search for more detailed 
instructions such as installing Go 1.6 on Ubuntu 14.04 which can be found at 
\nhttps://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04\n.\n\n\n\n\n\n\n
        $ sudo apt-get install golang \n\n\n\n\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\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. If you get errors it is likely because of path resolution issues. 
Try \ngo build\n  followed by \ngo install\n in that case.\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 project based on the Mynewt\n 
       operating system. Newt provides both build and package management in a\n 
       single tool, which allows you to compose an embedded workspace, and 
set\n        of projects, and then build the necessary artifacts from those 
projects.\n        For more information on the Mynewt operating system, please 
visit\n        https://www.github.com/mynewt/documentation.\n\n        Please 
use the newt help command, and specify the name of the command\n        you 
want 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 \n
 command-name\n.  If not specified, print this message.\n\n\n        Available 
Commands:\n         version     Display the Newt version number.\n         
target      Set and view target information\n         egg         Commands to 
list and inspect eggs on a nest\n         nest        Commands to manage nests 
\n clutches (remote egg repositories)\n         help        Help about any 
command\n\n        Flags:\n         -h, --help=false: help for newt\n         
-l, --loglevel=\nWARN\n: Log level, defaults to WARN.\n         -q, 
--quiet=false: Be quiet; only display error output.\n         -s, 
--silent=false: Be silent; don\nt output anything.\n         -v, 
--verbose=false: Enable verbose output when executing commands.\n\n\n        
Use \nnewt help [command]\n for more information about a 
command.\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 new
 t 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 and 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": "Install newt tool on Linux\n\n\n\n\nGetting your Linux 
box Ready\n\n\nIf you want to build the \nnewt\n tool from its source code, 
follow the following steps:\n\n\n1. Install git, libcurl\n\n\n        $ sudo 
apt-get install git \n        $ sudo apt-get install libcurl4-gnutls-dev 
\n\n\n\n\n\nNOTE:\n On 64-bit host, you may also need to install gcc-multilib, 
if you encounter compilation errors related to 'sys/cdefs.h'\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 parlance as a 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 work
 space 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        $ 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\n\n\nNext, 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 repo 
into your local Go environment.\n\n\nNote\n: The Newt tool requires Go version 
1.5 or later. It uses the support for \"vendoring\" that was added in Go 1.5. 
Depend
 ing on the Ubuntu version you have, the following may install an earlier 
version. In that case, download the latest package of Go 1.5 or 1.6 from 
\nhttps://golang.org/dl/\n. You can search for more detailed instructions such 
as installing Go 1.6 on Ubuntu 14.04 which can be found at 
\nhttps://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04\n.\n\n\n\n\n\n\n
        $ sudo apt-get install golang \n\n\n\n\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\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.g
 o 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. If you get errors it is 
likely because of path resolution issues. Try \ngo build\n  followed by \ngo 
install\n in that case.\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 a
 nd 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 project based on the Mynewt\n        
operating system. Newt provides both build and package management in a\n        
single tool, which allows you to compose an embedded workspace, and set\n       
 of projects, and then build the necessary artifacts from those projects.\n     
   For more information on the Mynewt operating system, please visit\n        
https://www.github.com/mynewt/documentation.\n\n        Please use the newt 
help command, and specify the name of the command\n        you want 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\n        Available Commands:\n         
version     Display the Newt version number.\n         target      Set and view 
target information\n         egg         Commands to list and inspect eggs on a 
nest\n         nest        Commands to manage nests \n clutches (remote egg 
repositories)\n         help        Help about any command\n\n        Flags:\n  
       -h, --help=false: help for newt\n         -l, --loglevel=\nWARN\n: Log 
level, defaults to WARN.\n         -q, --quiet=false: Be quiet; only display 
error output.\n         -s, --silent=false: Be silent; don\nt output 
anything.\n         -v, --verbose=false: Enable verbose output when executing 
commands.\n\n\n        Use \nnewt help [command]\n for more information about a 
command.\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 and 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.", 
             "title": "Install Newt on Linux"
         }, 
         {
@@ -282,12 +297,12 @@
         }, 
         {
             "location": "/newt/install/newt_linux/#1-install-git-libcurl", 
-            "text": "$ sudo apt-get install git \n        $ sudo apt-get 
install libcurl4-gnutls-dev", 
+            "text": "$ sudo apt-get install git \n        $ sudo apt-get 
install libcurl4-gnutls-dev   NOTE:  On 64-bit host, you may also need to 
install gcc-multilib, if you encounter compilation errors related to 
'sys/cdefs.h'", 
             "title": "1. Install git, libcurl"
         }, 
         {
             "location": 
"/newt/install/newt_linux/#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, 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.  Note : The 
Newt tool requires Go version 1.5 or later. It uses the support for 
\"vendoring\" that was added in Go 1.5. Depending on the Ubuntu version you 
have, the following may install an earlier version. In that case, download the 
latest package of Go 1.5 or 1.6 from  https://golang.org/dl/ . You can search 
for more detailed instructions such as installing Go 1.6 on Ubuntu 14.04 which 
can be found at  
https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04
 .            $ sudo apt-get install golang", 
+            "text": "Go language environment dictates a directory structure. 
Known in Go parlance as a 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, 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.  Note : The 
Newt tool requires Go version 1.5 or later. It uses the support for 
\"vendoring\" that was added in Go 1.5. Depending on the Ubuntu version you 
have, the following may install an earlier version. In that case, download the 
latest package of Go 1.5 or 1.6 from  https://golang.org/dl/ . You can search 
for more detailed instructions such as installing Go 1.6 on Ubuntu 14.04 which 
can be found at  
https://www.digitalocean.com/community/tutorials/how-to-install-go-1-6-on-ubuntu-14-04
 .            $ sudo apt-get install golang", 
             "title": "2. Install Go, the programming language"
         }, 
         {
@@ -307,7 +322,7 @@
         }, 
         {
             "location": "/os/get_started/cross_tools/", 
-            "text": "Installing Cross Tools for ARM\n\n\nThis page shows how 
to install tools on your laptop/computer to use for direct communication (e.g. 
for debugging) with some ARM based HW platforms running Apache Mynewt. You will 
also have to use the Newt tool installed to run natively on your machine. 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 
installing the tools directly on your MAC and Linux machine. See the relevant 
sections below.\n\n\n\n\nInstall ARM Cross tools in Mac OS X\n\n\nInstall Tool 
Chain\n\n\nInstall the PX4 Toolchain and check the version installed. ARM 
maintains a\npre-built GNU toolchain with a GCC source branch targeted at 
Embedded ARM\nProcessors, namely Cortex-R/Cortex-M processor families. After 
installing,\nensure that the symbolic link installed by Homebrew points to the 
correct\nversion of the debugger.\n\n\n$ brew tap PX4/homebrew-px4\n$ brew upda
 te\n$ brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  
\narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 
(release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free 
Software Foundation, Inc.\nThis is free software; see the source for copying 
conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR 
A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 
aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n 
/usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\n\n\nNote:\n
 If no version is specified, brew will install the latest version\navailable. 
Mynewt OS will eventually work with multiple versions available,\nincluding the 
latest releases. However, at present we have tested only with\nthis version and 
recommend it for getting started. \n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open 
On-Chip Debugger) is open-source software that allows you
 r\ncomputer to interface with the JTAG debug connector on a variety of boards. 
 A\nJTAG connection lets you debug and test embedded target devices. For more 
on\nOpenOCD go to \nhttp://openocd.org\n.\n\n\n$ brew install open-ocd\n$ which 
openocd\n/usr/local/bin/openocd\n$ ls -l $(which openocd)\nlrwxr-xr-x  1 
\nuser\n  admin  36 Sep 17 16:22 /usr/local/bin/openocd -\n 
../Cellar/open-ocd/0.9.0/bin/openocd\n\n\n\n\n\n\n\nInstall ARM cross arm tools 
for Linux\n\n\nInstall Tool Chain\n\n\nOn a Debian-based Linux distribution, 
gcc 4.9.3 for ARM can be installed with\napt-get as documented below. The steps 
are explained in depth 
at\n\nhttps://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded\n.\n\n\n$
 sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo 
add-apt-repository ppa:terry.guo/gcc-arm-embedded \n$ sudo apt-get update \n$ 
sudo apt-get install gcc-arm-none-eabi\n$ sudo apt-get install 
gdb-arm-none-eabi\n\n\n\n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open On-Chi
 p Debugger) is open-source software that allows your\ncomputer to interface 
with the JTAG debug connector on a variety of boards.  A\nJTAG connection lets 
you debug and test embedded target devices. For more on\nOpenOCD go to 
\nhttp://openocd.org\n.\n\n\nIf you are running Ubuntu 15.x, then you are in 
luck and you can simply run: \n\n\n$ sudo apt-get install openocd 
\n\n\n\n\n\nFor this project, you should download the openocd 0.8.0 package 
from\n\nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n.\nThe direct link 
to the amd64 build 
is\n\nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n.";, 
+            "text": "Installing Cross Tools for ARM\n\n\nThis page shows how 
to install tools on your laptop/computer to use for direct communication (e.g. 
for debugging) with some ARM based HW platforms running Apache Mynewt. You will 
also have to use the Newt tool installed to run natively on your machine. 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 
installing the tools directly on your MAC and Linux machine. See the relevant 
sections below.\n\n\n\n\nInstall ARM Cross tools in Mac OS X\n\n\nInstall Tool 
Chain\n\n\nInstall the PX4 Toolchain and check the version installed. ARM 
maintains a\npre-built GNU toolchain with a GCC source branch targeted at 
Embedded ARM\nProcessors, namely Cortex-R/Cortex-M processor families. After 
installing,\nensure that the symbolic link installed by Homebrew points to the 
correct\nversion of the debugger.\n\n\n$ brew tap PX4/homebrew-px4\n$ brew upda
 te\n$ brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  
\narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 
(release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free 
Software Foundation, Inc.\nThis is free software; see the source for copying 
conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR 
A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 
aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n 
/usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\n\n\nNote:\n
 If no version is specified, brew will install the latest version\navailable. 
Mynewt OS will eventually work with multiple versions available,\nincluding the 
latest releases. However, at present we have tested only with\nthis version and 
recommend it for getting started. \n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open 
On-Chip Debugger) is open-source software that allows you
 r\ncomputer to interface with the JTAG debug connector on a variety of boards. 
 A\nJTAG connection lets you debug and test embedded target devices. For more 
on\nOpenOCD go to \nhttp://openocd.org\n.\n\n\n$ brew install open-ocd\n$ which 
openocd\n/usr/local/bin/openocd\n$ ls -l $(which openocd)\nlrwxr-xr-x  1 
\nuser\n  admin  36 Sep 17 16:22 /usr/local/bin/openocd -\n 
../Cellar/open-ocd/0.9.0/bin/openocd\n\n\n\n\n\n\n\nInstall ARM cross arm tools 
for Linux\n\n\nInstall Tool Chain\n\n\nOn a Debian-based Linux distribution, 
gcc 4.9.3 for ARM can be installed with\napt-get as documented below. The steps 
are explained in depth 
at\n\nhttps://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa\n.\n\n\n$
 sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo 
add-apt-repository ppa:team-gcc-arm-embedded/ppa\n$ sudo apt-get update \n$ 
sudo apt-get install gcc-arm-none-eabi\n$ sudo apt-get install 
gdb-arm-none-eabi\n\n\n\n\n\n\n\nInstall OpenOCD\n\n\nOpenOCD (Open On-Chip D
 ebugger) is open-source software that allows your\ncomputer to interface with 
the JTAG debug connector on a variety of boards.  A\nJTAG connection lets you 
debug and test embedded target devices. For more on\nOpenOCD go to 
\nhttp://openocd.org\n.\n\n\nIf you are running Ubuntu 15.x, then you are in 
luck and you can simply run: \n\n\n$ sudo apt-get install openocd 
\n\n\n\n\n\nFor this project, you should download the openocd 0.8.0 package 
from\n\nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n.\nThe direct link 
to the amd64 build 
is\n\nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n.";, 
             "title": "Install Cross Tools for ARM"
         }, 
         {
@@ -337,7 +352,7 @@
         }, 
         {
             "location": "/os/get_started/cross_tools/#install-tool-chain_1", 
-            "text": "On a Debian-based Linux distribution, gcc 4.9.3 for ARM 
can be installed with\napt-get as documented below. The steps are explained in 
depth at https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded .  $ 
sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo 
add-apt-repository ppa:terry.guo/gcc-arm-embedded \n$ sudo apt-get update \n$ 
sudo apt-get install gcc-arm-none-eabi\n$ sudo apt-get install 
gdb-arm-none-eabi", 
+            "text": "On a Debian-based Linux distribution, gcc 4.9.3 for ARM 
can be installed with\napt-get as documented below. The steps are explained in 
depth at https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa .  $ 
sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo 
add-apt-repository ppa:team-gcc-arm-embedded/ppa\n$ sudo apt-get update \n$ 
sudo apt-get install gcc-arm-none-eabi\n$ sudo apt-get install 
gdb-arm-none-eabi", 
             "title": "Install Tool Chain"
         }, 
         {
@@ -347,7 +362,7 @@
         }, 
         {
             "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\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, 10 
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\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 d
 efault, 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 view them by issuing the 
following commands in the base directory of the new project:\n\n\n$ tree -L 2 
repos/apache-mynewt-core/\n.\n\nsnip\n\n\u251c\u2500\u2500 
fs\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 
hal\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 mcu\n\u251c\u2500\u2500 
libs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 baselibc\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bootu
 til\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 cmsis-core\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 console\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
elua\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 flash_test\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 imgmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mbedtls\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 newtmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
os\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 shell\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 testreport\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
testutil\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 util\n\u251c\u2500\u2500 
net\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 nimble\n\nsnip\n\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 \nlibs/os\n pac
 kage in the \napache-mynewt-core\n repo, call newt as shown below.\n\n\n$ newt 
test @apache-mynewt-core/libs/os\nTesting package 
@apache-mynewt-core/libs/os\nCompiling hal_bsp.c\nCompiling os_bsp.c\nCompiling 
sbrk.c\nArchiving native.a\nCompiling flash_map.c\n\nsnip\n\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\n...lots of compiling and testing...\n...about 2 
minutes later ...\nArchiving bootutil.a\nLinking test_bootutil\nExecuting test: 
/myproj/bin/unittest/libs/bootutil/test_bootutil\nPassed tests: 
[net/nimble/host fs/nffs libs/os hw/hal libs/mbedtls libs/util sys/config 
libs/bootutil]\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 \nCompiling base64.c\nCompiling cbmem.c\nCompiling 
datetime.c\nCompiling tpq.c\nArchiving util.a\nCompiling main.c\nArchiving 
blinky.a\nCompiling flash_map.c\nComp
 iling hal_flash.c\nArchiving hal.a\nCompiling cons_fmt.c\nCompiling 
cons_tty.c\n\nsnip\n\nLinking blinky.elf\nApp successfully built: 
/Users/sterling/dev/tmp/my_app/bin/my_blinky_sim/apps/blinky/blinky.elf\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.\n\n\n$ newt run my_blinky_sim\nNo download script for BSP 
hw/bsp/native\nDebugging 
/workspace/bin/my_blinky_sim/apps/blinky/blinky.elf\n\nsnip\n\nReading symbols 
from 
/workspace/bin/my_blinky_sim/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 \nhal_gpio\n pin is toggling between 1 and 0 in a simulated 
blink. \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 simulate
 d\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!", 
+            "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\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, 10 
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: 0-latest\n    user: apache\n    repo: 
incubator-mynewt-core\n\n\n\n\n\nChanging to 0-dev will put you on the develop 
branch. \nThe Develop Branch may not be stable and \nyou 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 view them by issuing the 
following commands in the ba
 se directory of the new project:\n\n\n$ tree -L 2 
repos/apache-mynewt-core/\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 bletest\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bletiny\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
bleuart\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 blinky\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 boot\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
ffs2native\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 luatest\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 slinky\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
test\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 \u2514\u2500\u2500 
sim\n\u251c\u2500\u2500 drivers\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
uart_bitbang\n\u251c\u2500\u2500 fs\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 hal\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
mcu\n\u251c\u2500\u2500 libs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
baselibc\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bleuart\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 boot_serial\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
bootutil\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 cmsis-core\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 console\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
crash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 elua\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 flash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
imgmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
inet_def_service\n\u2502\u00a0\u00a0 \u251c\u
 2500\u2500 json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
mbedtls\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 newtmgr\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 os\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
shell\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 testreport\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 testutil\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
tinycrypt\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 util\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 wifi_mgmt\n\u251c\u2500\u2500 net\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 nimble\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 coredump\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 fcb\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
id\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 log\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 mn_socket\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
reboot\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 stats\n\u2514\u2500\u2500 
targets\n    \u25
 14\u2500\u2500 unittest\n\n61 directories, 8 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 \nlibs/os\n package in the 
\napache-mynewt-core\n repo, call newt as shown below.\n\n\n$ newt test 
@apache-mynewt-core/libs/os\nTesting package 
@apache-mynewt-core/libs/os\nCompiling hal_bsp.c\nCompiling os_bsp.c\nCompiling 
sbrk.c\nArchiving native.a\nCompiling flash_map.c\n\nsnip\n\n\n\n\n\n\nNOTE:\n 
If you've installed the latest gcc using homebrew on your Mac, you should 
downgrade to gcc-5 in order to use MyNewt.\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\n...lots of compiling 
and testing...\n...about 2 minutes later ..
 .\nCompiling mn_sock_test.c\nArchiving mn_socket.a\nLinking 
test_mn_socket\nExecuting test: 
/Users/dsimmons/myproj/bin/unittest/sys/mn_socket/test_mn_socket\nPassed tests: 
[libs/json libs/util libs/mbedtls net/nimble/host hw/hal libs/bootutil sys/log 
sys/config sys/fcb fs/nffs libs/os libs/boot_serial sys/mn_socket]\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 
main.c\nArchiving blinky.a\nCompiling hal_bsp.c\nCompiling os_bsp.c\nCompiling 
sbrk.c\nArchiving native.a\nCompiling flash_map.c\n\nsnip\n\nLinking 
blinky.elf\nApp successfully built: 
/Users/dsimmons/myproj/bin/my_blinky_sim/apps/blinky/blinky.elf\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.\n\n\n$ 
./bin/my_blinky_sim/apps/blinky/blinky.elf\nhal_gpio set pin  1 to 
0\n\n\n\n\n\n\n\nComple
 te\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"
         }, 
         {
@@ -362,27 +377,27 @@
         }, 
         {
             "location": "/os/get_started/project_create/#newt-new", 
-            "text": "Choose a project name. For this tutorial we will call 
this project  myproj .\nEnter the  newt new myproj  command.   $ newt new 
myproj\nDownloading project skeleton from 
apache/incubator-mynewt-blinky...\nInstalling skeleton in myproj...\nProject 
myproj successfully created.   Newt populates this new project with a base 
skeleton of a new Apache Mynewt \nproject.  It has the following structure.   
Note : If you do not have  tree , install it by running  brew install tree .  $ 
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\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\u25
 00 target.yml\n    \u2514\u2500\u2500 unittest\n        \u251c\u2500\u2500 
pkg.yml\n        \u2514\u2500\u2500 target.yml\n\n6 directories, 10 files   The 
Newt tool has installed the base files for a project comprising the following:  
 The file  project.yml  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.  The file  
apps/blinky/pkg.yml  contains the description of your application\nand its 
package dependencies.  A  target  directory containing  my_blinky_sim , a 
target descriptor used to\nbuild a version of myproj.  Use  newt target show  
to see available build \ntargets.  A non-buildable target called  unittest .  
This is used internally by  newt  and is not a formal build target.   NOTE:  
the actual code and package files are not installed \n(except the template for
   main.c ).  See the next step for installing the packages.", 
+            "text": "Choose a project name. For this tutorial we will call 
this project  myproj .\nEnter the  newt new myproj  command.   $ newt new 
myproj\nDownloading project skeleton from 
apache/incubator-mynewt-blinky...\nInstalling skeleton in myproj...\nProject 
myproj successfully created.   Newt populates this new project with a base 
skeleton of a new Apache Mynewt \nproject.  It has the following structure.   
Note : If you do not have  tree , install it by running  brew install tree .  $ 
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\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\u25
 00 target.yml\n    \u2514\u2500\u2500 unittest\n        \u251c\u2500\u2500 
pkg.yml\n        \u2514\u2500\u2500 target.yml\n\n6 directories, 10 files   The 
Newt tool has installed the base files for a project comprising the following:  
 The file  project.yml  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.  The file  
apps/blinky/pkg.yml  contains the description of your application\nand its 
package dependencies.  A  target  directory containing  my_blinky_sim , a 
target descriptor used to\nbuild a version of myproj.  Use  newt target show  
to see available build \ntargets.  A non-buildable target called  unittest .  
This is used internally by  newt  and is not a formal build target.   NOTE:  
the actual code and package files are not installed \n(except the template for
   main.c ).  See the next step for installing the packages.  NOTE:  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.   repository.apache-mynewt-core:\n    type: github\n    
vers: 0-latest\n    user: apache\n    repo: incubator-mynewt-core  Changing to 
0-dev will put you on the develop branch.  The Develop Branch may not be stable 
and \nyou may encounter bugs or other problems.", 
             "title": "Newt New"
         }, 
         {
             "location": "/os/get_started/project_create/#newt-install", 
-            "text": "Once 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  
newt install  command will\nfetch this repository.  $ newt 
install\napache-mynewt-core  NOTE:   apache-mynewt-core  may take a while to 
download.  To see progress,\nuse the  -v  (verbose) option to install.    Once  
newt install  has successfully finished, the contents of  apache-mynewt-core  
will have been downloaded into your local directory.  You can view them by 
issuing the following commands in the base directory of the new project:  $ 
tree -L 2 repos/apache-mynewt-core/\n. snip \n\u251c\u2500\u2500 
fs\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 
hal\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 mcu\n\u251c\u2500
 \u2500 libs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
baselibc\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bootutil\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 cmsis-core\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
console\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 elua\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 flash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
imgmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 json\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 mbedtls\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
newtmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 os\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 shell\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
testreport\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 testutil\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 util\n\u251c\u2500\u2500 net\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 nimble snip   As you can see, the core of the Apache Mynewt 
operating system has been brought \ninto your local directory.", 
+            "text": "Once 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  
newt install  command will\nfetch this repository.  $ newt 
install\napache-mynewt-core  NOTE:   apache-mynewt-core  may take a while to 
download.  To see progress,\nuse the  -v  (verbose) option to install.    Once  
newt install  has successfully finished, the contents of  apache-mynewt-core  
will have been downloaded into your local directory.  You can view them by 
issuing the following commands in the base directory of the new project:  $ 
tree -L 2 
repos/apache-mynewt-core/\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 
bletest\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bletiny\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bleuart\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
blinky\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 boot\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 ffs2native\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
luatest\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 slinky\n\u2502\u00a0\u00a0 
\u2514\u2500\u2500 test\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 \u2514\u2500\u2500 sim\n\u251c\u2500\u2500 
drivers\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 uart_bitbang\n\u251c\u2500\u2500 
fs\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
  hal\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 mcu\n\u251c\u2500\u2500 
libs\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 baselibc\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 bleuart\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
boot_serial\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 bootutil\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 cmsis-core\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
console\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 crash_test\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 elua\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
flash_test\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 imgmgr\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 inet_def_service\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
json\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 mbedtls\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 newtmgr\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
os\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 shell\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 testreport\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
testutil\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 tinycrypt\n\u2502\u00a0\u
 00a0 \u251c\u2500\u2500 util\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
wifi_mgmt\n\u251c\u2500\u2500 net\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 
nimble\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 coredump\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 fcb\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
id\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 log\n\u2502\u00a0\u00a0 
\u251c\u2500\u2500 mn_socket\n\u2502\u00a0\u00a0 \u251c\u2500\u2500 
reboot\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 stats\n\u2514\u2500\u2500 
targets\n    \u2514\u2500\u2500 unittest\n\n61 directories, 8 files  As you can 
see, the core of the Apache Mynewt operating system has been brought \ninto 
your local directory.", 
             "title": "Newt Install"
         }, 
         {
             "location": 
"/os/get_started/project_create/#test-the-projects-packages", 
-            "text": "You have already built your first basic project. You can 
ask Newt to execute the unit tests in a package. For example, to test the  
libs/os  package in the  apache-mynewt-core  repo, call newt as shown below.  $ 
newt test @apache-mynewt-core/libs/os\nTesting package 
@apache-mynewt-core/libs/os\nCompiling hal_bsp.c\nCompiling os_bsp.c\nCompiling 
sbrk.c\nArchiving native.a\nCompiling flash_map.c snip    To test all the 
packages in a project, specify  all  instead of the package name.  $ newt test 
all\n...lots of compiling and testing...\n...about 2 minutes later 
...\nArchiving bootutil.a\nLinking test_bootutil\nExecuting test: 
/myproj/bin/unittest/libs/bootutil/test_bootutil\nPassed tests: 
[net/nimble/host fs/nffs libs/os hw/hal libs/mbedtls libs/util sys/config 
libs/bootutil]\nAll tests passed", 
+            "text": "You have already built your first basic project. You can 
ask Newt to execute the unit tests in a package. For example, to test the  
libs/os  package in the  apache-mynewt-core  repo, call newt as shown below.  $ 
newt test @apache-mynewt-core/libs/os\nTesting package 
@apache-mynewt-core/libs/os\nCompiling hal_bsp.c\nCompiling os_bsp.c\nCompiling 
sbrk.c\nArchiving native.a\nCompiling flash_map.c snip   NOTE:  If you've 
installed the latest gcc using homebrew on your Mac, you should downgrade to 
gcc-5 in order to use MyNewt.  $ brew uninstall gcc-6\n$ brew link gcc-5   To 
test all the packages in a project, specify  all  instead of the package name.  
$ newt test all\n...lots of compiling and testing...\n...about 2 minutes later 
...\nCompiling mn_sock_test.c\nArchiving mn_socket.a\nLinking 
test_mn_socket\nExecuting test: 
/Users/dsimmons/myproj/bin/unittest/sys/mn_socket/test_mn_socket\nPassed tests: 
[libs/json libs/util libs/mbedtls net/nimble/host hw/hal libs/bootu
 til sys/log sys/config sys/fcb fs/nffs libs/os libs/boot_serial 
sys/mn_socket]\nAll tests passed", 
             "title": "Test the project's packages"
         }, 
         {
             "location": "/os/get_started/project_create/#build-the-project", 
-            "text": "To build and run your new application, simply issue the 
following command:  $ newt build my_blinky_sim \nCompiling base64.c\nCompiling 
cbmem.c\nCompiling datetime.c\nCompiling tpq.c\nArchiving util.a\nCompiling 
main.c\nArchiving blinky.a\nCompiling flash_map.c\nCompiling 
hal_flash.c\nArchiving hal.a\nCompiling cons_fmt.c\nCompiling cons_tty.c snip 
\nLinking blinky.elf\nApp successfully built: 
/Users/sterling/dev/tmp/my_app/bin/my_blinky_sim/apps/blinky/blinky.elf", 
+            "text": "To build and run your new application, simply issue the 
following command:  $ newt build my_blinky_sim \nBuilding target 
targets/my_blinky_sim\nCompiling main.c\nArchiving blinky.a\nCompiling 
hal_bsp.c\nCompiling os_bsp.c\nCompiling sbrk.c\nArchiving native.a\nCompiling 
flash_map.c snip \nLinking blinky.elf\nApp successfully built: 
/Users/dsimmons/myproj/bin/my_blinky_sim/apps/blinky/blinky.elf", 
             "title": "Build the Project"
         }, 
         {
             "location": "/os/get_started/project_create/#run-the-project", 
-            "text": "You can run the simulated version of your project and see 
the simulated LED\nblink.  $ newt run my_blinky_sim\nNo download script for BSP 
hw/bsp/native\nDebugging /workspace/bin/my_blinky_sim/apps/blinky/blinky.elf 
snip \nReading symbols from 
/workspace/bin/my_blinky_sim/apps/blinky/blinky.elf...done.\n(gdb)  Type  r  at 
the  (gdb)  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.", 
+            "text": "You can run the simulated version of your project and see 
the simulated LED\nblink.  $ 
./bin/my_blinky_sim/apps/blinky/blinky.elf\nhal_gpio set pin  1 to 0", 
             "title": "Run the Project"
         }, 
         {
@@ -392,7 +407,7 @@
         }, 
         {
             "location": "/os/get_started/vocabulary/", 
-            "text": "Concepts\n\n\nThis page is meant to introduce you to some 
of the concepts inherent to \nthe Apache Mynewt Operating System, and \nNewt\n 
the tool that stitches a \nproject built on Apache Mynewt 
together.\n\n\nProject\n\n\nThe project is the base directory of your embedded 
software tree.  It is a \nworkspace that contains a logical collection of 
source code, for one or \nmore of your applications.  A project consists of the 
following items:\n\n\n\n\nProject Definition: defines project level 
dependencies, and parameters\n    (located in 
\nproject.yml\n)\n\n\nPackages\n\n\n\n\nPackages\n are described in detail in 
the section below.  \n\n\nHere is an example project definition file from the 
default Apache Mynewt \nproject: \n\n\n$ more project.yml 
\n\nsnip\n\nproject.name: \nmy_project\n\n\nproject.repositories:\n    - 
apache-mynewt-core\n\n# Use github\ns distribution mechanism for core ASF 
libraries.\n# This provides mirroring automatically for us.\n#\nrepositor
 y.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: 
apache\n    repo: incubator-mynewt-core\n$ \n\n\n\n\n\nA couple of things to 
note in the project definition:\n\n\n\n\n\n\nproject.repositories\n: Defines 
the remote repositories that this project\nrelies 
upon.\n\n\n\n\n\n\nrepository.apache-mynewt-core\n: Defines the repository 
information for \nthe \napache-mynewt-core\n 
repository.\n\n\n\n\n\n\nRepositories are versioned collections of packages.  
\n\n\nProjects can rely on remote repositories for functionality, and the newt 
tool \nwill resolve those remote repositories, and download the correct version 
into \nyour local source tree.  Newly fetched repositories are put in the 
\nrepos\n\ndirectory of your project, and can be referenced throughout the 
system by using\nthe \n@\n specifier.  \n\n\nBy default, the 
\n@apache-mynewt-core\n repository is included in every \nproject.  Apache 
Mynewt Core contains all the base functionality of the Apache \nMynewt Operating
  System, including the Real Time Kernel, Bluetooth Networking \nStack, Flash 
File System, Console, Shell and Bootloader.\n\n\nNOTE:\n Any project can be 
converted into a repository by providing it with a \n\nrepository.yml\n file 
and putting it up onto Github.  More information\nabout repositories can be 
found in the Newt documentation.\n\n\nPackage\n\n\nA package is a collection 
items that form a fundamental unit in the Mynewt \nOperating System.  Packages 
can be:\n\n\n\n\nApplications\n\n\nLibraries\n\n\nCompiler 
definitions\n\n\nTargets\n\n\n\n\nA package is identified by having a 
\npkg.yml\n file in it's base \ndirectory.  Here is a sample \npkg.yml\n file 
for the blinky applicaton:\n\n\n$ more pkg.yml \n\nsnip\n\npkg.name: 
apps/blinky\npkg.type: app\npkg.description: Basic example application which 
blinks an LED.\npkg.author: \nApache Mynewt 
\[email protected]\n\npkg.homepage: 
\nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps:\n    - 
\n@apache-mynewt-core/
 libs/os\n\n    - \n@apache-mynewt-core/hw/hal\n\n    - 
\n@apache-mynewt-core/libs/console/full\n\n\n\n\n\n\nPackages have a few 
features worth noting:\n\n\n\n\nDependencies: Packages can rely upon other 
packages, and when they do\n    they will inherit their functionality (header 
files, library definitions, etc.)\n\n\nAPIs: Packages can export named APIs, 
and they can require that certain \n    APIs be present, in order to 
compile.\n\n\nFeatures: Packages can operate differently depending on what 
named features are \n    present in the system.  Packages can also export 
features to the rest of the \n    Mynewt system.\n\n\n\n\nEverything that newt 
knows about within a project's directory is a package.  This \nmakes it very 
clean and easy to write re-usable components, which can describe their 
\nDependencies and APIs to the rest of the system.\n\n\nTarget\n\n\nA target in 
Apache Mynewt is very similar to a target in \nmake\n.  It is the 
collection\nof parameters that must be passed to
  Newt in order to generate a reproducible build.  A \ntarget represents the 
top of the build tree, and any packages or parameters specified at \nthe target 
level, cascade down to all dependencies.\n\n\nTargets are also packages, and 
are stored in the \ntargets/\n directory at the base \nof your project.  Most 
targets consist of: \n\n\n\n\napp\n: The application to build.\n\n\nbsp\n: The 
board support package to combine with that application\n\n\nbuild_profile\n: 
Either \ndebug\n or \noptimized\n. \n\n\n\n\nTargets can also have additional 
items specified, including: \n\n\n\n\ncflags\n: Any additional compiler flags 
you might want to specify to the build.\n\n\nfeatures\n: Any system level 
features you want to enable.\n\n\n\n\nIn order to create and manipulate 
targets, the \nnewt\n tool offers a set of helper commands,\nyou can find more 
information about these by issuing:\n\n\n$ newt target\n\nUsage: \n  newt 
target [flags]\n  newt target [command]\n\nAvailable Commands: \n  show    
     View target configuration variables\n  set         Set target 
configuration variable\n  create      Create a target\n  delete      Delete 
target\n  copy        Copy target\n  vars        Show variable 
names\n\nFlags:\n  -h, --help=false: help for target\n\nGlobal Flags:\n  -l, 
--loglevel=\nWARN\n: Log level, defaults to WARN.\n  -o, --outfile=\n: Filename 
to tee log output to\n  -q, --quiet=false: Be quiet; only display error 
output.\n  -s, --silent=false: Be silent; don\nt output anything.\n  -v, 
--verbose=false: Enable verbose output when executing commands.\n\nAdditional 
help topics:\n\n\nUse \nnewt help [command]\n for more information about a 
command.\n$", 
+            "text": "Concepts\n\n\nThis page is meant to introduce you to some 
of the concepts inherent to \nthe Apache Mynewt Operating System, and \nNewt\n 
the tool that stitches a \nproject built on Apache Mynewt 
together.\n\n\nProject\n\n\nThe project is the base directory of your embedded 
software tree.  It is a \nworkspace that contains a logical collection of 
source code, for one or \nmore of your applications.  A project consists of the 
following items:\n\n\n\n\nProject Definition: defines project level 
dependencies, and parameters\n    (located in 
\nproject.yml\n)\n\n\nPackages\n\n\n\n\nPackages\n are described in detail in 
the section below.  \n\n\nHere is an example project definition file from the 
default Apache Mynewt \nproject: \n\n\n$ more project.yml 
\n\nsnip\n\nproject.name: \nmy_project\n\n\nproject.repositories:\n    - 
apache-mynewt-core\n\n# Use github\ns distribution mechanism for core ASF 
libraries.\n# This provides mirroring automatically for us.\n#\nrepositor
 y.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: 
apache\n    repo: incubator-mynewt-core\n$ \n\n\n\n\n\nA couple of things to 
note in the project definition:\n\n\n\n\n\n\nproject.repositories\n: Defines 
the remote repositories that this project\nrelies 
upon.\n\n\n\n\n\n\nrepository.apache-mynewt-core\n: Defines the repository 
information for \nthe \napache-mynewt-core\n 
repository.\n\n\n\n\n\n\nvers=0-latest\n: Defines the repository version. This 
string will use the \nlatest code in the 'Master' github branch. To use the 
latest version in the \ndevelop branch, just change it to 
\nvers=0-dev\n\n\n\n\n\n\nRepositories are versioned collections of packages.  
\n\n\nProjects can rely on remote repositories for functionality, and the newt 
tool \nwill resolve those remote repositories, and download the correct version 
into \nyour local source tree.  Newly fetched repositories are put in the 
\nrepos\n\ndirectory of your project, and can be referenced throughout the sy
 stem by using\nthe \n@\n specifier.  \n\n\nBy default, the 
\n@apache-mynewt-core\n repository is included in every \nproject.  Apache 
Mynewt Core contains all the base functionality of the Apache \nMynewt 
Operating System, including the Real Time Kernel, Bluetooth Networking \nStack, 
Flash File System, Console, Shell and Bootloader.\n\n\nNOTE:\n Any project can 
be converted into a repository by providing it with a \n\nrepository.yml\n file 
and putting it up onto Github.  More information\nabout repositories can be 
found in the Newt documentation.\n\n\nPackage\n\n\nA package is a collection 
items that form a fundamental unit in the Mynewt \nOperating System.  Packages 
can be:\n\n\n\n\nApplications\n\n\nLibraries\n\n\nCompiler 
definitions\n\n\nTargets\n\n\n\n\nA package is identified by having a 
\npkg.yml\n file in it's base \ndirectory.  Here is a sample \npkg.yml\n file 
for the blinky applicaton:\n\n\n$ more pkg.yml \n\nsnip\n\npkg.name: 
apps/blinky\npkg.type: app\npkg.description: 
 Basic example application which blinks an LED.\npkg.author: \nApache Mynewt 
\[email protected]\n\npkg.homepage: 
\nhttp://mynewt.apache.org/\n\npkg.keywords:\n\npkg.deps:\n    - 
\n@apache-mynewt-core/libs/os\n\n    - \n@apache-mynewt-core/hw/hal\n\n    - 
\n@apache-mynewt-core/libs/console/full\n\n\n\n\n\n\nPackages have a few 
features worth noting:\n\n\n\n\nDependencies: Packages can rely upon other 
packages, and when they do\n    they will inherit their functionality (header 
files, library definitions, etc.)\n\n\nAPIs: Packages can export named APIs, 
and they can require that certain \n    APIs be present, in order to 
compile.\n\n\nFeatures: Packages can operate differently depending on what 
named features are \n    present in the system.  Packages can also export 
features to the rest of the \n    Mynewt system.\n\n\n\n\nEverything that newt 
knows about within a project's directory is a package.  This \nmakes it very 
clean and easy to write re-usable components, which
  can describe their \nDependencies and APIs to the rest of the 
system.\n\n\nTarget\n\n\nA target in Apache Mynewt is very similar to a target 
in \nmake\n.  It is the collection\nof parameters that must be passed to Newt 
in order to generate a reproducible build.  A \ntarget represents the top of 
the build tree, and any packages or parameters specified at \nthe target level, 
cascade down to all dependencies.\n\n\nTargets are also packages, and are 
stored in the \ntargets/\n directory at the base \nof your project.  Most 
targets consist of: \n\n\n\n\napp\n: The application to build.\n\n\nbsp\n: The 
board support package to combine with that application\n\n\nbuild_profile\n: 
Either \ndebug\n or \noptimized\n. \n\n\n\n\nTargets can also have additional 
items specified, including: \n\n\n\n\ncflags\n: Any additional compiler flags 
you might want to specify to the build.\n\n\nfeatures\n: Any system level 
features you want to enable.\n\n\n\n\nIn order to create and manipulate 
targets, the \
 nnewt\n tool offers a set of helper commands,\nyou can find more information 
about these by issuing:\n\n\n$ newt target\n\n\nUsage:\n  newt target [flags]\n 
 newt target [command]\n\nAvailable Commands:\n  config      View target system 
configuration\n  copy        Copy target\n  create      Create a target\n  
delete      Delete target\n  set         Set target configuration variable\n  
show        View target configuration variables\n\nGlobal Flags:\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 target [command] --help\n for more information about a command.\n$ 
\n\n\n\n\n\nConfiguration\n\n\nThere are a lot of configuration options 
available when building your application in MyNewt. System Configuration 
options ar
 e set in \na file called \nsyscfg.yml\n and you will find these configuration 
files throughout the MyNewt packages. While you can edit these\nfiles directly 
to change some default settings, it is best to override the default settings in 
a \nsyscfg.yml\n file in your project\ndirectory rather than editing the 
package configurations directly.\n\n\nTo see all \nall\n the system 
configuration settings, simply type\n\n\n$ newt target config 
\ntarget-name\n\n...\n* PACKAGE: sys/stats\n  * Setting: STATS_CLI\n    * 
Description: Expose the \nstat\n shell command.\n    * Value: 0\n  * Setting: 
STATS_NAMES\n    * Description: Include and report the textual name of each 
statistic.\n    * Value: 0\n  * Setting: STATS_NEWTMGR\n    * Description: 
Expose the \nstat\n newtmgr command.\n    * Value: 0\n...\n$\n\n\n\n\n\nKeep in 
mind that this will only show the configuration options for any packages that 
are included in your applicaiton. \n\n\nIf you really want to see \nall\n the 
available configur
 ation options, you can go rough each package and look at the\n\nsyscfg.yml\n 
file in each.", 
             "title": "Concepts"
         }, 
         {
@@ -402,7 +417,7 @@
         }, 
         {
             "location": "/os/get_started/vocabulary/#project", 
-            "text": "The project is the base directory of your embedded 
software tree.  It is a \nworkspace that contains a logical collection of 
source code, for one or \nmore of your applications.  A project consists of the 
following items:   Project Definition: defines project level dependencies, and 
parameters\n    (located in  project.yml )  Packages   Packages  are described 
in detail in the section below.    Here is an example project definition file 
from the default Apache Mynewt \nproject:   $ more project.yml  snip 
\nproject.name:  my_project \n\nproject.repositories:\n    - 
apache-mynewt-core\n\n# Use github s distribution mechanism for core ASF 
libraries.\n# This provides mirroring automatically for 
us.\n#\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n  
  user: apache\n    repo: incubator-mynewt-core\n$   A couple of things to note 
in the project definition:    project.repositories : Defines the remote 
repositories that this project\nrelies upon.
     repository.apache-mynewt-core : Defines the repository information for 
\nthe  apache-mynewt-core  repository.    Repositories are versioned 
collections of packages.    Projects can rely on remote repositories for 
functionality, and the newt tool \nwill resolve those remote repositories, and 
download the correct version into \nyour local source tree.  Newly fetched 
repositories are put in the  repos \ndirectory of your project, and can be 
referenced throughout the system by using\nthe  @  specifier.    By default, 
the  @apache-mynewt-core  repository is included in every \nproject.  Apache 
Mynewt Core contains all the base functionality of the Apache \nMynewt 
Operating System, including the Real Time Kernel, Bluetooth Networking \nStack, 
Flash File System, Console, Shell and Bootloader.  NOTE:  Any project can be 
converted into a repository by providing it with a  repository.yml  file and 
putting it up onto Github.  More information\nabout repositories can be found 
in the Newt do
 cumentation.", 
+            "text": "The project is the base directory of your embedded 
software tree.  It is a \nworkspace that contains a logical collection of 
source code, for one or \nmore of your applications.  A project consists of the 
following items:   Project Definition: defines project level dependencies, and 
parameters\n    (located in  project.yml )  Packages   Packages  are described 
in detail in the section below.    Here is an example project definition file 
from the default Apache Mynewt \nproject:   $ more project.yml  snip 
\nproject.name:  my_project \n\nproject.repositories:\n    - 
apache-mynewt-core\n\n# Use github s distribution mechanism for core ASF 
libraries.\n# This provides mirroring automatically for 
us.\n#\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n  
  user: apache\n    repo: incubator-mynewt-core\n$   A couple of things to note 
in the project definition:    project.repositories : Defines the remote 
repositories that this project\nrelies upon.
     repository.apache-mynewt-core : Defines the repository information for 
\nthe  apache-mynewt-core  repository.    vers=0-latest : Defines the 
repository version. This string will use the \nlatest code in the 'Master' 
github branch. To use the latest version in the \ndevelop branch, just change 
it to  vers=0-dev    Repositories are versioned collections of packages.    
Projects can rely on remote repositories for functionality, and the newt tool 
\nwill resolve those remote repositories, and download the correct version into 
\nyour local source tree.  Newly fetched repositories are put in the  repos 
\ndirectory of your project, and can be referenced throughout the system by 
using\nthe  @  specifier.    By default, the  @apache-mynewt-core  repository 
is included in every \nproject.  Apache Mynewt Core contains all the base 
functionality of the Apache \nMynewt Operating System, including the Real Time 
Kernel, Bluetooth Networking \nStack, Flash File System, Console, Shell and 
Bootlo
 ader.  NOTE:  Any project can be converted into a repository by providing it 
with a  repository.yml  file and putting it up onto Github.  More 
information\nabout repositories can be found in the Newt documentation.", 
             "title": "Project"
         }, 
         {
@@ -412,10 +427,15 @@
         }, 
         {
             "location": "/os/get_started/vocabulary/#target", 
-            "text": "A target in Apache Mynewt is very similar to a target in  
make .  It is the collection\nof parameters that must be passed to Newt in 
order to generate a reproducible build.  A \ntarget represents the top of the 
build tree, and any packages or parameters specified at \nthe target level, 
cascade down to all dependencies.  Targets are also packages, and are stored in 
the  targets/  directory at the base \nof your project.  Most targets consist 
of:    app : The application to build.  bsp : The board support package to 
combine with that application  build_profile : Either  debug  or  optimized .   
 Targets can also have additional items specified, including:    cflags : Any 
additional compiler flags you might want to specify to the build.  features : 
Any system level features you want to enable.   In order to create and 
manipulate targets, the  newt  tool offers a set of helper commands,\nyou can 
find more information about these by issuing:  $ newt target\n\nUsage: 
 \n  newt target [flags]\n  newt target [command]\n\nAvailable Commands: \n  
show        View target configuration variables\n  set         Set target 
configuration variable\n  create      Create a target\n  delete      Delete 
target\n  copy        Copy target\n  vars        Show variable 
names\n\nFlags:\n  -h, --help=false: help for target\n\nGlobal Flags:\n  -l, 
--loglevel= WARN : Log level, defaults to WARN.\n  -o, --outfile= : Filename to 
tee log output to\n  -q, --quiet=false: Be quiet; only display error output.\n  
-s, --silent=false: Be silent; don t output anything.\n  -v, --verbose=false: 
Enable verbose output when executing commands.\n\nAdditional help 
topics:\n\n\nUse  newt help [command]  for more information about a 
command.\n$", 
+            "text": "A target in Apache Mynewt is very similar to a target in  
make .  It is the collection\nof parameters that must be passed to Newt in 
order to generate a reproducible build.  A \ntarget represents the top of the 
build tree, and any packages or parameters specified at \nthe target level, 
cascade down to all dependencies.  Targets are also packages, and are stored in 
the  targets/  directory at the base \nof your project.  Most targets consist 
of:    app : The application to build.  bsp : The board support package to 
combine with that application  build_profile : Either  debug  or  optimized .   
 Targets can also have additional items specified, including:    cflags : Any 
additional compiler flags you might want to specify to the build.  features : 
Any system level features you want to enable.   In order to create and 
manipulate targets, the  newt  tool offers a set of helper commands,\nyou can 
find more information about these by issuing:  $ newt target  Usage:\n 
  newt target [flags]\n  newt target [command]\n\nAvailable Commands:\n  config 
     View target system configuration\n  copy        Copy target\n  create      
Create a target\n  delete      Delete target\n  set         Set target 
configuration variable\n  show        View target configuration 
variables\n\nGlobal Flags:\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 target [command] --help  for more information 
about a command.\n$", 
             "title": "Target"
         }, 
         {
+            "location": "/os/get_started/vocabulary/#configuration", 
+            "text": "There are a lot of configuration options available when 
building your application in MyNewt. System Configuration options are set in 
\na file called  syscfg.yml  and you will find these configuration files 
throughout the MyNewt packages. While you can edit these\nfiles directly to 
change some default settings, it is best to override the default settings in a  
syscfg.yml  file in your project\ndirectory rather than editing the package 
configurations directly.  To see all  all  the system configuration settings, 
simply type  $ newt target config  target-name \n...\n* PACKAGE: sys/stats\n  * 
Setting: STATS_CLI\n    * Description: Expose the  stat  shell command.\n    * 
Value: 0\n  * Setting: STATS_NAMES\n    * Description: Include and report the 
textual name of each statistic.\n    * Value: 0\n  * Setting: STATS_NEWTMGR\n   
 * Description: Expose the  stat  newtmgr command.\n    * Value: 0\n...\n$  
Keep in mind that this will only show the configuration options for
  any packages that are included in your applicaiton.   If you really want to 
see  all  the available configuration options, you can go rough each package 
and look at the syscfg.yml  file in each.", 
+            "title": "Configuration"
+        }, 
+        {
             "location": "/os/tutorials/tutorials/", 
             "text": "Tutorials\n\n\nIf the introduction to Mynewt has piqued 
your interest and you want to familiarize yourself with some of its 
functionality, this series of tutorials is for you. The lessons are aimed at 
the beginner.\n\n\nThe full list of tutorials can be seen in the navigation bar 
on the left. New ones are being constantly added and will show up there 
automatically.\n\n\n\n\nPrerequisites:\n\n\n\n\nYou have installed Docker 
container of Newt tool and toolchains or you have installed them natively on 
your machine\n\n\nYou have created a new project space (directory structure) 
and populated it with the core code repository (apache-mynewt-core) or know how 
to as explained in \nCreating Your First Project\n.\n\n\nYou have at least one 
of the supported development boards:\n\n\nSTM32F3 discovery kit from ST 
Micro\n\n\nArduino Zero hardware\n\n\nOlimex/STM32F407ZGT6 Cortex-M4 
hardware\n\n\nnRF52 Development Kit from Nordic 
Semiconductor\n\n\n\n\n\n\n\n\nThe Nordic nrf52
  developer kit supports Bluetooth Low Energy. We are always looking to add new 
hardware to the list, so if you want to develop the required Board Support 
Package (bsp) and/or Hardware Abstraction Layer (HAL) for a new board, you can 
look \nhere\n to get started.\n\n\n\n\nTutorial categories:\n\n\nThe tutorials 
fall into a few broad categories. Some examples in each category are listed 
below.\n\n\n\n\n\n\nMaking an LED blink (the \"Hello World\" equivalent in the 
electronics world)\n\n\n\n\nBlinky on Arduino Zero hardware\n\n\nBlinky on 
Olimex/STM32F407ZGT6 Cortex-M4 hardware\n\n\nBlinky on STM32F3 discovery kit 
from ST Micro\n\n\nBlinky on nRF52 Development Kit from Nordic Semiconductor\n 
\nNote:\n This supports BLE.\n\n\n\n\n\n\n\n\n\n\nTweaking available apps to 
customize behavior e.g. making a more exciting LED blink 
pattern\n\n\n\n\nPinwheel Blinky on STM32F3 discovery 
board\n\n\n\n\n\n\n\n\n\n\nNavigating the code and adding functionality  
\n\n\n\n\nAdding more repositories to 
 your project\n\n\nAdding a unit test for a package\n\n\nAdding task to manage 
multiple events\n\n\n\n\n\n\n\n\n\n\n\n\nBluetooth Low Energy\n\n\nRunning the 
example BLE app included in the repo\n\n\nWorking with another example BLE app 
for a peripheral device\n\n\n\n\n\n\n\n\n\n\n\n\nUsing NewtMgr\n\n\nEnabling 
remote communication with a device running Mynewt 
OS\n\n\n\n\n\n\n\n\n\n\n\n\nAdditional network connectivity\n\n\nConnect 
Arduino to a Wi-Fi network\n\n\n\n\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"
@@ -437,7 +457,7 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/", 
-            "text": "Blinky, your \"Hello World!\", on Arduino Zero\n\n\nLearn 
how to use packages from a default application repository of Mynewt to build 
your first \nHello World\n application (Blinky) on a target board. Once built 
using the \nnewt\n tool, this application will blink the LED lights on the 
target board.\n\n\nThis tutorial describes how to run Mynewt OS on Arduino 
Zero. Follow these simple steps and your board will be blinking in no 
time!\n\n\nPrerequisites\n\n\nBefore tackling this tutorial, it's best to read 
about Mynewt in the \nIntroduction\n section of this 
documentation.\n\n\nEquipment\n\n\nYou will need the following 
equipment\n\n\n\n\nAn Arduino Zero board.  NOTE: There are many flavors of 
Arduino. Ensure that\nyou have an Arduino Zero. See below for the versions of 
Arduino Zero that are\ncompatible with this tutorial\n\n\nA computer that can 
connect to the Arduino Zero over USB\n\n\nA USB cable (Type A to micro B) that 
can connect the computer to the Arduin
 o\n\n\nThe Mynewt Release\n\n\n\n\nThis tutorial has been tested on the 
following three Arduino Zero boards - Zero, M0 Pro, and 
Zero-Pro.\n\n\n\n\n\n\n\n\nMynewt has not been tested on Arduino M0 which has 
no internal debugger support.\n\n\nInstall Mynewt and Newt\n\n\n\n\nIf you have 
not already done so, install Newt as shown in the \nNewt install 
tutorial\n\n\nIf you have not already done so, create a project as shown in the 
Quick Start guide on how to \nCreate Your First Project\n. Skip the testing and 
building the project steps in that tutorial since you will be defining a target 
for your Arduino board in this tutorial.\n\n\n\n\n\n\nFetch External 
Packages\n\n\nMynewt uses source code provided directly from the chip 
manufacturer for\nlow level operations. Sometimes this code is licensed only 
for the specific manufacturer of the chipset and cannot live in the Apache 
Mynewt repository. That happens to be the case for the Arduino Zero 

<TRUNCATED>

Reply via email to