You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2017/04/08 00:21:25 UTC

[10/11] incubator-mynewt-site git commit: Updated Blinky and Slinky tutorials with intro summaries, remove legacy feature references in the tutorials

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/40899401/develop/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/develop/mkdocs/search_index.json b/develop/mkdocs/search_index.json
index 42a20f1..23eceed 100644
--- a/develop/mkdocs/search_index.json
+++ b/develop/mkdocs/search_index.json
@@ -277,7 +277,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\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.6 or later. Depending on the Ubuntu version you have, the following may install an
  earlier version. In that case, download the latest package of Go 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 compil
 es 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. E
 ssentially, \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         Execu
 tes unit tests for one or more packages\n          upgrade      Upgrade project 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 \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 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.7 or later.  Currently, the latest Go version that Ubuntu installs is 1.6. You can
  run \napt-get install golang-1.7-go\n to install version 1.7. You can also download version 1.7 from \nhttps://golang.org/dl/\n. \n\n\n\n\n\n\n$sudo apt-get install golang-1.7-go\nReading package lists... Done\n     ...\nUnpacking golang-1.7-go (1.7.1-2ubuntu1) ...\nSetting up golang-1.7-go (1.7.1-2ubuntu1) ...\n$\n$sudo ln -s /usr/lib/go-1.7/bin/go /usr/bin/go\n$go version\ngo version go1.7.1 linux/amd64\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 c
 alling \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          ne
 wt [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, confi
 gure, 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          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 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"
         }, 
         {
@@ -297,7 +297,7 @@
         }, 
         {
             "location": "/newt/install/newt_linux/#2-install-go-the-programming-language", 
-            "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.6 or later. Depending on the Ubuntu version you have, the following may install an earlier version. In that case, download the latest package of Go 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.7 or later.  Currently, the latest Go version that Ubuntu installs is 1.6. You can run  apt-get install golang-1.7-go  to install version 1.7. You can also download version 1.7 from  https://golang.org/dl/ .     $sudo apt-get install golang-1.7-go\nReading package lists... Done\n     ...\nUnpacking golang-1.7-go (1.7.1-2ubuntu1) ...\nSetting up golang-1.7-go (1.7.1-2ubuntu1) ...\n$\n$sudo ln -s /usr/lib/go-1.7/bin/go /usr/bin/go\n$go version\ngo version go1.7.1 linux/amd64", 
             "title": "2. Install Go, the programming language"
         }, 
         {
@@ -357,7 +357,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\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 \nlibs/os\n package in the \napache-mynewt-core\n repo, call newt as shown below.\n\n\n$ newt test @apache-mynewt-core/sys/config\nTe
 sting 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/apac
 he-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 uni
 nstall 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/co
 nfig/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 newt
  docker, use \nnewt run\n to run the simulated binary.\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 /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!", 
+            "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"
         }, 
         {
@@ -382,7 +382,7 @@
         }, 
         {
             "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/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-co
 re/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/apache-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  NOTE:  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  Native Install Option . You can choose to downgrade to gcc-5 in order to use the default gcc compiler configurat
 ion for MyNewt.  NOTE:  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).  $ 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\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\nPasse
 d 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", 
+            "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  sys/config  package in the  apache-mynewt-core  repo, call newt as shown below.  $ 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/apache-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  NOTE:  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  Native Install Option . You can choose to downgrade to gcc-5 in order to use the default gcc compiler configu
 ration for MyNewt.  NOTE:  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).  $ 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\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\nPa
 ssed 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", 
             "title": "Test the project's packages"
         }, 
         {
@@ -392,7 +392,7 @@
         }, 
         {
             "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. If you are using newt docker, use  newt run  to run the simulated binary.  $ 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 /bin/targets/my_blinky_sim/app/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.  If you natively install the toolchain, you can either use  newt run  or call the binary directly. Generally,  newt run  is the expected way to call things.  $ ./bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf\nhal_gpio set pin  1 to 0", 
+            "text": "You can run the simulated version of your project and see the simulated LED\nblink. If you are using newt docker, use  newt run  to run the simulated binary.  $ 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)  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.  If you natively install the toolchain, you can either use  newt run  or call the binary directly. Generally,  newt run  is the expected way to call things.  $ ./bin/targets/my_blinky_sim/app/apps/blinky/blinky.elf\nhal_gpio set pin  1 to 0", 
             "title": "Run the Project"
         }, 
         {
@@ -432,7 +432,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: 1-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=1-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=1-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 \ndev@mynewt.incubator.apache.org\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\nnewt target\nUsage:\n  newt target [flags]\n  newt target [command]\n\nAvailable Commands:\n  config      View or populate a target\ns system configuration\n  copy        Copy target\n  create      Create a target\n  delete      Delete target\n  dep         View target\ns dependency graph\n  revdep      View target\ns reverse-dependency graph\n  set         Set target configuration variable\n  show        View target configuration variables\n\nGlobal 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 ex
 ecuting commands\n\nUse \nnewt target [command] --help\n for more information about a command.\n\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 are 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 show \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    * Descrip
 tion: 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 configuration options, you can go rough each package and look at the\n\nsyscfg.yml\n file in each.", 
+            "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: 1-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=1-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=1-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 \ndev@mynewt.incubator.apache.org\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\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 paramete
 rs 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\naflags\n: Any additional assembler flags you might want to specify to the build.\n\n\ncflags\n: Any additional compiler flags you might want to specify to the build.\n\n\nlflags\n: Any additional linker flags you might want to specify to the build.\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\nnewt target\nUsage:\n  newt target [flags]\n  newt target [command]\n\nAvailable Commands:\n  config      View or populate a target\ns system configuration\n  copy        Copy target\n  create      Create a target\n  delete      Delete target\n  dep         View target\ns dependency graph\n  revdep      View target\ns reverse-dependency graph\n  set         Set target configuration variable\n  show        View target configuration variables\n\nGlobal 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\nUse \nnewt target [command] --help\n for more information about
  a command.\n\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 are 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 show \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 configuration options, you can go rough each package and look at the\n\nsyscfg.yml\n file in each.", 
             "title": "Concepts"
         }, 
         {
@@ -447,12 +447,12 @@
         }, 
         {
             "location": "/os/get_started/vocabulary/#package", 
-            "text": "A package is a collection items that form a fundamental unit in the Mynewt \nOperating System.  Packages can be:   Applications  Libraries  Compiler definitions  Targets   A package is identified by having a  pkg.yml  file in it's base \ndirectory.  Here is a sample  pkg.yml  file for the blinky applicaton:  $ more pkg.yml  snip \npkg.name: apps/blinky\npkg.type: app\npkg.description: Basic example application which blinks an LED.\npkg.author:  Apache Mynewt  dev@mynewt.incubator.apache.org \npkg.homepage:  http://mynewt.apache.org/ \npkg.keywords:\n\npkg.deps:\n    -  @apache-mynewt-core/libs/os \n    -  @apache-mynewt-core/hw/hal \n    -  @apache-mynewt-core/libs/console/full   Packages have a few features worth noting:   Dependencies: Packages can rely upon other packages, and when they do\n    they will inherit their functionality (header files, library definitions, etc.)  APIs: Packages can export named APIs, and they can require that certain \n    APIs be 
 present, in order to compile.  Features: 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.   Everything 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.", 
+            "text": "A package is a collection items that form a fundamental unit in the Mynewt \nOperating System.  Packages can be:   Applications  Libraries  Compiler definitions  Targets   A package is identified by having a  pkg.yml  file in it's base \ndirectory.  Here is a sample  pkg.yml  file for the blinky applicaton:  $ more pkg.yml  snip \npkg.name: apps/blinky\npkg.type: app\npkg.description: Basic example application which blinks an LED.\npkg.author:  Apache Mynewt  dev@mynewt.incubator.apache.org \npkg.homepage:  http://mynewt.apache.org/ \npkg.keywords:\n\npkg.deps:\n    -  @apache-mynewt-core/libs/os \n    -  @apache-mynewt-core/hw/hal \n    -  @apache-mynewt-core/libs/console/full   Packages have a few features worth noting:   Dependencies: Packages can rely upon other packages, and when they do\n    they will inherit their functionality (header files, library definitions, etc.)  APIs: Packages can export named APIs, and they can require that certain \n    APIs be 
 present, in order to compile.   Everything 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.", 
             "title": "Package"
         }, 
         {
             "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  newt targ
 et\nUsage:\n  newt target [flags]\n  newt target [command]\n\nAvailable Commands:\n  config      View or populate a target s system configuration\n  copy        Copy target\n  create      Create a target\n  delete      Delete target\n  dep         View target s dependency graph\n  revdep      View target s reverse-dependency graph\n  set         Set target configuration variable\n  show        View target configuration variables\n\nGlobal 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\nUse  newt target [command] --help  for more information about a command.\n\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:    aflags : Any additional assembler flags you might want to specify to the build.  cflags : Any additional compiler flags you might want to specify to the build.  lflags : Any additional linker flags you might want to specify to the build.   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  newt target\nUsage:\n  newt target [flags]\n  newt target [command]\n\nAvailable Commands:\n  config      View or populate a target s system configuration\n  copy        Copy target\n  create      Create a target\n  delete      Delete target\n  dep         View target s dependency graph\n  revdep      View target s reverse-dependency graph\n  set         Set target configuration variable\n  show        View target configuration variables\n\nGlobal 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\nUse  newt target [c
 ommand] --help  for more information about a command.\n\n$", 
             "title": "Target"
         }, 
         {
@@ -481,18 +481,48 @@
             "title": "Tutorial categories:"
         }, 
         {
+            "location": "/os/tutorials/blinky/", 
+            "text": "Blinky, your \"Hello World!\" on a Target Board\n\n\nThe set of Blinky tutorials show you how to create, build, and run  a \"Hello World\" application that blinks a LED on the various target boards that Mynewt supports. The tutorials use the same Blinky application from the \nCreating Your First Project\n tutorial.  \n\n\nObjective\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 a LED light on the target board.\n\n\nAvailable Tutorials\n\n\nTutorials are available for the following boards:\n\n\n\n\nBlinky on an Arduino Zero\n\n\nBlinky on an Arduino Primo\n\n\nBlinky on an Olimex\n\n\nBlinky on a nRF52\n\n\nBlinky on a RedBear Nano 2\n\n\n\n\nWe also have a tutorial that shows you how to add \nConsole and Shell to the Blinky Application\n.\n\n\n\nPrerequisites\n\n\nEnsure that you meet the foll
 owing prerequisites before continuing with one of the tutorials. \n\n\n\n\nHave Internet connectivity to fetch remote Mynewt components.\n\n\nHave a computer to build a Mynewt application and connect to the board over USB.\n\n\nHave a Micro-USB cable to connect the board and the computer.\n\n\nInstall the Newt tool and toolchains (See \nBasic Setup\n).\n\n\nInstall either the Jlink or OpenOCD debugger.\n\n\nCreate a project space (directory structure) and populate it with the core code repository (apache-mynewt-core) or know how to as explained in \nCreating Your First Project\n.\n\n\nRead the Mynewt OS \nConcepts\n section. \n\n\n\n\n\nOverview of Steps\n\n\nThese are the general steps to create, load and run the Blinky application on your board:\n\n\n\n\nCreate a project.\n\n\nDefine the bootloader and Blinky application targets for the board.\n\n\nBuild the bootloader target.\n\n\nBuild the Blinky application target and create an application image.\n\n\nConnect to the board.\n\n\
 nLoad the bootloader onto the board.\n\n\nLoad the Blinky application image onto the board.\n\n\nSee the LED on your board blink.\n\n\n\n\n\n\nAfter you try the Blinky application on your boards, checkout out other tutorials to enable additional functionality such as \nremote comms\n on the current board. If you have BLE (Bluetooth Low Energy) chip (e.g. nRF52) on your board, you can try turning it into an \niBeacon\n or \nEddystone Beacon\n! \n\n\nIf you see anything missing or want to send us feedback, please sign up for \nappropriate mailing lists on our \nCommunity Page\n.", 
+            "title": "toc"
+        }, 
+        {
+            "location": "/os/tutorials/blinky/#blinky-your-hello-world-on-a-target-board", 
+            "text": "The set of Blinky tutorials show you how to create, build, and run  a \"Hello World\" application that blinks a LED on the various target boards that Mynewt supports. The tutorials use the same Blinky application from the  Creating Your First Project  tutorial.", 
+            "title": "Blinky, your \"Hello World!\" on a Target Board"
+        }, 
+        {
+            "location": "/os/tutorials/blinky/#objective", 
+            "text": "Learn how to use packages from a default application repository of Mynewt to build your first  Hello World  application (Blinky) on a target board. Once built using the  newt  tool, this application will blink a LED light on the target board.", 
+            "title": "Objective"
+        }, 
+        {
+            "location": "/os/tutorials/blinky/#available-tutorials", 
+            "text": "Tutorials are available for the following boards:   Blinky on an Arduino Zero  Blinky on an Arduino Primo  Blinky on an Olimex  Blinky on a nRF52  Blinky on a RedBear Nano 2   We also have a tutorial that shows you how to add  Console and Shell to the Blinky Application .", 
+            "title": "Available Tutorials"
+        }, 
+        {
+            "location": "/os/tutorials/blinky/#prerequisites", 
+            "text": "Ensure that you meet the following prerequisites before continuing with one of the tutorials.    Have Internet connectivity to fetch remote Mynewt components.  Have a computer to build a Mynewt application and connect to the board over USB.  Have a Micro-USB cable to connect the board and the computer.  Install the Newt tool and toolchains (See  Basic Setup ).  Install either the Jlink or OpenOCD debugger.  Create a project space (directory structure) and populate it with the core code repository (apache-mynewt-core) or know how to as explained in  Creating Your First Project .  Read the Mynewt OS  Concepts  section.", 
+            "title": "Prerequisites"
+        }, 
+        {
+            "location": "/os/tutorials/blinky/#overview-of-steps", 
+            "text": "These are the general steps to create, load and run the Blinky application on your board:   Create a project.  Define the bootloader and Blinky application targets for the board.  Build the bootloader target.  Build the Blinky application target and create an application image.  Connect to the board.  Load the bootloader onto the board.  Load the Blinky application image onto the board.  See the LED on your board blink.    After you try the Blinky application on your boards, checkout out other tutorials to enable additional functionality such as  remote comms  on the current board. If you have BLE (Bluetooth Low Energy) chip (e.g. nRF52) on your board, you can try turning it into an  iBeacon  or  Eddystone Beacon !   If you see anything missing or want to send us feedback, please sign up for \nappropriate mailing lists on our  Community Page .", 
+            "title": "Overview of Steps"
+        }, 
+        {
             "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\nEnsure that you have met the following prerequisites before continuing with this tutorial:\n\n\n\n\nHave an Arduino Zero board.\n\nNote: There are many flavors of Arduino. Make sure you are using an Arduino Zero. See below for the versions of Arduino Zero that are compatible with this tutorial.\n\n\nHave Internet connectivity to fetch remote Mynewt components.\n\n\nHave a computer to build a Mynewt application and connect to the board over USB.\n\n\nHave a Micro-USB cable to connect the board and the compute
 r.\n\n\nInstall the Newt tool and toolchains (See \nBasic Setup\n).\n\n\nCreate a 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\nRead the Mynewt OS \nConcepts\n section. \n\n\n\n\nThis tutorial uses the Arduino Zero Pro board. The 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\n\n\nCreate a Project\n\n\nCreate a new project if you do not have an existing one.  You can skip this step and proceed to \nfetch external packages\n if you already created a project.  \n\n\nRun the following commands to create a new project: \n\n\n    $ mkdir ~/dev\n    $ cd ~/dev\n    $ newt new myproj\n    Downloading project skeleton from apache/incubator-mynewt-blinky...\n    Installing skeleton in myproj...\n    Project myproj su
 ccessfully created.\n    $ cd myproj\n    $ newt install\n    apache-mynewt-core\n    $\n\n\n\n\n\n\n\n Fetch 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 board which uses Atmel SAMD21. Runtime's github repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add\nthe repository to the \nproject.yml\n file in your base project directory.\n\n\nHere is an example \nproject.yml\n file with the Arduino Zero repository\nadded. The sections with \nmynewt_arduino_zero\n that need to be added to\nyour project file are highlighted.\n\n\n$ more project.yml\nproject.name: \nmy_project\n\n\nprojec
 t.repositories:\n    - apache-mynewt-core\n\n    - mynewt_arduino_zero\n\n\nrepository.apache-mynewt-core:\n    type: github\n    vers: 1-latest\n    user: apache\n    repo: incubator-mynewt-core\n\n\nrepository.mynewt_arduino_zero:\n\n    type: github\n\n    vers: 1-latest\n\n    user: runtimeinc\n\n    repo: mynewt_arduino_zero\n\n$\n\n\n\n\n\n\nInstall the project dependencies using the \nnewt install\n command (you can specify \n-v\n for verbose output):\n\n\n$ newt install\napache-mynewt-core\nmynewt_arduino_zero\n$\n\n\n\n\n\n\n\nNOTE:\n If there has been a new release of a repo used in your project since you last installed it, the \n1-latest\n version for the repo in the \nproject.yml\n file will refer to the new release and will not match the installed files. In that case you will get an error message saying so and you will need to run \nnewt upgrade\n to overwrite the existing files with the latest codebase.\n\n\n\nYou need to create two targets for the Arduino Zero Pro boa
 rd, one for the bootloader and one for the Blinky application.\n\n\n\nRun the following \nnewt target\n commands, from your project directory, to create a bootloader target.  We name the target \narduino_boot\n.\n\n\n$ newt target create arduino_boot\n$ newt target set arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_boot successfully created\n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot\nTarget targets/arduino_boot successfully set target.app to @apache-mynewt-core/apps/boot\n$ newt target set arduino_boot build_profile=optimized\nTarget targets/arduino_boot successfully set target.build_profile to optimized\n$ newt target set arduino_boot syscfg=BSP_ARDUINO_ZERO_PRO=1\nTarget targets/arduino_boot successfully set target.syscfg to BSP_ARDUINO_ZERO_PRO=1\n$\n\n\n\n\n\nNote:\n If you have an Arduino Zero instead of an Arduino Zero Pro or Ard

<TRUNCATED>