You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ad...@apache.org on 2016/04/28 02:17:36 UTC

[1/4] incubator-mynewt-site git commit: Add bootloader to blinky tutorials. Pull request #74 to add BLE host API docs.

Repository: incubator-mynewt-site
Updated Branches:
  refs/heads/asf-site 9486a6b88 -> e5bb88f8c


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/olimex/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/olimex/index.html b/os/tutorials/olimex/index.html
index c5b74e2..afc13e7 100644
--- a/os/tutorials/olimex/index.html
+++ b/os/tutorials/olimex/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -505,16 +515,7 @@
                             <h2 id="blinky-your-hello-world-on-olimex">Blinky, your "Hello World!", on Olimex<a class="headerlink" href="#blinky-your-hello-world-on-olimex" title="Permanent link">&para;</a></h2>
 <h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
 <p>Learn how to use packages from a default application repository of Mynewt to build your first <em>Hello World</em> application (Blinky) on a target board. Once built using the <em>newt</em> tool, this application will blink the LED lights on the target board. Fun stuff!</p>
-<p>This tutorial will guide you to achieve the following, assuming you have already set up the environment on your computer to use Mynewt OS and newt tool:</p>
-<ul>
-<li>Download packages and use tools to create a runtime image for a board to make its LED blink. You have two choices here:<ul>
-<li><a href="#use-sram-to-make-led-blink">Download an image to SRAM</a>, or </li>
-<li><a href="#use-flash-to-make-led-blink">Download it to flash</a>.</li>
-</ul>
-</li>
-</ul>
-<p><br></p>
-<p><strong> Time Requirement</strong>: Allow yourself a couple of hours for this project if you are relatively new to embedded systems and playing with development boards. Those jumpers can be pesky!</p>
+<p>This tutorial shows you how to create a runtime image for an Olimex board to make its LED blink. Download the image to its flash memory and see the LED blink!</p>
 <p><br></p>
 <h3 id="what-you-need">What you need<a class="headerlink" href="#what-you-need" title="Permanent link">&para;</a></h3>
 <ol>
@@ -528,15 +529,12 @@
 </ol>
 <p>Also, we assume that you're familiar with UNIX shells. Let's gets started!</p>
 <p><br></p>
-<h3 id="use-sram-to-make-led-blink">Use SRAM to make LED blink<a class="headerlink" href="#use-sram-to-make-led-blink" title="Permanent link">&para;</a></h3>
-<p>If you wish to build the image to run from the onboard SRAM on Olimex board, follow the steps below:</p>
-<p><br></p>
-<h4 id="prepare-the-software">Prepare the Software<a class="headerlink" href="#prepare-the-software" title="Permanent link">&para;</a></h4>
+<h3 id="prepare-the-software">Prepare the Software<a class="headerlink" href="#prepare-the-software" title="Permanent link">&para;</a></h3>
 <ul>
 <li>Make sure the PATH environment variable includes the $HOME/dev/go/bin directory. </li>
 </ul>
 <p><br></p>
-<h4 id="create-a-project">Create a project.<a class="headerlink" href="#create-a-project" title="Permanent link">&para;</a></h4>
+<h3 id="create-a-project">Create a project.<a class="headerlink" href="#create-a-project" title="Permanent link">&para;</a></h3>
 <p>Create a new project to hold your work.  For a deeper understanding, you can read about project creation in 
 <a href="../../get_started/project_create/">Get Started -- Creating Your First Project</a>
 or just follow the commands below.</p>
@@ -558,32 +556,34 @@ or just follow the commands below.</p>
 
 
 <p><br></p>
-<h4 id="create-a-target">Create a target<a class="headerlink" href="#create-a-target" title="Permanent link">&para;</a></h4>
+<h3 id="create-targets">Create targets<a class="headerlink" href="#create-targets" title="Permanent link">&para;</a></h3>
 <p>Change directory to ~/dev/myproj directory and define the <em>blinky</em> target inside myproj, using the <em>newt</em> tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support package (bsp), and app.</p>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt target create blinky
     $ newt target set blinky build_profile=debug
     $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
     $ newt target set blinky app=apps/blinky
-    $ newt target show blinky
-    targets/boot_olimex
+
+    $ newt target create boot_olimex
+    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot
+    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+    $ newt target set boot_olimex build_profile=optimized
+
+    $ newt target show 
+    targets/blinky
         app=apps/blinky
-        bsp=hw/bsp/olimex_stm32-e407_devboard
+        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
         build_profile=debug
+    targets/boot_olimex
+        app=@apache-mynewt-core/apps/boot
+        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+        build_profile=optimized
 </pre></div>
 
 
 <p><br></p>
-<h4 id="build-the-image">Build the image<a class="headerlink" href="#build-the-image" title="Permanent link">&para;</a></h4>
-<p>Next, let's build the image with the above values assigned. By default, the linker script within the <code>hw/bsp/olimex_stm32-e407_devboard</code> package builds an image for flash memory, which we don't want; instead, we want an image for the SRAM, so you need to switch that script with <code>run_from_sram.ld</code>. </p>
-<p><font color="red">
-(We are working to simplify this scheme whereby an executable for a project will correctly elect the linker scripts and generate the relevant image. For example, the scheme will key on project identity such as bootloader, RAM, Flash (default) and build accordingly.) </font>.</p>
-<p>Afer you build the target, you can find the executable <em>blinky.elf</em> in the project directory <em>~/dev/myproj/bin/blinky/apps/blinky/.</em> </p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/
-    $ diff olimex_stm32-e407_devboard.ld run_from_sram.ld
-    (some diff will be displayed)
-    $ cp run_from_sram.ld olimex_stm32-e407_devboard.ld
-    $ cd ~/dev/myproj
-    $ newt build blinky
+<h3 id="build-the-images">Build the images<a class="headerlink" href="#build-the-images" title="Permanent link">&para;</a></h3>
+<p>Next, let's build the images for the above targets. Afer you build the target, you can find the executable <em>blinky.elf</em> in the project directory <em>~/dev/myproj/bin/blinky/apps/blinky/.</em> </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt build blinky
     Compiling case.c
     Compiling suite.c
     ...
@@ -592,11 +592,24 @@ or just follow the commands below.</p>
     $ ls ~/dev/myproj/bin/blinky/apps/blinky/
         blinky.elf      blinky.elf.bin     blinky.elf.cmd  
         blinky.elf.lst  blinky.elf.map
+
+    $ newt build boot_olimex
+    Building target targets/boot_olimex
+    App successfully built: ~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf
+</pre></div>
+
+
+<p><br></p>
+<h3 id="sign-and-create-the-blinky-application-image">Sign and create the blinky application image<a class="headerlink" href="#sign-and-create-the-blinky-application-image" title="Permanent link">&para;</a></h3>
+<p>You must sign and version your application image to download it using newt to the board. Use the newt create-image command to perform this action. You may assign an arbitrary version (e.g. 1.0.0) to the image.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt create-image blinky 1.0.0
+App image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img
+Build manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json
 </pre></div>
 
 
 <p><br></p>
-<h4 id="prepare-the-hardware-to-boot-from-embedded-sram">Prepare the hardware to boot from embedded SRAM<a class="headerlink" href="#prepare-the-hardware-to-boot-from-embedded-sram" title="Permanent link">&para;</a></h4>
+<h3 id="prepare-the-hardware-to-boot-from-flash">Prepare the hardware to boot from flash<a class="headerlink" href="#prepare-the-hardware-to-boot-from-flash" title="Permanent link">&para;</a></h3>
 <ul>
 <li>Locate the boot jumpers on the board.</li>
 </ul>
@@ -607,7 +620,7 @@ or just follow the commands below.</p>
 <ul>
 <li>
 <p>B1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always be accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. 
-To locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from SRAM by jumpering <strong>B0_1</strong> and <strong>B1_1</strong>.</p>
+To locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from flash by jumpering <strong>B0_0</strong> and <strong>B1_0</strong>.</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>
@@ -620,121 +633,17 @@ To locate the bootloader, the board searches in three places: User Flash Memory,
 </li>
 </ul>
 <p><br></p>
-<h4 id="lets-go">Let's Go!<a class="headerlink" href="#lets-go" title="Permanent link">&para;</a></h4>
+<h3 id="lets-go">Let's Go!<a class="headerlink" href="#lets-go" title="Permanent link">&para;</a></h3>
 <ul>
-<li>Ensure that you are in the blinky project directory with the <em>blinky.elf</em> executable. Run the debug command in the <em>newt</em> tool. You'll see some status messages as shown below. In case you need to halt the debugging session, you can issue an <code>-c "reset halt"</code> command.</li>
+<li>Load the images</li>
 </ul>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt debug blinky
-    Debugging with ~/dev/core/hw/bsp/olimex_...
-    Debugging ~/dev/core/project/blinky/bin/blinky/blinky.elf
-    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 &lt;http://gnu.org/licenses/gpl.html&gt;
-    ...
-    (info)
-    ...
-    target state: halted
-    target halted due to debug-request, current mode: Thread 
-    xPSR: 0x01000000 pc: 0x080003c0 msp: 0x10010000
-    Info : accepting &#39;gdb&#39; connection on tcp/3333
-    Info : device id = 0x10036413
-    Info : flash size = 1024kbytes
-</pre></div>
-
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt -v load boot_olimex
+Loading image with: ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/boot_olimex/apps/boot/boot BASELIBC FS LIBC NFFS bootloader
+Successfully loaded image.
 
-<p><br></p>
-<p>Check the value of the msp (main service pointer) register. If it is not 0x10010000 as indicated above, you will have to manually set it after you open the gdb tool and load the image on it. For example, </p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    (gdb) set $msp=0x10010000
-</pre></div>
-
-
-<p><br></p>
-<p>Now load the image and type "c" or "continue" from the GNU debugger. </p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    (gdb) load ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf   
-    Loading section .text, size 0x16b88 lma 0x20000000
-    Loading section .ARM.exidx, size 0x18 lma 0x20016b88
-    Loading section .data, size 0x9ec lma 0x20016ba0
-    Start address 0x200004b8, load size 95628
-    Transfer rate: 74 KB/sec, 3825 bytes/write.
-    (gdb) c
-    Continuing.
-</pre></div>
-
-
-<ul>
-<li>VoilĂ ! The board's LED should be blinking at 1 Hz. Success!</li>
-</ul>
-<p><br></p>
-<h3 id="use-flash-to-make-led-blink">Use flash to make LED blink<a class="headerlink" href="#use-flash-to-make-led-blink" title="Permanent link">&para;</a></h3>
-<p>If you wish to build the image to run from the onboard flash memory on Olimex board, follow the steps below:</p>
-<ul>
-<li>
-<p>Configure the board to boot from flash by moving the two jumpers together to <strong>B0_0</strong> and <strong>B1_0</strong>. Refer to the pictures of the board under the section titled <a href="#prepare-the-hardware-to-boot-from-embedded-sram">"Prepare the hardware to boot from embedded SRAM"</a>.</p>
-<p>You will have to reset the board once the image is uploaded to it.</p>
-</li>
-<li>
-<p>If you skipped the first option for the project <a href="#use-sram-to-make-led-blink">(downloading an image to SRAM)</a>, then skip this step. Otherwise, continue with this step. </p>
-</li>
-</ul>
-<p>By default, the linker script (<code>olimex_stm32-e407_devboard.ld</code>) is configured to run from bootloader and flash. However, if you first ran the image from SRAM you had changed <code>olimex_stm32-e407_devboard.ld</code> to match <code>run_from_sram.ld</code>. You will, therefore, return to defaults with <code>olimex_stm32-e407_devboard.ld</code> linker script matching the contents of 'run_from_loader.ld'. Return to the project directory.</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/
-$ diff olimex_stm32-e407_devboard.ld run_from_sram.ld
-$ diff olimex_stm32-e407_devboard.ld run_from_loader.ld
-(some diff will be displayed)
-$ cp run_from_loader.ld olimex_stm32-e407_devboard.ld
-$ cd ~/dev/myproj
-</pre></div>
-
-
-<p><br></p>
-<ul>
-<li>In order to run the image from flash, you need to build the bootloader as well. The bootloader does the initial set up of the Olimex board and then transfers control to the image stored at a location in flash known to it. </li>
-</ul>
-<p>Let's create boot_olimex:</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt target create boot_olimex
-    $ newt target set boot_olimex build_profile=optimized
-    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
-    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot
-    $ newt target show boot_olimex
-    targets/boot_olimex
-        app=@apache-mynewt-core/apps/boot
-        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
-        build_profile=optimized
-</pre></div>
-
-
-<p><br></p>
-<ul>
-<li>Now let's build both targets now.</li>
-</ul>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt build boot_olimex
-    ...
-    App successfully built: ~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf
-    $ newt build blinky
-    ...
-    Linking blinky.elf
-    App successfully built: ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf
-</pre></div>
-
-
-<p><br></p>
-<ul>
-<li>Create the blinky image and download the bootloader and the image to flash ... in a flash! 
-When creating an image, you can assign a version number to your image; here we use '1.2.3'</li>
-</ul>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt create-image blinky 1.2.3
-    App image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img
-    Build manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json
-    $ newt load boot_olimex
-    Downloading~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf.bin to 0x08000000
-    Open On-Chip Debugger 0.9.0 (2015-11-15-13:10)
-    ...
-    shutdown command invoked
-    $ newt load blinky
-    Downloading ~/dev/myproj/bin/blinky/apps/blinky/blinky.img to 0x08020000
-    Open On-Chip Debugger 0.9.0 (2015-11-15-13:10)
-    ...
-    shutdown command invoked
+$ newt -v load blinky
+Loading image with: ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/blinky/apps/blinky/blinky BASELIBC LIBC
+Successfully loaded image.
 </pre></div>
 
 
@@ -745,7 +654,7 @@ When creating an image, you can assign a version number to your image; here we u
 <p><br></p>
 <p><strong>But wait...not so fast.</strong> 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, severing the debug connection to the JTAG port. 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><strong>Note #1:</strong> If you want to download the image to flash and a gdb session opened up, use <code>newt debug blinky</code> after <code>newt download blinky</code>.</p>
+<p><strong>Note #1:</strong> If you want to download the image to flash and a gdb session opened up, use <code>newt debug blinky</code>. Type <code>c</code> to continue inside the gdb session.</p>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt debug blinky
     Debugging with ~/dev/myproj/hw/bsp/olimex_stm32-e407_...
     Debugging ~/dev/myproj/project/blinky/bin/blinky/blinky.elf
@@ -782,8 +691,8 @@ When creating an image, you can assign a version number to your image; here we u
 
 <h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3>
 <p>Congratulations! You have now tried out a project on actual hardware. If this is your first time to embedded systems, this must feel like the best hands-on and low-level "Hello World" program ever. </p>
-<p>Good, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like <a href="../nRF52/">tutorials</a>.</p>
-<p>If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our <a href="../../../community/">Community Page</a></p>
+<p>Good, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like <a href="../nRF52/">tutorials</a> or try enabling additional functionality such as <a href="../project-target-slinky/">remote comms</a> on the current board.</p>
+<p>If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our <a href="../../../community/">Community Page</a>.</p>
 <p>Keep on hacking and blinking!</p>
                         
                         <div class="row">

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/project-slinky/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/project-slinky/index.html b/os/tutorials/project-slinky/index.html
index 4d389eb..3f0d3b0 100644
--- a/os/tutorials/project-slinky/index.html
+++ b/os/tutorials/project-slinky/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -623,7 +633,7 @@ logs, image status (not on sim), and configuration.</p>
     
     <a href=../bletiny_project/>
         <span class="fa fa-arrow-left"></span>
-        Previous: BLE commands via console
+        Previous: Use BLE app to check stats via console
     </a>
     
     </li>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/project-target-slinky/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/project-target-slinky/index.html b/os/tutorials/project-target-slinky/index.html
index 1c5f071..09a621c 100644
--- a/os/tutorials/project-target-slinky/index.html
+++ b/os/tutorials/project-target-slinky/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/tutorials/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/tutorials/index.html b/os/tutorials/tutorials/index.html
index f63c3cb..2e31ca4 100644
--- a/os/tutorials/tutorials/index.html
+++ b/os/tutorials/tutorials/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/unit_test/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/unit_test/index.html b/os/tutorials/unit_test/index.html
index be87eea..10c4326 100644
--- a/os/tutorials/unit_test/index.html
+++ b/os/tutorials/unit_test/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/upgrade_repo/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/upgrade_repo/index.html b/os/tutorials/upgrade_repo/index.html
index 03aa735..750cc15 100644
--- a/os/tutorials/upgrade_repo/index.html
+++ b/os/tutorials/upgrade_repo/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -531,7 +541,7 @@ in <code>project.yml</code>, but for all the sub-dependencies that they might ha
     <li class="pull-right">
     
     <a href=../bletiny_project/>
-        Next: BLE commands via console
+        Next: Use BLE app to check stats via console
         <span class="fa fa-arrow-right"></span>
     </a>
     

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/sitemap.xml
----------------------------------------------------------------------
diff --git a/sitemap.xml b/sitemap.xml
index 66c62c8..c40ef21 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -4,7 +4,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -12,7 +12,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/about/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -20,7 +20,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/documentation/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -28,7 +28,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/download/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -36,7 +36,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/community/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -44,7 +44,7 @@
     
     <url>
      <loc>http://mynewt.apache.org/events/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
     
@@ -53,7 +53,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/get_started/introduction/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -93,7 +93,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/newt/newt_intro/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -105,7 +105,7 @@
         
     <url>
      <loc>http://mynewt.apache.org/newt/newt_operation/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -121,13 +121,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/newtmgr/overview/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/newtmgr/installing/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
@@ -143,13 +143,13 @@
         
     <url>
      <loc>http://mynewt.apache.org/os/tutorials/how_to_edit_docs/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         
     <url>
      <loc>http://mynewt.apache.org/faq/answers/</loc>
-     <lastmod>2016-04-26</lastmod>
+     <lastmod>2016-04-27</lastmod>
      <changefreq>daily</changefreq>
     </url>
         


[4/4] incubator-mynewt-site git commit: Add bootloader to blinky tutorials. Pull request #74 to add BLE host API docs.

Posted by ad...@apache.org.
Add bootloader to blinky tutorials. Pull request #74 to add BLE host API docs.


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/e5bb88f8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/tree/e5bb88f8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/diff/e5bb88f8

Branch: refs/heads/asf-site
Commit: e5bb88f8cf62a1736d56be2889ab5e4e2a3af3e2
Parents: 9486a6b
Author: aditihilbert <ad...@runtime.io>
Authored: Wed Apr 27 17:17:26 2016 -0700
Committer: aditihilbert <ad...@runtime.io>
Committed: Wed Apr 27 17:17:26 2016 -0700

----------------------------------------------------------------------
 mkdocs/search_index.json                        | 154 ++--
 network/ble/ini_stack/ble_add_cpu/index.html    |  10 +
 network/ble/ini_stack/ble_consolepkg/index.html |  10 +
 .../ble/ini_stack/ble_controller_ini/index.html |  14 +-
 network/ble/ini_stack/ble_devadd/index.html     |  10 +
 network/ble/ini_stack/ble_host_ini/index.html   |  40 +-
 network/ble/ini_stack/ble_ini_intro/index.html  |  10 +
 network/ble/ini_stack/ble_mempool/index.html    |  10 +
 network/ble/ini_stack/ble_parent_ini/index.html | 701 ++++++++++++++++++
 network/ble/ini_stack/ble_statpkg/index.html    |  10 +
 os/tutorials/STM32F303/index.html               |  23 +-
 os/tutorials/add_repos/index.html               |  16 +-
 os/tutorials/air_quality_sensor/index.html      |  12 +-
 os/tutorials/arduino_zero/index.html            |  15 +-
 os/tutorials/bletiny_project/index.html         |  18 +-
 os/tutorials/blinky_sram_olimex/index.html      | 728 +++++++++++++++++++
 os/tutorials/create_repo/index.html             |  12 +-
 os/tutorials/event_queue/index.html             |  12 +-
 os/tutorials/nRF52/index.html                   | 127 +++-
 os/tutorials/olimex/index.html                  | 205 ++----
 os/tutorials/project-slinky/index.html          |  14 +-
 os/tutorials/project-target-slinky/index.html   |  12 +-
 os/tutorials/tutorials/index.html               |  12 +-
 os/tutorials/unit_test/index.html               |  12 +-
 os/tutorials/upgrade_repo/index.html            |  14 +-
 sitemap.xml                                     |  26 +-
 26 files changed, 1959 insertions(+), 268 deletions(-)
----------------------------------------------------------------------



[2/4] incubator-mynewt-site git commit: Add bootloader to blinky tutorials. Pull request #74 to add BLE host API docs.

Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_add_cpu/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_add_cpu/index.html b/network/ble/ini_stack/ble_add_cpu/index.html
index cf911d6..15167d5 100644
--- a/network/ble/ini_stack/ble_add_cpu/index.html
+++ b/network/ble/ini_stack/ble_add_cpu/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_consolepkg/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_consolepkg/index.html b/network/ble/ini_stack/ble_consolepkg/index.html
index 6e2967a..0af0329 100644
--- a/network/ble/ini_stack/ble_consolepkg/index.html
+++ b/network/ble/ini_stack/ble_consolepkg/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_controller_ini/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_controller_ini/index.html b/network/ble/ini_stack/ble_controller_ini/index.html
index 0a48228..c8aa12a 100644
--- a/network/ble/ini_stack/ble_controller_ini/index.html
+++ b/network/ble/ini_stack/ble_controller_ini/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   
@@ -615,8 +625,8 @@ long; even a few milliseconds could cause undesirable behavior.</p>
     </li>
     <li class="pull-right">
     
-    <a href=../ble_host_ini/>
-        Next: Initialize host
+    <a href=../ble_parent_ini/>
+        Next: Initialize parent task
         <span class="fa fa-arrow-right"></span>
     </a>
     

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_devadd/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_devadd/index.html b/network/ble/ini_stack/ble_devadd/index.html
index a5dbc34..68fe5c7 100644
--- a/network/ble/ini_stack/ble_devadd/index.html
+++ b/network/ble/ini_stack/ble_devadd/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_host_ini/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_host_ini/index.html b/network/ble/ini_stack/ble_host_ini/index.html
index 59d0a6c..58c520f 100644
--- a/network/ble/ini_stack/ble_host_ini/index.html
+++ b/network/ble/ini_stack/ble_host_ini/index.html
@@ -356,6 +356,16 @@
               
                 
   
+    <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
     <li class="active">
       Initialize host
     </li>
@@ -500,7 +510,7 @@
                         
                             <h2 id="initialize-the-nimble-host">Initialize the NimBLE host<a class="headerlink" href="#initialize-the-nimble-host" title="Permanent link">&para;</a></h2>
 <p>The Nimble host is initialized via a call to <code>ble_hs_init()</code>.  This function is declared as follows:</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">int</span> <span style="color: #000000">ble_hs_init</span>(<span style="color: #A90D91">uint8_t</span> <span style="color: #000000">prio</span>, <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_cfg</span> <span style="color: #000000">*cfg</span>)
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">int</span> <span style="color: #000000">ble_hs_init</span>(<span style="color: #A90D91">struct</span> <span style="color: #000000">os_eventq</span> <span style="color: #000000">*parent_evq</span>, <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_cfg</span> <span style="color: #000000">*cfg</span>)
 </pre></div>
 
 
@@ -514,8 +524,8 @@
 </thead>
 <tbody>
 <tr>
-<td><em>prio</em></td>
-<td>The priority of the Nimble host task.  A lower number corresponds to higher priority.</td>
+<td><em>parent_evq</em></td>
+<td>The OS event queue that the host should use to schedule host-related operations.</td>
 </tr>
 <tr>
 <td><em>cfg</em></td>
@@ -523,26 +533,23 @@
 </tr>
 </tbody>
 </table>
-<p><strong>prio</strong>:</p>
-<p>Unlike the controller, the host does not have any strict timing requirements.
-This number should be greater than the priority of any time-critical tasks in
-your application (remember, bigger number = lower priority!).  There are no
-restrictions with regards to the host task's priority relative to its client
-tasks.  In the below example, the host is assigned a priority of 1.</p>
+<p><strong>parent_evq</strong>:</p>
+<p>This is the event queue associated with the <a href="#ble_parent_ini">host parent task</a>.</p>
 <p><strong>cfg</strong>:</p>
 <p>As mentioned above, passing a <em>cfg</em> value of <em>NULL</em> will initialize the Nimble
 host with the default configuration.  This is convenient while familiarizing
 yourself with the Nimble stack, but ultimately you will probably want to use a
 custom configuration.  For more information on configuring the host, see the
 Nimble Configuration Guide (TBD).</p>
-<p>Continuing with our running example, we now add Nimble host initialization to the <em>main()</em> function.  This application uses the default host configuration, so it specifies <em>NULL</em> as the second argument to <code>ble_hs_init()</code>.</p>
+<p>Continuing with our running example, we now add Nimble host initialization to
+the <em>main()</em> function.  This application uses the default host configuration,
+so it specifies <em>NULL</em> as the second argument to <code>ble_hs_init()</code>.</p>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="background-color: #ffffcc"><span style="color: #633820">#include &quot;host/ble_hs.h&quot;</span>
 </span>
 <span style="color: #A90D91">int</span>
 <span style="color: #000000">main</span>(<span style="color: #A90D91">void</span>)
 {
     <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
-    <span style="color: #A90D91">struct</span> <span style="color: #000000">ble_hs_cfg</span> <span style="color: #000000">cfg</span>;
 
     <span style="color: #177500">/* Initialize OS */</span>
     <span style="color: #000000">os_init</span>();
@@ -579,8 +586,13 @@ Nimble Configuration Guide (TBD).</p>
     <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_ll_init</span>(<span style="color: #1C01CE">0</span>, <span style="color: #1C01CE">7</span>, <span style="color: #1C01CE">260</span>);
     <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
 
+    <span style="color: #177500">/* Initialize the application task. */</span>
+    <span style="color: #000000">os_eventq_init</span>(<span style="color: #000000">&amp;app_evq</span>);
+    <span style="color: #000000">os_task_init</span>(<span style="color: #000000">&amp;app_task</span>, <span style="color: #C41A16">&quot;app&quot;</span>, <span style="color: #000000">app_task_handler</span>, <span style="color: #A90D91">NULL</span>, <span style="color: #1C01CE">1</span>, <span style="color: #000000">OS_WAIT_FOREVER</span>,
+                 <span style="color: #000000">app_stack</span>, <span style="color: #000000">APP_STACK_SIZE</span>);
+
 <span style="background-color: #ffffcc">    <span style="color: #177500">/* Initialize the BLE host. */</span>
-</span><span style="background-color: #ffffcc">    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_hs_init</span>(<span style="color: #000000">BLE_HS_TASK_PRI</span>, <span style="color: #A90D91">NULL</span>);
+</span><span style="background-color: #ffffcc">    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_hs_init</span>(<span style="color: #000000">&amp;app_evq</span>, <span style="color: #A90D91">NULL</span>);
 </span><span style="background-color: #ffffcc">    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
 </span>
     <span style="color: #177500">/* Start the OS */</span>
@@ -602,9 +614,9 @@ Nimble Configuration Guide (TBD).</p>
 <ul class="nav nav-pills" style="margin-bottom: 10px">
     <li>
     
-    <a href=../ble_controller_ini/>
+    <a href=../ble_parent_ini/>
         <span class="fa fa-arrow-left"></span>
-        Previous: Initialize controller
+        Previous: Initialize parent task
     </a>
     
     </li>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_ini_intro/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_ini_intro/index.html b/network/ble/ini_stack/ble_ini_intro/index.html
index 0a87f12..27ec1e1 100644
--- a/network/ble/ini_stack/ble_ini_intro/index.html
+++ b/network/ble/ini_stack/ble_ini_intro/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_mempool/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_mempool/index.html b/network/ble/ini_stack/ble_mempool/index.html
index ac12d7d..a92ba26 100644
--- a/network/ble/ini_stack/ble_mempool/index.html
+++ b/network/ble/ini_stack/ble_mempool/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_parent_ini/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_parent_ini/index.html b/network/ble/ini_stack/ble_parent_ini/index.html
new file mode 100644
index 0000000..51e053e
--- /dev/null
+++ b/network/ble/ini_stack/ble_parent_ini/index.html
@@ -0,0 +1,701 @@
+<!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="canonical" href="http://mynewt.apache.org/network/ble/ini_stack/ble_parent_ini/">
+        <link rel="shortcut icon" href="../../../../img/favicon.ico">
+
+	<title>Initialize parent task - Apache Mynewt</title>
+
+        <link href="../../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../../css/highlight.css">
+        <link href="../../../../css/base.css" rel="stylesheet">
+        <link href="../../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../../extra.css" rel="stylesheet">
+
+        <!-- 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]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="Initialize parent task">
+
+
+        <div id="navbar" class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- 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>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/about/">About</a>
+                </li>
+                <li class="dropdown">
+                    <a href="/documentation/" class="dropdown-toggle" data-toggle="dropdown">Docs <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        
+                        
+                        
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../../documentation/">
+                                Overview
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        <li class="active">
+                            <a href="../../../../os/get_started/introduction/">
+                                Mynewt OS Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../../newt/newt_intro/">
+                                Newt Tool Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../../newtmgr/overview/">
+                                Newt Manager Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../../os/tutorials/how_to_edit_docs/">
+                                Appendix
+                            </a>
+                        </li>
+                        
+                        
+                    </ul>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div id="docSidebar" class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../../os/get_started/introduction/
+">Mynewt OS Manual</a>
+  
+    
+      <ul class="current-toc">
+          
+              
+                
+  
+    <li>
+      <a href="../../../../os/get_started/introduction/">Introduction</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../../os/get_started/get_started/">Quick Start</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../../os/get_started/vocabulary/">Concepts</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../../os/tutorials/tutorials/">Tutorials</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../../../os/os_user_guide/">OS User Guide</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../../ble_intro/
+">BLE User Guide</a>
+  
+    
+      <ul class="current-toc">
+          
+              
+                
+  
+    <li>
+      <a href="../../ble_intro/">NimBLE Introduction</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../../ble_sec/">NimBLE Security</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../../nimble_setup/">Set up application</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../ble_ini_intro/">Initialize stack</a></li>
+  
+    
+      <ul class="current-toc">
+          
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_add_cpu/">Add cputime</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_mempool/">Create mem pool</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_devadd/">Initialize device addr</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_statpkg/">Initialize stats pkg</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_consolepkg/">Initialize console pkg</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_controller_ini/">Initialize controller</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li class="active">
+      Initialize parent task
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../ble_host_ini/">Initialize host</a>
+    </li>
+  
+
+              
+          
+      </ul>
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../bletiny_api/">API for bletiny app</a></li>
+  
+    
+  </li>
+
+              
+          
+      </ul>
+    
+  </li>
+
+              
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../../newt/newt_intro/
+">Newt Tool Manual</a>
+  
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../../newtmgr/overview/
+">Newt Manager Manual</a>
+  
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../../os/tutorials/how_to_edit_docs/
+">Appendix</a>
+  
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+
+                    <div class="col-md-offset-3 col-md-9 documentation-viewer" role="main">
+                        <div class="row doc-header">
+                            <div class="col-sm-6">
+                                
+<ul class="nav nav-pills">
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    <li class="active" role="presentation"><a href="../../../../os/get_started/introduction/">Mynewt OS</a></li>
+    
+    
+    
+    <li  role="presentation"><a href="../../../../newt/newt_intro/">Newt Tool</a></li>
+    
+    
+    
+    <li  role="presentation"><a href="../../../../newtmgr/overview/">Newt Mgr</a></li>
+    
+    
+    
+    
+</ul>
+                            </div>
+                            <div class="col-sm-6">
+                                <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="/documentation/">Docs</a></li>
+    
+    
+        
+          <li>&raquo; <a href="../../ble_intro/">BLE User Guide</a></li>
+        
+      
+        
+          <li>&raquo; <a href="../ble_ini_intro/">Initialize stack</a></li>
+        
+      
+      
+        <li>&raquo; Initialize parent task</li>
+      
+    
+    
+  </ul>
+</div>
+                            </div>
+                        </div>
+                        
+                            <h2 id="create-the-host-parent-task">Create the host parent task<a class="headerlink" href="#create-the-host-parent-task" title="Permanent link">&para;</a></h2>
+<p>The NimBLE stack requires an application task to function.  One application
+task in particular is designated as the <em>host parent task</em>.  In addition to
+application-specific work, the host parent task does work for NimBLE by
+processing events generated by the host.</p>
+<p>The process of creating an OS task is described in the <a href="#../../../../os/tutorials/event_queue/">Add Task
+tutorial</a>.</p>
+<p><strong>Priority:</strong>
+It is up to you which priority to use for the host parent task.  Unlike the
+controller, the host does not have any strict timing requirements, so the
+priority should be based on the application's needs.  In the below example, we
+use a priority of <strong>1</strong>.</p>
+<p><strong>Stack size:</strong>
+The host parent task's stack needs to be sufficiently large to handle BLE
+operations.  This depends on the set of BLE features your application uses, and
+on the specifics application callbacks that the stack is configured to use.  A
+safe value is to use here is <strong>300 words</strong>; that is the value used in the below
+example.</p>
+<p>The parent task must do two things:</p>
+<ul>
+<li>Call <code>ble_hs_start()</code> before starting its task loop.</li>
+<li>Handle <em>OS_EVENT_T_TIMER</em> events within its task loop.</li>
+</ul>
+<p>The <code>ble_hs_start()</code> function is declared as follows:</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">int</span> <span style="color: #000000">ble_hs_start</span>(<span style="color: #A90D91">void</span>)
+</pre></div>
+
+
+<p>The <code>ble_hs_start()</code> function causes the host to send a sequence of HCI
+commands to the controller.  This sequence of commands is necessary for the
+host and controller to remain in sync.</p>
+<p>We add an application task to our example below.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="background-color: #ffffcc"><span style="color: #633820">#include &quot;os/os.h&quot;</span>
+</span>
+<span style="background-color: #ffffcc"><span style="color: #177500">/** Application task. */</span>
+</span><span style="background-color: #ffffcc"><span style="color: #A90D91">static</span> <span style="color: #A90D91">struct</span> <span style="color: #000000">os_task</span> <span style="color: #000000">app_task</span>;
+</span>
+<span style="background-color: #ffffcc"><span style="color: #177500">/** Application task event queue. */</span>
+</span><span style="background-color: #ffffcc"><span style="color: #A90D91">static</span> <span style="color: #A90D91">struct</span> <span style="color: #000000">os_eventq</span> <span style="color: #000000">app_evq</span>;
+</span>
+<span style="background-color: #ffffcc"><span style="color: #177500">/** Application task stack. */</span>
+</span><span style="background-color: #ffffcc"><span style="color: #633820">#define APP_STACK_SIZE          (OS_STACK_ALIGN(300))</span>
+</span><span style="background-color: #ffffcc"><span style="color: #A90D91">static</span> <span style="color: #A90D91">os_stack_t</span> <span style="color: #000000">app_stack</span>[<span style="color: #000000">APP_STACK_SIZE</span>];
+</span>
+<span style="background-color: #ffffcc"><span style="color: #177500">/**</span>
+</span><span style="background-color: #ffffcc"><span style="color: #177500"> * Application task.</span>
+</span><span style="background-color: #ffffcc"><span style="color: #177500"> */</span>
+</span><span style="background-color: #ffffcc"><span style="color: #A90D91">static</span> <span style="color: #A90D91">void</span>
+</span><span style="background-color: #ffffcc"><span style="color: #000000">app_task_handler</span>(<span style="color: #A90D91">void</span> <span style="color: #000000">*arg</span>)
+</span><span style="background-color: #ffffcc">{
+</span><span style="background-color: #ffffcc">    <span style="color: #A90D91">struct</span> <span style="color: #000000">os_callout_func</span> <span style="color: #000000">*cf</span>;
+</span><span style="background-color: #ffffcc">    <span style="color: #A90D91">struct</span> <span style="color: #000000">os_event</span> <span style="color: #000000">*ev</span>;
+</span><span style="background-color: #ffffcc">    <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
+</span>
+<span style="background-color: #ffffcc">    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_hs_start</span>();
+</span><span style="background-color: #ffffcc">    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+</span>
+<span style="background-color: #ffffcc">    <span style="color: #A90D91">while</span> (<span style="color: #1C01CE">1</span>) {
+</span><span style="background-color: #ffffcc">        <span style="color: #000000">ev</span> <span style="color: #000000">=</span> <span style="color: #000000">os_eventq_get</span>(<span style="color: #000000">&amp;app_evq</span>);
+</span><span style="background-color: #ffffcc">        <span style="color: #A90D91">switch</span> (<span style="color: #000000">ev-&gt;ev_type</span>) {
+</span><span style="background-color: #ffffcc">        <span style="color: #A90D91">case</span> <span style="color: #000000">OS_EVENT_T_TIMER</span>:
+</span><span style="background-color: #ffffcc">            <span style="color: #000000">cf</span> <span style="color: #000000">=</span> (<span style="color: #A90D91">struct</span> <span style="color: #000000">os_callout_func</span> <span style="color: #000000">*</span>)<span style="color: #000000">ev</span>;
+</span><span style="background-color: #ffffcc">            <span style="color: #000000">assert</span>(<span style="color: #000000">cf-&gt;cf_func</span>);
+</span><span style="background-color: #ffffcc">            <span style="color: #000000">cf-&gt;cf_func</span>(<span style="color: #000000">cf-&gt;cf_arg</span>);
+</span><span style="background-color: #ffffcc">            <span style="color: #A90D91">break</span>;
+</span><span style="background-color: #ffffcc">        <span style="color: #A90D91">default</span><span style="color: #000000">:</span>
+</span><span style="background-color: #ffffcc">            <span style="color: #000000">assert</span>(<span style="color: #1C01CE">0</span>);
+</span><span style="background-color: #ffffcc">            <span style="color: #A90D91">break</span>;
+</span><span style="background-color: #ffffcc">        }
+</span><span style="background-color: #ffffcc">    }
+</span><span style="background-color: #ffffcc">}
+</span>
+<span style="color: #A90D91">int</span>
+<span style="color: #000000">main</span>(<span style="color: #A90D91">void</span>)
+{
+    <span style="color: #A90D91">int</span> <span style="color: #000000">rc</span>;
+
+    <span style="color: #177500">/* Initialize OS */</span>
+    <span style="color: #000000">os_init</span>();
+
+    <span style="color: #177500">/* Set cputime to count at 1 usec increments */</span>
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">cputime_init</span>(<span style="color: #1C01CE">1000000</span>);
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+    <span style="color: #177500">/* Create memory pool for Nimble packets and register with Msys */</span>
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">os_mempool_init</span>(<span style="color: #000000">&amp;g_mbuf_mempool</span>, <span style="color: #000000">MBUF_NUM_MBUFS</span>,
+            <span style="color: #000000">MBUF_MEMBLOCK_SIZE</span>, <span style="color: #000000">&amp;g_mbuf_buffer</span>[<span style="color: #1C01CE">0</span>], <span style="color: #C41A16">&quot;mbuf_pool&quot;</span>);
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">os_mbuf_pool_init</span>(<span style="color: #000000">&amp;g_mbuf_pool</span>, <span style="color: #000000">&amp;g_mbuf_mempool</span>, <span style="color: #000000">MBUF_MEMBLOCK_SIZE</span>,
+                           <span style="color: #000000">MBUF_NUM_MBUFS</span>);
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">os_msys_register</span>(<span style="color: #000000">&amp;g_mbuf_pool</span>);
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+    <span style="color: #177500">/* Initialize our device address */</span>
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">0</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0x33</span>;
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">1</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0x22</span>;
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">2</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0x11</span>;
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">3</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0xcc</span>;
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">4</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0xbb</span>;
+    <span style="color: #000000">g_dev_addr</span>[<span style="color: #1C01CE">5</span>] <span style="color: #000000">=</span> <span style="color: #1C01CE">0x0a</span>;
+
+    <span style="color: #177500">/* Initialize the statistics package */</span>
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">stats_module_init</span>();
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+    <span style="color: #177500">/* Initialize the BLE LL */</span>
+    <span style="color: #000000">rc</span> <span style="color: #000000">=</span> <span style="color: #000000">ble_ll_init</span>(<span style="color: #1C01CE">0</span>, <span style="color: #1C01CE">7</span>, <span style="color: #1C01CE">260</span>);
+    <span style="color: #000000">assert</span>(<span style="color: #000000">rc</span> <span style="color: #000000">==</span> <span style="color: #1C01CE">0</span>);
+
+<span style="background-color: #ffffcc">    <span style="color: #177500">/* Initialize the application task. */</span>
+</span><span style="background-color: #ffffcc">    <span style="color: #000000">os_eventq_init</span>(<span style="color: #000000">&amp;app_evq</span>);
+</span><span style="background-color: #ffffcc">    <span style="color: #000000">os_task_init</span>(<span style="color: #000000">&amp;app_task</span>, <span style="color: #C41A16">&quot;app&quot;</span>, <span style="color: #000000">app_task_handler</span>, <span style="color: #A90D91">NULL</span>, <span style="color: #1C01CE">1</span>, <span style="color: #000000">OS_WAIT_FOREVER</span>,
+</span><span style="background-color: #ffffcc">                 <span style="color: #000000">app_stack</span>, <span style="color: #000000">APP_STACK_SIZE</span>);
+</span><span style="background-color: #ffffcc">
+</span>    <span style="color: #177500">/* Start the OS */</span>
+    <span style="color: #000000">os_start</span>();
+
+    <span style="color: #177500">/* os start should never return. If it does, this should be an error */</span>
+    <span style="color: #000000">assert</span>(<span style="color: #1C01CE">0</span>);
+}
+</pre></div>
+                        
+                        <div class="row">
+                            
+
+
+
+<ul class="nav nav-pills" style="margin-bottom: 10px">
+    <li>
+    
+    <a href=../ble_controller_ini/>
+        <span class="fa fa-arrow-left"></span>
+        Previous: Initialize controller
+    </a>
+    
+    </li>
+    <li class="pull-right">
+    
+    <a href=../ble_host_ini/>
+        Next: Initialize host
+        <span class="fa fa-arrow-right"></span>
+    </a>
+    
+    </li>
+</ul>
+                        </div>
+                        <div class="row">
+                            <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+                        </div>
+                    </div>
+                </div>
+            
+            
+        </div>
+
+        <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 src="../../../../js/base.js"></script>
+        <script src="../../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/network/ble/ini_stack/ble_statpkg/index.html
----------------------------------------------------------------------
diff --git a/network/ble/ini_stack/ble_statpkg/index.html b/network/ble/ini_stack/ble_statpkg/index.html
index c9dc84f..c489956 100644
--- a/network/ble/ini_stack/ble_statpkg/index.html
+++ b/network/ble/ini_stack/ble_statpkg/index.html
@@ -357,6 +357,16 @@
                 
   
     <li>
+      <a href="../ble_parent_ini/">Initialize parent task</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../ble_host_ini/">Initialize host</a>
     </li>
   

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/STM32F303/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/STM32F303/index.html b/os/tutorials/STM32F303/index.html
index 68302d1..368a1cf 100644
--- a/os/tutorials/STM32F303/index.html
+++ b/os/tutorials/STM32F303/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -620,7 +630,7 @@ targets/stmf3_boot
 
 
 <p><br></p>
-<h3 id="build-the-images">Build the images<a class="headerlink" href="#build-the-images" title="Permanent link">&para;</a></h3>
+<h3 id="build-the-target-executables">Build the target executables<a class="headerlink" href="#build-the-target-executables" title="Permanent link">&para;</a></h3>
 <p>To build the images, use the <code>newt build</code> command below.</p>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt build stmf3_blinky
    ...
@@ -637,7 +647,7 @@ App successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf
 
 
 <p><br></p>
-<h3 id="create-an-application-image-from-the-binary">Create an application image from the binary<a class="headerlink" href="#create-an-application-image-from-the-binary" title="Permanent link">&para;</a></h3>
+<h3 id="sign-and-create-the-blinky-application-image">Sign and create the blinky application image<a class="headerlink" href="#sign-and-create-the-blinky-application-image" title="Permanent link">&para;</a></h3>
 <p>You must sign and version your application image to download it using newt.  Use
 the <code>newt create-image</code> command to perform this action. Here we assign this
 image an arbitrary version <code>1.2.3</code>.</p>
@@ -663,9 +673,10 @@ $ newt -v load stmf3_blinky
 
 <p><br></p>
 <h3 id="watch-the-led-blink">Watch the LED blink<a class="headerlink" href="#watch-the-led-blink" title="Permanent link">&para;</a></h3>
-<p>Congratulations! You have built, downloaded, and run your first application using mynewt for the
-stf32f3 discovery board. One of the LEDs on the LED wheel should be blinking 
-at 1 Hz.</p>
+<p>Congratulations! You have built, downloaded, and run your first application using mynewt for the stm32f3 discovery board. One of the LEDs on the LED wheel should be blinking at 1 Hz.</p>
+<p>We have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like <a href="../nRF52/">tutorials</a> or try enabling additional functionality such as <a href="../project-target-slinky/">remote comms</a> on the current board.</p>
+<p>If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our <a href="../../../community/">Community Page</a>.</p>
+<p>Keep on hacking and blinking!</p>
                         
                         <div class="row">
                             

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/add_repos/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/add_repos/index.html b/os/tutorials/add_repos/index.html
index 6cfc554..4cc331e 100644
--- a/os/tutorials/add_repos/index.html
+++ b/os/tutorials/add_repos/index.html
@@ -273,6 +273,16 @@
               
                 
   
+    <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
     <li class="active">
       Add repo to project
     </li>
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -760,9 +770,9 @@ should give you all the information to add it to your <code>project.yml</code> f
 <ul class="nav nav-pills" style="margin-bottom: 10px">
     <li>
     
-    <a href=../nRF52/>
+    <a href=../blinky_sram_olimex/>
         <span class="fa fa-arrow-left"></span>
-        Previous: Blinky on nRF52
+        Previous: Run Blinky from SRAM, no bootloader
     </a>
     
     </li>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/air_quality_sensor/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/air_quality_sensor/index.html b/os/tutorials/air_quality_sensor/index.html
index 1682034..e1b9049 100644
--- a/os/tutorials/air_quality_sensor/index.html
+++ b/os/tutorials/air_quality_sensor/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/arduino_zero/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/arduino_zero/index.html b/os/tutorials/arduino_zero/index.html
index 8e405a4..2be2df4 100644
--- a/os/tutorials/arduino_zero/index.html
+++ b/os/tutorials/arduino_zero/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -750,6 +760,9 @@ debugger and restart the board.  The image you programmed will come and run on t
 <h3 id="watch-the-led-blink">Watch the LED blink<a class="headerlink" href="#watch-the-led-blink" title="Permanent link">&para;</a></h3>
 <p>Congratulations! You have created a Mynewt operating system running on the 
 Arduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.   </p>
+<p>We have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like <a href="../nRF52/">tutorials</a> or try enabling additional functionality such as <a href="../project-target-slinky/">remote comms</a> on the current board.</p>
+<p>If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our <a href="../../../community/">Community Page</a>.</p>
+<p>Keep on hacking and blinking!</p>
                         
                         <div class="row">
                             

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/bletiny_project/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/bletiny_project/index.html b/os/tutorials/bletiny_project/index.html
index d852d68..34f3e9e 100644
--- a/os/tutorials/bletiny_project/index.html
+++ b/os/tutorials/bletiny_project/index.html
@@ -9,7 +9,7 @@
         <link rel="canonical" href="http://mynewt.apache.org/os/tutorials/bletiny_project/">
         <link rel="shortcut icon" href="../../../img/favicon.ico">
 
-	<title>BLE commands via console - Apache Mynewt</title>
+	<title>Use BLE app to check stats via console - Apache Mynewt</title>
 
         <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
         <link href="../../../css/font-awesome-4.0.3.css" rel="stylesheet">
@@ -40,7 +40,7 @@
     </head>
 
 
-    <body class="BLE commands via console">
+    <body class="Use BLE app to check stats via console">
 
 
         <div id="navbar" class="navbar navbar-default navbar-fixed-top" role="navigation">
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li class="active">
-      BLE commands via console
+      Use BLE app to check stats via console
     </li>
   
 
@@ -493,7 +503,7 @@
         
       
       
-        <li>&raquo; BLE commands via console</li>
+        <li>&raquo; Use BLE app to check stats via console</li>
       
     
     

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/blinky_sram_olimex/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/blinky_sram_olimex/index.html b/os/tutorials/blinky_sram_olimex/index.html
new file mode 100644
index 0000000..e656517
--- /dev/null
+++ b/os/tutorials/blinky_sram_olimex/index.html
@@ -0,0 +1,728 @@
+<!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="canonical" href="http://mynewt.apache.org/os/tutorials/blinky_sram_olimex/">
+        <link rel="shortcut icon" href="../../../img/favicon.ico">
+
+	<title>Run Blinky from SRAM, no bootloader - Apache Mynewt</title>
+
+        <link href="../../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
+        <link href="../../../css/font-awesome-4.0.3.css" rel="stylesheet">
+        <link rel="stylesheet" href="../../../css/highlight.css">
+        <link href="../../../css/base.css" rel="stylesheet">
+        <link href="../../../css/custom.css" rel="stylesheet">
+        <link href='https://fonts.googleapis.com/css?family=Roboto:400,500,700,900,300,100' rel='stylesheet' type='text/css'>
+        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
+        <link href="../../../extra.css" rel="stylesheet">
+
+        <!-- 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]-->
+
+        
+            <script>
+                (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+                (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+                m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+                })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+                ga('create', 'UA-72162311-1', 'mynewt.incubator.apache.org');
+                ga('send', 'pageview');
+            </script>
+        
+    </head>
+
+
+    <body class="Run Blinky from SRAM, no bootloader">
+
+
+        <div id="navbar" class="navbar navbar-default navbar-fixed-top" role="navigation">
+    <div class="logo-container">
+        <img src="/img/logo.svg">
+    </div>
+    <div class="container-fluid">
+        <!-- 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>
+
+        </div>
+
+        <!-- Expanded navigation -->
+        <div class="navbar-collapse collapse">
+            <!-- Main navigation -->
+            <ul class="nav navbar-nav navbar-right">
+                <li>
+                    <a href="/">Home</a>
+                </li>
+                <li>
+                    <a href="/about/">About</a>
+                </li>
+                <li class="dropdown">
+                    <a href="/documentation/" class="dropdown-toggle" data-toggle="dropdown">Docs <b class="caret"></b></a>
+                    <ul class="dropdown-menu">
+                        
+                        
+                        
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../documentation/">
+                                Overview
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        
+                        <li class="active">
+                            <a href="../../get_started/introduction/">
+                                Mynewt OS Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../newt/newt_intro/">
+                                Newt Tool Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../../../newtmgr/overview/">
+                                Newt Manager Manual
+                            </a>
+                        </li>
+                        
+                        
+                        
+                        <li >
+                            <a href="../how_to_edit_docs/">
+                                Appendix
+                            </a>
+                        </li>
+                        
+                        
+                    </ul>
+                </li>
+                <li>
+                    <a href="/download/">Download</a>
+                </li>
+                <li>
+                    <a href="/community/">Community</a>
+                </li>
+                <li>
+                    <a href="/events/">Events</a>
+                </li>
+            </ul>
+
+            <!-- Search, Navigation and Repo links -->
+            <ul class="nav navbar-nav navbar-right">
+                
+            </ul>
+        </div>
+    </div>
+</div>
+
+        
+
+        <div class="container-fluid">
+            
+                <div class="row sm-extra-padding">
+                    <div id="docSidebar" class="col-md-3 bg-grey sidebar-container"><div class="bs-sidebar hidden-print" role="complementary">
+    <div class="sidebar-top">
+        <img class="hidden-xs hidden-sm logo-small" src="/img/logo.svg" alt="MyNewt" title="MyNewt">
+        <div class="small" role="search">
+            <form id ="rtd-search-form" class="wy-form" action="../../../search.html" method="get">
+                <div class="form-group">
+                    <input type="text" name="q" placeholder="Search documentation" />
+                    <button class="search-button" type="submit"><i class="fa fa-search"></i></button>
+                </div>
+            </form>
+        </div>
+    </div>
+    <ul class="nav bs-sidenav">
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../get_started/introduction/
+">Mynewt OS Manual</a>
+  
+    
+      <ul class="current-toc">
+          
+              
+                
+  
+    <li>
+      <a href="../../get_started/introduction/">Introduction</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../get_started/get_started/">Quick Start</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../get_started/vocabulary/">Concepts</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../tutorials/">Tutorials</a></li>
+  
+    
+      <ul class="current-toc">
+          
+              
+          
+              
+                
+  
+    <li>
+      <a href="../arduino_zero/">Blinky on Arduino Zero</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../olimex/">Blinky on Olimex</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../STM32F303/">Blinky on STM32F303</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../nRF52/">Blinky on nRF52</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li class="active">
+      Run Blinky from SRAM, no bootloader
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../add_repos/">Add repo to project</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../create_repo/">Create a repo</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../upgrade_repo/">Upgrade a repo</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../project-slinky/">Enable remote comms on sim device</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../project-target-slinky/">Enable remote comms on STM32 board</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../unit_test/">Write a Test Suite for a Package</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../air_quality_sensor/">Air-quality Sensor project</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
+      <a href="../event_queue/">Add task to manage multiple events</a>
+    </li>
+  
+
+              
+          
+      </ul>
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li ><a href="../../os_user_guide/">OS User Guide</a></li>
+  
+    
+  </li>
+
+              
+          
+              
+                
+  
+  
+    <li><a href="
+  ../../../network/ble/ble_intro/
+">BLE User Guide</a>
+  
+    
+  </li>
+
+              
+          
+      </ul>
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../newt/newt_intro/
+">Newt Tool Manual</a>
+  
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../../../newtmgr/overview/
+">Newt Manager Manual</a>
+  
+    
+  </li>
+
+        
+      
+        
+          
+  
+  
+    <li><a href="
+  ../how_to_edit_docs/
+">Appendix</a>
+  
+    
+  </li>
+
+        
+      
+    </ul>
+</div></div>
+
+                    <div class="show-sidebar-container">
+                        <button class="show-sidebar">Docs Menu</button>
+                    </div>
+
+                    <div class="col-md-offset-3 col-md-9 documentation-viewer" role="main">
+                        <div class="row doc-header">
+                            <div class="col-sm-6">
+                                
+<ul class="nav nav-pills">
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    <li class="active" role="presentation"><a href="../../get_started/introduction/">Mynewt OS</a></li>
+    
+    
+    
+    <li  role="presentation"><a href="../../../newt/newt_intro/">Newt Tool</a></li>
+    
+    
+    
+    <li  role="presentation"><a href="../../../newtmgr/overview/">Newt Mgr</a></li>
+    
+    
+    
+    
+</ul>
+                            </div>
+                            <div class="col-sm-6">
+                                <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="/documentation/">Docs</a></li>
+    
+    
+        
+          <li>&raquo; <a href="../../get_started/introduction/">Mynewt OS Manual</a></li>
+        
+      
+        
+          <li>&raquo; <a href="../tutorials/">Tutorials</a></li>
+        
+      
+      
+        <li>&raquo; Run Blinky from SRAM, no bootloader</li>
+      
+    
+    
+  </ul>
+</div>
+                            </div>
+                        </div>
+                        
+                            <h2 id="run-blinky-from-sram-without-bootloader">Run Blinky from SRAM without bootloader<a class="headerlink" href="#run-blinky-from-sram-without-bootloader" title="Permanent link">&para;</a></h2>
+<h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
+<p>To download an application image directly into the embedded SRAM in the microcontroller and run it without the bootloader. This tutorial describes how you do it on an Olimex STM32 board.</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. You can order it from <a href="http://www.mouser.com/ProductDetail/Olimex-Ltd/STM32-E407/?qs=UN6GZl1KCcit6Ye0xmPO4A%3D%3D">http://www.mouser.com</a>, <a href="http://www.digikey.com/product-detail/en/STM32-E407/1188-1093-ND/3726951">http://www.digikey.com</a>, and other places.</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 with Mac OS (Mac: OS X Yosemite Version 10.10.5) or Linux box (Ubuntu 14.10: Utopic Unicorn)</li>
+<li>An account on Github repository and <em>git</em> installed on your computer.</li>
+<li>It is assumed you have already installed newt tool. </li>
+<li>It is assumed you already installed native tools as described <a href="../../get_started/native_tools/">here</a></li>
+</ol>
+<p>Also, we assume that you're familiar with UNIX shells. Let's gets started!</p>
+<p><br></p>
+<h3 id="prepare-the-software">Prepare the Software<a class="headerlink" href="#prepare-the-software" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Make sure the PATH environment variable includes the $HOME/dev/go/bin directory. </li>
+</ul>
+<p><br></p>
+<h3 id="create-a-project">Create a project<a class="headerlink" href="#create-a-project" title="Permanent link">&para;</a></h3>
+<p>Create a new project to hold your work.  For a deeper understanding, you can read about project creation in 
+<a href="../../get_started/project_create/">Get Started -- Creating Your First Project</a>
+or just follow the commands below.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ mkdir ~/dev
+    $ cd ~/dev
+    $ newt new myproj
+    Downloading project skeleton from apache/incubator-mynewt-blinky...
+    Installing skeleton in myproj...
+    Project myproj successfully created.
+
+    $cd myproj
+
+    $ newt install -v 
+    apache-mynewt-core
+    Downloading repository description for apache-mynewt-core... success!
+    ...
+    apache-mynewt-core successfully installed version 0.7.9-none
+</pre></div>
+
+
+<p><br></p>
+<h3 id="create-a-target">Create a target<a class="headerlink" href="#create-a-target" title="Permanent link">&para;</a></h3>
+<p>Change directory to ~/dev/myproj directory and define the <em>blinky</em> target inside myproj, using the <em>newt</em> tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support package (bsp), and app.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt target create blinky
+    $ newt target set blinky build_profile=debug
+    $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
+    $ newt target set blinky app=apps/blinky
+    $ newt target show blinky
+    targets/blinky
+        app=apps/blinky
+        bsp=hw/bsp/olimex_stm32-e407_devboard
+        build_profile=debug
+</pre></div>
+
+
+<p><br></p>
+<h3 id="build-the-image">Build the image<a class="headerlink" href="#build-the-image" title="Permanent link">&para;</a></h3>
+<p>Next, let's build the image for the above target. By default, the linker script within the <code>hw/bsp/olimex_stm32-e407_devboard</code> package builds an image for flash memory, which we don't want; instead, we want an image for the SRAM, so you need to switch that script with <code>run_from_sram.ld</code>. </p>
+<p>Afer you build the target, you can find the executable <em>blinky.elf</em> in the project directory <em>~/dev/myproj/bin/blinky/apps/blinky/.</em> </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/
+    $ diff olimex_stm32-e407_devboard.ld run_from_sram.ld
+    (some diff will be displayed)
+    $ cp run_from_sram.ld olimex_stm32-e407_devboard.ld
+    $ cd ~/dev/myproj
+    $ newt build blinky
+    Compiling case.c
+    Compiling suite.c
+    ...
+    Linking blinky.elf
+    App successfully built:~/dev/myproj/bin/blinky/apps/blinky/blinky.elf
+    $ ls ~/dev/myproj/bin/blinky/apps/blinky/
+        blinky.elf      blinky.elf.bin     blinky.elf.cmd  
+        blinky.elf.lst  blinky.elf.map
+</pre></div>
+
+
+<p><br></p>
+<h3 id="prepare-the-hardware-to-boot-from-embedded-sram">Prepare the hardware to boot from embedded SRAM<a class="headerlink" href="#prepare-the-hardware-to-boot-from-embedded-sram" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Locate the boot jumpers on the board.</li>
+</ul>
+<p><br></p>
+<p><img alt="Alt Layout - Top View" src="../pics/topview.png" />
+<img alt="Alt Layout - Bottom View" src="../pics/bottomview.png" /></p>
+<p><br></p>
+<ul>
+<li>
+<p>B1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always be accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. 
+To locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from SRAM by jumpering <strong>B0_1</strong> and <strong>B1_1</strong>.</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>The red PWR LED should be lit. </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>
+</ul>
+<p><br></p>
+<h3 id="lets-go">Let's Go!<a class="headerlink" href="#lets-go" title="Permanent link">&para;</a></h3>
+<ul>
+<li>Ensure that you are in the blinky project directory with the <em>blinky.elf</em> executable. Run the debug command in the <em>newt</em> tool. You'll see some status messages as shown below. In case you need to halt the debugging session, you can issue an <code>-c "reset halt"</code> command.</li>
+</ul>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    $ newt debug blinky
+    Debugging with ~/dev/core/hw/bsp/olimex_...
+    Debugging ~/dev/core/project/blinky/bin/blinky/blinky.elf
+    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 &lt;http://gnu.org/licenses/gpl.html&gt;
+    ...
+    (info)
+    ...
+    target state: halted
+    target halted due to debug-request, current mode: Thread 
+    xPSR: 0x01000000 pc: 0x080003c0 msp: 0x10010000
+    Info : accepting &#39;gdb&#39; connection on tcp/3333
+    Info : device id = 0x10036413
+    Info : flash size = 1024kbytes
+</pre></div>
+
+
+<p><br></p>
+<p>Check the value of the msp (main service pointer) register. If it is not 0x10010000 as indicated above, you will have to manually set it after you open the gdb tool and load the image on it. For example, </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    (gdb) set $msp=0x10010000
+</pre></div>
+
+
+<p><br></p>
+<p>Now load the image and type "c" or "continue" from the GNU debugger. </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">    (gdb) load ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf   
+    Loading section .text, size 0x16b88 lma 0x20000000
+    Loading section .ARM.exidx, size 0x18 lma 0x20016b88
+    Loading section .data, size 0x9ec lma 0x20016ba0
+    Start address 0x200004b8, load size 95628
+    Transfer rate: 74 KB/sec, 3825 bytes/write.
+    (gdb) c
+    Continuing.
+</pre></div>
+
+
+<ul>
+<li>VoilĂ ! The board's LED should be blinking at 1 Hz. Success!</li>
+</ul>
+<p><br></p>
+                        
+                        <div class="row">
+                            
+
+
+
+<ul class="nav nav-pills" style="margin-bottom: 10px">
+    <li>
+    
+    <a href=../nRF52/>
+        <span class="fa fa-arrow-left"></span>
+        Previous: Blinky on nRF52
+    </a>
+    
+    </li>
+    <li class="pull-right">
+    
+    <a href=../add_repos/>
+        Next: Add repo to project
+        <span class="fa fa-arrow-right"></span>
+    </a>
+    
+    </li>
+</ul>
+                        </div>
+                        <div class="row">
+                            <footer>
+    <div class="row">
+        <div class="col-md-12">
+            
+                <p class="copyright">Copyright &copy; 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.<br>The Apache Software Foundation Apache Incubator</p>
+            
+        </div>
+    </div>
+    <div class="copyright-logos">
+        <div class="row">
+            <div class="col-xs-6 text-right">
+                <img src="/img/apache-feather.png" alt="Apache" title="Apache">
+            </div>
+            <div class="col-xs-6 text-left">
+                <img src="/img/apache-logo.png" alt="Apache Incubator" title="Apache Incubator">
+            </div>
+        </div>
+    </div>
+    <div class="row">
+        <div class="col-md-12">
+            <small class="footnote">
+                MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+            </small>
+        </div>
+    </div>
+</footer>
+                        </div>
+                    </div>
+                </div>
+            
+            
+        </div>
+
+        <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 src="../../../js/base.js"></script>
+        <script src="../../../js/custom.js"></script>
+
+    </body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/create_repo/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/create_repo/index.html b/os/tutorials/create_repo/index.html
index 724135a..f938329 100644
--- a/os/tutorials/create_repo/index.html
+++ b/os/tutorials/create_repo/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/event_queue/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/event_queue/index.html b/os/tutorials/event_queue/index.html
index 9736092..ee707dc 100644
--- a/os/tutorials/event_queue/index.html
+++ b/os/tutorials/event_queue/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/os/tutorials/nRF52/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/nRF52/index.html b/os/tutorials/nRF52/index.html
index 1d711ee..3cfa900 100644
--- a/os/tutorials/nRF52/index.html
+++ b/os/tutorials/nRF52/index.html
@@ -274,6 +274,16 @@
                 
   
     <li>
+      <a href="../blinky_sram_olimex/">Run Blinky from SRAM, no bootloader</a>
+    </li>
+  
+
+              
+          
+              
+                
+  
+    <li>
       <a href="../add_repos/">Add repo to project</a>
     </li>
   
@@ -304,7 +314,7 @@
                 
   
     <li>
-      <a href="../bletiny_project/">BLE commands via console</a>
+      <a href="../bletiny_project/">Use BLE app to check stats via console</a>
     </li>
   
 
@@ -507,16 +517,25 @@
 <h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
 <p>Learn how to use packages from a default application repository of Mynewt to build your first <em>Hello World</em> application (Blinky) on a target board. Once built using the <em>newt</em> tool, this application will blink the LED lights on the target board.</p>
 <p>Create a project with a simple app that blinks an LED on the nRF52 board from Nordic Semiconductors.  Download the application to the target and watch it blink!</p>
-<h4 id="hardware-needed">Hardware needed<a class="headerlink" href="#hardware-needed" title="Permanent link">&para;</a></h4>
+<p>Note that there are several versions of the nRF52 in the market. The boards tested with this tutorial are listed under "Hardware needed" below.</p>
+<p><br></p>
+<h3 id="hardware-needed">Hardware needed<a class="headerlink" href="#hardware-needed" title="Permanent link">&para;</a></h3>
 <ul>
-<li>nRF52 Development Kit</li>
+<li>nRF52 Development Kit (one of the following)<ul>
+<li>Preview Kit from Nordic - PCA 10036</li>
+<li>Dev Kit from Nordic - PCA 10040</li>
+<li>Eval Kit from Rigado - BMD-300-EVAL-ES</li>
+</ul>
+</li>
 <li>Laptop running Mac OS</li>
 <li>It is assumed you have already installed newt tool. </li>
 <li>It is assumed you already installed native tools as described <a href="../../get_started/native_tools/">here</a></li>
 </ul>
-<h4 id="install-jlinkexe">Install jlinkEXE<a class="headerlink" href="#install-jlinkexe" title="Permanent link">&para;</a></h4>
+<p><br></p>
+<h3 id="install-jlinkexe">Install jlinkEXE<a class="headerlink" href="#install-jlinkexe" title="Permanent link">&para;</a></h3>
 <p>In order to be able to communicate with the SEGGER J-Link debugger on the dev board, you have to download and install the J-Link GDB Server software on to your laptop. You may download the "Software and documentation pack for Mac OS X" from <a href="https://www.segger.com/jlink-software.html">https://www.segger.com/jlink-software.html</a>. </p>
-<h4 id="create-a-project">Create a project.<a class="headerlink" href="#create-a-project" title="Permanent link">&para;</a></h4>
+<p><br></p>
+<h3 id="create-a-project">Create a project.<a class="headerlink" href="#create-a-project" title="Permanent link">&para;</a></h3>
 <p>Create a new project to hold your work.  For a deeper understanding, you can read about project creation in 
 <a href="../../get_started/project_create/">Get Started -- Creating Your First Project</a>
 or just follow the commands below.</p>
@@ -537,23 +556,49 @@ or just follow the commands below.</p>
 </pre></div>
 
 
-<h4 id="create-the-target">Create the target<a class="headerlink" href="#create-the-target" title="Permanent link">&para;</a></h4>
-<p>Create a single target for the nrf52.  NOTE: The nrf52 mynewt core does not
-yet have bootloader support, so we will create a single image to download
-to the device.</p>
+<p><br></p>
+<h3 id="create-the-targets">Create the targets<a class="headerlink" href="#create-the-targets" title="Permanent link">&para;</a></h3>
+<p>Create two targets - one for the bootloader and one for the nrf52 board.  </p>
+<p><font color="#F2853F">
+Note: The correct bsp must be chosen for the board you are using. </font></p>
+<ul>
+<li>For the Nordic Preview Dev Kit choose @apache-mynewt-core/hw/bsp/nrf52pdk (as shown below)</li>
+<li>For the Nordic Dev Kit choose @apache-mynewt-core/hw/bsp/nrf52dk instead (in the highlighted lines)</li>
+<li>For the Rigado Eval Kit choose @apache-mynewt-core/hw/bsp/bmd300eval instead (in the highlighted lines)</li>
+</ul>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt target create blink_nordic
 $ newt target set blink_nordic app=apps/blinky
-$ newt target set blink_nordic bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
-$ newt target set blink_nordic build_profile=debug
+<span style="background-color: #ffffcc">$ newt target set blink_nordic bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+</span>$ newt target set blink_nordic build_profile=debug
+
+$ newt target create nrf52_boot
+$ newt target set nrf52_boot app=@apache-mynewt-core/apps/boot
+<span style="background-color: #ffffcc">$ newt target set nrf52_boot bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+</span>$ newt target set nrf52_boot build_profile=optimized
+
 $ newt target show 
 targets/blink_nordic
     app=apps/blinky
     bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
     build_profile=debug
+targets/nrf52_boot
+    app=@apache-mynewt-core/apps/boot
+    bsp=@apache-mynewt-core/hw/bsp/nrf52pdk
+    build_profile=optimized
+</pre></div>
+
+
+<p><br></p>
+<h3 id="build-the-target-executables">Build the target executables<a class="headerlink" href="#build-the-target-executables" title="Permanent link">&para;</a></h3>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt build nrf52_boot
+...
+Compiling log_shell.c
+Archiving log.a
+Linking boot.elf
+App successfully built: ~/dev/myproj/bin/nrf52_boot/apps/boot/boot.elf
 </pre></div>
 
 
-<h4 id="build-the-image">Build the image<a class="headerlink" href="#build-the-image" title="Permanent link">&para;</a></h4>
 <div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt build blink_nordic
 ...
 Compiling main.c
@@ -563,17 +608,59 @@ App successfully built: ~/dev/myproj/bin/blink_nordic/apps/blinky/blinky.elf
 </pre></div>
 
 
-<h4 id="connect-the-board">Connect the board<a class="headerlink" href="#connect-the-board" title="Permanent link">&para;</a></h4>
+<p><br></p>
+<h3 id="sign-and-create-the-blinky-application-image">Sign and create the blinky application image<a class="headerlink" href="#sign-and-create-the-blinky-application-image" title="Permanent link">&para;</a></h3>
+<p>You must sign and version your application image to download it using newt to the board. Use the newt create-image command to perform this action. You may assign an arbitrary version (e.g. 1.0.0) to the image.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt create-image blink_nordic 1.0.0
+App image succesfully generated: ~/dev/myproj/bin/blink_nordic/apps/blinky/blinky.img
+Build manifest: ~/dev/myproj/bin/blink_nordic/apps/blinky/manifest.json
+</pre></div>
+
+
+<p><br></p>
+<h3 id="connect-the-board">Connect the board<a class="headerlink" href="#connect-the-board" title="Permanent link">&para;</a></h3>
 <p>Connect the evaluation board via micro-USB to your PC via USB cable.</p>
-<h4 id="download-to-the-target">Download to the target<a class="headerlink" href="#download-to-the-target" title="Permanent link">&para;</a></h4>
-<p>Download the executable to the target platform.</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt -v load blink_nordic
+<p><br></p>
+<h3 id="download-to-the-target">Download to the target<a class="headerlink" href="#download-to-the-target" title="Permanent link">&para;</a></h3>
+<p>Download the bootloader first and then the blinky executable to the target platform. Don't forget to reset the board if you don't see the LED blinking right away!</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ newt -v load nrf52_boot
+$ newt -v load blink_nordic
+</pre></div>
+
+
+<p><br></p>
+<p><strong>Note:</strong> If you want to erase the flash and load the image again, you can use JLinkExe to issue an <code>erase</code> command.</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">$ JLinkExe -device nRF52 -speed 4000 -if SWD
+SEGGER J-Link Commander V5.12c (Compiled Apr 21 2016 16:05:51)
+DLL version V5.12c, compiled Apr 21 2016 16:05:45
+
+Connecting to J-Link via USB...O.K.
+Firmware: J-Link OB-SAM3U128-V2-NordicSemi compiled Mar 15 2016 18:03:17
+Hardware version: V1.00
+S/N: 682863966
+VTref = 3.300V
+
+
+Type &quot;connect&quot; to establish a target connection, &#39;?&#39; for help
+J-Link&gt;erase
+Cortex-M4 identified.
+Erasing device (0;?i?)...
+Comparing flash   [100%] Done.
+Erasing flash     [100%] Done.
+Verifying flash   [100%] Done.
+J-Link: Flash download: Total time needed: 0.363s (Prepare: 0.093s, Compare: 0.000s, Erase: 0.262s, Program: 0.000s, Verify: 0.000s, Restore: 0.008s)
+Erasing done.
+J-Link&gt;exit
+$
 </pre></div>
 
 
-<h4 id="congratulations">Congratulations<a class="headerlink" href="#congratulations" title="Permanent link">&para;</a></h4>
+<h3 id="conclusion">Conclusion<a class="headerlink" href="#conclusion" title="Permanent link">&para;</a></h3>
 <p>You have created, setup, compiled, loaded, and ran your first mynewt application
-for the nrf52 evaluation board.</p>
+for an nrf52 board.</p>
+<p>We have more fun tutorials for you to get your hands dirty. Be bold and work on the OS with tutorials on <a href="../unit_test/">writing a test suite</a> or try enabling additional functionality such as <a href="../project-target-slinky/">remote comms</a> or <a href="../bletiny_project/">Bluetooth Low Energy</a> on your current board.</p>
+<p>If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our <a href="../../../community/">Community Page</a>.</p>
+<p>Keep on hacking and blinking!</p>
                         
                         <div class="row">
                             
@@ -591,8 +678,8 @@ for the nrf52 evaluation board.</p>
     </li>
     <li class="pull-right">
     
-    <a href=../add_repos/>
-        Next: Add repo to project
+    <a href=../blinky_sram_olimex/>
+        Next: Run Blinky from SRAM, no bootloader
         <span class="fa fa-arrow-right"></span>
     </a>
     


[3/4] incubator-mynewt-site git commit: Add bootloader to blinky tutorials. Pull request #74 to add BLE host API docs.

Posted by ad...@apache.org.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/e5bb88f8/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json
index 6e56341..67760a0 100644
--- a/mkdocs/search_index.json
+++ b/mkdocs/search_index.json
@@ -312,7 +312,7 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/", 
-            "text": "Blinky, your \"Hello World!\", on Arduino Zero\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nThis tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!\n\n\nPrerequisites\n\n\nBefore tackling this tutorial, it's best to read about Mynewt in the \nIntroduction\n section of this documentation.\n\n\nEquipment\n\n\nYou will need the following equipment\n\n\n\n\nAn Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that \nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial\n\n\nA computer that can connect to the Arduino Zero over USB\n\n\nA USB cable (Type A to micro B) that can connect the computer to the Ardui
 no\n\n\nThe Mynewt Release\n\n\n\n\nThis tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.\n\n\n\n\n\n\n\n\nMynewt has not been tested on Arduino M0 which has no internal debugger support.\n\n\nInstall Mynewt and Newt\n\n\n\n\nIf you have not already done so, install Newt as shown in the \nNewt install tutorial\n\n\nIf you have not already done so, create a project as shown in the Quick Start guide on how to \nCreate Your First Project\n. Skip the testing and building the project steps in that tutorial since you will be defining a target for your Arduino board in this tutorial.\n\n\n\n\n\n\nFetch External Packages\n\n\nMynewt uses source code provided directly from the chip manufacturer for \nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's gith
 ub repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add \nthe repository to the \nproject.yml\n file in your base project directory.\n\n\nHere is an example \nproject.yml\n file with the Arduino Zero repository\nadded. The sections with \nmynewt_arduino_zero\n that need to be added to \nyour project file are highlighted.\n\n\n$ more project.yml \nproject.name: \nmy_project\n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_arduino_zero\n\n\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: apache\n    repo: incubator-mynewt-core\n\n\nrepository.mynewt_arduino_zero:\n\n    type: github\n\n    vers: 0-latest\n\n    user: runtimeinc\n\n    repo: mynewt_arduino_zero\n\n$ \n\n\n\n\n\n\n\nOnce you've edited your \nproject.yml\n file, the next step is to install the \nproject dependenci
 es, this can be done with the \nnewt install\n command \n(to see more output, provide the \n-v\n verbose option.): \n\n\n$ newt install \napache-mynewt-core\nmynewt_arduino_zero\n$\n\n\n\n\n\n\n\nCreate your bootloader target\n\n\nNext, you need to tell Newt what to build.  For the Arduino Zero, we are going to \ngenerate both a bootloader, and an image target.\n\n\nTo generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability. \n\n\n$ newt target create arduino_boot \n$ newt target set arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero \n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot \n$ newt target set arduino_boot build_profile=optimized\n\n\n\n\n\n\n\nIf you have an Arduino Zero Pro or M0 Pro, you have to set the following next:\n\n\n$ newt target set arduino_boot features=arduino_zero_pro \n\n\n\n\n\nIf you have an Arduino Zero, you have to set th
 e following instead:\n\n\n$ newt target set arduino_boot features=arduino_zero \n\n\n\n\n\n\n\nThese commands do a few things: \n\n\n\n\nCreate a target named \narduino_boot\n, in order to build the Arduino Zero Bootloader.\n\n\nSet the application for the \narduino_boot\n target to the default Apache Mynewt \n    bootloader (\n@apache-mynewt-core/apps/boot\n)\n\n\nSet the board support package for the target to \n    \n@mynewt_arduino_zero/hw/bsp/arduino_zero\n.  This is a reference to the downloaded \n    Arduino Zero support from Github.\n\n\nUse the \"optimized\" build profile for the \narduino_boot\n target.  This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.\n\n\nTells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to \narduino_zero\n or \narduino_zero_pro\n depending on the board you have.\n\n\n\n\n\n\nBuild your 
 bootloader\n\n\nOnce you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the \nnewt build\n command:\n\n\n$ newt build arduino_boot \nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c\n\nsnip\n\nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf\n\n\n\n\n\nIf this command finishes successfully, you have successfully built the Arduino \nbootloader, and the next step is to build your application for the Arduino \nboard.\n\n\n\n\nBuild your blinky app\n\n\nTo create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project, \napps/blinky\n:\n\n\nNote\n: Remember to set features to \narduino_zero\n if your board
  is Arduino Zero and not a Pro!\n\n\n$ newt target create arduino_blinky \nTarget targets/arduino_blinky successfully created\n$ newt target set arduino_blinky app=apps/blinky \nTarget targets/arduino_blinky successfully set target.app to apps/blinky\n$ newt target set arduino_blinky bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_blinky successfully set target.bsp to @mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_blinky build_profile=debug \nTarget targets/arduino_blinky successfully set target.build_profile to debug\n\n$ newt target set arduino_blinky features=arduino_zero_pro \n\nTarget targets/arduino_blinky successfully set pkg.features to arduino_zero_pro\n$ \n\n\n\n\n\n\n\nYou can now build the target, with \nnewt build\n: \n\n\n$ newt build arduino_blinky \nCompiling main.c\nArchiving blinky.a\nCompiling cons_fmt.c\nCompiling cons_tty.c\nArchiving full.a\nCompiling case.c\nCompiling suite.c\nCompiling testutil.c\nArchiving testutil.a
 \n\nsnip\n\nApp successfully built: myproject/bin/arduino_blinky/apps/blinky/blinky.elf\n\n\n\n\n\n Congratulations! \n You have successfully built your application. Now it's time to load both the bootloader and application onto the target.\n\n\n\n\nConnect the Target\n\n\nConnect your computer to the Arduino Zero (from now on we'll call this the \ntarget) with the Micro-USB cable through the Programming Port as shown below. \nMynewt will download and debug the target through this port. You should see a \nlittle green LED come on. That means the board has power.\n\n\nNo external debugger is required.  The Arduino Zero comes with an internal\ndebugger that can be accessed by Mynewt.\n\n\nA image below shows the Arduino Zero Programming Port.\n\n\n\n\n\n\n\n\nDownload the Bootloader\n\n\nExecute the command to download the bootloader. \n\n\n    \n$\n \nnewt\n \nload\n \narduino_boot\n\n\n\n\n\n\nIf the newt tool finishes without error, that means the bootloader has been \nsuccessfully
  loaded onto the target.\n\n\n\n\n Reminder if you are using Docker: \n When working with actual hardware, remember that each board has an ID. If you swap boards and do not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale and the Docker instance may not be able to see the board correctly. For example, you may see an error message like \nError: unable to find CMSIS-DAP device\n when you try to load or run an image on the board. In that case, you need to click on the USB link in VirtualBox UI, remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101]\") by clicking on the \"Removes selected USB filter\" button, and add a new filter by clicking on the \"Adds new USB filter\" button.\n\n\n\n\nRun the Image\n\n\nNow that the bootloader is downloaded to the target, the next step is to load \nyour image onto the Arduino Zero.  The easiest way to do this, is to use the \n\nnewt run\n command.  \nnewt run\n will automatically rebuild your program
 \n(if necessary), create an image, and load it onto the target device.\n\n\nHere, we will load our \narduino_blinky\n target onto the device, and we \nshould see it run:\n\n\n$ newt run arduino_blinky 0.0.0 \nDebugging myproject/bin/arduino_blinky/apps/blinky/blinky.elf\nOpen On-Chip Debugger 0.9.0 (2015-09-23-21:46)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.org/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect \nswd\n\nadapter speed: 500 kHz\nadapter_nsrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : CMSIS-DAP: SWD  Supported\nInfo : CMSIS-DAP: JTAG Supported\nInfo : CMSIS-DAP: Interface Initialised (SWD)\nInfo : CMSIS-DAP: FW Version = 01.1F.0118\nInfo : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1\nInfo : CMSIS-DAP: Interface ready\nInfo : clock speed 500 kHz\nInfo : SWD IDCODE 0x0bc11477\nInfo : at91samd21g18.cpu: hardware has 4 breakpoints, 2 watchpoints\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 \nshow copying\n\nand \nshow warranty\n for details.\nThis GDB was configured as \n--host=x86_64-apple-darwin10 --target=arm-none-eabi\n.\nType \nshow configuration\n 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 \nhelp\n.\nType \napropos word\n to search for commands related to \nword\n...\nReading symbols from myproject/bin/arduino_blinky/apps/blinky/blinky.elf...done.\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x21000000 pc: 0x0000030e msp: 0x20008000\nInfo : a
 ccepting \ngdb\n connection on tcp/3333\nInfo : SAMD MCU: SAMD21G18A (256KB Flash, 32KB RAM)\n0x0000030e in ?? ()\n(gdb) r\nThe \nremote\n target does not support \nrun\n.  Try \nhelp target\n or \ncontinue\n.\n(gdb) c\nContinuing.\n\n\n\n\n\n\n\nNOTE:\n The 0.0.0 specified after the target name to \nnewt run\n is the version \nof the image to load.  If you are not providing remote upgrade, and are just \ndeveloping locally, you can provide 0.0.0 for every image version.\n\n\nIf you want the image to run without the debugger connected, simply quit the \ndebugger and restart the board.  The image you programmed will come and run on the Arduino on next boot!  \n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have created a Mynewt operating system running on the \nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.", 
+            "text": "Blinky, your \"Hello World!\", on Arduino Zero\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nThis tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!\n\n\nPrerequisites\n\n\nBefore tackling this tutorial, it's best to read about Mynewt in the \nIntroduction\n section of this documentation.\n\n\nEquipment\n\n\nYou will need the following equipment\n\n\n\n\nAn Arduino Zero board.  NOTE: There are many flavors of Arduino. Ensure that \nyou have an Arduino Zero. See below for the versions of Arduino Zero that are\ncompatible with this tutorial\n\n\nA computer that can connect to the Arduino Zero over USB\n\n\nA USB cable (Type A to micro B) that can connect the computer to the Ardui
 no\n\n\nThe Mynewt Release\n\n\n\n\nThis tutorial has been tested on the following three Arduino Zero boards - Zero, M0 Pro, and Zero-Pro.\n\n\n\n\n\n\n\n\nMynewt has not been tested on Arduino M0 which has no internal debugger support.\n\n\nInstall Mynewt and Newt\n\n\n\n\nIf you have not already done so, install Newt as shown in the \nNewt install tutorial\n\n\nIf you have not already done so, create a project as shown in the Quick Start guide on how to \nCreate Your First Project\n. Skip the testing and building the project steps in that tutorial since you will be defining a target for your Arduino board in this tutorial.\n\n\n\n\n\n\nFetch External Packages\n\n\nMynewt uses source code provided directly from the chip manufacturer for \nlow level operations. Sometimes this code is licensed only for the specific manufacturer of the chipset and cannot live in the Apache Mynewt repository. That happens to be the case for the Arduino Zero board which uses Atmel SAMD21. Runtime's gith
 ub repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add \nthe repository to the \nproject.yml\n file in your base project directory.\n\n\nHere is an example \nproject.yml\n file with the Arduino Zero repository\nadded. The sections with \nmynewt_arduino_zero\n that need to be added to \nyour project file are highlighted.\n\n\n$ more project.yml \nproject.name: \nmy_project\n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_arduino_zero\n\n\nrepository.apache-mynewt-core:\n    type: github\n    vers: 0-latest\n    user: apache\n    repo: incubator-mynewt-core\n\n\nrepository.mynewt_arduino_zero:\n\n    type: github\n\n    vers: 0-latest\n\n    user: runtimeinc\n\n    repo: mynewt_arduino_zero\n\n$ \n\n\n\n\n\n\n\nOnce you've edited your \nproject.yml\n file, the next step is to install the \nproject dependenci
 es, this can be done with the \nnewt install\n command \n(to see more output, provide the \n-v\n verbose option.): \n\n\n$ newt install \napache-mynewt-core\nmynewt_arduino_zero\n$\n\n\n\n\n\n\n\nCreate your bootloader target\n\n\nNext, you need to tell Newt what to build.  For the Arduino Zero, we are going to \ngenerate both a bootloader, and an image target.\n\n\nTo generate the bootloader target, you need to specify the following options. The output of the commands (indicating success) have been suppressed for easier readability. \n\n\n$ newt target create arduino_boot \n$ newt target set arduino_boot bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero \n$ newt target set arduino_boot app=@apache-mynewt-core/apps/boot \n$ newt target set arduino_boot build_profile=optimized\n\n\n\n\n\n\n\nIf you have an Arduino Zero Pro or M0 Pro, you have to set the following next:\n\n\n$ newt target set arduino_boot features=arduino_zero_pro \n\n\n\n\n\nIf you have an Arduino Zero, you have to set th
 e following instead:\n\n\n$ newt target set arduino_boot features=arduino_zero \n\n\n\n\n\n\n\nThese commands do a few things: \n\n\n\n\nCreate a target named \narduino_boot\n, in order to build the Arduino Zero Bootloader.\n\n\nSet the application for the \narduino_boot\n target to the default Apache Mynewt \n    bootloader (\n@apache-mynewt-core/apps/boot\n)\n\n\nSet the board support package for the target to \n    \n@mynewt_arduino_zero/hw/bsp/arduino_zero\n.  This is a reference to the downloaded \n    Arduino Zero support from Github.\n\n\nUse the \"optimized\" build profile for the \narduino_boot\n target.  This\n    instructs Newt to generate smaller and more efficient code for this target.\n    This setting is necessary due to the bootloader's strict size constraints.\n\n\nTells the Board Support Package to enable support for the Arduino Zero Pro or the Arduino Zero. Set it to \narduino_zero\n or \narduino_zero_pro\n depending on the board you have.\n\n\n\n\n\n\nBuild your 
 bootloader\n\n\nOnce you've configured the bootloader target, the next step is to build the bootloader for your Arduino. You can do this by using the \nnewt build\n command:\n\n\n$ newt build arduino_boot \nCompiling asprintf.c\nCompiling atoi.c\nCompiling atol.c\nCompiling atoll.c\nCompiling bsearch.c\nCompiling bzero.c\nCompiling calloc.c\nCompiling fgets.c\nCompiling inline.c\n\nsnip\n\nApp successfully built: myproject/bin/arduino_boot/apps/boot/boot.elf\n\n\n\n\n\nIf this command finishes successfully, you have successfully built the Arduino \nbootloader, and the next step is to build your application for the Arduino \nboard.\n\n\n\n\nBuild your blinky app\n\n\nTo create and download your application, you create another target, this one pointing to the application you want to download to the Arduino board.  In this tutorial,  we will use the default application that comes with your project, \napps/blinky\n:\n\n\nNote\n: Remember to set features to \narduino_zero\n if your board
  is Arduino Zero and not a Pro!\n\n\n$ newt target create arduino_blinky \nTarget targets/arduino_blinky successfully created\n$ newt target set arduino_blinky app=apps/blinky \nTarget targets/arduino_blinky successfully set target.app to apps/blinky\n$ newt target set arduino_blinky bsp=@mynewt_arduino_zero/hw/bsp/arduino_zero\nTarget targets/arduino_blinky successfully set target.bsp to @mynewt_arduino_zero/hw/bsp/arduino_zero\n$ newt target set arduino_blinky build_profile=debug \nTarget targets/arduino_blinky successfully set target.build_profile to debug\n\n$ newt target set arduino_blinky features=arduino_zero_pro \n\nTarget targets/arduino_blinky successfully set pkg.features to arduino_zero_pro\n$ \n\n\n\n\n\n\n\nYou can now build the target, with \nnewt build\n: \n\n\n$ newt build arduino_blinky \nCompiling main.c\nArchiving blinky.a\nCompiling cons_fmt.c\nCompiling cons_tty.c\nArchiving full.a\nCompiling case.c\nCompiling suite.c\nCompiling testutil.c\nArchiving testutil.a
 \n\nsnip\n\nApp successfully built: myproject/bin/arduino_blinky/apps/blinky/blinky.elf\n\n\n\n\n\n Congratulations! \n You have successfully built your application. Now it's time to load both the bootloader and application onto the target.\n\n\n\n\nConnect the Target\n\n\nConnect your computer to the Arduino Zero (from now on we'll call this the \ntarget) with the Micro-USB cable through the Programming Port as shown below. \nMynewt will download and debug the target through this port. You should see a \nlittle green LED come on. That means the board has power.\n\n\nNo external debugger is required.  The Arduino Zero comes with an internal\ndebugger that can be accessed by Mynewt.\n\n\nA image below shows the Arduino Zero Programming Port.\n\n\n\n\n\n\n\n\nDownload the Bootloader\n\n\nExecute the command to download the bootloader. \n\n\n    \n$\n \nnewt\n \nload\n \narduino_boot\n\n\n\n\n\n\nIf the newt tool finishes without error, that means the bootloader has been \nsuccessfully
  loaded onto the target.\n\n\n\n\n Reminder if you are using Docker: \n When working with actual hardware, remember that each board has an ID. If you swap boards and do not refresh the USB Device Filter on the VirtualBox UI, the ID might be stale and the Docker instance may not be able to see the board correctly. For example, you may see an error message like \nError: unable to find CMSIS-DAP device\n when you try to load or run an image on the board. In that case, you need to click on the USB link in VirtualBox UI, remove the existing USB Device Filter (e.g. \"Atmel Corp. EDBG CMSIS-DAP[0101]\") by clicking on the \"Removes selected USB filter\" button, and add a new filter by clicking on the \"Adds new USB filter\" button.\n\n\n\n\nRun the Image\n\n\nNow that the bootloader is downloaded to the target, the next step is to load \nyour image onto the Arduino Zero.  The easiest way to do this, is to use the \n\nnewt run\n command.  \nnewt run\n will automatically rebuild your program
 \n(if necessary), create an image, and load it onto the target device.\n\n\nHere, we will load our \narduino_blinky\n target onto the device, and we \nshould see it run:\n\n\n$ newt run arduino_blinky 0.0.0 \nDebugging myproject/bin/arduino_blinky/apps/blinky/blinky.elf\nOpen On-Chip Debugger 0.9.0 (2015-09-23-21:46)\nLicensed under GNU GPL v2\nFor bug reports, read\n    http://openocd.org/doc/doxygen/bugs.html\nInfo : only one transport option; autoselect \nswd\n\nadapter speed: 500 kHz\nadapter_nsrst_delay: 100\ncortex_m reset_config sysresetreq\nInfo : CMSIS-DAP: SWD  Supported\nInfo : CMSIS-DAP: JTAG Supported\nInfo : CMSIS-DAP: Interface Initialised (SWD)\nInfo : CMSIS-DAP: FW Version = 01.1F.0118\nInfo : SWCLK/TCK = 1 SWDIO/TMS = 1 TDI = 1 TDO = 1 nTRST = 0 nRESET = 1\nInfo : CMSIS-DAP: Interface ready\nInfo : clock speed 500 kHz\nInfo : SWD IDCODE 0x0bc11477\nInfo : at91samd21g18.cpu: hardware has 4 breakpoints, 2 watchpoints\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 \nshow copying\n\nand \nshow warranty\n for details.\nThis GDB was configured as \n--host=x86_64-apple-darwin10 --target=arm-none-eabi\n.\nType \nshow configuration\n 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 \nhelp\n.\nType \napropos word\n to search for commands related to \nword\n...\nReading symbols from myproject/bin/arduino_blinky/apps/blinky/blinky.elf...done.\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x21000000 pc: 0x0000030e msp: 0x20008000\nInfo : a
 ccepting \ngdb\n connection on tcp/3333\nInfo : SAMD MCU: SAMD21G18A (256KB Flash, 32KB RAM)\n0x0000030e in ?? ()\n(gdb) r\nThe \nremote\n target does not support \nrun\n.  Try \nhelp target\n or \ncontinue\n.\n(gdb) c\nContinuing.\n\n\n\n\n\n\n\nNOTE:\n The 0.0.0 specified after the target name to \nnewt run\n is the version \nof the image to load.  If you are not providing remote upgrade, and are just \ndeveloping locally, you can provide 0.0.0 for every image version.\n\n\nIf you want the image to run without the debugger connected, simply quit the \ndebugger and restart the board.  The image you programmed will come and run on the Arduino on next boot!  \n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have created a Mynewt operating system running on the \nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.   \n\n\nWe have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-
 like \ntutorials\n or try enabling additional functionality such as \nremote comms\n on the current board.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n.\n\n\nKeep on hacking and blinking!", 
             "title": "Blinky on Arduino Zero"
         }, 
         {
@@ -372,12 +372,12 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#watch-the-led-blink", 
-            "text": "Congratulations! You have created a Mynewt operating system running on the \nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.", 
+            "text": "Congratulations! You have created a Mynewt operating system running on the \nArduino Zero. The LED right next to the power LED should be blinking. It is toggled by one task running on the Mynewt OS.     We have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like  tutorials  or try enabling additional functionality such as  remote comms  on the current board.  If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our  Community Page .  Keep on hacking and blinking!", 
             "title": "Watch the LED blink"
         }, 
         {
             "location": "/os/tutorials/olimex/", 
-            "text": "Blinky, your \"Hello World!\", on Olimex\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board. Fun stuff!\n\n\nThis tutorial will guide you to achieve the following, assuming you have already set up the environment on your computer to use Mynewt OS and newt tool:\n\n\n\n\nDownload packages and use tools to create a runtime image for a board to make its LED blink. You have two choices here:\n\n\nDownload an image to SRAM\n, or \n\n\nDownload it to flash\n.\n\n\n\n\n\n\n\n\n\n\n Time Requirement\n: Allow yourself a couple of hours for this project if you are relatively new to embedded systems and playing with development boards. Those jumpers can be pesky!\n\n\n\n\nWhat you need\n\n\n\n\nSTM32-E407 development board from Olimex. You can order it from \
 nhttp://www.mouser.com\n, \nhttp://www.digikey.com\n, and other places.\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 with Mac OS (Mac: OS X Yosemite Version 10.10.5) or Linux box (Ubuntu 14.10: Utopic Unicorn)\n\n\nAn account on Github repository and \ngit\n installed on your computer.\n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native tools as described \nhere\n\n\n\n\nAlso, we assume that you're familiar with UNIX shells. Let's gets started!\n\n\n\n\nUse SRAM to make LED blink\n\n\nIf you wish to build the image to run from the onboard SRAM on Olimex board, follow the steps below:\n\n\n\n\nPrepare the Software\n\n\n\n\nMake sure the PATH environment variable includes the $HOME/dev/go/bin directory. \n\n\n\n\n\n\nCreate a project.\n\n\nCrea
 te a new project to hold your work.  For a deeper understanding, you can read about project creation in \n\nGet Started -- Creating Your First Project\n\nor just follow the commands below.\n\n\n    $ mkdir ~/dev\n    $ cd ~/dev\n    $ newt new myproj\n    Downloading project skeleton from apache/incubator-mynewt-blinky...\n    Installing skeleton in myproj...\n    Project myproj successfully created.\n\n    $cd myproj\n\n    $ newt install -v \n    apache-mynewt-core\n    Downloading repository description for apache-mynewt-core... success!\n    ...\n    apache-mynewt-core successfully installed version 0.7.9-none\n\n\n\n\n\n\n\nCreate a target\n\n\nChange directory to ~/dev/myproj directory and define the \nblinky\n target inside myproj, using the \nnewt\n tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support 
 package (bsp), and app.\n\n\n    $ newt target create blinky\n    $ newt target set blinky build_profile=debug\n    $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set blinky app=apps/blinky\n    $ newt target show blinky\n    targets/boot_olimex\n        app=apps/blinky\n        bsp=hw/bsp/olimex_stm32-e407_devboard\n        build_profile=debug\n\n\n\n\n\n\n\nBuild the image\n\n\nNext, let's build the image with the above values assigned. By default, the linker script within the \nhw/bsp/olimex_stm32-e407_devboard\n package builds an image for flash memory, which we don't want; instead, we want an image for the SRAM, so you need to switch that script with \nrun_from_sram.ld\n. \n\n\n\n(We are working to simplify this scheme whereby an executable for a project will correctly elect the linker scripts and generate the relevant image. For example, the scheme will key on project identity such as bootloader, RAM, Flash (default) and b
 uild accordingly.) \n.\n\n\nAfer you build the target, you can find the executable \nblinky.elf\n in the project directory \n~/dev/myproj/bin/blinky/apps/blinky/.\n \n\n\n    $ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/\n    $ diff olimex_stm32-e407_devboard.ld run_from_sram.ld\n    (some diff will be displayed)\n    $ cp run_from_sram.ld olimex_stm32-e407_devboard.ld\n    $ cd ~/dev/myproj\n    $ newt build blinky\n    Compiling case.c\n    Compiling suite.c\n    ...\n    Linking blinky.elf\n    App successfully built:~/dev/myproj/bin/blinky/apps/blinky/blinky.elf\n    $ ls ~/dev/myproj/bin/blinky/apps/blinky/\n        blinky.elf      blinky.elf.bin     blinky.elf.cmd  \n        blinky.elf.lst  blinky.elf.map\n\n\n\n\n\n\n\nPrepare the hardware to boot from embedded SRAM\n\n\n\n\nLocate the boot jumpers on the board.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nB1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always b
 e accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. \nTo locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from SRAM by jumpering \nB0_1\n and \nB1_1\n.\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\nThe red PWR LED should be lit. \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\n\n\nLet's Go!\n\n\n\n\nEnsure that you are in the blinky project directory with the \nblinky.elf\n executable. Run the debug command in the \nnewt\n too
 l. You'll see some status messages as shown below. In case you need to halt the debugging session, you can issue an \n-c \"reset halt\"\n command.\n\n\n\n\n    $ newt debug blinky\n    Debugging with ~/dev/core/hw/bsp/olimex_...\n    Debugging ~/dev/core/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3 \nhttp://gnu.org/licenses/gpl.html\n\n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x080003c0 msp: 0x10010000\n    Info : accepting \ngdb\n connection on tcp/3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes\n\n\n\n\n\n\n\nCheck the value of the msp (main service pointer) register. If it is not 0x10010000 as indicated above, you will have to manually set it after you open the gdb tool and load the image on it. 
 For example, \n\n\n    (gdb) set $msp=0x10010000\n\n\n\n\n\n\n\nNow load the image and type \"c\" or \"continue\" from the GNU debugger. \n\n\n    (gdb) load ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf   \n    Loading section .text, size 0x16b88 lma 0x20000000\n    Loading section .ARM.exidx, size 0x18 lma 0x20016b88\n    Loading section .data, size 0x9ec lma 0x20016ba0\n    Start address 0x200004b8, load size 95628\n    Transfer rate: 74 KB/sec, 3825 bytes/write.\n    (gdb) c\n    Continuing.\n\n\n\n\n\n\n\nVoil\u00e0! The board's LED should be blinking at 1 Hz. Success!\n\n\n\n\n\n\nUse flash to make LED blink\n\n\nIf you wish to build the image to run from the onboard flash memory on Olimex board, follow the steps below:\n\n\n\n\n\n\nConfigure the board to boot from flash by moving the two jumpers together to \nB0_0\n and \nB1_0\n. Refer to the pictures of the board under the section titled \n\"Prepare the hardware to boot from embedded SRAM\"\n.\n\n\nYou will have to reset th
 e board once the image is uploaded to it.\n\n\n\n\n\n\nIf you skipped the first option for the project \n(downloading an image to SRAM)\n, then skip this step. Otherwise, continue with this step. \n\n\n\n\n\n\nBy default, the linker script (\nolimex_stm32-e407_devboard.ld\n) is configured to run from bootloader and flash. However, if you first ran the image from SRAM you had changed \nolimex_stm32-e407_devboard.ld\n to match \nrun_from_sram.ld\n. You will, therefore, return to defaults with \nolimex_stm32-e407_devboard.ld\n linker script matching the contents of 'run_from_loader.ld'. Return to the project directory.\n\n\n$ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/\n$ diff olimex_stm32-e407_devboard.ld run_from_sram.ld\n$ diff olimex_stm32-e407_devboard.ld run_from_loader.ld\n(some diff will be displayed)\n$ cp run_from_loader.ld olimex_stm32-e407_devboard.ld\n$ cd ~/dev/myproj\n\n\n\n\n\n\n\n\n\nIn order to run the image from flash, you need to buil
 d the bootloader as well. The bootloader does the initial set up of the Olimex board and then transfers control to the image stored at a location in flash known to it. \n\n\n\n\nLet's create boot_olimex:\n\n\n    $ newt target create boot_olimex\n    $ newt target set boot_olimex build_profile=optimized\n    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot\n    $ newt target show boot_olimex\n    targets/boot_olimex\n        app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n        build_profile=optimized\n\n\n\n\n\n\n\n\n\nNow let's build both targets now.\n\n\n\n\n    $ newt build boot_olimex\n    ...\n    App successfully built: ~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf\n    $ newt build blinky\n    ...\n    Linking blinky.elf\n    App successfully built: ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf\n\n\n\n\n\n\n\n
 \n\nCreate the blinky image and download the bootloader and the image to flash ... in a flash! \nWhen creating an image, you can assign a version number to your image; here we use '1.2.3'\n\n\n\n\n    $ newt create-image blinky 1.2.3\n    App image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img\n    Build manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json\n    $ newt load boot_olimex\n    Downloading~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf.bin to 0x08000000\n    Open On-Chip Debugger 0.9.0 (2015-11-15-13:10)\n    ...\n    shutdown command invoked\n    $ newt load blinky\n    Downloading ~/dev/myproj/bin/blinky/apps/blinky/blinky.img to 0x08020000\n    Open On-Chip Debugger 0.9.0 (2015-11-15-13:10)\n    ...\n    shutdown command invoked\n\n\n\n\n\n\n\n\n\nVoil\u00e0! The LED should be blinking! Success!\n\n\n\n\n\n\nBut wait...not so fast.\n 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, severing the debug connection to the JTAG port. 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 #1:\n If you want to download the image to flash and a gdb session opened up, use \nnewt debug blinky\n after \nnewt download blinky\n.\n\n\n    $ newt debug blinky\n    Debugging with ~/dev/myproj/hw/bsp/olimex_stm32-e407_...\n    Debugging ~/dev/myproj/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3 \nhttp://gnu.org/licenses/gpl.html\n\n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x08000250 msp: 0x10010000\n    Info : accepti
 ng \ngdb\n connection from 3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes\n    Reset_Handler () at startup_STM32F40x.s:199\n    199     ldr    r1, =__etext\n    (gdb)\n\n\n\n\n\n\n\nNote #2:\n If you want to erase the flash and load the image again you may use the following commands from within gdb. \nflash erase_sector 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 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\n    erased sectors 0 through 4 on flash bank 0 in 2.296712s\n    (gdb) monitor mdw 0x08000000 16\n    0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffff
 ffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff         \n    (gdb) monitor flash info 0\n\n\n\n\n\nConclusion\n\n\nCongratulations! You have now tried out a project on actual hardware. If this is your first time to embedded systems, this must feel like the best hands-on and low-level \"Hello World\" program ever. \n\n\nGood, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like \ntutorials\n.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n\n\nKeep on hacking and blinking!", 
+            "text": "Blinky, your \"Hello World!\", on Olimex\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board. Fun stuff!\n\n\nThis tutorial shows you how to create a runtime image for an Olimex board to make its LED blink. Download the image to its flash memory and see the LED blink!\n\n\n\n\nWhat you need\n\n\n\n\nSTM32-E407 development board from Olimex. You can order it from \nhttp://www.mouser.com\n, \nhttp://www.digikey.com\n, and other places.\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 with Mac OS (Mac: OS X Yosemite Version 10.10.5) or Linux box (Ubuntu 14.10: Utopic U
 nicorn)\n\n\nAn account on Github repository and \ngit\n installed on your computer.\n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native tools as described \nhere\n\n\n\n\nAlso, we assume that you're familiar with UNIX shells. Let's gets started!\n\n\n\n\nPrepare the Software\n\n\n\n\nMake sure the PATH environment variable includes the $HOME/dev/go/bin directory. \n\n\n\n\n\n\nCreate a project.\n\n\nCreate a new project to hold your work.  For a deeper understanding, you can read about project creation in \n\nGet Started -- Creating Your First Project\n\nor just follow the commands below.\n\n\n    $ mkdir ~/dev\n    $ cd ~/dev\n    $ newt new myproj\n    Downloading project skeleton from apache/incubator-mynewt-blinky...\n    Installing skeleton in myproj...\n    Project myproj successfully created.\n\n    $cd myproj\n\n    $ newt install -v \n    apache-mynewt-core\n    Downloading repository description for apache-mynewt-core.
 .. success!\n    ...\n    apache-mynewt-core successfully installed version 0.7.9-none\n\n\n\n\n\n\n\nCreate targets\n\n\nChange directory to ~/dev/myproj directory and define the \nblinky\n target inside myproj, using the \nnewt\n tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support package (bsp), and app.\n\n\n    $ newt target create blinky\n    $ newt target set blinky build_profile=debug\n    $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set blinky app=apps/blinky\n\n    $ newt target create boot_olimex\n    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot\n    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set boot_olimex build_profile=optimized\n\n    $ newt target show \n  
   targets/blinky\n        app=apps/blinky\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n        build_profile=debug\n    targets/boot_olimex\n        app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n        build_profile=optimized\n\n\n\n\n\n\n\nBuild the images\n\n\nNext, let's build the images for the above targets. Afer you build the target, you can find the executable \nblinky.elf\n in the project directory \n~/dev/myproj/bin/blinky/apps/blinky/.\n \n\n\n    $ newt build blinky\n    Compiling case.c\n    Compiling suite.c\n    ...\n    Linking blinky.elf\n    App successfully built:~/dev/myproj/bin/blinky/apps/blinky/blinky.elf\n    $ ls ~/dev/myproj/bin/blinky/apps/blinky/\n        blinky.elf      blinky.elf.bin     blinky.elf.cmd  \n        blinky.elf.lst  blinky.elf.map\n\n    $ newt build boot_olimex\n    Building target targets/boot_olimex\n    App successfully built: ~/dev/myproj/bin/boot_olimex/app
 s/boot/boot.elf\n\n\n\n\n\n\n\nSign and create the blinky application image\n\n\nYou must sign and version your application image to download it using newt to the board. Use the newt create-image command to perform this action. You may assign an arbitrary version (e.g. 1.0.0) to the image.\n\n\n$ newt create-image blinky 1.0.0\nApp image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img\nBuild manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json\n\n\n\n\n\n\n\nPrepare the hardware to boot from flash\n\n\n\n\nLocate the boot jumpers on the board.\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nB1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always be accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. \nTo locate the bootloader, the board searches in 
 three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from flash by jumpering \nB0_0\n and \nB1_0\n.\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\nThe red PWR LED should be lit. \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\n\n\nLet's Go!\n\n\n\n\nLoad the images\n\n\n\n\n$ newt -v load boot_olimex\nLoading image with: ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/boot_olimex/apps/boot/boot BASELIBC FS LIBC NFFS bootloader\nSuccessfully loaded image.\n\n$ newt -v load blinky\nLoading image with: ~/de
 v/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/blinky/apps/blinky/blinky BASELIBC LIBC\nSuccessfully loaded image.\n\n\n\n\n\n\n\n\n\nVoil\u00e0! The LED should be blinking! Success!\n\n\n\n\n\n\nBut wait...not so fast.\n 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, severing the debug connection to the JTAG port. 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 #1:\n If you want to download the image to flash and a gdb session opened up, use \nnewt debug blinky\n. Type \nc\n to continue inside the gdb session.\n\n\n    $ newt debug blinky\n    Debugging with ~/dev/my
 proj/hw/bsp/olimex_stm32-e407_...\n    Debugging ~/dev/myproj/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3 \nhttp://gnu.org/licenses/gpl.html\n\n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x08000250 msp: 0x10010000\n    Info : accepting \ngdb\n connection from 3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes\n    Reset_Handler () at startup_STM32F40x.s:199\n    199     ldr    r1, =__etext\n    (gdb)\n\n\n\n\n\n\n\nNote #2:\n If you want to erase the flash and load the image again you may use the following commands from within gdb. \nflash erase_sector 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 sh
 ould 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\n    erased sectors 0 through 4 on flash bank 0 in 2.296712s\n    (gdb) monitor mdw 0x08000000 16\n    0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff         \n    (gdb) monitor flash info 0\n\n\n\n\n\nConclusion\n\n\nCongratulations! You have now tried out a project on actual hardware. If this is your first time to embedded systems, this must feel like the best hands-on and low-level \"Hello World\" program e
 ver. \n\n\nGood, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like \ntutorials\n or try enabling additional functionality such as \nremote comms\n on the current board.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n.\n\n\nKeep on hacking and blinking!", 
             "title": "Blinky on Olimex"
         }, 
         {
@@ -387,7 +387,7 @@
         }, 
         {
             "location": "/os/tutorials/olimex/#objective", 
-            "text": "Learn how to use packages from a default application repository of Mynewt to build your first  Hello World  application (Blinky) on a target board. Once built using the  newt  tool, this application will blink the LED lights on the target board. Fun stuff!  This tutorial will guide you to achieve the following, assuming you have already set up the environment on your computer to use Mynewt OS and newt tool:   Download packages and use tools to create a runtime image for a board to make its LED blink. You have two choices here:  Download an image to SRAM , or   Download it to flash .       Time Requirement : Allow yourself a couple of hours for this project if you are relatively new to embedded systems and playing with development boards. Those jumpers can be pesky!", 
+            "text": "Learn how to use packages from a default application repository of Mynewt to build your first  Hello World  application (Blinky) on a target board. Once built using the  newt  tool, this application will blink the LED lights on the target board. Fun stuff!  This tutorial shows you how to create a runtime image for an Olimex board to make its LED blink. Download the image to its flash memory and see the LED blink!", 
             "title": "Objective"
         }, 
         {
@@ -396,11 +396,6 @@
             "title": "What you need"
         }, 
         {
-            "location": "/os/tutorials/olimex/#use-sram-to-make-led-blink", 
-            "text": "If you wish to build the image to run from the onboard SRAM on Olimex board, follow the steps below:", 
-            "title": "Use SRAM to make LED blink"
-        }, 
-        {
             "location": "/os/tutorials/olimex/#prepare-the-software", 
             "text": "Make sure the PATH environment variable includes the $HOME/dev/go/bin directory.", 
             "title": "Prepare the Software"
@@ -411,38 +406,38 @@
             "title": "Create a project."
         }, 
         {
-            "location": "/os/tutorials/olimex/#create-a-target", 
-            "text": "Change directory to ~/dev/myproj directory and define the  blinky  target inside myproj, using the  newt  tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support package (bsp), and app.      $ newt target create blinky\n    $ newt target set blinky build_profile=debug\n    $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set blinky app=apps/blinky\n    $ newt target show blinky\n    targets/boot_olimex\n        app=apps/blinky\n        bsp=hw/bsp/olimex_stm32-e407_devboard\n        build_profile=debug", 
-            "title": "Create a target"
+            "location": "/os/tutorials/olimex/#create-targets", 
+            "text": "Change directory to ~/dev/myproj directory and define the  blinky  target inside myproj, using the  newt  tool. Starting with the target name, assign specific aspects of the project, as shown below, to pull the appropriate packages and build the right bundle or list for the board. For example, we set the build_profile, board support package (bsp), and app.      $ newt target create blinky\n    $ newt target set blinky build_profile=debug\n    $ newt target set blinky bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set blinky app=apps/blinky\n\n    $ newt target create boot_olimex\n    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot\n    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set boot_olimex build_profile=optimized\n\n    $ newt target show \n    targets/blinky\n        app=apps/blinky\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\
 n        build_profile=debug\n    targets/boot_olimex\n        app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n        build_profile=optimized", 
+            "title": "Create targets"
         }, 
         {
-            "location": "/os/tutorials/olimex/#build-the-image", 
-            "text": "Next, let's build the image with the above values assigned. By default, the linker script within the  hw/bsp/olimex_stm32-e407_devboard  package builds an image for flash memory, which we don't want; instead, we want an image for the SRAM, so you need to switch that script with  run_from_sram.ld .   \n(We are working to simplify this scheme whereby an executable for a project will correctly elect the linker scripts and generate the relevant image. For example, the scheme will key on project identity such as bootloader, RAM, Flash (default) and build accordingly.)  .  Afer you build the target, you can find the executable  blinky.elf  in the project directory  ~/dev/myproj/bin/blinky/apps/blinky/.        $ cd ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/\n    $ diff olimex_stm32-e407_devboard.ld run_from_sram.ld\n    (some diff will be displayed)\n    $ cp run_from_sram.ld olimex_stm32-e407_devboard.ld\n    $ cd ~/dev/myproj\n    $ newt
  build blinky\n    Compiling case.c\n    Compiling suite.c\n    ...\n    Linking blinky.elf\n    App successfully built:~/dev/myproj/bin/blinky/apps/blinky/blinky.elf\n    $ ls ~/dev/myproj/bin/blinky/apps/blinky/\n        blinky.elf      blinky.elf.bin     blinky.elf.cmd  \n        blinky.elf.lst  blinky.elf.map", 
-            "title": "Build the image"
+            "location": "/os/tutorials/olimex/#build-the-images", 
+            "text": "Next, let's build the images for the above targets. Afer you build the target, you can find the executable  blinky.elf  in the project directory  ~/dev/myproj/bin/blinky/apps/blinky/.        $ newt build blinky\n    Compiling case.c\n    Compiling suite.c\n    ...\n    Linking blinky.elf\n    App successfully built:~/dev/myproj/bin/blinky/apps/blinky/blinky.elf\n    $ ls ~/dev/myproj/bin/blinky/apps/blinky/\n        blinky.elf      blinky.elf.bin     blinky.elf.cmd  \n        blinky.elf.lst  blinky.elf.map\n\n    $ newt build boot_olimex\n    Building target targets/boot_olimex\n    App successfully built: ~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf", 
+            "title": "Build the images"
         }, 
         {
-            "location": "/os/tutorials/olimex/#prepare-the-hardware-to-boot-from-embedded-sram", 
-            "text": "Locate the boot jumpers on the board.         B1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always be accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. \nTo locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from SRAM by jumpering  B0_1  and  B1_1 .    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).     The red PWR LED should be lit.     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.", 
-            "title": "Prepare the hardware to boot from embedded SRAM"
+            "location": "/os/tutorials/olimex/#sign-and-create-the-blinky-application-image", 
+            "text": "You must sign and version your application image to download it using newt to the board. Use the newt create-image command to perform this action. You may assign an arbitrary version (e.g. 1.0.0) to the image.  $ newt create-image blinky 1.0.0\nApp image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img\nBuild manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json", 
+            "title": "Sign and create the blinky application image"
         }, 
         {
-            "location": "/os/tutorials/olimex/#lets-go", 
-            "text": "Ensure that you are in the blinky project directory with the  blinky.elf  executable. Run the debug command in the  newt  tool. You'll see some status messages as shown below. In case you need to halt the debugging session, you can issue an  -c \"reset halt\"  command.       $ newt debug blinky\n    Debugging with ~/dev/core/hw/bsp/olimex_...\n    Debugging ~/dev/core/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3  http://gnu.org/licenses/gpl.html \n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x080003c0 msp: 0x10010000\n    Info : accepting  gdb  connection on tcp/3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes   Check the value of the msp (main service pointer) register. If it is no
 t 0x10010000 as indicated above, you will have to manually set it after you open the gdb tool and load the image on it. For example,       (gdb) set $msp=0x10010000   Now load the image and type \"c\" or \"continue\" from the GNU debugger.       (gdb) load ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf   \n    Loading section .text, size 0x16b88 lma 0x20000000\n    Loading section .ARM.exidx, size 0x18 lma 0x20016b88\n    Loading section .data, size 0x9ec lma 0x20016ba0\n    Start address 0x200004b8, load size 95628\n    Transfer rate: 74 KB/sec, 3825 bytes/write.\n    (gdb) c\n    Continuing.   Voil\u00e0! The board's LED should be blinking at 1 Hz. Success!", 
-            "title": "Let's Go!"
+            "location": "/os/tutorials/olimex/#prepare-the-hardware-to-boot-from-flash", 
+            "text": "Locate the boot jumpers on the board.         B1_1/B1_0 and B0_1/B0_0 are PTH jumpers. Note that because the markings on the board may not always be accurate, when in doubt, you should always refer to the manual for the correct positioning. Since the jumpers are a pair, they should move together, and as such, the pair is responsible for the boot mode when bootloader is present. \nTo locate the bootloader, the board searches in three places: User Flash Memory, System Memory or the Embedded SRAM. For this Blinky project, we will configure it to boot from flash by jumpering  B0_0  and  B1_0 .    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).     The red PWR LED should be lit.     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.", 
+            "title": "Prepare the hardware to boot from flash"
         }, 
         {
-            "location": "/os/tutorials/olimex/#use-flash-to-make-led-blink", 
-            "text": "If you wish to build the image to run from the onboard flash memory on Olimex board, follow the steps below:    Configure the board to boot from flash by moving the two jumpers together to  B0_0  and  B1_0 . Refer to the pictures of the board under the section titled  \"Prepare the hardware to boot from embedded SRAM\" .  You will have to reset the board once the image is uploaded to it.    If you skipped the first option for the project  (downloading an image to SRAM) , then skip this step. Otherwise, continue with this step.     By default, the linker script ( olimex_stm32-e407_devboard.ld ) is configured to run from bootloader and flash. However, if you first ran the image from SRAM you had changed  olimex_stm32-e407_devboard.ld  to match  run_from_sram.ld . You will, therefore, return to defaults with  olimex_stm32-e407_devboard.ld  linker script matching the contents of 'run_from_loader.ld'. Return to the project directory.  $ cd ~/dev/myproj/repos/apache-m
 ynewt-core/hw/bsp/olimex_stm32-e407_devboard/\n$ diff olimex_stm32-e407_devboard.ld run_from_sram.ld\n$ diff olimex_stm32-e407_devboard.ld run_from_loader.ld\n(some diff will be displayed)\n$ cp run_from_loader.ld olimex_stm32-e407_devboard.ld\n$ cd ~/dev/myproj    In order to run the image from flash, you need to build the bootloader as well. The bootloader does the initial set up of the Olimex board and then transfers control to the image stored at a location in flash known to it.    Let's create boot_olimex:      $ newt target create boot_olimex\n    $ newt target set boot_olimex build_profile=optimized\n    $ newt target set boot_olimex bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n    $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot\n    $ newt target show boot_olimex\n    targets/boot_olimex\n        app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard\n        build_profile=optimized    Now let's buil
 d both targets now.       $ newt build boot_olimex\n    ...\n    App successfully built: ~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf\n    $ newt build blinky\n    ...\n    Linking blinky.elf\n    App successfully built: ~/dev/myproj/bin/blinky/apps/blinky/blinky.elf    Create the blinky image and download the bootloader and the image to flash ... in a flash! \nWhen creating an image, you can assign a version number to your image; here we use '1.2.3'       $ newt create-image blinky 1.2.3\n    App image succesfully generated: ~/dev/myproj/bin/blinky/apps/blinky/blinky.img\n    Build manifest: ~/dev/myproj/bin/blinky/apps/blinky/manifest.json\n    $ newt load boot_olimex\n    Downloading~/dev/myproj/bin/boot_olimex/apps/boot/boot.elf.bin to 0x08000000\n    Open On-Chip Debugger 0.9.0 (2015-11-15-13:10)\n    ...\n    shutdown command invoked\n    $ newt load blinky\n    Downloading ~/dev/myproj/bin/blinky/apps/blinky/blinky.img to 0x08020000\n    Open On-Chip Debugger 0.9.0 (2015-1
 1-15-13:10)\n    ...\n    shutdown command invoked    Voil\u00e0! The LED should be blinking! Success!    But wait...not so fast.  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, severing the debug connection to the JTAG port. 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.   The LED light will start blinking again. Success!  Note #1:  If you want to download the image to flash and a gdb session opened up, use  newt debug blinky  after  newt download blinky .      $ newt debug blinky\n    Debugging with ~/dev/myproj/hw/bsp/olimex_stm32-e407_...\n    Debugging ~/dev/myproj/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3  http://g
 nu.org/licenses/gpl.html \n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x08000250 msp: 0x10010000\n    Info : accepting  gdb  connection from 3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes\n    Reset_Handler () at startup_STM32F40x.s:199\n    199     ldr    r1, =__etext\n    (gdb)   Note #2:  If you want to erase the flash and load the image again you may use the following commands from within gdb.  flash erase_sector 0 0 x  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 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.      (gdb) monitor flash erase_sector 0 0 4\n    erased sectors 0 th
 rough 4 on flash bank 0 in 2.296712s\n    (gdb) monitor mdw 0x08000000 16\n    0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff         \n    (gdb) monitor flash info 0", 
-            "title": "Use flash to make LED blink"
+            "location": "/os/tutorials/olimex/#lets-go", 
+            "text": "Load the images   $ newt -v load boot_olimex\nLoading image with: ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/boot_olimex/apps/boot/boot BASELIBC FS LIBC NFFS bootloader\nSuccessfully loaded image.\n\n$ newt -v load blinky\nLoading image with: ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard/ ~/dev/myproj/bin/blinky/apps/blinky/blinky BASELIBC LIBC\nSuccessfully loaded image.    Voil\u00e0! The LED should be blinking! Success!    But wait...not so fast.  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, severing the debug connection to the JTAG port. Next power off the Olime
 x 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.   The LED light will start blinking again. Success!  Note #1:  If you want to download the image to flash and a gdb session opened up, use  newt debug blinky . Type  c  to continue inside the gdb session.      $ newt debug blinky\n    Debugging with ~/dev/myproj/hw/bsp/olimex_stm32-e407_...\n    Debugging ~/dev/myproj/project/blinky/bin/blinky/blinky.elf\n    GNU gdb (GNU Tools for ARM Embedded Processors) 7.8.0.20150604-cvs\n    Copyright (C) 2014 Free Software Foundation, Inc.\n    License GPLv3+: GNU GPL version 3  http://gnu.org/licenses/gpl.html \n    ...\n    (info)\n    ...\n    target state: halted\n    target halted due to debug-request, current mode: Thread \n    xPSR: 0x01000000 pc: 0x08000250 msp: 0x10010000\n    Info : accepting  gdb  connection from 3333\n    Info : device id = 0x10036413\n    Info : flash size = 1024kbytes\n    Reset_Handler () a
 t startup_STM32F40x.s:199\n    199     ldr    r1, =__etext\n    (gdb)   Note #2:  If you want to erase the flash and load the image again you may use the following commands from within gdb.  flash erase_sector 0 0 x  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 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.      (gdb) monitor flash erase_sector 0 0 4\n    erased sectors 0 through 4 on flash bank 0 in 2.296712s\n    (gdb) monitor mdw 0x08000000 16\n    0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff \n    (0x08000000: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffff
 fff \n    (0x08000020: ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff         \n    (gdb) monitor flash info 0", 
+            "title": "Let's Go!"
         }, 
         {
             "location": "/os/tutorials/olimex/#conclusion", 
-            "text": "Congratulations! You have now tried out a project on actual hardware. If this is your first time to embedded systems, this must feel like the best hands-on and low-level \"Hello World\" program ever.   Good, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like  tutorials .  If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our  Community Page  Keep on hacking and blinking!", 
+            "text": "Congratulations! You have now tried out a project on actual hardware. If this is your first time to embedded systems, this must feel like the best hands-on and low-level \"Hello World\" program ever.   Good, we have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like  tutorials  or try enabling additional functionality such as  remote comms  on the current board.  If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our  Community Page .  Keep on hacking and blinking!", 
             "title": "Conclusion"
         }, 
         {
             "location": "/os/tutorials/STM32F303/", 
-            "text": "Blinky, your \"Hello World!\", on STM32F303 Discovery\n\n\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nCreate a project with a simple app that blinks an LED on the stmf303 \ndiscovery board.  In the process import some external libraries into your project. Download the application to the target and watch it blink!\n\n\n\n\nWhat you need\n\n\n\n\nDiscovery kit with STM32F303VC MCU\n\n\nLaptop running Mac OSX. \n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native tools as described \nhere\n\n\n\n\nAlso, we assume that you're familiar with UNIX shells. Let's gets started!\n\n\n\n\nCreate a project\n\n\nCreate a new project to hold your work.  For a deeper understanding, you can read abou
 t project creation in \n\nGet Started -- Creating Your First Project\n\nor just follow the commands below.\n\n\nIf you've already created a project from another tutorial, you can re-use\nthat project.\n\n\n$ mkdir ~/dev\n$ cd ~/dev\n$ newt new myproj\nDownloading project skeleton from apache/incubator-mynewt-blinky...\nInstalling skeleton in myproj...\nProject myproj successfully created.\n\n$ cd myproj\n\n\n\n\n\nNote:\n Don't forget to change into the \nmyproj\n directory.\n\n\n\n\nImport External STM32F3 Library support\n\n\nThe STM32F303 support for Mynewt lives in an external repository.  It's\nnecessary to add another repository to the project.  To do this,\nedit the file \nproject.yml\n in the root directory of your project \nmyproj\n\n\nThis requires two changes to this file.\n\n\n\n\nYou must define the properties of the external repository that you want\nto add\n\n\nYou must include the repository in your project.\n\n\n\n\nEdit the file \nproject.yml\n with your favorite e
 ditor and add the \nfollowing repository details in the file (after the core \nrepository).  This gives newt the information to contact the repository\nand extract its contents.  In this case, the repository is on github in \nthe \nruntimeinc\n collection. Its name is \nmynewt-stm32f3\n and we will accept\nany version up to the latest. You can look at the contents \nhere\n.\n\n\nrepository.mynewt_stm32f3:\n    type: github\n    vers: 0-latest\n    user: runtimeinc\n    repo: mynewt_stm32f3\n\n\n\n\n\n\n\nIn the same file, add the following highlighted line to the \n\nproject.repositories\n variable.  This tells newt to download the\n repository contents into your project. \n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_stm32f3\n\n\n\n\n\n\n\nInstall dependencies\n\n\nNow you can install this into the project using:\n\n\n$ newt install -v \nDownloading repository description for apache-mynewt-core... success!\n...\napache-mynewt-core successfully installed versi
 on 0.7.9-none\n...\nDownloading repository description for mynewt_stm32f3... success!\nDownloading repository mynewt_stm32f3 \n...\nResolving deltas: 100% (65/65), done.\nChecking connectivity... done.\nmynewt_stm32f3 successfully installed version 0.0.0-none\n\n\n\n\n\n\n\nCreate  targets\n\n\nCreate two targets to build using the stmf3 board support package and the \napp blinky example from mynewt.  The output of these commands are not\nshown here for brevity. \n\n\nThe first target is the application image itself. The second\ntarget is the bootloader which allows you to upgrade your mynewt \napplications. \n\n\n$ newt target create stmf3_blinky\n$ newt target set stmf3_blinky build_profile=optimized\n$ newt target set stmf3_blinky bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n$ newt target set stmf3_blinky app=apps/blinky\n\n$ newt target create stmf3_boot\n$ newt target set stmf3_boot app=@apache-mynewt-core/apps/boot\n$ newt target set stmf3_boot bsp=@mynewt_stm32f3/hw/bsp/stm32
 f3discovery\n$ newt target set stmf3_boot build_profile=optimized\n\n$ newt target show\n\ntargets/stmf3_blinky\n    app=apps/blinky\n    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n    build_profile=optimized\ntargets/stmf3_boot\n    app=apps/boot\n    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n    build_profile=optimized\n\n\n\n\n\n\n\nBuild the images\n\n\nTo build the images, use the \nnewt build\n command below.\n\n\n$ newt build stmf3_blinky\n   ...\nArchiving stm32f3discovery.a\nLinking blinky.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf\n\n$ newt build stmf3_boot\nCompiling log_shell.c\nArchiving log.a\nLinking boot.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf\n\n\n\n\n\n\n\nCreate an application image from the binary\n\n\nYou must sign and version your application image to download it using newt.  Use\nthe \nnewt create-image\n command to perform this action. Here we assign this\nimage an arbitrary versi
 on \n1.2.3\n.\n\n\n$ newt create-image stmf3_blinky 1.2.3\nApp image succesfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img\nBuild manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json\n\n\n\n\n\n\n\nConfigure the hardware\n\n\nThe STM32F3DISCOVERY board includes an ST-LINK/V2 embedded debug tool interface that will be used to program/debug the board. To program the MCU on the board, simply plug in the two jumpers on CN4, as shown in the picture in red. If you want to learn more about the board you will find the User Manual at \nhttp://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf\n\n\n\n\n\n\n\n\n\n\nDownload the Images\n\n\nUse the \nnewt load\n command to download the images to the target board.\n\n\n$ newt -v load stmf3_boot\n$ newt -v load stmf3_blinky\n\n\n\n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have built, downloaded, and run your first application using mynewt for the\nstf32f3 disc
 overy board. One of the LEDs on the LED wheel should be blinking \nat 1 Hz.", 
+            "text": "Blinky, your \"Hello World!\", on STM32F303 Discovery\n\n\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nCreate a project with a simple app that blinks an LED on the stmf303 \ndiscovery board.  In the process import some external libraries into your project. Download the application to the target and watch it blink!\n\n\n\n\nWhat you need\n\n\n\n\nDiscovery kit with STM32F303VC MCU\n\n\nLaptop running Mac OSX. \n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native tools as described \nhere\n\n\n\n\nAlso, we assume that you're familiar with UNIX shells. Let's gets started!\n\n\n\n\nCreate a project\n\n\nCreate a new project to hold your work.  For a deeper understanding, you can read abou
 t project creation in \n\nGet Started -- Creating Your First Project\n\nor just follow the commands below.\n\n\nIf you've already created a project from another tutorial, you can re-use\nthat project.\n\n\n$ mkdir ~/dev\n$ cd ~/dev\n$ newt new myproj\nDownloading project skeleton from apache/incubator-mynewt-blinky...\nInstalling skeleton in myproj...\nProject myproj successfully created.\n\n$ cd myproj\n\n\n\n\n\nNote:\n Don't forget to change into the \nmyproj\n directory.\n\n\n\n\nImport External STM32F3 Library support\n\n\nThe STM32F303 support for Mynewt lives in an external repository.  It's\nnecessary to add another repository to the project.  To do this,\nedit the file \nproject.yml\n in the root directory of your project \nmyproj\n\n\nThis requires two changes to this file.\n\n\n\n\nYou must define the properties of the external repository that you want\nto add\n\n\nYou must include the repository in your project.\n\n\n\n\nEdit the file \nproject.yml\n with your favorite e
 ditor and add the \nfollowing repository details in the file (after the core \nrepository).  This gives newt the information to contact the repository\nand extract its contents.  In this case, the repository is on github in \nthe \nruntimeinc\n collection. Its name is \nmynewt-stm32f3\n and we will accept\nany version up to the latest. You can look at the contents \nhere\n.\n\n\nrepository.mynewt_stm32f3:\n    type: github\n    vers: 0-latest\n    user: runtimeinc\n    repo: mynewt_stm32f3\n\n\n\n\n\n\n\nIn the same file, add the following highlighted line to the \n\nproject.repositories\n variable.  This tells newt to download the\n repository contents into your project. \n\n\nproject.repositories:\n    - apache-mynewt-core\n\n    - mynewt_stm32f3\n\n\n\n\n\n\n\nInstall dependencies\n\n\nNow you can install this into the project using:\n\n\n$ newt install -v \nDownloading repository description for apache-mynewt-core... success!\n...\napache-mynewt-core successfully installed versi
 on 0.7.9-none\n...\nDownloading repository description for mynewt_stm32f3... success!\nDownloading repository mynewt_stm32f3 \n...\nResolving deltas: 100% (65/65), done.\nChecking connectivity... done.\nmynewt_stm32f3 successfully installed version 0.0.0-none\n\n\n\n\n\n\n\nCreate  targets\n\n\nCreate two targets to build using the stmf3 board support package and the \napp blinky example from mynewt.  The output of these commands are not\nshown here for brevity. \n\n\nThe first target is the application image itself. The second\ntarget is the bootloader which allows you to upgrade your mynewt \napplications. \n\n\n$ newt target create stmf3_blinky\n$ newt target set stmf3_blinky build_profile=optimized\n$ newt target set stmf3_blinky bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n$ newt target set stmf3_blinky app=apps/blinky\n\n$ newt target create stmf3_boot\n$ newt target set stmf3_boot app=@apache-mynewt-core/apps/boot\n$ newt target set stmf3_boot bsp=@mynewt_stm32f3/hw/bsp/stm32
 f3discovery\n$ newt target set stmf3_boot build_profile=optimized\n\n$ newt target show\n\ntargets/stmf3_blinky\n    app=apps/blinky\n    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n    build_profile=optimized\ntargets/stmf3_boot\n    app=apps/boot\n    bsp=@mynewt_stm32f3/hw/bsp/stm32f3discovery\n    build_profile=optimized\n\n\n\n\n\n\n\nBuild the target executables\n\n\nTo build the images, use the \nnewt build\n command below.\n\n\n$ newt build stmf3_blinky\n   ...\nArchiving stm32f3discovery.a\nLinking blinky.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf\n\n$ newt build stmf3_boot\nCompiling log_shell.c\nArchiving log.a\nLinking boot.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf\n\n\n\n\n\n\n\nSign and create the blinky application image\n\n\nYou must sign and version your application image to download it using newt.  Use\nthe \nnewt create-image\n command to perform this action. Here we assign this\nimage an ar
 bitrary version \n1.2.3\n.\n\n\n$ newt create-image stmf3_blinky 1.2.3\nApp image succesfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img\nBuild manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json\n\n\n\n\n\n\n\nConfigure the hardware\n\n\nThe STM32F3DISCOVERY board includes an ST-LINK/V2 embedded debug tool interface that will be used to program/debug the board. To program the MCU on the board, simply plug in the two jumpers on CN4, as shown in the picture in red. If you want to learn more about the board you will find the User Manual at \nhttp://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf\n\n\n\n\n\n\n\n\n\n\nDownload the Images\n\n\nUse the \nnewt load\n command to download the images to the target board.\n\n\n$ newt -v load stmf3_boot\n$ newt -v load stmf3_blinky\n\n\n\n\n\n\n\nWatch the LED blink\n\n\nCongratulations! You have built, downloaded, and run your first application using mynewt for the 
 stm32f3 discovery board. One of the LEDs on the LED wheel should be blinking at 1 Hz.\n\n\nWe have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like \ntutorials\n or try enabling additional functionality such as \nremote comms\n on the current board.\n\n\nIf you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our \nCommunity Page\n.\n\n\nKeep on hacking and blinking!", 
             "title": "Blinky on STM32F303"
         }, 
         {
@@ -481,14 +476,14 @@
             "title": "Create  targets"
         }, 
         {
-            "location": "/os/tutorials/STM32F303/#build-the-images", 
+            "location": "/os/tutorials/STM32F303/#build-the-target-executables", 
             "text": "To build the images, use the  newt build  command below.  $ newt build stmf3_blinky\n   ...\nArchiving stm32f3discovery.a\nLinking blinky.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf\n\n$ newt build stmf3_boot\nCompiling log_shell.c\nArchiving log.a\nLinking boot.elf\nApp successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf", 
-            "title": "Build the images"
+            "title": "Build the target executables"
         }, 
         {
-            "location": "/os/tutorials/STM32F303/#create-an-application-image-from-the-binary", 
+            "location": "/os/tutorials/STM32F303/#sign-and-create-the-blinky-application-image", 
             "text": "You must sign and version your application image to download it using newt.  Use\nthe  newt create-image  command to perform this action. Here we assign this\nimage an arbitrary version  1.2.3 .  $ newt create-image stmf3_blinky 1.2.3\nApp image succesfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img\nBuild manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json", 
-            "title": "Create an application image from the binary"
+            "title": "Sign and create the blinky application image"
         }, 
         {
             "location": "/os/tutorials/STM32F303/#configure-the-hardware", 
@@ -502,12 +497,12 @@
         }, 
         {
             "location": "/os/tutorials/STM32F303/#watch-the-led-blink", 
-            "text": "Congratulations! You have built, downloaded, and run your first application using mynewt for the\nstf32f3 discovery board. One of the LEDs on the LED wheel should be blinking \nat 1 Hz.", 
+            "text": "Congratulations! You have built, downloaded, and run your first application using mynewt for the stm32f3 discovery board. One of the LEDs on the LED wheel should be blinking at 1 Hz.  We have more fun tutorials for you to get your hands dirty. Be bold and try other Blinky-like  tutorials  or try enabling additional functionality such as  remote comms  on the current board.  If you see anything missing or want to send us feedback, please do so by signing up for appropriate mailing lists on our  Community Page .  Keep on hacking and blinking!", 
             "title": "Watch the LED blink"
         }, 
         {
             "location": "/os/tutorials/nRF52/", 
-            "text": "Blinky, your \"Hello World!\", on nRF52\n\n\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nCreate a project with a simple app that blinks an LED on the nRF52 board from Nordic Semiconductors.  Download the application to the target and watch it blink!\n\n\nHardware needed\n\n\n\n\nnRF52 Development Kit\n\n\nLaptop running Mac OS\n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native tools as described \nhere\n\n\n\n\nInstall jlinkEXE\n\n\nIn order to be able to communicate with the SEGGER J-Link debugger on the dev board, you have to download and install the J-Link GDB Server software on to your laptop. You may download the \"Software and documentation pack for Mac OS X\" from \nhttps://w
 ww.segger.com/jlink-software.html\n. \n\n\nCreate a project.\n\n\nCreate a new project to hold your work.  For a deeper understanding, you can read about project creation in \n\nGet Started -- Creating Your First Project\n\nor just follow the commands below.\n\n\n    $ mkdir ~/dev\n    $ cd ~/dev\n    $ newt new myproj\n    Downloading project skeleton from apache/incubator-mynewt-blinky...\n    Installing skeleton in myproj...\n    Project myproj successfully created.\n\n    $ cd myproj\n\n    $ newt install -v \n    apache-mynewt-core\n    Downloading repository description for apache-mynewt-core... success!\n    ...\n    apache-mynewt-core successfully installed version 0.7.9-none\n\n\n\n\n\nCreate the target\n\n\nCreate a single target for the nrf52.  NOTE: The nrf52 mynewt core does not\nyet have bootloader support, so we will create a single image to download\nto the device.\n\n\n$ newt target create blink_nordic\n$ newt target set blink_nordic app=apps/blinky\n$ newt target s
 et blink_nordic bsp=@apache-mynewt-core/hw/bsp/nrf52pdk\n$ newt target set blink_nordic build_profile=debug\n$ newt target show \ntargets/blink_nordic\n    app=apps/blinky\n    bsp=@apache-mynewt-core/hw/bsp/nrf52pdk\n    build_profile=debug\n\n\n\n\n\nBuild the image\n\n\n$ newt build blink_nordic\n...\nCompiling main.c\nArchiving blinky.a\nLinking blinky.elf\nApp successfully built: ~/dev/myproj/bin/blink_nordic/apps/blinky/blinky.elf\n\n\n\n\n\nConnect the board\n\n\nConnect the evaluation board via micro-USB to your PC via USB cable.\n\n\nDownload to the target\n\n\nDownload the executable to the target platform.\n\n\n$ newt -v load blink_nordic\n\n\n\n\n\nCongratulations\n\n\nYou have created, setup, compiled, loaded, and ran your first mynewt application\nfor the nrf52 evaluation board.", 
+            "text": "Blinky, your \"Hello World!\", on nRF52\n\n\n\n\nObjective\n\n\nLearn how to use packages from a default application repository of Mynewt to build your first \nHello World\n application (Blinky) on a target board. Once built using the \nnewt\n tool, this application will blink the LED lights on the target board.\n\n\nCreate a project with a simple app that blinks an LED on the nRF52 board from Nordic Semiconductors.  Download the application to the target and watch it blink!\n\n\nNote that there are several versions of the nRF52 in the market. The boards tested with this tutorial are listed under \"Hardware needed\" below.\n\n\n\n\nHardware needed\n\n\n\n\nnRF52 Development Kit (one of the following)\n\n\nPreview Kit from Nordic - PCA 10036\n\n\nDev Kit from Nordic - PCA 10040\n\n\nEval Kit from Rigado - BMD-300-EVAL-ES\n\n\n\n\n\n\nLaptop running Mac OS\n\n\nIt is assumed you have already installed newt tool. \n\n\nIt is assumed you already installed native too
 ls as described \nhere\n\n\n\n\n\n\nInstall jlinkEXE\n\n\nIn order to be able to communicate with the SEGGER J-Link debugger on the dev board, you have to download and install the J-Link GDB Server software on to your laptop. You may download the \"Software and documentation pa

<TRUNCATED>