You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by we...@apache.org on 2015/10/30 08:41:48 UTC

[1/4] incubator-mynewt-site git commit: anchors fixed

Repository: incubator-mynewt-site
Updated Branches:
  refs/heads/asf-site 791ec6cc1 -> ff2aecefa


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/sitemap.xml
----------------------------------------------------------------------
diff --git a/site/sitemap.xml b/site/sitemap.xml
index a398a7e..4adb25a 100644
--- a/site/sitemap.xml
+++ b/site/sitemap.xml
@@ -3,8 +3,8 @@
 
     
     <url>
-     <loc>None/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -12,20 +12,14 @@
     
         
     <url>
-     <loc>None/chapter1/intro/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter1/newt_concepts/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
-     <loc>None/chapter1/newt_concepts/</loc>
-     <lastmod>2015-10-29</lastmod>
-     <changefreq>daily</changefreq>
-    </url>
-        
-    <url>
-     <loc>None/chapter1/project1/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter1/project1/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -34,20 +28,20 @@
     
         
     <url>
-     <loc>None/chapter2/vocabulary/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter2/vocabulary/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
-     <loc>None/chapter2/project2/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter2/project2/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
-     <loc>None/chapter2/project3/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter2/project3/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -56,14 +50,14 @@
     
         
     <url>
-     <loc>None/chapter3/newt_ops/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter3/newt_ops/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
-     <loc>None/chapter3/newt_tool_reference/</loc>
-     <lastmod>2015-10-29</lastmod>
+     <loc>http://mynewt.incubator.apache.org/chapter3/newt_tool_reference/</loc>
+     <lastmod>2015-10-30</lastmod>
      <changefreq>daily</changefreq>
     </url>
         


[2/4] incubator-mynewt-site git commit: anchors fixed

Posted by we...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/site/mkdocs/search_index.json b/site/mkdocs/search_index.json
index 97de139..8e8778c 100644
--- a/site/mkdocs/search_index.json
+++ b/site/mkdocs/search_index.json
@@ -2,50 +2,15 @@
     "docs": [
         {
             "location": "/", 
-            "text": "Objective of Mynewt\n\n\nMynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices. The modular implementation allows the user the flexibility to mix and match hardware components and customize the software stack depending on the feature and performance requirements of the particular application he or she has in mind.\n\n\nThe world of Mynewt, therefore, has three primary collaborative goals:\n\n\n\n\nBuild a modularized real-time operating system for a rich set of hardware components\n\n\nOffer a suite of software for efficient and secure two-way communications with an embedded device\n\n\nDevelop method and tools necessary to create an optimized execution environment for the selected software on the desired hardware\n\n\n\n\nThe chapter organization is outlined below. Each Chapter has one or more tutorials for hands-on experience with the material in each chapter. \n\n\n\n\n\n\nChapter
  1: Getting Started\n introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.\n\n\n\n\n\n\nChapter 2: Getting Acclimatized\n delves deeper into the concepts crucial to the software development effort. \n\n\n\n\n\n\nChapter 3: Newt Tool Reference\n is a detailed listing of the available commands to help you with your project.", 
-            "title": "Home"
+            "text": "Objective of Mynewt\n\n\nMynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices. The modular implementation allows the user the flexibility to mix and match hardware components and customize the software stack depending on the feature and performance requirements of the particular application he or she has in mind.\n\n\nThe world of Mynewt, therefore, has three primary collaborative goals:\n\n\n\n\nBuild a modularized real-time operating system for a rich set of hardware components\n\n\nOffer a suite of software for efficient and secure two-way communications with an embedded device\n\n\nDevelop method and tools necessary to create an optimized execution environment for the selected software on the desired hardware\n\n\n\n\nThe chapter organization is outlined below. Each Chapter has one or more tutorials for hands-on experience with the material in each chapter. \n\n\n\n\n\n\nChapter
  1: Getting Started\n introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.\n\n\n\n\n\n\nChapter 2: Getting Acclimatized\n delves deeper into the concepts crucial to the software development effort. \n\n\n\n\n\n\nChapter 3: Newt Tool Reference\n describes the command structure and details all the available commands to help you with your project.", 
+            "title": "Doc Home"
         }, 
         {
             "location": "/#objective-of-mynewt", 
-            "text": "Mynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices. The modular implementation allows the user the flexibility to mix and match hardware components and customize the software stack depending on the feature and performance requirements of the particular application he or she has in mind.  The world of Mynewt, therefore, has three primary collaborative goals:   Build a modularized real-time operating system for a rich set of hardware components  Offer a suite of software for efficient and secure two-way communications with an embedded device  Develop method and tools necessary to create an optimized execution environment for the selected software on the desired hardware   The chapter organization is outlined below. Each Chapter has one or more tutorials for hands-on experience with the material in each chapter.     Chapter 1: Getting Started  introduces some key terms in this initia
 tive and includes a tutorial for a quick project to show how to work with some of the products.    Chapter 2: Getting Acclimatized  delves deeper into the concepts crucial to the software development effort.     Chapter 3: Newt Tool Reference  is a detailed listing of the available commands to help you with your project.", 
+            "text": "Mynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices. The modular implementation allows the user the flexibility to mix and match hardware components and customize the software stack depending on the feature and performance requirements of the particular application he or she has in mind.  The world of Mynewt, therefore, has three primary collaborative goals:   Build a modularized real-time operating system for a rich set of hardware components  Offer a suite of software for efficient and secure two-way communications with an embedded device  Develop method and tools necessary to create an optimized execution environment for the selected software on the desired hardware   The chapter organization is outlined below. Each Chapter has one or more tutorials for hands-on experience with the material in each chapter.     Chapter 1: Getting Started  introduces some key terms in this initia
 tive and includes a tutorial for a quick project to show how to work with some of the products.    Chapter 2: Getting Acclimatized  delves deeper into the concepts crucial to the software development effort.     Chapter 3: Newt Tool Reference  describes the command structure and details all the available commands to help you with your project.", 
             "title": "Objective of Mynewt"
         }, 
         {
-            "location": "/chapter1/intro/", 
-            "text": "Introduction to Mynewt - test\n\n\nWe want to make it very simple for an application developer to develop and release application programs on an embedded device of their choice. With that in mind, we offer a complete suite of open-source software ranging from an operating system to network protocol stacks. We offer the user of our wares the flexibility to choose hardware component(s) and easily build a software platform for it with desired features and performance. \n\n\nWe invite you to join us in our efforts to develop the ecosystem of firmware, software, and tools needed to offer the higher level of abstraction to various developers to enable them to be more productive and to decrease the time to market their applications on the embedded devices of their choosing.\n\n\nBasic components in the ecosystem\n\n\n\n\n\n\nNewtOS is an open-source RTOS (Real Time Operating System) that is not tied to any particular hardware but can be tuned to the hardware component 
 mix of the user's choosing. It has support for multitasking, synchronization of tasks, scheduling and buffering of operations, memory management,file systems, networking, security, power management, and other advanced features. Naturally, it involves several packages such as the Core RTOS, a flash file system, utility functions, a variety of board support packages, packages of microcontrollers etc.\n\n\n\n\n\n\nNetwork protocol stacks such as Bluetooth Low Energy, and more\n\n\n\n\n\n\nNewt Tool helps you mix the specific packages for the combination of hardware and low-level embedded architecture features of the user's choice and generate the corresponding run-time image based on the NewtOS. It provides the infrastructure to manage and build for different CPU architectures, memory units, board support packages etc., allowing a user to formulate the contents according to the low-level features needed by his or her project.\n\n\n\n\n\n\nTerminology\n\n\nIn the mynewt lifecycle, a pro
 ject grows in a nest. A nest may house multiple projects. The nest is, therefore, a repository where various component packages for one or more projects reside. Each package is an egg, naturally. However, an egg may consist of other eggs!\n\n\nA nest can be given any name. You will see a nest named \"tadpole\" in mynewt. It contains all the core libraries of the operating system for distribution. Each of these directories contain one or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS.\n\n\n\n\nlibs/os: The core RTOS which ports to all supported chip platforms.\n\n\nhw/hal: The hardware abstraction layer (HAL) API definitions that all BSP and MCU implementations must support\n\n\nhw/mcu/native: A MCU implementation for the native platform\n\n\nhw/bsp/native: A BSP implementation for the native platform\n\n\ncompiler/native: The definition of compiler support for the native platform.\n\n\n\n\nEach of the above directories contain one or more eggs whe
 re an egg is a basic unit of implementation of any aspect of the RTOS. For example, the libs/os directory holds eggs such as the bootloader, flash file system, the kernel for process/thread/memory management, tools for testing etc. The hw/hal directory holds an egg that provides abstraction for physical hardware components such as GPIO (general purpose input/output), network adapters, timers, and universal asynchronous receiver-transmitters (UARTs). All these physical interfaces are defined in various header files in hw/hal, and are designed to make device driver specification simpler.\n\n\nYou can see another nest in the mynewt ecosystem called the \"larva\". It was spawned from the \"tadpole\" nest using the newt tool. Spawning is easy - \n$ newt create nest \nyour_nest_name\n. \"larva\" is the developer's test repository containing all sorts of eggs being incubated, including ones to enhance the core operating system which should eventually make their way into the \"tadpole\" nes
 t. There is a \nhatch_tadpole\n script to update the \"tadpole\" nest when the core OS related eggs in \"larva\" are ready.\n\n\nThere is a third nest named \"newt\" that contains all the eggs needed to support the build and release process of mynewt software.\n\n\nThere will also be pre-built nests for certain common hardware devices to enable a user to quickly get started with a project.\n\n\nA Mynewt contributor\n\n\nA contributor can choose to work on any area(s) of the Mynewt endeavor that appeals to him or her. Hence, you can work on one or more eggs or an entire nest. You can create your own nest (master) or create a branch in an existing nest. For now, Runtime contributors will review any new areas of support that you may wish to introduce e.g. a new board support package (BSP) or a new network protocol. \n\n\nA contributer role necessarily implies he or she is a Mynewt user (see below) of some or all of the products developed.\n\n\nA Mynewt user\n\n\nAn application develope
 r is interested only in using software available in this ecosystem to build a top level build artifact. He or she may either:\n\n\n\n\nUse a pre-built nest, or\n\n\nSpawn a new nest using the newt tool for a target where a target is a custom combination of supported hardware components\n\n\n\n\nIn either case, the user would use the newt tool to create and set the target in the chosen nest. The newt tool would then be used to build out the target profile which would determine which eggs to choose. Finally, the user would use the newt tool to generate a run-time image that can be run on the device.\n\n\nGetting Started - Project Blinky\n\n\nWe will show you how you can use eggs from a nest on Mynewt to make an LED on a target board blink. We will call it \n Project Blinky\n. The goals of this tutorial are threefold:\n\n\n\n\nFirst, you will learn how to set up your environment to be ready to use the various eggs that you will download from Mynewt. \n\n\nSecond, we will walk you throu
 gh a download of eggs for building and testing \non a simulated target\n.\n\n\nThird, you will download eggs and use tools to create a runtime image for a board to \nmake its LED blink\n. \n\n\n\n\nIf you want to explore even further, you can try to upload the image to the board's flash memory and have it \nboot from flash\n!\n\n\nWhat you need\n\n\n\n\nSTM32-E407 development board from Olimex.\n\n\nARM-USB-TINY-H connector with JTAG interface for debugging ARM microcontrollers (comes with the ribbon cable to hook up to the board)\n\n\nUSB A-B type cable to connect the debugger to your personal computer\n\n\nPersonal Computer\n\n\n\n\nThe instructions assume the user is using a Bourne-compatible shell (e.g. bash or zsh) on your computer. You may already have some of the required packages on your machine.  In that \ncase, simply skip the corresponding installation step in the instructions under \nGetting your Mac Ready\n or \nGetting your Ubuntu machine Ready\n or \nGetting your Wind
 ows machine Ready\n. While the given instructions should work on other versions, they have been tested for the three specific releases of operating systems noted here:\n\n\n\n\nMac: OS X Yosemite Version 10.10.5\n\n\nLinux: Ubuntu 14.10 (Utopic Unicorn)\n\n\nWindows: Windows 10\n\n\n\n\nGetting your Mac Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make sure you have joined the \"Newt Operating System\" organization.\n\n\n\n\nInstalling Homebrew to ease installs on OS X\n\n\n\n\n\n\nDo you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.\n\n\n$ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n\n\nAlternatively, you can just extract (or \ngit clone\n) Homebrew and install it to \n/usr/local\n.\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe directory structure must be first readied for using Go. Go code must be kept
  inside a workspace. A workspace is a directory hierarchy with three directories at its root:\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. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=`pwd`\n\n\n\nNote that you need to add export statements to ~/.bash_profile to export variables permanently.\n    $ vi ~/.bash_profile\n\n\n\n\n\n\nThe next step is to set up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into t
 his newly created directory. Check the installation.\n\n\n$ mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt\n\n\n\n\n\n\n\nInstalling Go and Godep\n\n\n\n\n\n\nNext you will use brew to install go. The summary message at the end of the installation should indicate that it as installed in the /usr/local/Cellar/go/ directory. Use the go command 'install' to compile and install packages and dependencies. Also set the GOROOT environment variable to /usr/local/Cellar/go as that is the root of the brewed go directory structure. Again, to make the export variable permanent, add it to your ~/.bash_profile and ~./bashrc files.\n\n\n$ brew install go\n==\n \n==\n \n==\n *Summary*\n\ud83c\udf7a  /usr/local/Cellar/go/1.5.1: 5330 files, 273M\n$ cd $GOPA
 TH/src/github.com/mynewt/newt\n$ export GOROOT=/usr/local/Cellar/go\n\n\n\nAlternatively, you can download the go package directly from (https://golang.org/dl/) instead of brewing it. Install it in /usr/local directory and set GOROOT to /usr/local/go as that is now the root of the go directory structure.\n\n\n\n\n\n\nNow you will get the godep package. Return to the go directory level and get godep. Check for it in the bin subdirectory. Add the go environment to path. Make sure it is added to your .bash_profile.\n\n\n$ cd $GOPATH\n$ go get github.com/tools/godep\n$ ls\nbin     pkg     src\n$ ls bin\ngodep\n$ export PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nUse the go command 'install' to compile and install packages and dependencies. In preparation for the install, you may use the godep command 'restore' to check out listed dependency versions in $GOPATH and link all the necessary files. Note that you may have to go to the \n~/dev/go/src/github.com/mynewt/newt\n directory to successfull
 y run the restore command (e.g. on certain distributions of Linux). You may also have to do a \ngo get\n before the restore to make sure all the necessary packages and dependencies are correct.\n\n\n$ cd ~/dev/go/src/github.com/mynewt/newt\n$ go get\n$ ~/dev/go/bin/godep restore\n$ go install\n\n\n\n\n\n\n\nBuilding the Newt tool\n\n\n\n\nYou will now use go to run the newt.go program to build the newt tool. You will have to use \ngo build\n command which compiles and writes the resulting executable to an output file named \nnewt\n. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use \ngo install\n). Now try running newt using the compiled binary. 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\nNote: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call i
 t, you may want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your .bash_profile and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Don't forget to reload the updated bash profile by typing \nsource ~/.bash_profile\n at the prompt! Here, you use \ngo run\n which runs the compiled binary directly without producing an executable.\n\n\n    $ go run %GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd ~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md       coding_style.txt    newt\n    LICENSE         cli         design.txt      newt.go\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 the
 n 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=\"WARN\": Log level, defaults to WARN.\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\n\n    Use \"newt help [command]\" for more information about a command.\n\n\n\n\n\nWithout creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. \n\n\n\n\nGetting the debugger ready\n\n\n\n\n\n\nBefore you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. So, first install gcc. You will see the brew steps and a final summary confirming install.\n\n\n$ brew install gcc\n...\n...\n==\n Summary\n\ud83c\udf7a  /usr/local/Cellar/gcc/5.2.0: 1353 files, 248M\n\n\n\n\n\n\n\nARM maintains a pre-built GNU toolchain with a GCC source branch targeted at Embedded ARM Processors namely Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check
  the version installed. Make sure that the symbolic link installed by Homebrew points to the correct version of the debugger. If not, you can either change the symbolic link using the \"ln -f -s\" command or just go ahead and try with the version it points to!\n\n\n$ brew tap PX4/homebrew-px4\n$ brew update\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\nNote: If no version is specified, brew will install the latest version availabl
 e. StackOS will eventually work with multiple versions available including the latest releases. However, at present we have tested only with this version and recommend it for getting started. \n\n\n\n\n\n\nYou have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interface with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. Use brew to install it. Brew adds a simlink /usr/local/bin/openocd to the openocd directory in the Cellar.\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\nProceed to the \nBuilding test code on simulator\n section.\n\n\nGetting your Ubuntu machine Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make sure yo
 u have joined the \"Newt Operating System\" organization.\n\n\n\n\nInstalling some prerequisites\n\n\n\n\nInstall git, libcurl, and the go language if you do not have them already.\n$ sudo apt-get install git \n$ sudo apt-get install libcurl4-gnutls-dev \n$ sudo apt-get install golang\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:\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. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ 
 cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=$PWD\n\n\n\nNote that you need to add export statements to ~/.bashrc (or equivalent) to export variables permanently.\n\n\n\n\n\n\nNext, install godep. Note that the following command produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the contents of the directory.\n\n\n$ mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt\n\n\n\n\n\n\n\nUse the go command 'install' to compile and install packages and dependencies. Add go environment to path.
  Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.\n\n\n$ $GOPATH/bin/godep restore \n$ go get \n$ go install \n$ export PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nBuilding the newt tool\n\n\n\n\nYou will now use go to run the newt.go program to build the newt tool. You will have to use \ngo build\n command which compiles and writes the resulting executable to an output file named \nnewt\n. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use \ngo install\n). Now try running newt using the compiled binary. 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\nNote: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run
  $GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your ~/.bashrc (or equivalent) and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Here, you use \ngo run\n which runs the compiled binary directly without producing an executable.\n\n\n    $ go build %GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd ~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md       coding_style.txt    newt\n    LICENSE         cli         design.txt      newt.go\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 t
 he 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=\"WARN\": Log level, defaults to WARN.\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\n\n    Use \"newt help [command]\" for more information
  about a command.\n\n\n\n\n\nWithout creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. \n\n\n\n\nGetting the debugger ready\n\n\n\n\n\n\nBefore you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. You can install these as follows: \n\n\n$ sudo apt-get install gcc-multilib libc6-i386\n\n\n\n\n\n\n\nFor the LED project on the Olimex hardware, you have to install gcc for AM 4.9.3.  This package can be installed with apt-get as documented \nhere\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\n\n\n\n\n\n\nAnd finally, you have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interfa
 ce with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. You have to acquire OpenOCD 0.8.0. \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\nOther versions of Ubuntu may not have the correct version of openocd available.  In this case, you should download the openocd 0.8.0 package from \nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n. The direct link to the amd64 build is \nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n. \n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator\n section.\n\n\nGetting your Windows machine Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make sure you have joined the \"Newt Operating System\" organization.\n\n\n\n\nInstalling some prerequisites\n\n\n\n\n\n\nYou have to install the following if you do not have 
 them already.  The steps below indicate specific folders where each of these programs should be installed. You can choose different locations, but the remainder of this\ntutorial for a Windows machine assumes the specified folders.    \n\n\n\n\nwin-builds-i686\n\n\nwin-builds-x86_64\n\n\nMSYS\n\n\ngcc for ARM\n\n\nopenocd\n\n\nzadig\n\n\ngit\n\n\n\n\ngo\n\n\n\n\nwin-builds (mingw64) 1.5 for i686\n\n\n\n\nDownload from \nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. Install at: \"C:\\win-builds-i686\".\n\n\nBe sure to click the i686 option (not x86_64). The defaults for all other options are OK. The installer will want to download a bunch of additional packages. They are not all necessary, but it is simplest to just accept the defaults.\n\n\n\n\nwin-builds (mingw64) 1.5 for x86_64\n\n\n\n\nDownload from \nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. Install at \"C:\\win-builds-x86_64\"\n\n\nRun the installer a second time, but th
 is time click the x86_64 option, NOT i686.  The defaults for all other options are OK.\n\n\n\n\nMSYS\n\n\n\n\nStart your download from \nhttp://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip\n\n\nUnzip to \"C:\\msys\"\n\n\n\n\ngcc for ARM, 4.9.3\n\n\n\n\nDownload the Windows installer from \nhttps://launchpad.net/gcc-arm-embedded/+download\n and install at \"C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 2015q3\".\n\n\n\n\nOpenOCD 0.8.0\n\n\n\n\nDownload OpenOCD 0.8.0 from \nhttp://www.freddiechopin.info/en/download/category/4-openocd\n. Unzip to \"C:\\openocd\".\n\n\n\n\nZadig 2.1.2\n\n\n\n\nDownload it from \nhttp://zadig.akeo.ie\n and install it at \"C:\\zadig\".\n\n\n\n\nGit\n\n\n\n\nClick on \nhttps://git-scm.com/download/win\n to start the download. Install at \"C:\\Program Files (x86)\\Git\". Specify the \"Use Git from the Windows Command Prompt\" option.  The defaults for all other opti
 ons are OK.\n\n\n\n\nGo\n\n\n\n\nDownload the release for Microsoft Windows from \nhttps://golang.org/dl/\n and install it \"C:\\Go\".\n\n\n\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:\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. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go\n\n\n\n\n\n\n\nSet the following user environment variables using the steps outlined here.\n\n\n\n\nGOPATH
 : C:\\dev\\go\n\n\nPATH: C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin\n\n\n\n\nSteps:\n\n\n\n\nRight-click the start button\n\n\nClick \"Control panel\"\n\n\nClick \"System and Security\"\n\n\nClick \"System\"\n\n\nClick \"Advanced system settings\" in the left panel\n\n\nClick the \"Envoronment Variables...\" button\n\n\nThere will be two sets of environment variables: user variables\n  in the upper half of the screen, and system variables in the lower\n  half.  Configuring the user variables is recommended and tested \n  (though system variables will work as well).\n\n\n\n\n\n\n\n\nNext, install godep. Note that the following command produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github
 .com into this newly created directory. Check the contents of the directory.\n\n\n$ mkdir %GOPATH%\\src\\github.com\\mynewt\n$ cd %GOPATH%\\src\\github.com\\mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt\n\n\n\n\n\n\n\nUse the go command 'install' to compile and install packages and dependencies. Add go environment to path. Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.\n\n\n$ %GOPATH%\\bin\\godep restore \n$ go get \n$ go install\n\n\n\n\n\n\n\nBuilding the newt tool\n\n\n\n\n\n\nYou will now use go to run the newt.go program to build the newt tool. You will have to use \ngo build\n command which compiles and writes the resulting executable to an output file named \nnewt\n. However, it does not install the results along with its dependencies in $GOPATH/bin (for 
 that you will need to use \ngo install\n). Now try running newt using the compiled binary. 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\nNote: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to define the newt environment variable that allows you to execute the command via \n%newt%\n. Use \nset newt=go run %GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n or set it from the GUI. Here, you use \ngo run\n which runs the compiled binary directly without producing an executable.\n\n\n$ go build %GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n$ cd ~/dev/go/src/github.com/mynewt/newt\n$ dir\nGodeps          README.md       coding_style.txt    newt\nLICENSE         cli         design.txt      newt.go\n$ newt version\nNewt version:  1.0\n$ newt -h\nNewt allows you to create your own embedded project b
 ased on the Mynewt\noperating system. Newt provides both build and package management in a\nsingle tool, which allows you to compose an embedded workspace, and set\nof projects, and then build the necessary artifacts from those projects.\nFor more information on the Mynewt operating system, please visit\nhttps://www.github.com/mynewt/documentation.\n\nPlease use the newt help command, and specify the name of the command\nyou want help for, for help on how to use a specific command\n\nUsage:\n newt [flags]\n newt [command]\n\nExamples:\n newt\n newt help [\ncommand-name\n]\n   For help on \ncommand-name\n.  If not specified, print this message.\n\nAvailable Commands:\n 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\nFlags:\n -h, --help=false: help for newt\n -l, --logle
 vel=\"WARN\": Log level, defaults to WARN.\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\nUse \"newt help [command]\" for more information about a command.\n\n\n\n\n\n\n\nWithout creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. \n\n\n\n\n\n\nGetting the debugger ready\n\n\n\n\n\n\nUse Zadig to configure the USB driver for your Olimex debugger.  If your debugger is already set up, you can skip this step.\n\n\n\n\nPlug in your Olimex debugger.\n\n\nStart Zadig.\n\n\nCheck the Options -\n List All Devices checkbox.\n\n\nSelect \"Olimex OpenOCD JTAG ARM-USB-TINY-H\" in the dropdown menu.\n\n\nSelect the \"WinUSB\" driver.\n\n\nClick the \"Install Driver\" button.\n\n\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator\n section.\n\n\nBuild
 ing test code on simulator on non-Windows machine\n\n\n\n\n\n\nFirst, you have to create a repository for the project i.e. build your first nest! Go to ~/dev and clone the larva repository from github. The URL used below is the HTTPS clone URL from the github.com repository for the Newt Operating System. \n\n\nSubstitute DOS commands for Unix commands as necessary in the following steps if your machine is running Windows. The newt tool commands do not change.\n\n\n$ cd ~/dev \n$ git clone https://github.com/mynewt/larva.git\n$ ls\ngo  larva\n$ cd larva\n$ ls\nLICENSE         hw          project\nREADME.md       libs            repo.yml\ncompiler        pkg         setup-remotes.sh\n\n\n\n\n\n\n\nYou will now create a new project using the newt tool. You can either use the compiled binary \nnewt\n or run the newt.go program using \n$newt\n (assuming you have stored the command in a variable in your .bash_profile or .bashrc). When you do a \nnewt target show\n or \n$newt target show\n
  it should list all the projects you have created so far. \n\n\n$ newt target create sim_test\nCreating target sim_test\nTarget sim_test sucessfully created!\n$ newt target show\nsim_test\n    name: sim_test\n    arch: sim\n\n\n\n\n\n\n\nNow continue to populate and build out the sim project.\n\n\n$ newt target set sim_test project=test\nTarget sim_test successfully set project to test\n$ newt target set sim_test compiler_def=debug\nTarget sim_test successfully set compiler_def to debug\n$ newt target set sim_test bsp=hw/bsp/native\nTarget sim_test successfully set bsp to hw/bsp/native\n$ newt target set sim_test compiler=sim\nTarget sim_test successfully set compiler to sim\n$ newt target show sim_test\nsim_test\n    arch: sim\n    project: test\n    compiler_def: debug\n    bsp: hw/bsp/native\n    compiler: sim\n    name: sim_test\n\n\n\n\n\n\n\nConfigure newt to use the gnu build tools native to linux.  Replace \n~/dev/larva/compiler/sim/compiler.yml with the linux-compiler.yml f
 ile: \n\n\n$ cp compiler/sim/linux-compiler.yml compiler/sim/compiler.yml\n\n\n\n\n\n\n\nNext, create (hatch!) the eggs for this project using the newt tool - basically, build the packages for it. You can specify the VERBOSE option if you want to see the gory details. \n\n\n$ $newt target build sim_test\nSuccessfully run!\n\n\n\nYou can specify the VERBOSE option if you want to see the gory details.\n\n\n$newt -l VERBOSE target build sim_test\n2015/09/29 09:46:12 [INFO] Building project test\n2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//bootutil...\n2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//cmsis-core...\n2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//ffs..\n...\nSuccessfully run!\n\n\n\n\n\n\n\nTry running the test suite executable inside this project and enjoy your first successful hatch.\n\n\n$ ./project/test/bin/sim_test/test.elf\n[pass] os_mempool_test_suite/os_mempool_test_ca
 se\n[pass] os_mutex_test_suite/os_mutex_test_basic\n[pass] os_mutex_test_suite/os_mutex_test_case_1\n[pass] os_mutex_test_suite/os_mutex_test_case_2\n[pass] os_sem_test_suite/os_sem_test_basic\n[pass] os_sem_test_suite/os_sem_test_case_1\n[pass] os_sem_test_suite/os_sem_test_case_2\n[pass] os_sem_test_suite/os_sem_test_case_3\n[pass] os_sem_test_suite/os_sem_test_case_4\n[pass] os_mbuf_test_suite/os_mbuf_test_case_1\n[pass] os_mbuf_test_suite/os_mbuf_test_case_2\n[pass] os_mbuf_test_suite/os_mbuf_test_case_3\n[pass] gen_1_1/ffs_test_unlink\n[pass] gen_1_1/ffs_test_rename\n[pass] gen_1_1/ffs_test_truncate\n[pass] gen_1_1/ffs_test_append\n[pass] gen_1_1/ffs_test_read\n[pass] gen_1_1/ffs_test_overwrite_one\n[pass] gen_1_1/ffs_test_overwrite_two\n[pass] gen_1_1/ffs_test_overwrite_three\n...\n...\n[pass] boot_test_main/boot_test_vb_ns_11\n\n\n\n\n\n\n\n[Building test code on simulator on non-Windows machine]\n\n\nComing\n\n\nMaking an LED blink\n\n\nPreparing the Software\n\n\n\n\n\n\nMa
 ke sure the PATH environment variable includes the $HOME/dev/go/bin directory (or C:\\%GOPATH%\\bin on Windows machine). \n\n\nSubstitute DOS commands for Unix commands as necessary in the following steps if your machine is running Windows. The newt tool commands do not change.\n\n\n\n\n\n\nAgain, you first have to create a repository for the project. Go to the ~dev/larva directory and build out a second project inside larva. The project name is \"blinky\", in keeping with the objective. Starting with the target name, you have to specify the different aspects of the project to build the right package for the board. In this case that means setting the architecture (arch), compiler, board support package (bsp), project, and compiler mode.\n\n\n$ newt target create blinky\nCreating target blinky\nTarget blinky sucessfully created!\n$ newt target set blinky arch=cortex_m4\nTarget blinky successfully set arch to arm\n$ newt target set blinky compiler=arm-none-eabi-m4\nTarget blinky succe
 ssfully set compiler to arm-none-eabi-m4\n$ newt target set blinky project=blinky\nTarget blinky successfully set project to blinky\n$ newt target set blinky compiler_def=debug\nTarget blinky successfully set compiler_def to debug\n$ newt target set blinky bsp=hw/bsp/olimex_stm32-e407_devboard\nTarget blinky successfully set bsp to hw/bsp/olimex_stm32-e407_devboard\n$ newt target show blinky\nblinky\n    compiler: arm-none-eabi-m4\n    project: blinky\n    compiler_def: debug\n    bsp: hw/bsp/olimex_stm32-e407_devboard\n    name: blinky\n    arch: cortex_m4\n\n\n\n\n\n\n\nNow you have to build the image package. Once built, you can find the executable \"blinky.elf\" in the project directory at ~/dev/larva/project/blinky/bin/blink. It's a good idea to take a little time to understand the directory structure.\n\n\n$ newt target build blinky\nBuilding target blinky (project = blinky)\nCompiling case.c\nCompiling suite.c\n...\nSuccessfully run!\n$ ls\nLICENSE     clutch.yml  hw      nes
 t.yml    project\nREADME.md   compiler    libs        net     scripts\n$ cd project\n$ ls\nbin2img     bletest     blinky      boot        ffs2native  test\n$ cd blinky\n$ ls\nbin     blinky.yml  egg.yml     src\n$ cd bin\n$ ls\nblinky\n$ cd blinky\n$ ls\nblinky.elf  blinky.elf.bin  blinky.elf.cmd  blinky.elf.lst  blinky.elf.map\n\n\n\n\n\n\n\nCheck that you have all the scripts needed to get OpenOCD up and talking with the project's specific hardware. Check whether you already have the scripts in your \n/usr/share/openocd/scripts/\n directory as they may have been part of the openocd download. If yes, you are all set and can proceed to preparing the hardware. If not, continue with this step.\n\n\nCurrently, the following 5 files are required. They are likely to be packed into a .tar file and made available under mynewt on github.com. Unpack it in the blinky directory using \ntar xvfz\n command. Go into the openocd directory created and make sure that the gdb-8888.cfg file indicates
  the correct file ('blinky.elf' in this case) to load and its full path. Specifically, add 'load ~/dev/larva/project/main/bin/blink/main.elf' and 'symbol-file ~/larva/larva/project/main/bin/blink/main.elf' to this file. Alternatively, you could load these files from within the debugger (gdb) as explained later in the project when you connect to the board using openocd.   \n\n\n\n\nocd-8888.cfg\n\n\nolimex-arm-usb-tiny-h-ftdi.cfg\n\n\narm-gdb.cfg\n\n\ngdb-dev_test-8888.cfg\n\n\nstm32f4x.cfg  \n\n\n\n\nCheck the arm-gdb.cfg file and see whether the executable you created in the previous step is specified as the file to be loaded to the board. You have the choice of specifying the target and load from within the gdb debugger (Section \"Let's Go\", Step 2) instead.\n\n\n$ cat gdb-8888.cfg\necho \\n*** Set target charset ASCII\\n\nset target-charset ASCII\n#set arm fallback-mode arm\n#echo \\n*** set arm fallback-mode arm ***\\n\necho \\n*** Connecting to OpenOCD over port #8888 ***\\n\n
 target remote localhost:8888\necho \\n*** loading nic.out.elf ***\\n\nload ~/dev/larva/project/main/bin/blink/main.elf\nsymbol-file ~/dev/larva/project/main/bin/blink/main.elf \n#echo *** Set breakpoint and run to main() to sync with gdb ***\\n\n#b main\n#continue\n#delete 1\n\n#set arm fallback-mode thumb\n#echo \\n*** set arm fallback-mode thumb ***\\n\\n\n\n\n\nNote that an OpenOCD configuration script is available from Olimex for the STM32-E407 development board e.g. at \nhttps://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg\n, however getting it to work with different versions of OpenOCD and gcc could get tricky. [\nThis will be simplified eventually into a consolidated single action step instead of manual tweaks currently required\n]\n\n\n\n\n\n\nPreparing the hardware to boot from embedded SRAM\n\n\n\n\n\n\nLocate the boot jumpers on the board.\n\n\n\n\n\n\n\n\n\nB1_1/B1_0 and B0_1/B0_0 are PTH jumpers which can be moved relatively easy. Note that the marki
 ngs on the board may not always be accurate. Always refer to the manual for the correct positioning of jumpers in case of doubt. The two jumpers must always be moved together \u2013 they are responsible for the boot mode if bootloader is present. The board can search for bootloader on three places \u2013 User Flash Memory, System Memory or the Embedded SRAM. We will configure it to boot from SRAM by jumpering B0_1 and B1_1.\n\n\n\n\n\n\nConnect USB-OTG#2 in the picture above to a USB port on your computer (or a powered USB hub to make sure there is enough power available to the board). \n\n\n\n\n\n\nConnect the JTAG connector to the SWD/JTAG interface on the board. The other end of the cable should be connected to the USB port or hub of your computer.\n\n\n\n\n\n\nThe red PWR LED should be lit. \n\n\n\n\n\n\nLet's Go!\n\n\n\n\n\n\nGo into the openocd directory and start an OCD session. You should see some status messages are shown below. Check the value of the msp (main service poin
 ter) register. If it is not 0x10010000 as indicated below, you will have to manually set it after you open the gdp tool to load the image on it (next step). Note the \n-c \"reset halt\"\n flag that tells it to halt after opening the session. It will now require a manual \"continue\" command from the GNU debugger in step 3. \n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky/openocd\n$ openocd -f olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c \"reset halt\" \nOpen On-Chip Debugger 0.8.0 (2015-09-22-18:21)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.sourceforge.net/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect 'jtag'\nadapter speed: 1000 kHz\nadapter_nsrst_assert_width: 500\nadapter_nsrst_delay: 100\njtag_ntrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : clock speed 1000 kHz\nInfo : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device f
 ound: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\nInfo : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\nInfo : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 0x2000053c msp: 0x10010000\n\n\n\nIf your scripts are in \n/usr/share/openocd/scripts/\n directory you may need to provide the full path information in the arguments.\n\n\n$ openocd -f /usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f /usr/share/openocd/scripts/target/stm32f4x.cfg -c \"gdb_port 8888; init; reset halt\"\n\n\n\nIf you are on a Windows machine, connect to the board with openocd using the following:\n\n\n$ cd C:\\openocd\n$ bin\\openocd-0.8.0.exe -f scripts\\interface\\ftdi\\olimex-arm-usb-tiny-h.cfg -f scripts\\target\\stm32f4x.cfg -c \"gdb_p
 ort 8888; init; reset halt\"\n\n\n\n\n\n\n\nOpen a new terminal window and run the GNU debugger for ARM. Specifying the script gdb-8888.cfg tells it what image to load. You should now have a (gdb) prompt inside the debugger.\n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky/openocd\n$ arm-none-eabi-gdb -x gdb-8888.cfg \nGNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show warranty\" for details.\nThis GDB was configured as \"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\nType \"show configuration\" for configuration details.\nFor bug reporting instructions, please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual and other documentation resources online at:\
 n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\".\n\n*** Set target charset ASCII\n\n*** Connecting to OpenOCD over port #8888 ***\n0x20000580 in ?? ()\n\n*** loading image ***\nLoading section .text, size 0x65d4 lma 0x20000000\nLoading section .ARM.extab, size 0x24 lma 0x200065dc\nLoading section .ARM.exidx, size 0xd8 lma 0x20006600\nLoading section .data, size 0x8f8 lma 0x200066d8\nStart address 0x2000053c, load size 28624\nTransfer rate: 78 KB/sec, 2862 bytes/write.\n(gdb)\n\n\n\nInstead of the script, you could connect to the openocd process and tell the debugger what image to load from within gdb (which is 'blinky.elf' in this case). Below is an example input/output when doing it on a Windows machine. Note the forward slashes.\n\n\nC:\\dev\\larva\narm-none-eabi-gdb -q\n(gdb) target remote localhost:8888\nRemote debugging using localhost:8888\n0xb064f054 in ?? ()\n...\n(gdb) load C:/d
 ev/larva/project/blinky/bin/blinky/blinky.elf\nLoading section .text, size 0x6778 lma 0x20000000\nLoading section .ARM.extab, size 0x18 lma 0x20006778\nLoading section .ARM.exidx, size 0xc8 lma 0x20006790\nLoading section .data, size 0x8f8 lma 0x20006858\nStart address 0x20000528, load size 29008\nTransfer rate: 72 KB/sec, 2900 bytes/write.\n(gdb) symbol-file C:/dev/larva/project/blinky/bin/blinky/blinky.elf\nReading symbols from C:/dev/larva/project/blinky/bin/blinky/blinky.elf...done.\n\n\n\n\n\n\n\nFrom within gdb check the registers. Set the msp register for the main stack pointer to the expected value as shown here. \n\n\nFinally, hit \nc\n to continue... and your green LED should blink!\n\n\n(gdb) info reg all\n r0             0x0 0\n r1             0x0 0\n r2             0x0 0\n r3             0x0 0\n r4             0x0 0\n r5             0x0 0\n r6             0x0 0\n r7             0x0 0\n r8             0x0 0\n r9             0x0 0\n r10            0x0 0\n r11            0
 x0 0\n r12            0x0 0\n sp             0x10010000  0x10010000\n lr             0xffffffff  -1\n pc             0x20000580  0x20000580 \nReset_Handler\n\n xPSR           0x1000000   16777216\n msp            0x10010000  0x10010000\n psp            0x0 0x0\n primask        0x0 0\n basepri        0x0 0\n faultmask      0x0 0\n control        0x0 0\n (gdb) set $msp=0x10010000\n (gdb) c\n Continuing.\n\n\n\n\n\n\n\nVoil\u00e0! The board's LED should be blinking at 1 Hz.\n\n\n\n\n\n\nUsing flash to make LED blink\n\n\n\n\nConfigure the board to boot from flash by moving the two jumpers together to B0_0 and B1_0. \n\n\n\n\nYou will have to reset the board once the image is uploaded to it.\n\n\n\n\n\n\nBy now you know that you have to build a new package. First, the olimex_stm32-e407_devboard.ld linker script which was previously the same as run_from_sram.ld will now need the contents of run_from_flash.ld. Then the target has to be rebuilt. You will simply replace the blinky project c
 ontents with the eggs needed to boot from flash instead of creating a new nest.\n\n\n$ cd ~/dev/larva/hw/bsp/olimex_stm32-e407_devboard\n$ diff olimex_stm32-e407_devboard.ld run_from_sram.ld\n$ cp run_from_flash.ld olimex_stm32-e407_devboard.ld\n$ cd ~/dev/larva/project/blinky/bin/blinky\n$ newt target build blinky\n\n\n\n\n\n\n\nGo to the openocd directory under blink and use OpenOCD to open up a session with the board as done while booting from SRAM.\n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky/openocd\n$ openocd -f olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c \"reset halt\" \nOpen On-Chip Debugger 0.8.0 (2015-09-22-18:21)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.sourceforge.net/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect 'jtag'\nadapter speed: 1000 kHz\nadapter_nsrst_assert_width: 500\nadapter_nsrst_delay: 100\njtag_ntrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : clock speed 1000 kHz\nInfo : 
 JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\nInfo : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 0x0800408c psp: 0x20003c60\nInfo : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 0x0800053c msp: 0x10010000\n\n\n\n\n\n\n\nRun the GNU debugger for ARM in a different window. Specifying the script gdb-8888.cfg tells it what image to load. You should now have a (gdb) prompt inside the debugger.\n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky/openocd\n$ arm-none-eabi-gdb -x gdb-8888.cfg \nGNU gdb (GNU 
 Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis is free software: you are free to change and redistribute it.\nThere is NO WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show warranty\" for details.\nThis GDB was configured as \"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\nType \"show configuration\" for configuration details.\nFor bug reporting instructions, please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual and other documentation resources online at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\".\n\n*** Set target charset ASCII\n\n*** Connecting to OpenOCD over port #8888 ***\n0x20000580 in ?? ()\n\n*** loading nic.out.elf ***\nLoading section .text, size 0x65d4 lma 0x20000000\nLo
 ading section .ARM.extab, size 0x24 lma 0x200065d4\nLoading section .ARM.exidx, size 0xd8 lma 0x200065f8\nLoading section .data, size 0x8f8 lma 0x200066d0\nStart address 0x20000580, load size 28616\nTransfer rate: 78 KB/sec, 2861 bytes/write.\n(gdb)\n\n\n\n\n\n\n\nFrom within gdb check the registers. Set the msp register to the value expected. Finally, hit \nc\n to continue... and your green LED should blink!\n\n\n(gdb) info reg all\n r0             0x0 0\n r1             0x0 0\n r2             0x0 0\n r3             0x0 0\n r4             0x0 0\n r5             0x0 0\n r6             0x0 0\n r7             0x0 0\n r8             0x0 0\n r9             0x0 0\n r10            0x0 0\n r11            0x0 0\n r12            0x0 0\n sp             0x10010000  0x10010000\n lr             0xffffffff  -1\n pc             0x20000580  0x20000580 \nReset_Handler\n\n xPSR           0x1000000   16777216\n msp            0x10010000  0x10010000\n psp            0x0 0x0\n primask        0x0 0\n bas
 epri        0x0 0\n faultmask      0x0 0\n control        0x0 0\n (gdb) set $msp=0x10010000\n (gdb) c\n Continuing.\n\n\n\n\n\n\n\nThe LED should be blinking! But wait...let's double check that it is indeed booting from flash and making the LED blink from the image in flash. Pull the USB cable off the Olimex JTAG adaptor. The debug connection to the JTAG port is now severed. Next power off the Olimex board by pulling out the USB cable from the board. Wait for a couple of seconds and plug the USB cable back to the board. \n\n\nThe LED light will start blinking again. Success!\n\n\nNote: If you want to erase the flash and load the image again you may use the following commands from within gdb. \nflash erase 0 0 x\n tells it to erase sectors 0 through x. When you ask it to display (in hex notation) the contents of the sector starting at location 'lma' you should therefore see all f's. The memory location 0x8000000 is the start or origin of the flash memory contents and is specified in 
 the olimex_stm32-e407_devboard.ld linker script. The flash memory locations is specific to the processor.\n\n\n(gdb) monitor flash erase_sector 0 0 4\nerased sectors 0 through 4 on flash bank 0 in 2.296712s\n(gdb) x/32wx 0x8000000 \n0x8000000 \n__isr_vector\n:   0xffffffff  0xffffffff 0xffffffff 0xffffffff \n0x8000010 \n__isr_vector+16\n:    0xffffffff 0xffffffff 0xffffffff 0xffffffff\n...", 
-            "title": "Introduction"
-        }, 
-        {
-            "location": "/chapter1/intro/#introduction-to-mynewt-test", 
-            "text": "We want to make it very simple for an application developer to develop and release application programs on an embedded device of their choice. With that in mind, we offer a complete suite of open-source software ranging from an operating system to network protocol stacks. We offer the user of our wares the flexibility to choose hardware component(s) and easily build a software platform for it with desired features and performance.   We invite you to join us in our efforts to develop the ecosystem of firmware, software, and tools needed to offer the higher level of abstraction to various developers to enable them to be more productive and to decrease the time to market their applications on the embedded devices of their choosing.", 
-            "title": "Introduction to Mynewt - test"
-        }, 
-        {
-            "location": "/chapter1/intro/#basic-components-in-the-ecosystem", 
-            "text": "NewtOS is an open-source RTOS (Real Time Operating System) that is not tied to any particular hardware but can be tuned to the hardware component mix of the user's choosing. It has support for multitasking, synchronization of tasks, scheduling and buffering of operations, memory management,file systems, networking, security, power management, and other advanced features. Naturally, it involves several packages such as the Core RTOS, a flash file system, utility functions, a variety of board support packages, packages of microcontrollers etc.    Network protocol stacks such as Bluetooth Low Energy, and more    Newt Tool helps you mix the specific packages for the combination of hardware and low-level embedded architecture features of the user's choice and generate the corresponding run-time image based on the NewtOS. It provides the infrastructure to manage and build for different CPU architectures, memory units, board support packages etc., allowing a user to fo
 rmulate the contents according to the low-level features needed by his or her project.", 
-            "title": "Basic components in the ecosystem"
-        }, 
-        {
-            "location": "/chapter1/intro/#terminology", 
-            "text": "In the mynewt lifecycle, a project grows in a nest. A nest may house multiple projects. The nest is, therefore, a repository where various component packages for one or more projects reside. Each package is an egg, naturally. However, an egg may consist of other eggs!  A nest can be given any name. You will see a nest named \"tadpole\" in mynewt. It contains all the core libraries of the operating system for distribution. Each of these directories contain one or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS.   libs/os: The core RTOS which ports to all supported chip platforms.  hw/hal: The hardware abstraction layer (HAL) API definitions that all BSP and MCU implementations must support  hw/mcu/native: A MCU implementation for the native platform  hw/bsp/native: A BSP implementation for the native platform  compiler/native: The definition of compiler support for the native platform.   Each of the above directories contain one
  or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS. For example, the libs/os directory holds eggs such as the bootloader, flash file system, the kernel for process/thread/memory management, tools for testing etc. The hw/hal directory holds an egg that provides abstraction for physical hardware components such as GPIO (general purpose input/output), network adapters, timers, and universal asynchronous receiver-transmitters (UARTs). All these physical interfaces are defined in various header files in hw/hal, and are designed to make device driver specification simpler.  You can see another nest in the mynewt ecosystem called the \"larva\". It was spawned from the \"tadpole\" nest using the newt tool. Spawning is easy -  $ newt create nest  your_nest_name . \"larva\" is the developer's test repository containing all sorts of eggs being incubated, including ones to enhance the core operating system which should eventually make their way into the \"tad
 pole\" nest. There is a  hatch_tadpole  script to update the \"tadpole\" nest when the core OS related eggs in \"larva\" are ready.  There is a third nest named \"newt\" that contains all the eggs needed to support the build and release process of mynewt software.  There will also be pre-built nests for certain common hardware devices to enable a user to quickly get started with a project.", 
-            "title": "Terminology"
-        }, 
-        {
-            "location": "/chapter1/intro/#a-mynewt-contributor", 
-            "text": "A contributor can choose to work on any area(s) of the Mynewt endeavor that appeals to him or her. Hence, you can work on one or more eggs or an entire nest. You can create your own nest (master) or create a branch in an existing nest. For now, Runtime contributors will review any new areas of support that you may wish to introduce e.g. a new board support package (BSP) or a new network protocol.   A contributer role necessarily implies he or she is a Mynewt user (see below) of some or all of the products developed.", 
-            "title": "A Mynewt contributor"
-        }, 
-        {
-            "location": "/chapter1/intro/#a-mynewt-user", 
-            "text": "An application developer is interested only in using software available in this ecosystem to build a top level build artifact. He or she may either:   Use a pre-built nest, or  Spawn a new nest using the newt tool for a target where a target is a custom combination of supported hardware components   In either case, the user would use the newt tool to create and set the target in the chosen nest. The newt tool would then be used to build out the target profile which would determine which eggs to choose. Finally, the user would use the newt tool to generate a run-time image that can be run on the device.", 
-            "title": "A Mynewt user"
-        }, 
-        {
-            "location": "/chapter1/intro/#getting-started-project-blinky", 
-            "text": "We will show you how you can use eggs from a nest on Mynewt to make an LED on a target board blink. We will call it   Project Blinky . The goals of this tutorial are threefold:   First, you will learn how to set up your environment to be ready to use the various eggs that you will download from Mynewt.   Second, we will walk you through a download of eggs for building and testing  on a simulated target .  Third, you will download eggs and use tools to create a runtime image for a board to  make its LED blink .    If you want to explore even further, you can try to upload the image to the board's flash memory and have it  boot from flash !  What you need   STM32-E407 development board from Olimex.  ARM-USB-TINY-H connector with JTAG interface for debugging ARM microcontrollers (comes with the ribbon cable to hook up to the board)  USB A-B type cable to connect the debugger to your personal computer  Personal Computer   The instructions assume the user is using a 
 Bourne-compatible shell (e.g. bash or zsh) on your computer. You may already have some of the required packages on your machine.  In that \ncase, simply skip the corresponding installation step in the instructions under  Getting your Mac Ready  or  Getting your Ubuntu machine Ready  or  Getting your Windows machine Ready . While the given instructions should work on other versions, they have been tested for the three specific releases of operating systems noted here:   Mac: OS X Yosemite Version 10.10.5  Linux: Ubuntu 14.10 (Utopic Unicorn)  Windows: Windows 10   Getting your Mac Ready  Getting an account on GitHub   Get an account on GitHub. Make sure you have joined the \"Newt Operating System\" organization.   Installing Homebrew to ease installs on OS X    Do you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.  $ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/maste
 r/install)\"  Alternatively, you can just extract (or  git clone ) Homebrew and install it to  /usr/local .    Creating local repository    The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:    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. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning 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.\n    $ vi ~/.bash_profile    The next step is to set up the repository for the pa
 ckage building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the installation.  $ mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt    Installing Go and Godep    Next you will use brew to install go. The summary message at the end of the installation should indicate that it as installed in the /usr/local/Cellar/go/ directory. Use the go command 'install' to compile and install packages and dependencies. Also set the GOROOT environment variable to /usr/local/Cellar/go as that is the root of the brewed go directory structure. Again, to make the export variable permanent, add it to your ~/.bash_profile and ~./bash
 rc files.  $ brew install go\n==  \n==  \n==  *Summary*\n\ud83c\udf7a  /usr/local/Cellar/go/1.5.1: 5330 files, 273M\n$ cd $GOPATH/src/github.com/mynewt/newt\n$ export GOROOT=/usr/local/Cellar/go  Alternatively, you can download the go package directly from (https://golang.org/dl/) instead of brewing it. Install it in /usr/local directory and set GOROOT to /usr/local/go as that is now the root of the go directory structure.    Now you will get the godep package. Return to the go directory level and get godep. Check for it in the bin subdirectory. Add the go environment to path. Make sure it is added to your .bash_profile.  $ cd $GOPATH\n$ go get github.com/tools/godep\n$ ls\nbin     pkg     src\n$ ls bin\ngodep\n$ export PATH=$PATH:$GOPATH/bin    Use the go command 'install' to compile and install packages and dependencies. In preparation for the install, you may use the godep command 'restore' to check out listed dependency versions in $GOPATH and link all the necessary files. Note 
 that you may have to go to the  ~/dev/go/src/github.com/mynewt/newt  directory to successfully run the restore command (e.g. on certain distributions of Linux). You may also have to do a  go get  before the restore to make sure all the necessary packages and dependencies are correct.  $ cd ~/dev/go/src/github.com/mynewt/newt\n$ go get\n$ ~/dev/go/bin/godep restore\n$ go install    Building the Newt tool   You will now use go to run the newt.go program to build the newt tool. You will have to use  go build  command which compiles and writes the resulting executable to an output file named  newt . However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use  go install ). Now try running newt using the compiled binary. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.   Note: If you are going to be be modifying the newt tool itself ofte
 n and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in  export newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"  in your .bash_profile and execute it by calling  $newt  at the prompt instead of  newt . Don't forget to reload the updated bash profile by typing  source ~/.bash_profile  at the prompt! Here, you use  go run  which runs the compiled binary directly without producing an executable.      $ go run %GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd ~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md       coding_style.txt    newt\n    LICENSE         cli         design.txt      newt.go\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 wor
 kspace, 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 [ command-name ]\n       For help on  command-name .  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   clutches (remote egg repositories)\n     help        Help about any command\n\n    Flags:\n     -h, --help=false: help for newt\n     -l, --loglevel=\"WARN\": Log level, defaults to WARN.\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\n\n    Use \"newt help [command]\" for more information about a command.   Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool.    Getting the debugger ready    Before you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. So, first install gcc. You will see the brew steps and a final summary confirming install.  $ brew install gcc\n...\n...\n==  Summary\n\ud83c\udf7a  /usr/local/Cellar/gcc/5.2.0: 1353 files, 248M    ARM maintains a pre-built GNU toolchain with a GCC source branch targeted at Embedded ARM Processors namely Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check the ve
 rsion installed. Make sure that the symbolic link installed by Homebrew points to the correct version of the debugger. If not, you can either change the symbolic link using the \"ln -f -s\" command or just go ahead and try with the version it points to!  $ brew tap PX4/homebrew-px4\n$ brew update\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 -  /usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb  Note: If no version is specified, brew will install the latest version available. StackOS will ev
 entually work with multiple versions available including the latest releases. However, at present we have tested only with this version and recommend it for getting started.     You have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interface with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. Use brew to install it. Brew adds a simlink /usr/local/bin/openocd to the openocd directory in the Cellar.  $ brew install open-ocd\n$ which openocd\n/usr/local/bin/openocd\n$ ls -l $(which openocd)\nlrwxr-xr-x  1  user   admin  36 Sep 17 16:22 /usr/local/bin/openocd -  ../Cellar/open-ocd/0.9.0/bin/openocd    Proceed to the  Building test code on simulator  section.  Getting your Ubuntu machine Ready  Getting an account on GitHub   Get an account on GitHub. Make sure you have joined the \"Newt Operating System\" organization.   Inst
 alling some prerequisites   Install git, libcurl, and the go language if you do not have them already. $ sudo apt-get install git \n$ sudo apt-get install libcurl4-gnutls-dev \n$ sudo apt-get install golang    Creating local repository    The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:    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. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning 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 ~/.bashrc (or equivalent) to exp
 ort variables permanently.    Next, install godep. Note that the following command produces no output.  $ go get github.com/tools/godep    Set up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the contents of the directory.  $ mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt    Use the go command 'install' to compile and install packages and dependencies. Add go environment to path. Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.  $ $GOPATH/bin/godep restore \n$ go get \n$ go install \n$ export PATH=$PATH:$GOPATH/bin    Buildin
 g the newt tool   You will now use go to run the newt.go program to build the newt tool. You will have to use  go build  command which compiles and writes the resulting executable to an output file named  newt . However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use  go install ). Now try running newt using the compiled binary. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.   Note: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in  export newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"  in your ~/.bashrc (or equivalent) and execute it by calling  $newt  at the prompt instead of  newt . Here, you use  go run  which runs the compiled binary directly without producing a
 n executable.      $ go build %GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd ~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md       coding_style.txt    newt\n    LICENSE         cli         design.txt      newt.go\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 [ command-name ]\n 
       For help on  command-name .  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   clutches (remote egg repositories)\n     help        Help about any command\n\n    Flags:\n     -h, --help=false: help for newt\n     -l, --loglevel=\"WARN\": Log level, defaults to WARN.\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\n\n    Use \"newt help [command]\" for more information about a command.   Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool.    Getting the debugger ready    Before you start building nests an
 d hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. You can install these as follows:   $ sudo apt-get install gcc-multilib libc6-i386    For the LED project on the Olimex hardware, you have to install gcc for AM 4.9.3.  This package can be installed with apt-get as documented  here .  $ 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    And finally, you have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interface with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. You have to acquire OpenOCD 0.8.0.   If you are running Ubuntu 15.x, then you are in luck and you can simply run:   $ sudo apt-get install o
 penocd  Other versions of Ubuntu may not have the correct version of openocd available.  In this case, you should download the openocd 0.8.0 package from  https://launchpad.net/ubuntu/vivid/+source/openocd . The direct link to the amd64 build is  http://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb .     Proceed to the  Building test code on simulator  section.  Getting your Windows machine Ready  Getting an account on GitHub   Get an account on GitHub. Make sure you have joined the \"Newt Operating System\" organization.   Installing some prerequisites    You have to install the following if you do not have them already.  The steps below indicate specific folders where each of these programs should be installed. You can choose different locations, but the remainder of this\ntutorial for a Windows machine assumes the specified folders.       win-builds-i686  win-builds-x86_64  MSYS  gcc for ARM  openocd  zadig  git   go   win-builds (mingw64) 1.5 for i686   Download fro
 m  http://win-builds.org/doku.php/download_and_installation_from_windows . Install at: \"C:\\win-builds-i686\".  Be sure to click the i686 option (not x86_64). The defaults for all other options are OK. The installer will want to download a bunch of additional packages. They are not all necessary, but it is simplest to just accept the defaults.   win-builds (mingw64) 1.5 for x86_64   Download from  http://win-builds.org/doku.php/download_and_installation_from_windows . Install at \"C:\\win-builds-x86_64\"  Run the installer a second time, but this time click the x86_64 option, NOT i686.  The defaults for all other options are OK.   MSYS   Start your download from  http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip  Unzip to \"C:\\msys\"   gcc for ARM, 4.9.3   Download the Windows installer from  https://launchpad.net/gcc-arm-embedded/+download  and install at \"C:\\Program Files (x86)\\GNU Tools A
 RM Embedded\\4.9 2015q3\".   OpenOCD 0.8.0   Download OpenOCD 0.8.0 from  http://www.freddiechopin.info/en/download/category/4-openocd . Unzip to \"C:\\openocd\".   Zadig 2.1.2   Download it from  http://zadig.akeo.ie  and install it at \"C:\\zadig\".   Git   Click on  https://git-scm.com/download/win  to start the download. Install at \"C:\\Program Files (x86)\\Git\". Specify the \"Use Git from the Windows Command Prompt\" option.  The defaults for all other options are OK.   Go   Download the release for Microsoft Windows from  https://golang.org/dl/  and install it \"C:\\Go\".      Creating local repository    The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:    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 specifie
 s the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.  $ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go    Set the following user environment variables using the steps outlined here.   GOPATH: C:\\dev\\go  PATH: C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin   Steps:   Right-click the start button  Click \"Control panel\"  Click \"System and Security\"  Click \"System\"  Click \"Advanced system settings\" in the left panel  Click the \"Envoronment Variables...\" button  There will be two sets of environment variables: user variables\n  in the upper half of the screen, and system variables in the lower\n  half.  Configuring the user variables is recommended and tested \n  (though system variables will work as well).   
   Next, install godep. Note that the following command produces no output.  $ go get github.com/tools/godep    Set up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the contents of the directory.  $ mkdir %GOPATH%\\src\\github.com\\mynewt\n$ cd %GOPATH%\\src\\github.com\\mynewt\n$ git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps                  README.md               coding_style.txt        newt.go\nLICENSE                 cli                     design.txt    Use the go command 'install' to compile and install packages and dependencies. Add go environment to path. Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.  $ %GOPATH%\\bin\\godep restore \n$ go get \n$ go install    Building the newt tool    You will now use go to run the newt.g
 o program to build the newt tool. You will have to use  go build  command which compiles and writes the resulting executable to an output file named  newt . However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use  go install ). Now try running newt using the compiled binary. For example, check for the version number by typing 'newt version'. See all the possible commands available to a user of newt by typing 'newt -h'.  Note: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to define the newt environment variable that allows you to execute the command via  %newt% . Use  set newt=go run %GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go  or set it from the GUI. Here, you use  go run  which runs the compiled binary directly without producing an executable.  $ go build %GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n$ cd ~/dev/go/src/github.com/m
 ynewt/newt\n$ dir\nGodeps          README.md       coding_style.txt    newt\nLICENSE         cli         design.txt      newt.go\n$ newt version\nNewt version:  1.0\n$ newt -h\nNewt allows you to create your own embedded project based on the Mynewt\noperating system. Newt provides both build and package management in a\nsingle tool, which allows you to compose an embedded workspace, and set\nof projects, and then build the necessary artifacts from those projects.\nFor more information on the Mynewt operating system, please visit\nhttps://www.github.com/mynewt/documentation.\n\nPlease use the newt help command, and specify the name of the command\nyou want help for, for help on how to use a specific command\n\nUsage:\n newt [flags]\n newt [command]\n\nExamples:\n newt\n newt help [ command-name ]\n   For help on  command-name .  If not specified, print this message

<TRUNCATED>


[4/4] incubator-mynewt-site git commit: anchors fixed

Posted by we...@apache.org.
anchors fixed


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/commit/ff2aecef
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/tree/ff2aecef
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/diff/ff2aecef

Branch: refs/heads/asf-site
Commit: ff2aecefaccac5421c4793373fd2199c01f06292
Parents: 791ec6c
Author: aditihilbert <ad...@runtime.io>
Authored: Fri Oct 30 00:41:37 2015 -0700
Committer: aditihilbert <ad...@runtime.io>
Committed: Fri Oct 30 00:41:37 2015 -0700

----------------------------------------------------------------------
 index.html                                   |   12 +-
 site/chapter1/intro/index.html               | 1247 ---------------------
 site/chapter1/newt_concepts/index.html       |   26 +-
 site/chapter1/project1/index.html            |  162 +--
 site/chapter2/project2/index.html            |   36 +-
 site/chapter2/project3/index.html            |   16 +-
 site/chapter2/vocabulary/index.html          |   40 +-
 site/chapter3/newt_ops/index.html            |   16 +-
 site/chapter3/newt_tool_reference/index.html |   82 +-
 site/index.html                              |   24 +-
 site/mkdocs/search_index.json                |   68 +-
 site/sitemap.xml                             |   38 +-
 12 files changed, 198 insertions(+), 1569 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/index.html
----------------------------------------------------------------------
diff --git a/index.html b/index.html
index e66cd2a..b0f5bd1 100644
--- a/index.html
+++ b/index.html
@@ -28,8 +28,9 @@
 
 <ul class="navbar">
   <li><a href="index.html">Welcome</a>
-  <li><a href="intro.html">Overview</a>
+  <li><a href="https://wiki.apache.org/incubator/MynewtProposal"> Project Proposal</a>
   <li><a href="https://issues.apache.org/jira/browse/MYNEWT/?selectedTab=com.atlassian.jira.jira-projects-plugin:summary-panel">Issue Tracking</a>
+  <li><a href="http://incubator.apache.org/projects/mynewt.html">Project Status</a>
   <li><a href="site/index.html">Documentation</a>
 </ul>
 
@@ -39,14 +40,17 @@
   This is a placeholder for the Apache Mynewt project.
   </p> 
   <p> 
-  In the meanwhile, if you're interested in contributing - join the dev@mynewt.incubator.apache.org
+  In the meanwhile, if you're interested in contributing - check out the available documentation and join the dev@mynewt.incubator.apache.org 
   mailing list, and say hi! 
   </p>
 
 
-<h2> Links </h2>
+<h2> Project GIT Repository </h2>
+
+<li><a href="https://git-wip-us.apache.org/repos/asf/incubator-mynewt-site.git"> Documentation repo</a>
+<li><a href="https://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva.git ">  Main development repo including all major packages </a>
+<li><a href="https://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git "> Newt Tool repo</a>
 
-<li><a href="https://wiki.apache.org/incubator/MynewtProposal"> Project Proposal</a>
 
 
 <h2> Mailing Lists </h2>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter1/intro/index.html
----------------------------------------------------------------------
diff --git a/site/chapter1/intro/index.html b/site/chapter1/intro/index.html
deleted file mode 100644
index 392d06b..0000000
--- a/site/chapter1/intro/index.html
+++ /dev/null
@@ -1,1247 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-    <head>
-        <meta charset="utf-8">
-        <meta http-equiv="X-UA-Compatible" content="IE=edge">
-        <meta name="viewport" content="width=device-width, initial-scale=1.0">
-        
-        
-        
-        <link rel="shortcut icon" href="../../img/favicon.ico">
-
-	<title>Introduction - MyNewt</title>
-
-        <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
-        <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
-        <link href="../../css/base.css" rel="stylesheet">
-        <link rel="stylesheet" href="../../css/highlight.css">
-
-        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
-        <!--[if lt IE 9]>
-            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
-            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
-        <![endif]-->
-
-        
-    </head>
-
-    <body>
-
-        <div class="navbar navbar-default navbar-fixed-top" role="navigation">
-    <div class="container">
-
-        <!-- Collapsed navigation -->
-        <div class="navbar-header">
-            
-            <!-- Expander button -->
-            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
-                <span class="sr-only">Toggle navigation</span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-                <span class="icon-bar"></span>
-            </button>
-            
-
-            <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
-        </div>
-
-        <!-- Expanded navigation -->
-        <div class="navbar-collapse collapse">
-            
-                <!-- Main navigation -->
-                <ul class="nav navbar-nav">
-                
-                
-                    <li >
-                        <a href="../..">Home</a>
-                    </li>
-                
-                
-                
-                    <li class="dropdown active">
-                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Started <b class="caret"></b></a>
-                        <ul class="dropdown-menu">
-                        
-                            
-<li class="active">
-    <a href="./">Introduction</a>
-</li>
-
-                        
-                            
-<li >
-    <a href="../newt_concepts/">Newt Concepts</a>
-</li>
-
-                        
-                            
-<li >
-    <a href="../project1/">Blinkie, The First Project</a>
-</li>
-
-                        
-                        </ul>
-                    </li>
-                
-                
-                
-                    <li class="dropdown">
-                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Getting Acclimatized <b class="caret"></b></a>
-                        <ul class="dropdown-menu">
-                        
-                            
-<li >
-    <a href="../../chapter2/vocabulary/">Understanding Newt Terms</a>
-</li>
-
-                        
-                            
-<li >
-    <a href="../../chapter2/project2/">Project 2</a>
-</li>
-
-                        
-                            
-<li >
-    <a href="../../chapter2/project3/">Project 3</a>
-</li>
-
-                        
-                        </ul>
-                    </li>
-                
-                
-                
-                    <li class="dropdown">
-                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Newt tool Reference <b class="caret"></b></a>
-                        <ul class="dropdown-menu">
-                        
-                            
-<li >
-    <a href="../../chapter3/newt_ops/">Command structure</a>
-</li>
-
-                        
-                            
-<li >
-    <a href="../../chapter3/newt_tool_reference/">Command list</a>
-</li>
-
-                        
-                        </ul>
-                    </li>
-                
-                
-                </ul>
-            
-
-            <ul class="nav navbar-nav navbar-right">
-                <li>
-                    <a href="#" data-toggle="modal" data-target="#mkdocs_search_modal">
-                        <i class="fa fa-search"></i> Search
-                    </a>
-                </li>
-                
-                    <li >
-                        <a rel="next" href="../..">
-                            <i class="fa fa-arrow-left"></i> Previous
-                        </a>
-                    </li>
-                    <li >
-                        <a rel="prev" href="../newt_concepts/">
-                            Next <i class="fa fa-arrow-right"></i>
-                        </a>
-                    </li>
-                
-                
-            </ul>
-        </div>
-    </div>
-</div>
-
-        <div class="container">
-            
-                <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
-    <ul class="nav bs-sidenav">
-    
-        <li class="main active"><a href="#introduction-to-mynewt-test">Introduction to Mynewt - test</a></li>
-        
-            <li><a href="#basic-components-in-the-ecosystem">Basic components in the ecosystem</a></li>
-        
-            <li><a href="#terminology">Terminology</a></li>
-        
-            <li><a href="#a-mynewt-contributor">A Mynewt contributor</a></li>
-        
-            <li><a href="#a-mynewt-user">A Mynewt user</a></li>
-        
-            <li><a href="#getting-started-project-blinky">Getting Started - Project Blinky</a></li>
-        
-    
-    </ul>
-</div></div>
-                <div class="col-md-9" role="main">
-
-<h1 id="introduction-to-mynewt-test">Introduction to Mynewt - test</h1>
-<p>We want to make it very simple for an application developer to develop and release application programs on an embedded device of their choice. With that in mind, we offer a complete suite of open-source software ranging from an operating system to network protocol stacks. We offer the user of our wares the flexibility to choose hardware component(s) and easily build a software platform for it with desired features and performance. </p>
-<p>We invite you to join us in our efforts to develop the ecosystem of firmware, software, and tools needed to offer the higher level of abstraction to various developers to enable them to be more productive and to decrease the time to market their applications on the embedded devices of their choosing.</p>
-<h2 id="basic-components-in-the-ecosystem">Basic components in the ecosystem</h2>
-<ul>
-<li>
-<p>NewtOS is an open-source RTOS (Real Time Operating System) that is not tied to any particular hardware but can be tuned to the hardware component mix of the user's choosing. It has support for multitasking, synchronization of tasks, scheduling and buffering of operations, memory management,file systems, networking, security, power management, and other advanced features. Naturally, it involves several packages such as the Core RTOS, a flash file system, utility functions, a variety of board support packages, packages of microcontrollers etc.</p>
-</li>
-<li>
-<p>Network protocol stacks such as Bluetooth Low Energy, and more</p>
-</li>
-<li>
-<p>Newt Tool helps you mix the specific packages for the combination of hardware and low-level embedded architecture features of the user's choice and generate the corresponding run-time image based on the NewtOS. It provides the infrastructure to manage and build for different CPU architectures, memory units, board support packages etc., allowing a user to formulate the contents according to the low-level features needed by his or her project.</p>
-</li>
-</ul>
-<h2 id="terminology">Terminology</h2>
-<p>In the mynewt lifecycle, a project grows in a nest. A nest may house multiple projects. The nest is, therefore, a repository where various component packages for one or more projects reside. Each package is an egg, naturally. However, an egg may consist of other eggs!</p>
-<p>A nest can be given any name. You will see a nest named "tadpole" in mynewt. It contains all the core libraries of the operating system for distribution. Each of these directories contain one or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS.</p>
-<ul>
-<li>libs/os: The core RTOS which ports to all supported chip platforms.</li>
-<li>hw/hal: The hardware abstraction layer (HAL) API definitions that all BSP and MCU implementations must support</li>
-<li>hw/mcu/native: A MCU implementation for the native platform</li>
-<li>hw/bsp/native: A BSP implementation for the native platform</li>
-<li>compiler/native: The definition of compiler support for the native platform.</li>
-</ul>
-<p>Each of the above directories contain one or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS. For example, the libs/os directory holds eggs such as the bootloader, flash file system, the kernel for process/thread/memory management, tools for testing etc. The hw/hal directory holds an egg that provides abstraction for physical hardware components such as GPIO (general purpose input/output), network adapters, timers, and universal asynchronous receiver-transmitters (UARTs). All these physical interfaces are defined in various header files in hw/hal, and are designed to make device driver specification simpler.</p>
-<p>You can see another nest in the mynewt ecosystem called the "larva". It was spawned from the "tadpole" nest using the newt tool. Spawning is easy - <code>$ newt create nest &lt;your_nest_name&gt;</code>. "larva" is the developer's test repository containing all sorts of eggs being incubated, including ones to enhance the core operating system which should eventually make their way into the "tadpole" nest. There is a <code>hatch_tadpole</code> script to update the "tadpole" nest when the core OS related eggs in "larva" are ready.</p>
-<p>There is a third nest named "newt" that contains all the eggs needed to support the build and release process of mynewt software.</p>
-<p>There will also be pre-built nests for certain common hardware devices to enable a user to quickly get started with a project.</p>
-<h2 id="a-mynewt-contributor">A Mynewt contributor</h2>
-<p>A contributor can choose to work on any area(s) of the Mynewt endeavor that appeals to him or her. Hence, you can work on one or more eggs or an entire nest. You can create your own nest (master) or create a branch in an existing nest. For now, Runtime contributors will review any new areas of support that you may wish to introduce e.g. a new board support package (BSP) or a new network protocol. </p>
-<p>A contributer role necessarily implies he or she is a Mynewt user (see below) of some or all of the products developed.</p>
-<h2 id="a-mynewt-user">A Mynewt user</h2>
-<p>An application developer is interested only in using software available in this ecosystem to build a top level build artifact. He or she may either:</p>
-<ul>
-<li>Use a pre-built nest, or</li>
-<li>Spawn a new nest using the newt tool for a target where a target is a custom combination of supported hardware components</li>
-</ul>
-<p>In either case, the user would use the newt tool to create and set the target in the chosen nest. The newt tool would then be used to build out the target profile which would determine which eggs to choose. Finally, the user would use the newt tool to generate a run-time image that can be run on the device.</p>
-<h2 id="getting-started-project-blinky">Getting Started - Project Blinky</h2>
-<p>We will show you how you can use eggs from a nest on Mynewt to make an LED on a target board blink. We will call it <strong> Project Blinky</strong>. The goals of this tutorial are threefold:</p>
-<ol>
-<li>First, you will learn how to set up your environment to be ready to use the various eggs that you will download from Mynewt. </li>
-<li>Second, we will walk you through a download of eggs for building and testing <a href="#anchor4">on a simulated target</a>.</li>
-<li>Third, you will download eggs and use tools to create a runtime image for a board to <a href="#anchor5">make its LED blink</a>. </li>
-</ol>
-<p>If you want to explore even further, you can try to upload the image to the board's flash memory and have it <a href="#anchor6">boot from flash</a>!</p>
-<h3 id="what-you-need">What you need</h3>
-<ol>
-<li>STM32-E407 development board from Olimex.</li>
-<li>ARM-USB-TINY-H connector with JTAG interface for debugging ARM microcontrollers (comes with the ribbon cable to hook up to the board)</li>
-<li>USB A-B type cable to connect the debugger to your personal computer</li>
-<li>Personal Computer</li>
-</ol>
-<p>The instructions assume the user is using a Bourne-compatible shell (e.g. bash or zsh) on your computer. You may already have some of the required packages on your machine.  In that 
-case, simply skip the corresponding installation step in the instructions under <a href="#anchor1">Getting your Mac Ready</a> or <a href="#anchor2">Getting your Ubuntu machine Ready</a> or <a href="#anchor3">Getting your Windows machine Ready</a>. While the given instructions should work on other versions, they have been tested for the three specific releases of operating systems noted here:</p>
-<ul>
-<li>Mac: OS X Yosemite Version 10.10.5</li>
-<li>Linux: Ubuntu 14.10 (Utopic Unicorn)</li>
-<li>Windows: Windows 10</li>
-</ul>
-<h3 id="getting-your-mac-ready"><a href="id:anchor1">Getting your Mac Ready</a></h3>
-<h4 id="getting-an-account-on-github">Getting an account on GitHub</h4>
-<ul>
-<li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
-</ul>
-<h4 id="installing-homebrew-to-ease-installs-on-os-x">Installing Homebrew to ease installs on OS X</h4>
-<ul>
-<li>
-<p>Do you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.</p>
-<pre><code>$ ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
-</code></pre>
-<p>Alternatively, you can just extract (or <code>git clone</code>) Homebrew and install it to <code>/usr/local</code>.</p>
-</li>
-</ul>
-<h4 id="creating-local-repository">Creating local repository</h4>
-<ul>
-<li>
-<p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
-<ul>
-<li>
-<p>src contains Go source files organized into packages (one package per directory),</p>
-</li>
-<li>
-<p>pkg contains package objects, and</p>
-</li>
-<li>
-<p>bin contains executable commands.</p>
-</li>
-</ul>
-<p>The GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.</p>
-<pre><code>$ cd $HOME
-$ mkdir -p dev/go  
-$ cd dev/go
-$ export GOPATH=`pwd`
-</code></pre>
-<p>Note that you need to add export statements to ~/.bash_profile to export variables permanently.
-    $ vi ~/.bash_profile</p>
-</li>
-<li>
-<p>The next step is to set up the repository for the package building tool "newt" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the installation.</p>
-<pre><code>$ mkdir -p $GOPATH/src/github.com/mynewt  
-$ cd $GOPATH/src/github.com/mynewt
-$ git clone https://github.com/mynewt/newt.git
-$ ls
-newt
-$ cd newt
-$ ls
-Godeps                  README.md               coding_style.txt        newt.go
-LICENSE                 cli                     design.txt
-</code></pre>
-</li>
-</ul>
-<h4 id="installing-go-and-godep">Installing Go and Godep</h4>
-<ul>
-<li>
-<p>Next you will use brew to install go. The summary message at the end of the installation should indicate that it as installed in the /usr/local/Cellar/go/ directory. Use the go command 'install' to compile and install packages and dependencies. Also set the GOROOT environment variable to /usr/local/Cellar/go as that is the root of the brewed go directory structure. Again, to make the export variable permanent, add it to your ~/.bash_profile and ~./bashrc files.</p>
-<pre><code>$ brew install go
-==&gt; 
-==&gt; 
-==&gt; *Summary*
-🍺  /usr/local/Cellar/go/1.5.1: 5330 files, 273M
-$ cd $GOPATH/src/github.com/mynewt/newt
-$ export GOROOT=/usr/local/Cellar/go
-</code></pre>
-<p>Alternatively, you can download the go package directly from (https://golang.org/dl/) instead of brewing it. Install it in /usr/local directory and set GOROOT to /usr/local/go as that is now the root of the go directory structure.</p>
-</li>
-<li>
-<p>Now you will get the godep package. Return to the go directory level and get godep. Check for it in the bin subdirectory. Add the go environment to path. Make sure it is added to your .bash_profile.</p>
-<pre><code>$ cd $GOPATH
-$ go get github.com/tools/godep
-$ ls
-bin     pkg     src
-$ ls bin
-godep
-$ export PATH=$PATH:$GOPATH/bin
-</code></pre>
-</li>
-<li>
-<p>Use the go command 'install' to compile and install packages and dependencies. In preparation for the install, you may use the godep command 'restore' to check out listed dependency versions in $GOPATH and link all the necessary files. Note that you may have to go to the <code>~/dev/go/src/github.com/mynewt/newt</code> directory to successfully run the restore command (e.g. on certain distributions of Linux). You may also have to do a <code>go get</code> before the restore to make sure all the necessary packages and dependencies are correct.</p>
-<pre><code>$ cd ~/dev/go/src/github.com/mynewt/newt
-$ go get
-$ ~/dev/go/bin/godep restore
-$ go install
-</code></pre>
-</li>
-</ul>
-<h4 id="building-the-newt-tool">Building the Newt tool</h4>
-<ul>
-<li>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</li>
-</ul>
-<p>Note: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in <code>export newt="go run $GOPATH/src/github.com/mynewt/newt/newt.go"</code> in your .bash_profile and execute it by calling <code>$newt</code> at the prompt instead of <code>newt</code>. Don't forget to reload the updated bash profile by typing <code>source ~/.bash_profile</code> at the prompt! Here, you use <code>go run</code> which runs the compiled binary directly without producing an executable.</p>
-<pre><code>    $ go run %GOPATH%/src/github.com/mynewt/newt/newt.go
-    $ cd ~/dev/go/src/github.com/mynewt/newt
-    $ ls
-    Godeps          README.md       coding_style.txt    newt
-    LICENSE         cli         design.txt      newt.go
-    $ newt version
-    Newt version:  1.0
-    $ newt -h
-    Newt allows you to create your own embedded project based on the Mynewt
-    operating system. Newt provides both build and package management in a
-    single tool, which allows you to compose an embedded workspace, and set
-    of projects, and then build the necessary artifacts from those projects.
-    For more information on the Mynewt operating system, please visit
-    https://www.github.com/mynewt/documentation.
-
-    Please use the newt help command, and specify the name of the command
-    you want help for, for help on how to use a specific command
-
-    Usage:
-     newt [flags]
-     newt [command]
-
-    Examples:
-     newt
-     newt help [&lt;command-name&gt;]
-       For help on &lt;command-name&gt;.  If not specified, print this message.
-
-
-    Available Commands:
-     version     Display the Newt version number.
-     target      Set and view target information
-     egg         Commands to list and inspect eggs on a nest
-     nest        Commands to manage nests &amp; clutches (remote egg repositories)
-     help        Help about any command
-
-    Flags:
-     -h, --help=false: help for newt
-     -l, --loglevel="WARN": Log level, defaults to WARN.
-     -q, --quiet=false: Be quiet; only display error output.
-     -s, --silent=false: Be silent; don't output anything.
-     -v, --verbose=false: Enable verbose output when executing commands.
-
-
-    Use "newt help [command]" for more information about a command.
-</code></pre>
-<ul>
-<li>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </li>
-</ul>
-<h4 id="getting-the-debugger-ready">Getting the debugger ready</h4>
-<ul>
-<li>
-<p>Before you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. So, first install gcc. You will see the brew steps and a final summary confirming install.</p>
-<pre><code>$ brew install gcc
-...
-...
-==&gt; Summary
-🍺  /usr/local/Cellar/gcc/5.2.0: 1353 files, 248M
-</code></pre>
-</li>
-<li>
-<p>ARM maintains a pre-built GNU toolchain with a GCC source branch targeted at Embedded ARM Processors namely Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check the version installed. Make sure that the symbolic link installed by Homebrew points to the correct version of the debugger. If not, you can either change the symbolic link using the "ln -f -s" command or just go ahead and try with the version it points to!</p>
-<pre><code>$ brew tap PX4/homebrew-px4
-$ brew update
-$ brew install gcc-arm-none-eabi-49
-$ arm-none-eabi-gcc --version  
-arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288]
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-$ ls -al /usr/local/bin/arm-none-eabi-gdb
-lrwxr-xr-x  1 aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -&gt; /usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb
-</code></pre>
-<p>Note: If no version is specified, brew will install the latest version available. StackOS will eventually work with multiple versions available including the latest releases. However, at present we have tested only with this version and recommend it for getting started. </p>
-</li>
-<li>
-<p>You have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interface with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. Use brew to install it. Brew adds a simlink /usr/local/bin/openocd to the openocd directory in the Cellar.</p>
-<pre><code>$ brew install open-ocd
-$ which openocd
-/usr/local/bin/openocd
-$ ls -l $(which openocd)
-lrwxr-xr-x  1 &lt;user&gt;  admin  36 Sep 17 16:22 /usr/local/bin/openocd -&gt; ../Cellar/open-ocd/0.9.0/bin/openocd
-</code></pre>
-</li>
-</ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-section">Proceed to the <a href="#anchor4">Building test code on simulator</a> section.</h4>
-<h3 id="getting-your-ubuntu-machine-ready"><a href="id:anchor2">Getting your Ubuntu machine Ready</a></h3>
-<h4 id="getting-an-account-on-github_1">Getting an account on GitHub</h4>
-<ul>
-<li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
-</ul>
-<h4 id="installing-some-prerequisites">Installing some prerequisites</h4>
-<ul>
-<li>Install git, libcurl, and the go language if you do not have them already.<pre><code>$ sudo apt-get install git 
-$ sudo apt-get install libcurl4-gnutls-dev 
-$ sudo apt-get install golang
-</code></pre>
-</li>
-</ul>
-<h4 id="creating-local-repository_1">Creating local repository</h4>
-<ul>
-<li>
-<p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
-<ul>
-<li>
-<p>src contains Go source files organized into packages (one package per directory),</p>
-</li>
-<li>
-<p>pkg contains package objects, and</p>
-</li>
-<li>
-<p>bin contains executable commands.</p>
-</li>
-</ul>
-<p>The GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.</p>
-<pre><code>$ cd $HOME
-$ mkdir -p dev/go  
-$ cd dev/go
-$ export GOPATH=$PWD
-</code></pre>
-<p>Note that you need to add export statements to ~/.bashrc (or equivalent) to export variables permanently.</p>
-</li>
-<li>
-<p>Next, install godep. Note that the following command produces no output.</p>
-<pre><code>$ go get github.com/tools/godep
-</code></pre>
-</li>
-<li>
-<p>Set up the repository for the package building tool "newt" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the contents of the directory.</p>
-<pre><code>$ mkdir -p $GOPATH/src/github.com/mynewt  
-$ cd $GOPATH/src/github.com/mynewt
-$ git clone https://github.com/mynewt/newt.git
-$ ls
-newt
-$ cd newt
-$ ls
-Godeps                  README.md               coding_style.txt        newt.go
-LICENSE                 cli                     design.txt
-</code></pre>
-</li>
-<li>
-<p>Use the go command 'install' to compile and install packages and dependencies. Add go environment to path. Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.</p>
-<pre><code>$ $GOPATH/bin/godep restore 
-$ go get 
-$ go install 
-$ export PATH=$PATH:$GOPATH/bin
-</code></pre>
-</li>
-</ul>
-<h4 id="building-the-newt-tool_1">Building the newt tool</h4>
-<ul>
-<li>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</li>
-</ul>
-<p>Note: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in <code>export newt="go run $GOPATH/src/github.com/mynewt/newt/newt.go"</code> in your ~/.bashrc (or equivalent) and execute it by calling <code>$newt</code> at the prompt instead of <code>newt</code>. Here, you use <code>go run</code> which runs the compiled binary directly without producing an executable.</p>
-<pre><code>    $ go build %GOPATH%/src/github.com/mynewt/newt/newt.go
-    $ cd ~/dev/go/src/github.com/mynewt/newt
-    $ ls
-    Godeps          README.md       coding_style.txt    newt
-    LICENSE         cli         design.txt      newt.go
-    $ newt version
-    Newt version:  1.0
-    $ newt -h
-    Newt allows you to create your own embedded project based on the Mynewt
-    operating system. Newt provides both build and package management in a
-    single tool, which allows you to compose an embedded workspace, and set
-    of projects, and then build the necessary artifacts from those projects.
-    For more information on the Mynewt operating system, please visit
-    https://www.github.com/mynewt/documentation.
-
-    Please use the newt help command, and specify the name of the command
-    you want help for, for help on how to use a specific command
-
-    Usage:
-     newt [flags]
-     newt [command]
-
-    Examples:
-     newt
-     newt help [&lt;command-name&gt;]
-       For help on &lt;command-name&gt;.  If not specified, print this message.
-
-
-    Available Commands:
-     version     Display the Newt version number.
-     target      Set and view target information
-     egg         Commands to list and inspect eggs on a nest
-     nest        Commands to manage nests &amp; clutches (remote egg repositories)
-     help        Help about any command
-
-    Flags:
-     -h, --help=false: help for newt
-     -l, --loglevel="WARN": Log level, defaults to WARN.
-     -q, --quiet=false: Be quiet; only display error output.
-     -s, --silent=false: Be silent; don't output anything.
-     -v, --verbose=false: Enable verbose output when executing commands.
-
-
-    Use "newt help [command]" for more information about a command.
-</code></pre>
-<ul>
-<li>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </li>
-</ul>
-<h4 id="getting-the-debugger-ready_1">Getting the debugger ready</h4>
-<ul>
-<li>
-<p>Before you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. You can install these as follows: </p>
-<pre><code>$ sudo apt-get install gcc-multilib libc6-i386
-</code></pre>
-</li>
-<li>
-<p>For the LED project on the Olimex hardware, you have to install gcc for AM 4.9.3.  This package can be installed with apt-get as documented <a href="https://launchpad.net/~terry.guo/+archive/ubuntu/gcc-arm-embedded">here</a>.</p>
-<pre><code>$ sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi 
-$ sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded 
-$ sudo apt-get update 
-$ sudo apt-get install gcc-arm-none-eabi
-</code></pre>
-</li>
-<li>
-<p>And finally, you have to install OpenOCD (Open On-Chip Debugger) which is an open-source software that will allow you to interface with the JTAG debug connector/adaptor for the Olimex board. It lets you program, debug, and test embedded target devices which, in this case, is the Olimex board. You have to acquire OpenOCD 0.8.0. </p>
-<p>If you are running Ubuntu 15.x, then you are in luck and you can simply run: </p>
-<pre><code>$ sudo apt-get install openocd
-</code></pre>
-<p>Other versions of Ubuntu may not have the correct version of openocd available.  In this case, you should download the openocd 0.8.0 package from <a href="https://launchpad.net/ubuntu/vivid/+source/openocd">https://launchpad.net/ubuntu/vivid/+source/openocd</a>. The direct link to the amd64 build is <a href="http://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb">http://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb</a>. </p>
-</li>
-</ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-section_1">Proceed to the <a href="#anchor4">Building test code on simulator</a> section.</h4>
-<h3 id="getting-your-windows-machine-ready"><a href="id:anchor3">Getting your Windows machine Ready</a></h3>
-<h4 id="getting-an-account-on-github_2">Getting an account on GitHub</h4>
-<ul>
-<li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
-</ul>
-<h4 id="installing-some-prerequisites_1">Installing some prerequisites</h4>
-<ul>
-<li>
-<p>You have to install the following if you do not have them already.  The steps below indicate specific folders where each of these programs should be installed. You can choose different locations, but the remainder of this
-tutorial for a Windows machine assumes the specified folders.    </p>
-<ul>
-<li>win-builds-i686</li>
-<li>win-builds-x86_64</li>
-<li>MSYS</li>
-<li>gcc for ARM</li>
-<li>openocd</li>
-<li>zadig</li>
-<li>git</li>
-<li>
-<p>go</p>
-<ul>
-<li><em>win-builds (mingw64) 1.5 for i686</em></li>
-</ul>
-<p>Download from <a href="http://win-builds.org/doku.php/download_and_installation_from_windows">http://win-builds.org/doku.php/download_and_installation_from_windows</a>. Install at: "C:\win-builds-i686".</p>
-<p>Be sure to click the i686 option (not x86_64). The defaults for all other options are OK. The installer will want to download a bunch of additional packages. They are not all necessary, but it is simplest to just accept the defaults.</p>
-<ul>
-<li><em>win-builds (mingw64) 1.5 for x86_64</em></li>
-</ul>
-<p>Download from <a href="http://win-builds.org/doku.php/download_and_installation_from_windows">http://win-builds.org/doku.php/download_and_installation_from_windows</a>. Install at "C:\win-builds-x86_64"</p>
-<p>Run the installer a second time, but this time click the x86_64 option, NOT i686.  The defaults for all other options are OK.</p>
-<ul>
-<li><em>MSYS</em></li>
-</ul>
-<p>Start your download from <a href="http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip">http://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip</a></p>
-<p>Unzip to "C:\msys"</p>
-<ul>
-<li><em>gcc for ARM, 4.9.3</em></li>
-</ul>
-<p>Download the Windows installer from <a href="https://launchpad.net/gcc-arm-embedded/+download">https://launchpad.net/gcc-arm-embedded/+download</a> and install at "C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3".</p>
-<ul>
-<li>OpenOCD 0.8.0</li>
-</ul>
-<p>Download OpenOCD 0.8.0 from <a href="http://www.freddiechopin.info/en/download/category/4-openocd">http://www.freddiechopin.info/en/download/category/4-openocd</a>. Unzip to "C:\openocd".</p>
-<ul>
-<li>Zadig 2.1.2</li>
-</ul>
-<p>Download it from <a href="http://zadig.akeo.ie">http://zadig.akeo.ie</a> and install it at "C:\zadig".</p>
-<ul>
-<li>Git</li>
-</ul>
-<p>Click on <a href="https://git-scm.com/download/win">https://git-scm.com/download/win</a> to start the download. Install at "C:\Program Files (x86)\Git". Specify the "Use Git from the Windows Command Prompt" option.  The defaults for all other options are OK.</p>
-<ul>
-<li>Go</li>
-</ul>
-<p>Download the release for Microsoft Windows from <a href="https://golang.org/dl/">https://golang.org/dl/</a> and install it "C:\Go".</p>
-</li>
-</ul>
-</li>
-</ul>
-<h4 id="creating-local-repository_2">Creating local repository</h4>
-<ul>
-<li>
-<p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
-<ul>
-<li>
-<p>src contains Go source files organized into packages (one package per directory),</p>
-</li>
-<li>
-<p>pkg contains package objects, and</p>
-</li>
-<li>
-<p>bin contains executable commands.</p>
-</li>
-</ul>
-<p>The GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.</p>
-<pre><code>$ cd c:\
-$ mkdir dev\go
-$ cd dev\go
-</code></pre>
-</li>
-<li>
-<p>Set the following user environment variables using the steps outlined here.</p>
-<ul>
-<li>GOPATH: C:\dev\go</li>
-<li>PATH: C:\Program Files (x86)\GNU Tools ARM Embedded\4.9 2015q3\bin;%GOPATH%\bin;C:\win-builds-x86_64\bin;C:\win-builds-i686\bin;C:\msys\bin</li>
-</ul>
-<p>Steps:</p>
-<ol>
-<li>Right-click the start button</li>
-<li>Click "Control panel"</li>
-<li>Click "System and Security"</li>
-<li>Click "System"</li>
-<li>Click "Advanced system settings" in the left panel</li>
-<li>Click the "Envoronment Variables..." button</li>
-<li>There will be two sets of environment variables: user variables
-  in the upper half of the screen, and system variables in the lower
-  half.  Configuring the user variables is recommended and tested 
-  (though system variables will work as well).</li>
-</ol>
-</li>
-<li>
-<p>Next, install godep. Note that the following command produces no output.</p>
-<pre><code>$ go get github.com/tools/godep
-</code></pre>
-</li>
-<li>
-<p>Set up the repository for the package building tool "newt" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from github.com into this newly created directory. Check the contents of the directory.</p>
-<pre><code>$ mkdir %GOPATH%\src\github.com\mynewt
-$ cd %GOPATH%\src\github.com\mynewt
-$ git clone https://github.com/mynewt/newt.git
-$ ls
-newt
-$ cd newt
-$ ls
-Godeps                  README.md               coding_style.txt        newt.go
-LICENSE                 cli                     design.txt
-</code></pre>
-</li>
-<li>
-<p>Use the go command 'install' to compile and install packages and dependencies. Add go environment to path. Again, to make the export variable permanent, add it to your ~/.bashrc (or equivalent) file.</p>
-<pre><code>$ %GOPATH%\bin\godep restore 
-$ go get 
-$ go install
-</code></pre>
-</li>
-</ul>
-<h4 id="building-the-newt-tool_2">Building the newt tool</h4>
-<ul>
-<li>
-<p>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</p>
-<p>Note: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to define the newt environment variable that allows you to execute the command via <code>%newt%</code>. Use <code>set newt=go run %GOPATH%\src\github.com\mynewt\newt\newt.go</code> or set it from the GUI. Here, you use <code>go run</code> which runs the compiled binary directly without producing an executable.</p>
-<pre><code>$ go build %GOPATH%\src\github.com\mynewt\newt\newt.go
-$ cd ~/dev/go/src/github.com/mynewt/newt
-$ dir
-Godeps          README.md       coding_style.txt    newt
-LICENSE         cli         design.txt      newt.go
-$ newt version
-Newt version:  1.0
-$ newt -h
-Newt allows you to create your own embedded project based on the Mynewt
-operating system. Newt provides both build and package management in a
-single tool, which allows you to compose an embedded workspace, and set
-of projects, and then build the necessary artifacts from those projects.
-For more information on the Mynewt operating system, please visit
-https://www.github.com/mynewt/documentation.
-
-Please use the newt help command, and specify the name of the command
-you want help for, for help on how to use a specific command
-
-Usage:
- newt [flags]
- newt [command]
-
-Examples:
- newt
- newt help [&lt;command-name&gt;]
-   For help on &lt;command-name&gt;.  If not specified, print this message.
-
-Available Commands:
- version     Display the Newt version number.
- target      Set and view target information
- egg         Commands to list and inspect eggs on a nest
- nest        Commands to manage nests &amp; clutches (remote egg repositories)
- help        Help about any command
-
-Flags:
- -h, --help=false: help for newt
- -l, --loglevel="WARN": Log level, defaults to WARN.
- -q, --quiet=false: Be quiet; only display error output.
- -s, --silent=false: Be silent; don't output anything.
- -v, --verbose=false: Enable verbose output when executing commands.
-
-Use "newt help [command]" for more information about a command.
-</code></pre>
-</li>
-<li>
-<p>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </p>
-</li>
-</ul>
-<h4 id="getting-the-debugger-ready_2">Getting the debugger ready</h4>
-<ul>
-<li>
-<p>Use Zadig to configure the USB driver for your Olimex debugger.  If your debugger is already set up, you can skip this step.</p>
-<ol>
-<li>Plug in your Olimex debugger.</li>
-<li>Start Zadig.</li>
-<li>Check the Options -&gt; List All Devices checkbox.</li>
-<li>Select "Olimex OpenOCD JTAG ARM-USB-TINY-H" in the dropdown menu.</li>
-<li>Select the "WinUSB" driver.</li>
-<li>Click the "Install Driver" button.</li>
-</ol>
-</li>
-</ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-section_2">Proceed to the <a href="#anchor4">Building test code on simulator</a> section.</h4>
-<h3 id="building-test-code-on-simulator-on-non-windows-machine"><a href="id:anchor4">Building test code on simulator on non-Windows machine</a></h3>
-<ol>
-<li>
-<p>First, you have to create a repository for the project i.e. build your first nest! Go to ~/dev and clone the larva repository from github. The URL used below is the HTTPS clone URL from the github.com repository for the Newt Operating System. </p>
-<p>Substitute DOS commands for Unix commands as necessary in the following steps if your machine is running Windows. The newt tool commands do not change.</p>
-<pre><code>$ cd ~/dev 
-$ git clone https://github.com/mynewt/larva.git
-$ ls
-go  larva
-$ cd larva
-$ ls
-LICENSE         hw          project
-README.md       libs            repo.yml
-compiler        pkg         setup-remotes.sh
-</code></pre>
-</li>
-<li>
-<p>You will now create a new project using the newt tool. You can either use the compiled binary <code>newt</code> or run the newt.go program using <code>$newt</code> (assuming you have stored the command in a variable in your .bash_profile or .bashrc). When you do a <code>newt target show</code> or <code>$newt target show</code> it should list all the projects you have created so far. </p>
-<pre><code>$ newt target create sim_test
-Creating target sim_test
-Target sim_test sucessfully created!
-$ newt target show
-sim_test
-    name: sim_test
-    arch: sim
-</code></pre>
-</li>
-<li>
-<p>Now continue to populate and build out the sim project.</p>
-<pre><code>$ newt target set sim_test project=test
-Target sim_test successfully set project to test
-$ newt target set sim_test compiler_def=debug
-Target sim_test successfully set compiler_def to debug
-$ newt target set sim_test bsp=hw/bsp/native
-Target sim_test successfully set bsp to hw/bsp/native
-$ newt target set sim_test compiler=sim
-Target sim_test successfully set compiler to sim
-$ newt target show sim_test
-sim_test
-    arch: sim
-    project: test
-    compiler_def: debug
-    bsp: hw/bsp/native
-    compiler: sim
-    name: sim_test
-</code></pre>
-</li>
-<li>
-<p>Configure newt to use the gnu build tools native to linux.  Replace 
-~/dev/larva/compiler/sim/compiler.yml with the linux-compiler.yml file: </p>
-<pre><code>$ cp compiler/sim/linux-compiler.yml compiler/sim/compiler.yml
-</code></pre>
-</li>
-<li>
-<p>Next, create (hatch!) the eggs for this project using the newt tool - basically, build the packages for it. You can specify the VERBOSE option if you want to see the gory details. </p>
-<pre><code>$ $newt target build sim_test
-Successfully run!
-</code></pre>
-<p>You can specify the VERBOSE option if you want to see the gory details.</p>
-<pre><code>$newt -l VERBOSE target build sim_test
-2015/09/29 09:46:12 [INFO] Building project test
-2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//bootutil...
-2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//cmsis-core...
-2015/09/29 09:46:12 [INFO] Loading Package /Users/aditihilbert/dev/larva/libs//ffs..
-...
-Successfully run!
-</code></pre>
-</li>
-<li>
-<p>Try running the test suite executable inside this project and enjoy your first successful hatch.</p>
-<pre><code>$ ./project/test/bin/sim_test/test.elf
-[pass] os_mempool_test_suite/os_mempool_test_case
-[pass] os_mutex_test_suite/os_mutex_test_basic
-[pass] os_mutex_test_suite/os_mutex_test_case_1
-[pass] os_mutex_test_suite/os_mutex_test_case_2
-[pass] os_sem_test_suite/os_sem_test_basic
-[pass] os_sem_test_suite/os_sem_test_case_1
-[pass] os_sem_test_suite/os_sem_test_case_2
-[pass] os_sem_test_suite/os_sem_test_case_3
-[pass] os_sem_test_suite/os_sem_test_case_4
-[pass] os_mbuf_test_suite/os_mbuf_test_case_1
-[pass] os_mbuf_test_suite/os_mbuf_test_case_2
-[pass] os_mbuf_test_suite/os_mbuf_test_case_3
-[pass] gen_1_1/ffs_test_unlink
-[pass] gen_1_1/ffs_test_rename
-[pass] gen_1_1/ffs_test_truncate
-[pass] gen_1_1/ffs_test_append
-[pass] gen_1_1/ffs_test_read
-[pass] gen_1_1/ffs_test_overwrite_one
-[pass] gen_1_1/ffs_test_overwrite_two
-[pass] gen_1_1/ffs_test_overwrite_three
-...
-...
-[pass] boot_test_main/boot_test_vb_ns_11
-</code></pre>
-</li>
-</ol>
-<h3 id="building-test-code-on-simulator-on-non-windows-machine_1">[Building test code on simulator on non-Windows machine]</h3>
-<p>Coming</p>
-<h3 id="making-an-led-blink"><a href="id:anchor5">Making an LED blink</a></h3>
-<h4 id="preparing-the-software">Preparing the Software</h4>
-<ol>
-<li>
-<p>Make sure the PATH environment variable includes the $HOME/dev/go/bin directory (or C:\%GOPATH%\bin on Windows machine). </p>
-<p>Substitute DOS commands for Unix commands as necessary in the following steps if your machine is running Windows. The newt tool commands do not change.</p>
-</li>
-<li>
-<p>Again, you first have to create a repository for the project. Go to the ~dev/larva directory and build out a second project inside larva. The project name is "blinky", in keeping with the objective. Starting with the target name, you have to specify the different aspects of the project to build the right package for the board. In this case that means setting the architecture (arch), compiler, board support package (bsp), project, and compiler mode.</p>
-<pre><code>$ newt target create blinky
-Creating target blinky
-Target blinky sucessfully created!
-$ newt target set blinky arch=cortex_m4
-Target blinky successfully set arch to arm
-$ newt target set blinky compiler=arm-none-eabi-m4
-Target blinky successfully set compiler to arm-none-eabi-m4
-$ newt target set blinky project=blinky
-Target blinky successfully set project to blinky
-$ newt target set blinky compiler_def=debug
-Target blinky successfully set compiler_def to debug
-$ newt target set blinky bsp=hw/bsp/olimex_stm32-e407_devboard
-Target blinky successfully set bsp to hw/bsp/olimex_stm32-e407_devboard
-$ newt target show blinky
-blinky
-    compiler: arm-none-eabi-m4
-    project: blinky
-    compiler_def: debug
-    bsp: hw/bsp/olimex_stm32-e407_devboard
-    name: blinky
-    arch: cortex_m4
-</code></pre>
-</li>
-<li>
-<p>Now you have to build the image package. Once built, you can find the executable "blinky.elf" in the project directory at ~/dev/larva/project/blinky/bin/blink. It's a good idea to take a little time to understand the directory structure.</p>
-<pre><code>$ newt target build blinky
-Building target blinky (project = blinky)
-Compiling case.c
-Compiling suite.c
-...
-Successfully run!
-$ ls
-LICENSE     clutch.yml  hw      nest.yml    project
-README.md   compiler    libs        net     scripts
-$ cd project
-$ ls
-bin2img     bletest     blinky      boot        ffs2native  test
-$ cd blinky
-$ ls
-bin     blinky.yml  egg.yml     src
-$ cd bin
-$ ls
-blinky
-$ cd blinky
-$ ls
-blinky.elf  blinky.elf.bin  blinky.elf.cmd  blinky.elf.lst  blinky.elf.map
-</code></pre>
-</li>
-<li>
-<p>Check that you have all the scripts needed to get OpenOCD up and talking with the project's specific hardware. Check whether you already have the scripts in your <code>/usr/share/openocd/scripts/</code> directory as they may have been part of the openocd download. If yes, you are all set and can proceed to preparing the hardware. If not, continue with this step.</p>
-<p>Currently, the following 5 files are required. They are likely to be packed into a .tar file and made available under mynewt on github.com. Unpack it in the blinky directory using <code>tar xvfz</code> command. Go into the openocd directory created and make sure that the gdb-8888.cfg file indicates the correct file ('blinky.elf' in this case) to load and its full path. Specifically, add 'load ~/dev/larva/project/main/bin/blink/main.elf' and 'symbol-file ~/larva/larva/project/main/bin/blink/main.elf' to this file. Alternatively, you could load these files from within the debugger (gdb) as explained later in the project when you connect to the board using openocd.   </p>
-<ul>
-<li>ocd-8888.cfg</li>
-<li>olimex-arm-usb-tiny-h-ftdi.cfg</li>
-<li>arm-gdb.cfg</li>
-<li>gdb-dev_test-8888.cfg</li>
-<li>stm32f4x.cfg  </li>
-</ul>
-<p>Check the arm-gdb.cfg file and see whether the executable you created in the previous step is specified as the file to be loaded to the board. You have the choice of specifying the target and load from within the gdb debugger (Section "Let's Go", Step 2) instead.</p>
-<pre><code>$ cat gdb-8888.cfg
-echo \n*** Set target charset ASCII\n
-set target-charset ASCII
-#set arm fallback-mode arm
-#echo \n*** set arm fallback-mode arm ***\n
-echo \n*** Connecting to OpenOCD over port #8888 ***\n
-target remote localhost:8888
-echo \n*** loading nic.out.elf ***\n
-load ~/dev/larva/project/main/bin/blink/main.elf
-symbol-file ~/dev/larva/project/main/bin/blink/main.elf 
-#echo *** Set breakpoint and run to main() to sync with gdb ***\n
-#b main
-#continue
-#delete 1
-
-#set arm fallback-mode thumb
-#echo \n*** set arm fallback-mode thumb ***\n\n
-</code></pre>
-<p>Note that an OpenOCD configuration script is available from Olimex for the STM32-E407 development board e.g. at <a href="https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg">https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg</a>, however getting it to work with different versions of OpenOCD and gcc could get tricky. [<span style="color:red"><em>This will be simplified eventually into a consolidated single action step instead of manual tweaks currently required</em></span>]</p>
-</li>
-</ol>
-<h4 id="preparing-the-hardware-to-boot-from-embedded-sram">Preparing the hardware to boot from embedded SRAM</h4>
-<ol>
-<li>
-<p>Locate the boot jumpers on the board.
-<img alt="Alt Layout - Top View" src="../pics/topview.png" />
-<img alt="Alt Layout - Bottom View" src="../pics/bottomview.png" /></p>
-</li>
-<li>
-<p>B1_1/B1_0 and B0_1/B0_0 are PTH jumpers which can be moved relatively easy. Note that the markings on the board may not always be accurate. Always refer to the manual for the correct positioning of jumpers in case of doubt. The two jumpers must always be moved together – they are responsible for the boot mode if bootloader is present. The board can search for bootloader on three places – User Flash Memory, System Memory or the Embedded SRAM. We will configure it to boot from SRAM by jumpering B0_1 and B1_1.</p>
-</li>
-<li>
-<p>Connect USB-OTG#2 in the picture above to a USB port on your computer (or a powered USB hub to make sure there is enough power available to the board). </p>
-</li>
-<li>
-<p>Connect the JTAG connector to the SWD/JTAG interface on the board. The other end of the cable should be connected to the USB port or hub of your computer.</p>
-</li>
-<li>
-<p>The red PWR LED should be lit. </p>
-</li>
-</ol>
-<h4 id="lets-go">Let's Go!</h4>
-<ol>
-<li>
-<p>Go into the openocd directory and start an OCD session. You should see some status messages are shown below. Check the value of the msp (main service pointer) register. If it is not 0x10010000 as indicated below, you will have to manually set it after you open the gdp tool to load the image on it (next step). Note the <code>-c "reset halt"</code> flag that tells it to halt after opening the session. It will now require a manual "continue" command from the GNU debugger in step 3. </p>
-<pre><code>$ cd ~/dev/larva/project/blinky/bin/blinky/openocd
-$ openocd -f olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c "reset halt" 
-Open On-Chip Debugger 0.8.0 (2015-09-22-18:21)
-Licensed under GNU GPL v2
-For bug reports, read
-    http://openocd.sourceforge.net/doc/doxygen/bugs.html
-Info : only one transport option; autoselect 'jtag'
-adapter speed: 1000 kHz
-adapter_nsrst_assert_width: 500
-adapter_nsrst_delay: 100
-jtag_ntrst_delay: 100
-cortex_m reset_config sysresetreq
-Info : clock speed 1000 kHz
-Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
-Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
-Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
-Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
-Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
-target state: halted
-target halted due to debug-request, current mode: Thread 
-xPSR: 0x01000000 pc: 0x2000053c msp: 0x10010000
-</code></pre>
-<p>If your scripts are in <code>/usr/share/openocd/scripts/</code> directory you may need to provide the full path information in the arguments.</p>
-<pre><code>$ openocd -f /usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f /usr/share/openocd/scripts/target/stm32f4x.cfg -c "gdb_port 8888; init; reset halt"
-</code></pre>
-<p>If you are on a Windows machine, connect to the board with openocd using the following:</p>
-<pre><code>$ cd C:\openocd
-$ bin\openocd-0.8.0.exe -f scripts\interface\ftdi\olimex-arm-usb-tiny-h.cfg -f scripts\target\stm32f4x.cfg -c "gdb_port 8888; init; reset halt"
-</code></pre>
-</li>
-<li>
-<p>Open a new terminal window and run the GNU debugger for ARM. Specifying the script gdb-8888.cfg tells it what image to load. You should now have a (gdb) prompt inside the debugger.</p>
-<pre><code>$ cd ~/dev/larva/project/blinky/bin/blinky/openocd
-$ arm-none-eabi-gdb -x gdb-8888.cfg 
-GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
-Copyright (C) 2014 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-and "show warranty" for details.
-This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
-Type "show configuration" for configuration details.
-For bug reporting instructions, please see:
-&lt;http://www.gnu.org/software/gdb/bugs/&gt;.
-Find the GDB manual and other documentation resources online at:
-&lt;http://www.gnu.org/software/gdb/documentation/&gt;.
-For help, type "help".
-Type "apropos word" to search for commands related to "word".
-
-*** Set target charset ASCII
-
-*** Connecting to OpenOCD over port #8888 ***
-0x20000580 in ?? ()
-
-*** loading image ***
-Loading section .text, size 0x65d4 lma 0x20000000
-Loading section .ARM.extab, size 0x24 lma 0x200065dc
-Loading section .ARM.exidx, size 0xd8 lma 0x20006600
-Loading section .data, size 0x8f8 lma 0x200066d8
-Start address 0x2000053c, load size 28624
-Transfer rate: 78 KB/sec, 2862 bytes/write.
-(gdb)
-</code></pre>
-<p>Instead of the script, you could connect to the openocd process and tell the debugger what image to load from within gdb (which is 'blinky.elf' in this case). Below is an example input/output when doing it on a Windows machine. Note the forward slashes.</p>
-<pre><code>C:\dev\larva&gt;arm-none-eabi-gdb -q
-(gdb) target remote localhost:8888
-Remote debugging using localhost:8888
-0xb064f054 in ?? ()
-...
-(gdb) load C:/dev/larva/project/blinky/bin/blinky/blinky.elf
-Loading section .text, size 0x6778 lma 0x20000000
-Loading section .ARM.extab, size 0x18 lma 0x20006778
-Loading section .ARM.exidx, size 0xc8 lma 0x20006790
-Loading section .data, size 0x8f8 lma 0x20006858
-Start address 0x20000528, load size 29008
-Transfer rate: 72 KB/sec, 2900 bytes/write.
-(gdb) symbol-file C:/dev/larva/project/blinky/bin/blinky/blinky.elf
-Reading symbols from C:/dev/larva/project/blinky/bin/blinky/blinky.elf...done.
-</code></pre>
-</li>
-<li>
-<p>From within gdb check the registers. Set the msp register for the main stack pointer to the expected value as shown here. </p>
-<p>Finally, hit <code>c</code> to continue... and your green LED should blink!</p>
-<pre><code>(gdb) info reg all
- r0             0x0 0
- r1             0x0 0
- r2             0x0 0
- r3             0x0 0
- r4             0x0 0
- r5             0x0 0
- r6             0x0 0
- r7             0x0 0
- r8             0x0 0
- r9             0x0 0
- r10            0x0 0
- r11            0x0 0
- r12            0x0 0
- sp             0x10010000  0x10010000
- lr             0xffffffff  -1
- pc             0x20000580  0x20000580 &lt;Reset_Handler&gt;
- xPSR           0x1000000   16777216
- msp            0x10010000  0x10010000
- psp            0x0 0x0
- primask        0x0 0
- basepri        0x0 0
- faultmask      0x0 0
- control        0x0 0
- (gdb) set $msp=0x10010000
- (gdb) c
- Continuing.
-</code></pre>
-</li>
-<li>
-<p>VoilĂ ! The board's LED should be blinking at 1 Hz.</p>
-</li>
-</ol>
-<h3 id="using-flash-to-make-led-blink"><a href="id:anchor6">Using flash to make LED blink</a></h3>
-<ol>
-<li>Configure the board to boot from flash by moving the two jumpers together to B0_0 and B1_0. </li>
-</ol>
-<p>You will have to reset the board once the image is uploaded to it.</p>
-<ol>
-<li>
-<p>By now you know that you have to build a new package. First, the olimex_stm32-e407_devboard.ld linker script which was previously the same as run_from_sram.ld will now need the contents of run_from_flash.ld. Then the target has to be rebuilt. You will simply replace the blinky project contents with the eggs needed to boot from flash instead of creating a new nest.</p>
-<pre><code>$ cd ~/dev/larva/hw/bsp/olimex_stm32-e407_devboard
-$ diff olimex_stm32-e407_devboard.ld run_from_sram.ld
-$ cp run_from_flash.ld olimex_stm32-e407_devboard.ld
-$ cd ~/dev/larva/project/blinky/bin/blinky
-$ newt target build blinky
-</code></pre>
-</li>
-<li>
-<p>Go to the openocd directory under blink and use OpenOCD to open up a session with the board as done while booting from SRAM.</p>
-<pre><code>$ cd ~/dev/larva/project/blinky/bin/blinky/openocd
-$ openocd -f olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c "reset halt" 
-Open On-Chip Debugger 0.8.0 (2015-09-22-18:21)
-Licensed under GNU GPL v2
-For bug reports, read
-    http://openocd.sourceforge.net/doc/doxygen/bugs.html
-Info : only one transport option; autoselect 'jtag'
-adapter speed: 1000 kHz
-adapter_nsrst_assert_width: 500
-adapter_nsrst_delay: 100
-jtag_ntrst_delay: 100
-cortex_m reset_config sysresetreq
-Info : clock speed 1000 kHz
-Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
-Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
-Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
-target state: halted
-target halted due to debug-request, current mode: Thread 
-xPSR: 0x01000000 pc: 0x0800408c psp: 0x20003c60
-Info : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)
-Info : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)
-target state: halted
-target halted due to debug-request, current mode: Thread 
-xPSR: 0x01000000 pc: 0x0800053c msp: 0x10010000
-</code></pre>
-</li>
-<li>
-<p>Run the GNU debugger for ARM in a different window. Specifying the script gdb-8888.cfg tells it what image to load. You should now have a (gdb) prompt inside the debugger.</p>
-<pre><code>$ cd ~/dev/larva/project/blinky/bin/blinky/openocd
-$ arm-none-eabi-gdb -x gdb-8888.cfg 
-GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs
-Copyright (C) 2014 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later &lt;http://gnu.org/licenses/gpl.html&gt;
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-and "show warranty" for details.
-This GDB was configured as "--host=x86_64-apple-darwin10 --target=arm-none-eabi".
-Type "show configuration" for configuration details.
-For bug reporting instructions, please see:
-&lt;http://www.gnu.org/software/gdb/bugs/&gt;.
-Find the GDB manual and other documentation resources online at:
-&lt;http://www.gnu.org/software/gdb/documentation/&gt;.
-For help, type "help".
-Type "apropos word" to search for commands related to "word".
-
-*** Set target charset ASCII
-
-*** Connecting to OpenOCD over port #8888 ***
-0x20000580 in ?? ()
-
-*** loading nic.out.elf ***
-Loading section .text, size 0x65d4 lma 0x20000000
-Loading section .ARM.extab, size 0x24 lma 0x200065d4
-Loading section .ARM.exidx, size 0xd8 lma 0x200065f8
-Loading section .data, size 0x8f8 lma 0x200066d0
-Start address 0x20000580, load size 28616
-Transfer rate: 78 KB/sec, 2861 bytes/write.
-(gdb)
-</code></pre>
-</li>
-<li>
-<p>From within gdb check the registers. Set the msp register to the value expected. Finally, hit <code>c</code> to continue... and your green LED should blink!</p>
-<pre><code>(gdb) info reg all
- r0             0x0 0
- r1             0x0 0
- r2             0x0 0
- r3             0x0 0
- r4             0x0 0
- r5             0x0 0
- r6             0x0 0
- r7             0x0 0
- r8             0x0 0
- r9             0x0 0
- r10            0x0 0
- r11            0x0 0
- r12            0x0 0
- sp             0x10010000  0x10010000
- lr             0xffffffff  -1
- pc             0x20000580  0x20000580 &lt;Reset_Handler&gt;
- xPSR           0x1000000   16777216
- msp            0x10010000  0x10010000
- psp            0x0 0x0
- primask        0x0 0
- basepri        0x0 0
- faultmask      0x0 0
- control        0x0 0
- (gdb) set $msp=0x10010000
- (gdb) c
- Continuing.
-</code></pre>
-</li>
-<li>
-<p>The LED should be blinking! But wait...let's double check that it is indeed booting from flash and making the LED blink from the image in flash. Pull the USB cable off the Olimex JTAG adaptor. The debug connection to the JTAG port is now severed. Next power off the Olimex board by pulling out the USB cable from the board. Wait for a couple of seconds and plug the USB cable back to the board. </p>
-<p>The LED light will start blinking again. Success!</p>
-<p>Note: If you want to erase the flash and load the image again you may use the following commands from within gdb. <code>flash erase 0 0 x</code> tells it to erase sectors 0 through x. When you ask it to display (in hex notation) the contents of the sector starting at location 'lma' you should therefore see all f's. The memory location 0x8000000 is the start or origin of the flash memory contents and is specified in the olimex_stm32-e407_devboard.ld linker script. The flash memory locations is specific to the processor.</p>
-<pre><code>(gdb) monitor flash erase_sector 0 0 4
-erased sectors 0 through 4 on flash bank 0 in 2.296712s
-(gdb) x/32wx 0x8000000 
-0x8000000 &lt;__isr_vector&gt;:   0xffffffff  0xffffffff 0xffffffff 0xffffffff 
-0x8000010 &lt;__isr_vector+16&gt;:    0xffffffff 0xffffffff 0xffffffff 0xffffffff
-...
-</code></pre>
-</li>
-</ol></div>
-            
-        </div>
-
-        <footer class="col-md-12">
-            <hr>
-            
-            <p>Documentation built with <a href="http://www.mkdocs.org/">MkDocs</a>.</p>
-        </footer>
-
-        <script src="../../js/jquery-1.10.2.min.js"></script>
-        <script src="../../js/bootstrap-3.0.3.min.js"></script>
-        <script src="../../js/highlight.pack.js"></script>
-        <script>var base_url = '../..';</script>
-        <script data-main="../../mkdocs/js/search.js" src="../../mkdocs/js/require.js"></script>
-        <script src="../../js/base.js"></script>
-
-        <div class="modal" id="mkdocs_search_modal" tabindex="-1" role="dialog" aria-labelledby="Search Modal" aria-hidden="true">
-            <div class="modal-dialog">
-                <div class="modal-content">
-                    <div class="modal-header">
-                        <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button>
-                        <h4 class="modal-title" id="exampleModalLabel">Search</h4>
-                    </div>
-                    <div class="modal-body">
-                        <p>
-                            From here you can search these documents. Enter
-                            your search terms below.
-                        </p>
-                        <form role="form">
-                            <div class="form-group">
-                                <input type="text" class="form-control" placeholder="Search..." id="mkdocs-search-query">
-                            </div>
-                        </form>
-                        <div id="mkdocs-search-results"></div>
-                    </div>
-                    <div class="modal-footer">
-                    </div>
-                </div>
-            </div>
-        </div>
-
-    </body>
-</html>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter1/newt_concepts/index.html
----------------------------------------------------------------------
diff --git a/site/chapter1/newt_concepts/index.html b/site/chapter1/newt_concepts/index.html
index 7fd0d17..98a9481 100644
--- a/site/chapter1/newt_concepts/index.html
+++ b/site/chapter1/newt_concepts/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter1/newt_concepts/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Newt Concepts - MyNewt</title>
+	<title>Newt Concepts - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -64,12 +64,6 @@
                         <ul class="dropdown-menu">
                         
                             
-<li >
-    <a href="../intro/">Introduction</a>
-</li>
-
-                        
-                            
 <li class="active">
     <a href="./">Newt Concepts</a>
 </li>
@@ -144,7 +138,7 @@
                 </li>
                 
                     <li >
-                        <a rel="next" href="../intro/">
+                        <a rel="next" href="../..">
                             <i class="fa fa-arrow-left"></i> Previous
                         </a>
                     </li>
@@ -180,9 +174,9 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="newt-concepts">Newt Concepts</h2>
+<h2 id="newt-concepts">Newt Concepts<a class="headerlink" href="#newt-concepts" title="Permanent link">&para;</a></h2>
 <p>This page introduces the basic terms you will need to find your way around the Mynewt ecosystem.</p>
-<h3 id="basic-components-in-the-ecosystem">Basic components in the ecosystem</h3>
+<h3 id="basic-components-in-the-ecosystem">Basic components in the ecosystem<a class="headerlink" href="#basic-components-in-the-ecosystem" title="Permanent link">&para;</a></h3>
 <ul>
 <li>
 <p>NewtOS is an open-source RTOS (Real Time Operating System) that is not tied to any particular hardware but can be tuned to the hardware component mix of the user's choosing. It has support for multitasking, synchronization of tasks, scheduling and buffering of operations, memory management,file systems, networking, security, power management, and other advanced features. Naturally, it involves several packages such as the Core RTOS, a flash file system, utility functions, a variety of board support packages, packages of microcontrollers etc.</p>
@@ -194,7 +188,7 @@
 <p>Newt Tool helps you mix the specific packages for the combination of hardware and low-level embedded architecture features of the user's choice and generate the corresponding run-time image based on the NewtOS. It provides the infrastructure to manage and build for different CPU architectures, memory units, board support packages etc., allowing a user to formulate the contents according to the low-level features needed by his or her project.</p>
 </li>
 </ul>
-<h3 id="terminology">Terminology</h3>
+<h3 id="terminology">Terminology<a class="headerlink" href="#terminology" title="Permanent link">&para;</a></h3>
 <p>In the mynewt lifecycle, a project grows in a nest. A nest may house multiple projects. The nest is, therefore, a repository where various component packages for one or more projects reside. Each package is an egg, naturally. However, an egg may consist of other eggs!</p>
 <p>A nest can be given any name. You will see a nest named "tadpole" in mynewt. It contains all the core libraries of the operating system for distribution. Each of these directories contain one or more eggs where an egg is a basic unit of implementation of any aspect of the RTOS.</p>
 <ul>
@@ -208,10 +202,10 @@
 <p>You can see another nest in the mynewt ecosystem called the "larva". It was spawned from the "tadpole" nest using the newt tool. Spawning is easy - <code>$ newt create nest &lt;your_nest_name&gt;</code>. "larva" is the developer's test repository containing all sorts of eggs being incubated, including ones to enhance the core operating system which should eventually make their way into the "tadpole" nest. There is a <code>hatch_tadpole</code> script to update the "tadpole" nest when the core OS related eggs in "larva" are ready.</p>
 <p>There is a third nest named "newt" that contains all the eggs needed to support the build and release process of mynewt software.</p>
 <p>There will also be pre-built nests for certain common hardware devices to enable a user to quickly get started with a project.</p>
-<h3 id="a-mynewt-contributor">A Mynewt contributor</h3>
+<h3 id="a-mynewt-contributor">A Mynewt contributor<a class="headerlink" href="#a-mynewt-contributor" title="Permanent link">&para;</a></h3>
 <p>A contributor can choose to work on any area(s) of the Mynewt endeavor that appeals to him or her. Hence, you can work on one or more eggs or an entire nest. You can create your own nest (master) or create a branch in an existing nest. For now, Runtime contributors will review any new areas of support that you may wish to introduce e.g. a new board support package (BSP) or a new network protocol. </p>
 <p>A contributer role necessarily implies he or she is a Mynewt user (see below) of some or all of the products developed.</p>
-<h3 id="a-mynewt-user">A Mynewt user</h3>
+<h3 id="a-mynewt-user">A Mynewt user<a class="headerlink" href="#a-mynewt-user" title="Permanent link">&para;</a></h3>
 <p>An application developer is interested only in using software available in this ecosystem to build a top level build artifact. He or she may either:</p>
 <ul>
 <li>Use a pre-built nest, or</li>


[3/4] incubator-mynewt-site git commit: anchors fixed

Posted by we...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter1/project1/index.html
----------------------------------------------------------------------
diff --git a/site/chapter1/project1/index.html b/site/chapter1/project1/index.html
index 8201c22..4b21f81 100644
--- a/site/chapter1/project1/index.html
+++ b/site/chapter1/project1/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter1/project1/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Blinkie, The First Project - MyNewt</title>
+	<title>Blinkie, The First Project - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -165,90 +159,41 @@
                 <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
     <ul class="nav bs-sidenav">
     
-        <li class="main active"><a href="#objective">Objective</a></li>
-        
-    
-        <li class="main "><a href="#what-you-need">What you need</a></li>
-        
-    
-        <li class="main "><a href="#getting-your-mac-ready">Getting your Mac Ready</a></li>
+        <li class="main active"><a href="#blinkie-the-first-project">Blinkie, the First Project</a></li>
         
-            <li><a href="#getting-an-account-on-github">Getting an account on GitHub</a></li>
+            <li><a href="#objective">Objective</a></li>
         
-            <li><a href="#installing-homebrew-to-ease-installs-on-os-x">Installing Homebrew to ease installs on OS X</a></li>
+            <li><a href="#what-you-need">What you need</a></li>
         
-            <li><a href="#creating-local-repository">Creating local repository</a></li>
+            <li><a href="#getting-your-mac-ready">Getting your Mac Ready</a></li>
         
-            <li><a href="#installing-go-and-godep">Installing Go and Godep</a></li>
+            <li><a href="#getting-your-ubuntu-machine-ready">Getting your Ubuntu machine Ready</a></li>
         
-            <li><a href="#building-the-newt-tool">Building the Newt tool</a></li>
+            <li><a href="#getting-your-windows-machine-ready">Getting your Windows machine Ready</a></li>
         
-            <li><a href="#getting-the-debugger-ready">Getting the debugger ready</a></li>
+            <li><a href="#building-test-code-on-simulator">Building test code on simulator</a></li>
         
-            <li><a href="#proceed-to-the-building-test-code-on-simulator-section">Proceed to the Building test code on simulator section.</a></li>
+            <li><a href="#building-test-code-on-simulator-on-windows-machine">Building test code on simulator on Windows machine</a></li>
         
-    
-        <li class="main "><a href="#getting-your-ubuntu-machine-ready">Getting your Ubuntu machine Ready</a></li>
-        
-            <li><a href="#getting-an-account-on-github_1">Getting an account on GitHub</a></li>
-        
-            <li><a href="#installing-some-prerequisites">Installing some prerequisites</a></li>
-        
-            <li><a href="#creating-local-repository_1">Creating local repository</a></li>
-        
-            <li><a href="#building-the-newt-tool_1">Building the newt tool</a></li>
+            <li><a href="#making-an-led-blink">Making an LED blink</a></li>
         
-            <li><a href="#getting-the-debugger-ready_1">Getting the debugger ready</a></li>
-        
-            <li><a href="#proceed-to-the-building-test-code-on-simulator-section_1">Proceed to the Building test code on simulator section.</a></li>
-        
-    
-        <li class="main "><a href="#getting-your-windows-machine-ready">Getting your Windows machine Ready</a></li>
-        
-            <li><a href="#getting-an-account-on-github_2">Getting an account on GitHub</a></li>
-        
-            <li><a href="#installing-some-prerequisites_1">Installing some prerequisites</a></li>
-        
-            <li><a href="#creating-local-repository_2">Creating local repository</a></li>
-        
-            <li><a href="#building-the-newt-tool_2">Building the newt tool</a></li>
-        
-            <li><a href="#getting-the-debugger-ready_2">Getting the debugger ready</a></li>
-        
-            <li><a href="#proceed-to-the-building-test-code-on-simulator-on-windows-machine-section">Proceed to the Building test code on simulator on Windows machine section.</a></li>
-        
-    
-        <li class="main "><a href="#building-test-code-on-simulator-on-non-windows-machine">Building test code on simulator on non-Windows machine</a></li>
-        
-    
-        <li class="main "><a href="#building-test-code-on-simulator-on-windows-machine">Building test code on simulator on Windows machine</a></li>
-        
-    
-        <li class="main "><a href="#making-an-led-blink">Making an LED blink</a></li>
-        
-            <li><a href="#preparing-the-software">Preparing the Software</a></li>
-        
-            <li><a href="#preparing-the-hardware-to-boot-from-embedded-sram">Preparing the hardware to boot from embedded SRAM</a></li>
-        
-            <li><a href="#lets-go">Let's Go!</a></li>
-        
-    
-        <li class="main "><a href="#using-flash-to-make-led-blink">Using flash to make LED blink</a></li>
+            <li><a href="#using-flash-to-make-led-blink">Using flash to make LED blink</a></li>
         
     
     </ul>
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h3 id="objective">Objective</h3>
+<h2 id="blinkie-the-first-project">Blinkie, the First Project<a class="headerlink" href="#blinkie-the-first-project" title="Permanent link">&para;</a></h2>
+<h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
 <p>We will show you how you can use eggs from a nest on Mynewt to make an LED on a target board blink. We will call it <strong> Project Blinky</strong>. The goals of this tutorial are threefold:</p>
 <ol>
 <li>First, you will learn how to set up your environment to be ready to use the various eggs that you will download from Mynewt. </li>
-<li>Second, we will walk you through a download of eggs for building and testing <a href="#anchor4">on a simulated target</a>.</li>
-<li>Third, you will download eggs and use tools to create a runtime image for a board to <a href="#anchor5">make its LED blink</a>. </li>
+<li>Second, we will walk you through a download of eggs for building and testing <a href="#building-test-code-on-simulator">on a simulated target</a> on a non-Windows machine.</li>
+<li>Third, you will download eggs and use tools to create a runtime image for a board to <a href="#making-an-led-blink">make its LED blink</a>. </li>
 </ol>
-<p>If you want to explore even further, you can try to upload the image to the board's flash memory and have it <a href="#anchor6">boot from flash</a>!</p>
-<h3 id="what-you-need">What you need</h3>
+<p>If you want to explore even further, you can try to upload the image to the board's flash memory and have it <a href="#using-flash-to-make-led-blink">boot from flash</a>!</p>
+<h3 id="what-you-need">What you need<a class="headerlink" href="#what-you-need" title="Permanent link">&para;</a></h3>
 <ol>
 <li>STM32-E407 development board from Olimex.</li>
 <li>ARM-USB-TINY-H connector with JTAG interface for debugging ARM microcontrollers (comes with the ribbon cable to hook up to the board)</li>
@@ -256,18 +201,18 @@
 <li>Personal Computer</li>
 </ol>
 <p>The instructions assume the user is using a Bourne-compatible shell (e.g. bash or zsh) on your computer. You may already have some of the required packages on your machine.  In that 
-case, simply skip the corresponding installation step in the instructions under <a href="#anchor1">Getting your Mac Ready</a> or <a href="#anchor2">Getting your Ubuntu machine Ready</a> or <a href="#anchor3">Getting your Windows machine Ready</a>. While the given instructions should work on other versions, they have been tested for the three specific releases of operating systems noted here:</p>
+case, simply skip the corresponding installation step in the instructions under <a href="./#getting-your-mac-ready">Getting your Mac Ready</a> or <a href="./#getting-your-ubuntu-machine-ready">Getting your Ubuntu machine Ready</a> or <a href="#getting-your-windows-machine-ready">Getting your Windows machine Ready</a>. While the given instructions should work on other versions, they have been tested for the three specific releases of operating systems noted here:</p>
 <ul>
 <li>Mac: OS X Yosemite Version 10.10.5</li>
 <li>Linux: Ubuntu 14.10 (Utopic Unicorn)</li>
 <li>Windows: Windows 10</li>
 </ul>
-<h3 id="getting-your-mac-ready"><a href="id:anchor1">Getting your Mac Ready</a></h3>
-<h4 id="getting-an-account-on-github">Getting an account on GitHub</h4>
+<h3 id="getting-your-mac-ready">Getting your Mac Ready<a class="headerlink" href="#getting-your-mac-ready" title="Permanent link">&para;</a></h3>
+<h4 id="getting-an-account-on-github">Getting an account on GitHub<a class="headerlink" href="#getting-an-account-on-github" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
 </ul>
-<h4 id="installing-homebrew-to-ease-installs-on-os-x">Installing Homebrew to ease installs on OS X</h4>
+<h4 id="installing-homebrew-to-ease-installs-on-os-x">Installing Homebrew to ease installs on OS X<a class="headerlink" href="#installing-homebrew-to-ease-installs-on-os-x" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>Do you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.</p>
@@ -276,7 +221,7 @@ case, simply skip the corresponding installation step in the instructions under
 <p>Alternatively, you can just extract (or <code>git clone</code>) Homebrew and install it to <code>/usr/local</code>.</p>
 </li>
 </ul>
-<h4 id="creating-local-repository">Creating local repository</h4>
+<h4 id="creating-local-repository">Creating local repository<a class="headerlink" href="#creating-local-repository" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
@@ -314,7 +259,7 @@ LICENSE                 cli                     design.txt
 </code></pre>
 </li>
 </ul>
-<h4 id="installing-go-and-godep">Installing Go and Godep</h4>
+<h4 id="installing-go-and-godep">Installing Go and Godep<a class="headerlink" href="#installing-go-and-godep" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>Next you will use brew to install go. The summary message at the end of the installation should indicate that it is installed in the /usr/local/Cellar/go/ directory. You will use the go command 'install' to compile and install packages (called eggs in the Mynewt world) and dependencies. </p>
@@ -347,7 +292,7 @@ $ go install
 </code></pre>
 </li>
 </ul>
-<h4 id="building-the-newt-tool">Building the Newt tool</h4>
+<h4 id="building-the-newt-tool">Building the Newt tool<a class="headerlink" href="#building-the-newt-tool" title="Permanent link">&para;</a></h4>
 <ul>
 <li>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</li>
 </ul>
@@ -400,7 +345,7 @@ $ go install
 <ul>
 <li>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </li>
 </ul>
-<h4 id="getting-the-debugger-ready">Getting the debugger ready</h4>
+<h4 id="getting-the-debugger-ready">Getting the debugger ready<a class="headerlink" href="#getting-the-debugger-ready" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>Before you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. So, first install gcc. You will see the brew steps and a final summary confirming install.</p>
@@ -435,14 +380,16 @@ $ ls -l $(which openocd)
 lrwxr-xr-x  1 &lt;user&gt;  admin  36 Sep 17 16:22 /usr/local/bin/openocd -&gt; ../Cellar/open-ocd/0.9.0/bin/openocd
 </code></pre>
 </li>
+<li>
+<p>Proceed to the <a href="#building-test-code-on-simulator">Building test code on simulator</a> section.</p>
+</li>
 </ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-section">Proceed to the <a href="#anchor4">Building test code on simulator</a> section.</h4>
-<h3 id="getting-your-ubuntu-machine-ready"><a href="id:anchor2">Getting your Ubuntu machine Ready</a></h3>
-<h4 id="getting-an-account-on-github_1">Getting an account on GitHub</h4>
+<h3 id="getting-your-ubuntu-machine-ready">Getting your Ubuntu machine Ready<a class="headerlink" href="#getting-your-ubuntu-machine-ready" title="Permanent link">&para;</a></h3>
+<h4 id="getting-an-account-on-github_1">Getting an account on GitHub<a class="headerlink" href="#getting-an-account-on-github_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
 </ul>
-<h4 id="installing-some-prerequisites">Installing some prerequisites</h4>
+<h4 id="installing-some-prerequisites">Installing some prerequisites<a class="headerlink" href="#installing-some-prerequisites" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Install git, libcurl, and the go language if you do not have them already.<pre><code>$ sudo apt-get install git 
 $ sudo apt-get install libcurl4-gnutls-dev 
@@ -450,7 +397,7 @@ $ sudo apt-get install golang
 </code></pre>
 </li>
 </ul>
-<h4 id="creating-local-repository_1">Creating local repository</h4>
+<h4 id="creating-local-repository_1">Creating local repository<a class="headerlink" href="#creating-local-repository_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
@@ -500,7 +447,7 @@ $ export PATH=$PATH:$GOPATH/bin
 </code></pre>
 </li>
 </ul>
-<h4 id="building-the-newt-tool_1">Building the newt tool</h4>
+<h4 id="building-the-newt-tool_1">Building the newt tool<a class="headerlink" href="#building-the-newt-tool_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</li>
 </ul>
@@ -553,7 +500,7 @@ $ export PATH=$PATH:$GOPATH/bin
 <ul>
 <li>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </li>
 </ul>
-<h4 id="getting-the-debugger-ready_1">Getting the debugger ready</h4>
+<h4 id="getting-the-debugger-ready_1">Getting the debugger ready<a class="headerlink" href="#getting-the-debugger-ready_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>Before you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. You can install these as follows: </p>
@@ -575,14 +522,16 @@ $ sudo apt-get install gcc-arm-none-eabi
 </code></pre>
 <p>Other versions of Ubuntu may not have the correct version of openocd available.  In this case, you should download the openocd 0.8.0 package from <a href="https://launchpad.net/ubuntu/vivid/+source/openocd">https://launchpad.net/ubuntu/vivid/+source/openocd</a>. The direct link to the amd64 build is <a href="http://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb">http://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb</a>. </p>
 </li>
+<li>
+<p>Proceed to the <a href="#building-test-code-on-simulator">Building test code on simulator</a> section.</p>
+</li>
 </ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-section_1">Proceed to the <a href="#anchor4">Building test code on simulator</a> section.</h4>
-<h3 id="getting-your-windows-machine-ready"><a href="id:anchor3">Getting your Windows machine Ready</a></h3>
-<h4 id="getting-an-account-on-github_2">Getting an account on GitHub</h4>
+<h3 id="getting-your-windows-machine-ready">Getting your Windows machine Ready<a class="headerlink" href="#getting-your-windows-machine-ready" title="Permanent link">&para;</a></h3>
+<h4 id="getting-an-account-on-github_2">Getting an account on GitHub<a class="headerlink" href="#getting-an-account-on-github_2" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Get an account on GitHub. Make sure you have joined the "Newt Operating System" organization.</li>
 </ul>
-<h4 id="installing-some-prerequisites_1">Installing some prerequisites</h4>
+<h4 id="installing-some-prerequisites_1">Installing some prerequisites<a class="headerlink" href="#installing-some-prerequisites_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>You have to install the following if you do not have them already.  The steps below indicate specific folders where each of these programs should be installed. You can choose different locations, but the remainder of this
@@ -636,7 +585,7 @@ tutorial for a Windows machine assumes the specified folders.    </p>
 </ul>
 </li>
 </ul>
-<h4 id="creating-local-repository_2">Creating local repository</h4>
+<h4 id="creating-local-repository_2">Creating local repository<a class="headerlink" href="#creating-local-repository_2" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>The directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:</p>
@@ -703,7 +652,7 @@ $ go install
 </code></pre>
 </li>
 </ul>
-<h4 id="building-the-newt-tool_2">Building the newt tool</h4>
+<h4 id="building-the-newt-tool_2">Building the newt tool<a class="headerlink" href="#building-the-newt-tool_2" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>You will now use go to run the newt.go program to build the newt tool. You will have to use <code>go build</code> command which compiles and writes the resulting executable to an output file named <code>newt</code>. However, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use <code>go install</code>). Now try running newt using the compiled binary. 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'.</p>
@@ -756,7 +705,7 @@ Use "newt help [command]" for more information about a command.
 <p>Without creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. </p>
 </li>
 </ul>
-<h4 id="getting-the-debugger-ready_2">Getting the debugger ready</h4>
+<h4 id="getting-the-debugger-ready_2">Getting the debugger ready<a class="headerlink" href="#getting-the-debugger-ready_2" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>Use Zadig to configure the USB driver for your Olimex debugger.  If your debugger is already set up, you can skip this step.</p>
@@ -770,9 +719,10 @@ Use "newt help [command]" for more information about a command.
 </ol>
 </li>
 </ul>
-<h4 id="proceed-to-the-building-test-code-on-simulator-on-windows-machine-section">Proceed to the <a href="#anchor7">Building test code on simulator on Windows machine</a> section.</h4>
-<p>Note: Currently, the simulator cannot be run in the Windows machine. We are working on it. In the meantime proceed to the <a href="#anchor5">Making an LED blink</a> on the Olimex hardware directly.</p>
-<h3 id="building-test-code-on-simulator-on-non-windows-machine"><a href="id:anchor4">Building test code on simulator on non-Windows machine</a></h3>
+<h4 id="proceed-to-the-building-test-code-on-simulator-on-windows-machine-section">Proceed to the <a href="#building-test-code-on-simulator">Building test code on simulator on Windows machine</a> section.<a class="headerlink" href="#proceed-to-the-building-test-code-on-simulator-on-windows-machine-section" title="Permanent link">&para;</a></h4>
+<p>Note: Currently, the simulator cannot be run in the Windows machine. We are working on it. In the meantime proceed to the <a href="#making-an-led-blink">Making an LED blink</a> on the Olimex hardware directly.</p>
+<h3 id="building-test-code-on-simulator">Building test code on simulator<a class="headerlink" href="#building-test-code-on-simulator" title="Permanent link">&para;</a></h3>
+<p>Note: Currently, the simulator cannot be run in the Windows machine. We are working on it. If you are on a Windows machine proceed to the <a href="#making-an-led-blink">Making an LED blink</a> on the Olimex hardware directly.</p>
 <ol>
 <li>
 <p>First, you have to create a repository for the project i.e. build your first nest! Go to ~/dev and clone the larva repository from github. The URL used below is the HTTPS clone URL from the github.com repository for the Newt Operating System. </p>
@@ -873,10 +823,10 @@ Successfully run!
 </code></pre>
 </li>
 </ol>
-<h3 id="building-test-code-on-simulator-on-windows-machine"><a href="id:anchor7">Building test code on simulator on Windows machine</a></h3>
+<h3 id="building-test-code-on-simulator-on-windows-machine">Building test code on simulator on Windows machine<a class="headerlink" href="#building-test-code-on-simulator-on-windows-machine" title="Permanent link">&para;</a></h3>
 <p>Coming soon.</p>
-<h3 id="making-an-led-blink"><a href="id:anchor5">Making an LED blink</a></h3>
-<h4 id="preparing-the-software">Preparing the Software</h4>
+<h3 id="making-an-led-blink">Making an LED blink<a class="headerlink" href="#making-an-led-blink" title="Permanent link">&para;</a></h3>
+<h4 id="preparing-the-software">Preparing the Software<a class="headerlink" href="#preparing-the-software" title="Permanent link">&para;</a></h4>
 <ol>
 <li>
 <p>Make sure the PATH environment variable includes the $HOME/dev/go/bin directory (or C:\%GOPATH%\bin on Windows machine). </p>
@@ -964,7 +914,7 @@ symbol-file ~/dev/larva/project/main/bin/blink/main.elf
 <p>Note that an OpenOCD configuration script is available from Olimex for the STM32-E407 development board e.g. at <a href="https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg">https://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg</a>, however getting it to work with different versions of OpenOCD and gcc could get tricky. [<span style="color:red"><em>This will be simplified eventually into a consolidated single action step instead of manual tweaks currently required</em></span>]</p>
 </li>
 </ol>
-<h4 id="preparing-the-hardware-to-boot-from-embedded-sram">Preparing the hardware to boot from embedded SRAM</h4>
+<h4 id="preparing-the-hardware-to-boot-from-embedded-sram">Preparing the hardware to boot from embedded SRAM<a class="headerlink" href="#preparing-the-hardware-to-boot-from-embedded-sram" title="Permanent link">&para;</a></h4>
 <ol>
 <li>
 <p>Locate the boot jumpers on the board.
@@ -984,7 +934,7 @@ symbol-file ~/dev/larva/project/main/bin/blink/main.elf
 <p>The red PWR LED should be lit. </p>
 </li>
 </ol>
-<h4 id="lets-go">Let's Go!</h4>
+<h4 id="lets-go">Let's Go!<a class="headerlink" href="#lets-go" title="Permanent link">&para;</a></h4>
 <ol>
 <li>
 <p>Go into the openocd directory and start an OCD session. You should see some status messages are shown below. Check the value of the msp (main service pointer) register. If it is not 0x10010000 as indicated below, you will have to manually set it after you open the gdp tool to load the image on it (next step). Note the <code>-c "reset halt"</code> flag that tells it to halt after opening the session. It will now require a manual "continue" command from the GNU debugger in step 3. </p>
@@ -1104,7 +1054,7 @@ Reading symbols from C:/dev/larva/project/blinky/bin/blinky/blinky.elf...done.
 <p>VoilĂ ! The board's LED should be blinking at 1 Hz.</p>
 </li>
 </ol>
-<h3 id="using-flash-to-make-led-blink"><a href="id:anchor6">Using flash to make LED blink</a></h3>
+<h3 id="using-flash-to-make-led-blink">Using flash to make LED blink<a class="headerlink" href="#using-flash-to-make-led-blink" title="Permanent link">&para;</a></h3>
 <ol>
 <li>Configure the board to boot from flash by moving the two jumpers together to B0_0 and B1_0. </li>
 </ol>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter2/project2/index.html
----------------------------------------------------------------------
diff --git a/site/chapter2/project2/index.html b/site/chapter2/project2/index.html
index 5408c59..e357187 100644
--- a/site/chapter2/project2/index.html
+++ b/site/chapter2/project2/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter2/project2/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Project 2 - MyNewt</title>
+	<title>Project 2 - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../../chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../../chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -165,7 +159,7 @@
                 <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
     <ul class="nav bs-sidenav">
     
-        <li class="main active"><a href="#porting-project-blinky-to-additional-boards">Porting Project Blinky to additional boards</a></li>
+        <li class="main active"><a href="#project-2-blinky-on-additional-boards">Project 2 - Blinky on additional boards</a></li>
         
             <li><a href="#objective">Objective</a></li>
         
@@ -178,21 +172,21 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="porting-project-blinky-to-additional-boards">Porting Project Blinky to additional boards</h2>
-<h3 id="objective">Objective</h3>
+<h2 id="project-2-blinky-on-additional-boards">Project 2 - Blinky on additional boards<a class="headerlink" href="#project-2-blinky-on-additional-boards" title="Permanent link">&para;</a></h2>
+<h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
 <p>The goal of this tutorial is to download a generic firmware skeleton ("bootstrap image") that applies to any hardware and then throw in additional applicable eggs to generate a build for a specific board. </p>
 <p>The following target hardware chips are covered:</p>
 <ul>
-<li><a href="#anchor1">STM32F303VC MCU</a> from STMicroelectronics</li>
-<li><a href="#anchor2">nRF52 Series</a> from Nordic Semiconductors </li>
+<li><a href="#stm32f303vc-mcu">STM32F303VC MCU</a> from STMicroelectronics</li>
+<li><a href="#nrf52-series">nRF52 Series</a> from Nordic Semiconductors </li>
 </ul>
-<h3 id="stm32f303vc-mcu"><a href="id:anchor1">STM32F303VC MCU</a></h3>
-<h4 id="hardware-needed">Hardware needed</h4>
+<h3 id="stm32f303vc-mcu">STM32F303VC MCU<a class="headerlink" href="#stm32f303vc-mcu" title="Permanent link">&para;</a></h3>
+<h4 id="hardware-needed">Hardware needed<a class="headerlink" href="#hardware-needed" title="Permanent link">&para;</a></h4>
 <ul>
 <li>Discovery kit with STM32F303VC MCU</li>
 <li>Laptop running Mac OS</li>
 </ul>
-<h4 id="step-by-step-instructions-to-build-image">Step by Step Instructions to build image</h4>
+<h4 id="step-by-step-instructions-to-build-image">Step by Step Instructions to build image<a class="headerlink" href="#step-by-step-instructions-to-build-image" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>The first step is to download the generic skeleton of the project. The eggs installed are not hardware architecture specific.</p>
@@ -300,13 +294,13 @@ Successfully run!
 </code></pre>
 </li>
 </ul>
-<h3 id="nrf52-series"><a href="id:anchor2">nRF52 Series</a></h3>
-<h4 id="hardware-needed_1">Hardware needed</h4>
+<h3 id="nrf52-series">nRF52 Series<a class="headerlink" href="#nrf52-series" title="Permanent link">&para;</a></h3>
+<h4 id="hardware-needed_1">Hardware needed<a class="headerlink" href="#hardware-needed_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>nRF52 Development Kit</li>
 <li>Laptop running Mac OS</li>
 </ul>
-<h4 id="step-by-step-instructions-to-build-image_1">Step by Step Instructions to build image</h4>
+<h4 id="step-by-step-instructions-to-build-image_1">Step by Step Instructions to build image<a class="headerlink" href="#step-by-step-instructions-to-build-image_1" title="Permanent link">&para;</a></h4>
 <ul>
 <li>
 <p>The first step is to download the generic skeleton of the project. The eggs installed are not hardware architecture specific.</p>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter2/project3/index.html
----------------------------------------------------------------------
diff --git a/site/chapter2/project3/index.html b/site/chapter2/project3/index.html
index a012e7e..53207f3 100644
--- a/site/chapter2/project3/index.html
+++ b/site/chapter2/project3/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter2/project3/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Project 3 - MyNewt</title>
+	<title>Project 3 - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../../chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../../chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -172,7 +166,7 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="how-to-test-an-egg">How to Test an Egg</h2></div>
+<h2 id="how-to-test-an-egg">How to Test an Egg<a class="headerlink" href="#how-to-test-an-egg" title="Permanent link">&para;</a></h2></div>
             
         </div>
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter2/vocabulary/index.html
----------------------------------------------------------------------
diff --git a/site/chapter2/vocabulary/index.html b/site/chapter2/vocabulary/index.html
index e40cc48..a66a121 100644
--- a/site/chapter2/vocabulary/index.html
+++ b/site/chapter2/vocabulary/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter2/vocabulary/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Understanding Newt Terms - MyNewt</title>
+	<title>Understanding Newt Terms - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../../chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../../chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -165,7 +159,7 @@
                 <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
     <ul class="nav bs-sidenav">
     
-        <li class="main active"><a href="#vocabulary">Vocabulary</a></li>
+        <li class="main active"><a href="#understanding-newt-terms">Understanding Newt Terms</a></li>
         
             <li><a href="#nest">Nest</a></li>
         
@@ -188,10 +182,10 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="vocabulary">Vocabulary</h2>
-<h4 id="nest">Nest</h4>
+<h2 id="understanding-newt-terms">Understanding Newt Terms<a class="headerlink" href="#understanding-newt-terms" title="Permanent link">&para;</a></h2>
+<h3 id="nest">Nest<a class="headerlink" href="#nest" title="Permanent link">&para;</a></h3>
 <p>The nest is the base directory of your embedded software. It is meant to be the workspace containing a logical collection of the source code for one or more of your projects. A nest can contain multiple projects, and reflect multiple end products. </p>
-<p>As the base repository of your source code, the nest has a master branch and several other branches off it. You may choose any branch to nest on. Each project in your nest will typically consist of several <a href="#anchor1">eggs</a>. A project could be an egg itself as well. In addition to eggs, a local nest will contain additional items such as <a href="#anchor4">target</a> or build definitions, clutch description files, scripts etc.</p>
+<p>As the base repository of your source code, the nest has a master branch and several other branches off it. You may choose any branch to nest on. Each project in your nest will typically consist of several <a href="#egg">eggs</a>. A project could be an egg itself as well. In addition to eggs, a local nest will contain additional items such as <a href="#target">target</a> or build definitions, clutch description files, scripts etc.</p>
 <p>For example, a walk through the "larva" nest at <a href="https://github.com/mynewt/larva.git">https://github.com/mynewt/larva.git</a> shows the following structure. The nest.yml file in the larva directory indicates that it is a nest. An egg will have the egg.yml file in it as shown below. By this nomenclature, each board support package for a particular chip is an egg, the API for the hardware abstraction layer is an egg, and so on. </p>
 <pre><code>larva
   |- nest.yml 
@@ -262,7 +256,7 @@
 newt nest [child-commands]
 </code></pre>
 <p>A complete list of all the nest commands can be found in the newt tool reference in <a href="../../chapter3/newt_tool_reference/">Chapter 3</a>.</p>
-<h4 id="project">Project</h4>
+<h3 id="project">Project<a class="headerlink" href="#project" title="Permanent link">&para;</a></h3>
 <p>Projects represent the individual build configurations of your embedded system and essentially defines your application. The project files are what dictate the resulting binary that is generated. </p>
 <p>Layout-wise, a project is a directory inside a nest and contains eggs required for a certain application. For example, the <code>blinky</code> egg sits in <code>project/blinky</code> directory of the <code>larva</code> nest. This egg is used in the blinky project (application) outlined in <a href="../../chapter1/project1/">Chapter 1</a>. &lt;<em>Note: This Will Change</em>&gt;</p>
 <p>A project has the following concepts or properties associated with it. You can find them in the <code>&lt;project-name&gt;.yml</code> file in the project directory. For example, the <code>project/blinky</code> directory has the <code>blinky.yml</code> file indicating some or all of the properties below. Only the name of a project is required for the project to exist, however additional properties may need to be specified for the eggs in it to compile properly and produce an executable. </p>
@@ -270,15 +264,15 @@ newt nest [child-commands]
 <li>Project name</li>
 <li>Base path of the project (nest/project/project-name by default)</li>
 <li>Eggs belonging to the project</li>
-<li><a href="#anchor2">Capabilities</a> that are required for the project or target </li>
-<li><a href="#anchor3">Identity</a> to classify the type of project or target</li>
+<li><a href="#capabilities">Capabilities</a> that are required for the project or target </li>
+<li><a href="#identity">Identity</a> to classify the type of project or target</li>
 <li>Compiler flags to call out any specific compiler requirement</li>
 </ul>
 <p>A project could itself be an egg if it is a distributable package for a specific application. </p>
 <p>The newt tool offers various commands that you can use with a project. For example, if your project is an egg, you can use the following command to install a project from a nest.</p>
 <pre><code>newt egg install [flags] &lt;project egg name&gt;
 </code></pre>
-<h4 id="egg"><a href="id:anchor1">Egg</a></h4>
+<h3 id="egg">Egg<a class="headerlink" href="#egg" title="Permanent link">&para;</a></h3>
 <p>An egg is a distributable package of libraries. Just as an egg in nature has various parts each of which serves a certain purpose, the Mynewt egg consists of software parcels or modules that have different functions. However, unlike the egg in nature these software modules can exist by itself and may be distributed; therefore, they too are essentially eggs. Once this concept is grasped it is easy to see how an egg may consist of other eggs.</p>
 <p>The two main directories in an egg are <code>/include</code> and <code>/src</code>.</p>
 <p>The newt tool offers several egg commands to list, inspect, install, and do other operations on eggs. For example, the following command</p>
@@ -290,14 +284,14 @@ path: /Users/aditihilbert/dev/test_project/libs/os
 deps: libs/testutil@none#stable
 </code></pre>
 <p>A complete list of all the egg commands can be found in the newt tool reference in <a href="../../chapter3/newt_tool_reference/">Chapter 3</a>.</p>
-<h4 id="clutch">Clutch</h4>
+<h3 id="clutch">Clutch<a class="headerlink" href="#clutch" title="Permanent link">&para;</a></h3>
 <p>A clutch is a snapshot of all eggs in a remote nest at any point in time. On any given github branch, a nest with a clutch of eggs will contain a <code>clutch.yml</code> file that specifies the version number, dependencies, and hash value for each constituent egg as well as the name of the entire clutch and the github url for it. [Note: Currently ]</p>
 <p>You may download multiple clutches into your local nest as long as the names of the clutches are different. This allows you to mix and match various features and functionality coming from different clutches of eggs. You can see all the clutches in the <code>.nest/clutches</code> directory in your nest.</p>
 <p>The newt tool offers clutch management commands within the <code>newt nest</code> command. For example, the following command creates a new clutch using all the eggs in the current directory. It requires that a clutch name be specified and the url for the location of that clutch in the online repository. These two inputs go into the <code>clutch.yml</code> file in the nest.</p>
 <pre><code>newt nest generate-clutch &lt;name&gt; &lt;url&gt;
 </code></pre>
 <p>Note that a clutch merely defines the eggs belonging together and requires the eggs to be installed (hatched) for the source code to be populated in the project. </p>
-<h4 id="eggshell">Eggshell</h4>
+<h3 id="eggshell">Eggshell<a class="headerlink" href="#eggshell" title="Permanent link">&para;</a></h3>
 <p>The term eggshell is used to refer to the eggs of a clutch in a remote repository. They are not useful on your local machine until you actually install them. So they are mere shells of themselves while sitting on the online repository. When you enter the following command outputs the total number of shells in each remote clutch.</p>
 <pre><code>newt nest list-clutches
 </code></pre>
@@ -305,7 +299,7 @@ deps: libs/testutil@none#stable
 <pre><code>Remote clutch larva (eggshells: 19)
 Remote clutch ble_test (eggshells: 15)
 </code></pre>
-<h4 id="target"><a href="id:anchor4">Target</a></h4>
+<h3 id="target">Target<a class="headerlink" href="#target" title="Permanent link">&para;</a></h3>
 <p>A target is the hardware build or its software equivalent (e.g. test, simulator) set for a project. It tells the newt tool how to build the source code within a given nest. Once a new target is created, its architecture and other details needs to be defined. An example of a defined target named "blink_f3disc" is given below.</p>
 <pre><code>blink_f3disc
          compiler_def: debug
@@ -319,10 +313,10 @@ Remote clutch ble_test (eggshells: 15)
 <pre><code>newt target create my_target1
 newt target set my_target1 arch=cortex_m4
 </code></pre>
-<h4 id="capability"><a href="id:anchor2">Capability</a></h4>
+<h3 id="capability">Capability<a class="headerlink" href="#capability" title="Permanent link">&para;</a></h3>
 <p>Capability is functionality that is exposed by an egg. A capability is tracked by its name and version. An egg may require capabilities exposed by another egg, thus establishing a dependency tracked through the egg.yml files. </p>
 <p>The newt tool can ascertain a map of all the egg capabilities and use it to check dependencies and make sure all the necessary eggs are in a project for a particular target.</p>
-<h4 id="identity"><a href="id:anchor3">Identity</a></h4>
+<h3 id="identity">Identity<a class="headerlink" href="#identity" title="Permanent link">&para;</a></h3>
 <p>Identity is a property of a target or project in the newt world. A target may inherit it from a project or vice versa. It may be used to determine what eggs to include or how an egg code should behave in a build or which linkerscripts to use. For example, the identity of a lock is different from the identity of a wearable monitor. Even if they were to be built on the same hardware target, different features and behavior are required. Their different identities result in differing sets of eggs in the projects and/or the same egg behaving differently depending on the identity.</p></div>
             
         </div>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter3/newt_ops/index.html
----------------------------------------------------------------------
diff --git a/site/chapter3/newt_ops/index.html b/site/chapter3/newt_ops/index.html
index dd86991..84a393d 100644
--- a/site/chapter3/newt_ops/index.html
+++ b/site/chapter3/newt_ops/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter3/newt_ops/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Command structure - MyNewt</title>
+	<title>Command structure - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../../chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../../chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -172,7 +166,7 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="command-structure">Command Structure</h2>
+<h2 id="command-structure">Command Structure<a class="headerlink" href="#command-structure" title="Permanent link">&para;</a></h2>
 <p>In the newt tool, commands represent actions and flags are modifiers for those actions. A command can have children commands which are also simply referred to as commands. One or more arguments may need to be provided to a command to execute it correctly. </p>
 <p>In the example below, the <code>newt</code> command has the child command <code>target set</code>. The first argument 'my_target1' is the name of the target whose attributes are being set. The second argument 'arch=cortex_m4' specifies the value to set the attribute (variable) 'arch' to, which in this case is 'cortex_m4'. </p>
 <pre><code>newt target set my_target1 arch=cortex_m4

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/chapter3/newt_tool_reference/index.html
----------------------------------------------------------------------
diff --git a/site/chapter3/newt_tool_reference/index.html b/site/chapter3/newt_tool_reference/index.html
index 20323e8..7a978d3 100644
--- a/site/chapter3/newt_tool_reference/index.html
+++ b/site/chapter3/newt_tool_reference/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/chapter3/newt_tool_reference/">
         <link rel="shortcut icon" href="../../img/favicon.ico">
 
-	<title>Command list - MyNewt</title>
+	<title>Command list - Mynewt</title>
 
         <link href="../../css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href="../..">MyNewt</a>
+            <a class="navbar-brand" href="../..">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li >
-                        <a href="../..">Home</a>
+                        <a href="../..">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="../../chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="../../chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -165,7 +159,7 @@
                 <div class="col-md-3"><div class="bs-sidebar hidden-print affix well" role="complementary">
     <ul class="nav bs-sidenav">
     
-        <li class="main active"><a href="#newt-tool-reference">Newt tool Reference</a></li>
+        <li class="main active"><a href="#command-list">Command List</a></li>
         
             <li><a href="#available-high-level-commands">Available high-level commands</a></li>
         
@@ -184,8 +178,8 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="newt-tool-reference">Newt tool Reference</h2>
-<h3 id="available-high-level-commands">Available high-level commands</h3>
+<h2 id="command-list">Command List<a class="headerlink" href="#command-list" title="Permanent link">&para;</a></h2>
+<h3 id="available-high-level-commands">Available high-level commands<a class="headerlink" href="#available-high-level-commands" title="Permanent link">&para;</a></h3>
 <pre><code>version     Display the Newt version number
 help        Help about any command
 nest        Commands to manage nests &amp; clutches (remote egg repositories)
@@ -193,8 +187,8 @@ egg         Commands to list and inspect eggs on a nest
 target      Set and view target information
 </code></pre>
 
-<h3 id="version"><em>version</em></h3>
-<h4 id="usage">Usage:</h4>
+<h3 id="version"><em>version</em><a class="headerlink" href="#version" title="Permanent link">&para;</a></h3>
+<h4 id="usage">Usage:<a class="headerlink" href="#usage" title="Permanent link">&para;</a></h4>
 <pre><code>newt version [flags]
 </code></pre>
 <p>Flags:</p>
@@ -220,8 +214,8 @@ target      Set and view target information
 </tr>
 </tbody>
 </table>
-<h3 id="help"><em>help</em></h3>
-<h4 id="usage_1">Usage:</h4>
+<h3 id="help"><em>help</em><a class="headerlink" href="#help" title="Permanent link">&para;</a></h3>
+<h4 id="usage_1">Usage:<a class="headerlink" href="#usage_1" title="Permanent link">&para;</a></h4>
 <pre><code>newt help [input1]
 </code></pre>
 <p>Flags:</p>
@@ -255,8 +249,8 @@ target      Set and view target information
 </tr>
 </tbody>
 </table>
-<h3 id="nest"><em>nest</em></h3>
-<h4 id="usage_2">Usage:</h4>
+<h3 id="nest"><em>nest</em><a class="headerlink" href="#nest" title="Permanent link">&para;</a></h3>
+<h4 id="usage_2">Usage:<a class="headerlink" href="#usage_2" title="Permanent link">&para;</a></h4>
 <pre><code>newt nest [command][flags] input1 input2...
 </code></pre>
 <p>Available commands: </p>
@@ -287,15 +281,15 @@ show-clutch     Show an individual clutch in the current nest
 <tbody>
 <tr>
 <td>create</td>
-<td>Downloads the skeleton of a nest on your local machine from the optional <code>input2</code> nest url, if specified, and creates a new nest directory by the name of <code>input1</code>. If <code>input2</code> is not specified, then a default skeleton from the <code>tadpole</code> nest on Mynewt is downloaded. The command lays out a generic directory structure for the nest you are going to build under it and includes some default eggs in it.</td>
+<td>Downloads the skeleton of a nest on your local machine from the optional <code>input2</code>nest url, if specified, and creates a new nest directory by the name of <code>input1</code> If <code>input2</code>is not specified, then a default skeleton from the <code>tadpole</code>nest on Mynewt is downloaded. The command lays out a generic directory structure for the nest you are going to build under it and includes some default eggs in it.</td>
 </tr>
 <tr>
 <td>generate-clutch</td>
-<td>Takes a snapshot of the eggs in the current local directory and combines them into a clutch by the name of <code>input1</code> and with the url of <code>input2</code> and generates a standard output of the clutch details that can be redirected to a <code>.yml</code> clutch file. Typically the clutch file name is chosen to match the clutch name which means the standard output should be directed to a clutch file named <code>input1.yml</code></td>
+<td>Takes a snapshot of the eggs in the current local directory and combines them into a clutch by the name of <code>input1</code>and with the url of <code>input2</code>and generates a standard output of the clutch details that can be redirected to a <code>.yml</code>clutch file. Typically the clutch file name is chosen to match the clutch name which means the standard output should be directed to a clutch file named <code>input1.yml</code></td>
 </tr>
 <tr>
 <td>add-clutch</td>
-<td>Downloads the clutch of the name <code>input1</code> from the master branch of the github repository <code>input2</code> into the current nest. A file named <code>input1.yml</code> file is added in the <code>.nest/clutches</code> subdirectory inside the current local nest. The <code>.nest/</code> directory structure is created automatically if it does not exist.</td>
+<td>Downloads the clutch of the name <code>input1</code>from the master branch of the github repository <code>input2</code>into the current nest. A file named <code>input1.yml</code>file is added in the <code>.nest/clutches</code>subdirectory inside the current local nest. The <code>.nest/</code>directory structure is created automatically if it does not exist.</td>
 </tr>
 <tr>
 <td>list-clutches</td>
@@ -303,7 +297,7 @@ show-clutch     Show an individual clutch in the current nest
 </tr>
 <tr>
 <td>show-clutch</td>
-<td>Shows information about the clutch that has the name given in the <code>input1</code> argument. Output includes the clutch name, url, and all the constituent eggs with their version numbers.</td>
+<td>Shows information about the clutch that has the name given in the <code>input1</code>argument. Output includes the clutch name, url, and all the constituent eggs with their version numbers.</td>
 </tr>
 </tbody>
 </table>
@@ -320,7 +314,7 @@ show-clutch     Show an individual clutch in the current nest
 <tr>
 <td>add-clutch</td>
 <td>-b, --branch="<branch-name>"</td>
-<td>Fetches the clutch file with name <code>input1</code> from the specified branch at <code>input1</code> url of the github repository. All subsequent egg installations will be done from that branch.</td>
+<td>Fetches the clutch file with name <code>input1</code>from the specified branch at <code>input1</code>url of the github repository. All subsequent egg installations will be done from that branch.</td>
 </tr>
 </tbody>
 </table>
@@ -347,7 +341,7 @@ show-clutch     Show an individual clutch in the current nest
 <tr>
 <td>generate-clutch</td>
 <td>newt nest generate-clutch myclutch https://www.github.com/mynewt/larva &gt; myclutch.yml</td>
-<td>Takes a snapshot of the eggs in the current nest to form a clutch named myclutch with the url https://www.github.com/mynewt/larva. The output is written to a file named <code>myclutch.yml</code> and describes the properties and contents of the clutch (name, url, eggs).</td>
+<td>Takes a snapshot of the eggs in the current nest to form a clutch named myclutch with the url https://www.github.com/mynewt/larva. The output is written to a file named <code>myclutch.yml</code>and describes the properties and contents of the clutch (name, url, eggs).</td>
 </tr>
 <tr>
 <td>add-clutch</td>
@@ -366,8 +360,8 @@ show-clutch     Show an individual clutch in the current nest
 </tr>
 </tbody>
 </table>
-<h3 id="egg"><em>egg</em></h3>
-<h4 id="usage_3">Usage:</h4>
+<h3 id="egg"><em>egg</em><a class="headerlink" href="#egg" title="Permanent link">&para;</a></h3>
+<h4 id="usage_3">Usage:<a class="headerlink" href="#usage_3" title="Permanent link">&para;</a></h4>
 <pre><code>newt egg [command][flag] input1 input2
 </code></pre>
 <p>Available Commands: </p>
@@ -406,19 +400,19 @@ remove      Remove an egg
 </tr>
 <tr>
 <td>hunt</td>
-<td>Hunts for an egg, specified by <code>input1</code>. The local nest, along with all remote nests (clutches) are searched. All matched eggs are shown along with the clutch informaton. Installed eggs are called out as such. The command can be invoked from anywhere in the nest.</td>
+<td>Hunts for an egg, specified by <code>input1</code> The local nest, along with all remote nests (clutches) are searched. All matched eggs are shown along with the clutch informaton. Installed eggs are called out as such. The command can be invoked from anywhere in the nest.</td>
 </tr>
 <tr>
 <td>show</td>
-<td>Show the contents of the egg named <code>input2</code> found in the clutch named <code>input1</code>. The clutch name is optional; if only the egg name is given as the argument it is resolved using all the clutches installed in the current nest. If the egg is present in multiple clutches it will list all of them along with the clutch information for each.</td>
+<td>Show the contents of the egg named <code>input2</code>found in the clutch named <code>input1</code> The clutch name is optional; if only the egg name is given as the argument it is resolved using all the clutches installed in the current nest. If the egg is present in multiple clutches it will list all of them along with the clutch information for each.</td>
 </tr>
 <tr>
 <td>install</td>
-<td>Install the egg specified by <code>input2</code> from the clutch named <code>input1</code>. The command downloads the egg from the github repository using the URL in the clutch description file (typically donwloaded as 'input1@<branch-name>.yml' in .nest/clutches). It also downloads all the dependencies (constituent eggs) as decribed in the egg's description file ('egg.yml') and installs all of them. The clutch name is optional. If only the egg name is given as the argument, the command looks for the egg name in all the clutches in the local nest and installs accordingly. An egg is installed by this command only if it has not already been installed.</td>
+<td>Install the egg specified by <code>input2</code>from the clutch named <code>input1</code> The command downloads the egg from the github repository using the URL in the clutch description file (typically donwloaded as 'input1@<branch-name>.yml' in .nest/clutches). It also downloads all the dependencies (constituent eggs) as decribed in the egg's description file ('egg.yml') and installs all of them. The clutch name is optional. If only the egg name is given as the argument, the command looks for the egg name in all the clutches in the local nest and installs accordingly. An egg is installed by this command only if it has not already been installed.</td>
 </tr>
 <tr>
 <td>remove</td>
-<td>Remove an egg named <code>input2</code> from clutch <code>input1</code>, if clutch is specified. Otherwise only one input required - that of the name of the egg to be removed from the local nest.</td>
+<td>Remove an egg named <code>input2</code>from clutch <code>input1</code> if clutch is specified. Otherwise only one input required - that of the name of the egg to be removed from the local nest.</td>
 </tr>
 </tbody>
 </table>
@@ -486,8 +480,8 @@ remove      Remove an egg
 </tr>
 </tbody>
 </table>
-<h3 id="target"><em>target</em></h3>
-<h4 id="usage_4">Usage:</h4>
+<h3 id="target"><em>target</em><a class="headerlink" href="#target" title="Permanent link">&para;</a></h3>
+<h4 id="usage_4">Usage:<a class="headerlink" href="#usage_4" title="Permanent link">&para;</a></h4>
 <p>Usage: </p>
 <pre><code>newt target [command] input1 [flag1] [flag2]
 </code></pre>
@@ -522,7 +516,7 @@ import      Import target
 <tbody>
 <tr>
 <td>set</td>
-<td>Set attributes of the target. Currently the list of possible attributes are:<code>arch, compiler, compiler_def, project, bsp, egg, identities, capabilities, dependencies, cflags, lflags</code>. Typically only the first 5 need to be set for a hardware target. For a simulated target, e.g. for software testing purposes, <code>arch=sim</code>, <code>compiler=sim</code>, and <code>egg=&lt;egg name to be tested&gt;</code>. You cannot set both the project and egg for a target.</td>
+<td>Set attributes of the target. Currently the list of possible attributes are:<code>arch, compiler, compiler_def, project, bsp, egg, identities, capabilities, dependencies, cflags, lflags</code> Typically only the first 5 need to be set for a hardware target. For a simulated target, e.g. for software testing purposes, <code>arch=sim</code> <code>compiler=sim</code> and <code>egg=&lt;egg name to be tested&gt;</code> You cannot set both the project and egg for a target.</td>
 </tr>
 <tr>
 <td>unset</td>
@@ -530,35 +524,35 @@ import      Import target
 </tr>
 <tr>
 <td>delete</td>
-<td>Deletes only the description for the target. Does not delete the target directory with associated binaries. If you want to clean out the binaries, list files, and executables use<code>newt target build &lt;target-name&gt; clean</code> <strong>before</strong> deleting the target!</td>
+<td>Deletes only the description for the target. Does not delete the target directory with associated binaries. If you want to clean out the binaries, list files, and executables use<code>newt target build &lt;target-name&gt; clean</code><strong>before</strong> deleting the target!</td>
 </tr>
 <tr>
 <td>create</td>
-<td>Creates a target description or build definition by the name <code>input1</code>. By default it assigns the sim (simulator) architecture to it which allows you to build new projects and software on your native OS and try it out.</td>
+<td>Creates a target description or build definition by the name <code>input1</code> By default it assigns the sim (simulator) architecture to it which allows you to build new projects and software on your native OS and try it out.</td>
 </tr>
 <tr>
 <td>show</td>
-<td>Display the configuration defined for the target named <code>input1</code>. If no <code>input1</code> is specified then show the details for all the targets in the nest.</td>
+<td>Display the configuration defined for the target named <code>input1</code> If no <code>input1</code>is specified then show the details for all the targets in the nest.</td>
 </tr>
 <tr>
 <td>build</td>
-<td>Build the source code into an image that can be loaded on the hardware associated with the target named <code>input1</code> to do the application enabled by the 'project' associated with that target (via the target definition). It creates 'bin/' and 'bin/<input1>/' subdirectories inside the base directory for the project, compiles and generates binaries and executables, and places them in 'bin/<input1>/.</td>
+<td>Build the source code into an image that can be loaded on the hardware associated with the target named <code>input1</code>to do the application enabled by the 'project' associated with that target (via the target definition). It creates 'bin/' and 'bin/<input1>/' subdirectories inside the base directory for the project, compiles and generates binaries and executables, and places them in 'bin/<input1>/.</td>
 </tr>
 <tr>
 <td>test</td>
-<td>Test an egg on the target named <code>input1</code>. The egg is either supplied as an argument to the command line invocation of <code>newt target test</code> or added as part of the target definition. If only the target is specified as <code>input1</code>, then the egg in the target's definition is automatically chosen to be tested. You currently cannot test an entire project on a hardware target. The test command is envisioned for use if one or two eggs gets updated and each needs to be tested against a target. Alternatively, a script may be written for a series of tests on several eggs.</td>
+<td>Test an egg on the target named <code>input1</code> The egg is either supplied as an argument to the command line invocation of <code>newt target test</code>or added as part of the target definition. If only the target is specified as <code>input1</code> then the egg in the target's definition is automatically chosen to be tested. You currently cannot test an entire project on a hardware target. The test command is envisioned for use if one or two eggs gets updated and each needs to be tested against a target. Alternatively, a script may be written for a series of tests on several eggs.</td>
 </tr>
 <tr>
 <td>export</td>
-<td>Exports the configurations of the specified target <code>input1</code>. If -a or -export-all flag is used, then all targets are exported and printed out to standard out. You may redirect the output to a file.</td>
+<td>Exports the configurations of the specified target <code>input1</code> If -a or -export-all flag is used, then all targets are exported and printed out to standard out. You may redirect the output to a file.</td>
 </tr>
 <tr>
 <td>import</td>
-<td>Import one or more target configuration from standard input or a file. Each target starts with <code>@target=&lt;target-name&gt;</code> followed by the attributes. The list of targets should end with <code>@endtargets</code>.</td>
+<td>Import one or more target configuration from standard input or a file. Each target starts with <code>@target=&lt;target-name&gt;</code>followed by the attributes. The list of targets should end with <code>@endtargets</code></td>
 </tr>
 <tr>
 <td>size</td>
-<td>Outputs the RAM and flash consumption by the components of the specified target <code>input1</code>.</td>
+<td>Outputs the RAM and flash consumption by the components of the specified target <code>input1</code></td>
 </tr>
 </tbody>
 </table>
@@ -585,7 +579,7 @@ import      Import target
 <tr>
 <td>export</td>
 <td>-a, -export-all</td>
-<td>Export all targets. <code>input1</code> is not necessary when this flag is used.</td>
+<td>Export all targets. <code>input1</code>is not necessary when this flag is used.</td>
 </tr>
 <tr>
 <td>import</td>
@@ -662,7 +656,7 @@ import      Import target
 <tr>
 <td>import</td>
 <td>newt target import -a &lt; in_targets.txt</td>
-<td>Imports all the targets specified in the file named <code>in_targets.txt</code>. A sample file is shown after this table.</td>
+<td>Imports all the targets specified in the file named <code>in_targets.txt</code> A sample file is shown after this table.</td>
 </tr>
 <tr>
 <td>size</td>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/ff2aecef/site/index.html
----------------------------------------------------------------------
diff --git a/site/index.html b/site/index.html
index 8852a5f..e924a98 100644
--- a/site/index.html
+++ b/site/index.html
@@ -6,10 +6,10 @@
         <meta name="viewport" content="width=device-width, initial-scale=1.0">
         
         
-        
+        <link rel="canonical" href="http://mynewt.incubator.apache.org/">
         <link rel="shortcut icon" href="./img/favicon.ico">
 
-	<title>MyNewt</title>
+	<title>Mynewt</title>
 
         <link href="./css/bootstrap-custom.min.css" rel="stylesheet">
         <link href="./css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -43,7 +43,7 @@
             
 
             <!-- Main title -->
-            <a class="navbar-brand" href=".">MyNewt</a>
+            <a class="navbar-brand" href=".">Mynewt</a>
         </div>
 
         <!-- Expanded navigation -->
@@ -54,7 +54,7 @@
                 
                 
                     <li class="active">
-                        <a href=".">Home</a>
+                        <a href=".">Doc Home</a>
                     </li>
                 
                 
@@ -65,12 +65,6 @@
                         
                             
 <li >
-    <a href="chapter1/intro/">Introduction</a>
-</li>
-
-                        
-                            
-<li >
     <a href="chapter1/newt_concepts/">Newt Concepts</a>
 </li>
 
@@ -149,7 +143,7 @@
                         </a>
                     </li>
                     <li >
-                        <a rel="prev" href="chapter1/intro/">
+                        <a rel="prev" href="chapter1/newt_concepts/">
                             Next <i class="fa fa-arrow-right"></i>
                         </a>
                     </li>
@@ -172,7 +166,7 @@
 </div></div>
                 <div class="col-md-9" role="main">
 
-<h2 id="objective-of-mynewt">Objective of Mynewt</h2>
+<h2 id="objective-of-mynewt">Objective of Mynewt<a class="headerlink" href="#objective-of-mynewt" title="Permanent link">&para;</a></h2>
 <p>Mynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices. The modular implementation allows the user the flexibility to mix and match hardware components and customize the software stack depending on the feature and performance requirements of the particular application he or she has in mind.</p>
 <p>The world of Mynewt, therefore, has three primary collaborative goals:</p>
 <ul>
@@ -183,13 +177,13 @@
 <p>The chapter organization is outlined below. Each Chapter has one or more tutorials for hands-on experience with the material in each chapter. </p>
 <ul>
 <li>
-<p><a href="chapter1/intro/">Chapter 1: Getting Started</a> introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.</p>
+<p><a href="chapter1/newt_concepts/">Chapter 1: Getting Started</a> introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.</p>
 </li>
 <li>
 <p><a href="chapter2/vocabulary/">Chapter 2: Getting Acclimatized</a> delves deeper into the concepts crucial to the software development effort. </p>
 </li>
 <li>
-<p><a href="chapter3/newt_ops/">Chapter 3: Newt Tool Reference</a> is a detailed listing of the available commands to help you with your project. </p>
+<p><a href="chapter3/newt_ops/">Chapter 3: Newt Tool Reference</a> describes the command structure and details all the available commands to help you with your project. </p>
 </li>
 </ul></div>
             
@@ -238,5 +232,5 @@
 
 <!--
 MkDocs version : 0.14.0
-Build Date UTC : 2015-10-29 07:11:55.134082
+Build Date UTC : 2015-10-30 07:38:55.060375
 -->