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/27 01:40:35 UTC

[1/2] incubator-mynewt-site git commit: Fixed typos in Olimex Blinky tutorial. Minor changes to all Blinky tutorials to make them consistent.

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


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/9486a6b8/os/tutorials/STM32F303/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/STM32F303/index.html b/os/tutorials/STM32F303/index.html
index 999796a..68302d1 100644
--- a/os/tutorials/STM32F303/index.html
+++ b/os/tutorials/STM32F303/index.html
@@ -502,11 +502,12 @@
                             </div>
                         </div>
                         
-                            <h2 id="blinky-on-stm32f303-discovery-board">Blinky on STM32F303 Discovery board<a class="headerlink" href="#blinky-on-stm32f303-discovery-board" title="Permanent link">&para;</a></h2>
+                            <h2 id="blinky-your-hello-world-on-stm32f303-discovery">Blinky, your "Hello World!", on STM32F303 Discovery<a class="headerlink" href="#blinky-your-hello-world-on-stm32f303-discovery" title="Permanent link">&para;</a></h2>
 <p><br></p>
 <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 stmf303 
-discovery board.  Download the application to the target and watch it blink.</p>
+discovery board.  In the process import some external libraries into your project. Download the application to the target and watch it 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>
 <ul>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/9486a6b8/os/tutorials/arduino_zero/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/arduino_zero/index.html b/os/tutorials/arduino_zero/index.html
index 44efff7..8e405a4 100644
--- a/os/tutorials/arduino_zero/index.html
+++ b/os/tutorials/arduino_zero/index.html
@@ -502,7 +502,8 @@
                             </div>
                         </div>
                         
-                            <h2 id="running-mynewt-on-arduino-zero">Running Mynewt on Arduino Zero<a class="headerlink" href="#running-mynewt-on-arduino-zero" title="Permanent link">&para;</a></h2>
+                            <h2 id="blinky-your-hello-world-on-arduino-zero">Blinky, your "Hello World!", on Arduino Zero<a class="headerlink" href="#blinky-your-hello-world-on-arduino-zero" title="Permanent link">&para;</a></h2>
+<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>This tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!</p>
 <h3 id="prerequisites">Prerequisites<a class="headerlink" href="#prerequisites" title="Permanent link">&para;</a></h3>
 <p>Before tackling this tutorial, it's best to read about Mynewt in the <a href="../../get_started/introduction">Introduction</a> section of this documentation.</p>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/9486a6b8/os/tutorials/nRF52/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/nRF52/index.html b/os/tutorials/nRF52/index.html
index 870739c..1d711ee 100644
--- a/os/tutorials/nRF52/index.html
+++ b/os/tutorials/nRF52/index.html
@@ -502,10 +502,11 @@
                             </div>
                         </div>
                         
-                            <h2 id="blinky-on-nrf52-board">Blinky on nRF52 board<a class="headerlink" href="#blinky-on-nrf52-board" title="Permanent link">&para;</a></h2>
+                            <h2 id="blinky-your-hello-world-on-nrf52">Blinky, your "Hello World!", on nRF52<a class="headerlink" href="#blinky-your-hello-world-on-nrf52" title="Permanent link">&para;</a></h2>
+<p><br></p>
 <h3 id="objective">Objective<a class="headerlink" href="#objective" title="Permanent link">&para;</a></h3>
-<p>Download a generic firmware skeleton ("bootstrap image") that applies to any hardware and then throw in additional applicable pkgs to generate a build for a specific board, namely the
-nRF52 Series chip from Nordic Semiconductors.</p>
+<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>
 <ul>
 <li>nRF52 Development Kit</li>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/9486a6b8/os/tutorials/olimex/index.html
----------------------------------------------------------------------
diff --git a/os/tutorials/olimex/index.html b/os/tutorials/olimex/index.html
index 1d29511..c5b74e2 100644
--- a/os/tutorials/olimex/index.html
+++ b/os/tutorials/olimex/index.html
@@ -502,7 +502,7 @@
                             </div>
                         </div>
                         
-                            <h2 id="blinky-your-hello-world">Blinky, Your Hello World!<a class="headerlink" href="#blinky-your-hello-world" title="Permanent link">&para;</a></h2>
+                            <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>
@@ -624,8 +624,7 @@ To locate the bootloader, the board searches in three places: User Flash Memory,
 <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%">    $ cd ~/dev/core
-    $ newt debug blinky
+<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
@@ -698,8 +697,8 @@ $ cd ~/dev/myproj
     $ newt target set boot_olimex app=@apache-mynewt-core/apps/boot
     $ newt target show boot_olimex
     targets/boot_olimex
-        app=app=@apache-mynewt-core/apps/boot
-        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboar
+        app=@apache-mynewt-core/apps/boot
+        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboard
         build_profile=optimized
 </pre></div>
 


[2/2] incubator-mynewt-site git commit: Fixed typos in Olimex Blinky tutorial. Minor changes to all Blinky tutorials to make them consistent.

Posted by ad...@apache.org.
Fixed typos in Olimex Blinky tutorial. Minor changes to all Blinky tutorials to make them consistent.


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

Branch: refs/heads/asf-site
Commit: 9486a6b88c415ee83b50b0227c3dc4ab339d9467
Parents: a946b6b
Author: aditihilbert <ad...@runtime.io>
Authored: Tue Apr 26 16:40:22 2016 -0700
Committer: aditihilbert <ad...@runtime.io>
Committed: Tue Apr 26 16:40:22 2016 -0700

----------------------------------------------------------------------
 mkdocs/search_index.json             | 34 +++++++++++++++----------------
 os/tutorials/STM32F303/index.html    |  5 +++--
 os/tutorials/arduino_zero/index.html |  3 ++-
 os/tutorials/nRF52/index.html        |  7 ++++---
 os/tutorials/olimex/index.html       |  9 ++++----
 5 files changed, 30 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/9486a6b8/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json
index 2cf2f35..6e56341 100644
--- a/mkdocs/search_index.json
+++ b/mkdocs/search_index.json
@@ -312,13 +312,13 @@
         }, 
         {
             "location": "/os/tutorials/arduino_zero/", 
-            "text": "Running Mynewt on Arduino Zero\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 Arduino\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 github repository hosts such external third-party packages and the Newt tool can fetch them.\n\n\nTo fetch the package with MCU support for Atmel SAMD21 for Arduino Zero from the Runtime git repository, you need to add \nthe repository to the \nproject.yml\n file in your bas
 e 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 dependencies, 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 buil
 d.  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 the 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\nCompil
 ing 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 a
 rduino_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 : accepting \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 specif
 ied 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.", 
             "title": "Blinky on Arduino Zero"
         }, 
         {
-            "location": "/os/tutorials/arduino_zero/#running-mynewt-on-arduino-zero", 
-            "text": "This tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!", 
-            "title": "Running Mynewt on Arduino Zero"
+            "location": "/os/tutorials/arduino_zero/#blinky-your-hello-world-on-arduino-zero", 
+            "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.  This tutorial describes how to run Mynewt OS on Arduino Zero. Follow these simple steps and your board will be blinking in no time!", 
+            "title": "Blinky, your \"Hello World!\", on Arduino Zero"
         }, 
         {
             "location": "/os/tutorials/arduino_zero/#prerequisites", 
@@ -377,13 +377,13 @@
         }, 
         {
             "location": "/os/tutorials/olimex/", 
-            "text": "Blinky, Your Hello World!\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.mou
 ser.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\nCreate a new projec
 t 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 build accordingl
 y.) \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 be accurate, whe
 n 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 tool. You'll see s
 ome 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    $ cd ~/dev/core\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 o
 n 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 re
 set the 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 t
 o 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. \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=app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboar\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 
 : 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 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: ffff
 ffff 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 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 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!", 
             "title": "Blinky on Olimex"
         }, 
         {
-            "location": "/os/tutorials/olimex/#blinky-your-hello-world", 
+            "location": "/os/tutorials/olimex/#blinky-your-hello-world-on-olimex", 
             "text": "", 
-            "title": "Blinky, Your Hello World!"
+            "title": "Blinky, your \"Hello World!\", on Olimex"
         }, 
         {
             "location": "/os/tutorials/olimex/#objective", 
@@ -427,12 +427,12 @@
         }, 
         {
             "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.       $ cd ~/dev/core\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  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 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,       (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!", 
+            "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/#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=app=@apache-mynewt-core/apps/boot\n        bsp=@apache-mynewt-core/hw/bsp/olimex_stm32-e407_devboar\n        build_profile=optimized    Now let's b
 uild 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 (201
 5-11-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:
 //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 () 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
  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", 
+            "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"
         }, 
         {
@@ -442,17 +442,17 @@
         }, 
         {
             "location": "/os/tutorials/STM32F303/", 
-            "text": "Blinky on STM32F303 Discovery board\n\n\n\n\nObjective\n\n\nCreate a project with a simple app that blinks an LED on the stmf303 \ndiscovery board.  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 about 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 skelet
 on 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 editor 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 version 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 stmf
 3 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/stm32f3discovery\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 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 interfac
 e 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 discovery 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 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.", 
             "title": "Blinky on STM32F303"
         }, 
         {
-            "location": "/os/tutorials/STM32F303/#blinky-on-stm32f303-discovery-board", 
+            "location": "/os/tutorials/STM32F303/#blinky-your-hello-world-on-stm32f303-discovery", 
             "text": "", 
-            "title": "Blinky on STM32F303 Discovery board"
+            "title": "Blinky, your \"Hello World!\", on STM32F303 Discovery"
         }, 
         {
             "location": "/os/tutorials/STM32F303/#objective", 
-            "text": "Create a project with a simple app that blinks an LED on the stmf303 \ndiscovery board.  Download the application to the target and watch it blink.", 
+            "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.  Create 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!", 
             "title": "Objective"
         }, 
         {
@@ -507,17 +507,17 @@
         }, 
         {
             "location": "/os/tutorials/nRF52/", 
-            "text": "Blinky on nRF52 board\n\n\nObjective\n\n\nDownload a generic firmware skeleton (\"bootstrap image\") that applies to any hardware and then throw in additional applicable pkgs to generate a build for a specific board, namely the\nnRF52 Series chip from Nordic Semiconductors.\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://www.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 You
 r 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 set 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/b
 sp/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\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.", 
             "title": "Blinky on nRF52"
         }, 
         {
-            "location": "/os/tutorials/nRF52/#blinky-on-nrf52-board", 
+            "location": "/os/tutorials/nRF52/#blinky-your-hello-world-on-nrf52", 
             "text": "", 
-            "title": "Blinky on nRF52 board"
+            "title": "Blinky, your \"Hello World!\", on nRF52"
         }, 
         {
             "location": "/os/tutorials/nRF52/#objective", 
-            "text": "Download a generic firmware skeleton (\"bootstrap image\") that applies to any hardware and then throw in additional applicable pkgs to generate a build for a specific board, namely the\nnRF52 Series chip from Nordic Semiconductors.", 
+            "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.  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!", 
             "title": "Objective"
         }, 
         {