Repository: incubator-mynewt-site
Updated Branches:
  refs/heads/asf-site c9b4bc3bb -> 1e05f8b28


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/1e05f8b2/site/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/site/mkdocs/search_index.json b/site/mkdocs/search_index.json
index 8e8778c..5018141 100644
--- a/site/mkdocs/search_index.json
+++ b/site/mkdocs/search_index.json
@@ -22,13 +22,13 @@
         }, 
         {
             "location": "/chapter1/project1/", 
-            "text": "Blinkie, the First Project\n\n\nObjective\n\n\nWe will 
show you how you can use eggs from a nest on Mynewt to make an LED on a target 
board blink. We will call it \n Project Blinky\n. The goals of this tutorial 
are threefold:\n\n\n\n\nFirst, you will learn how to set up your environment to 
be ready to use the various eggs that you will download from Mynewt. 
\n\n\nSecond, we will walk you through a download of eggs for building and 
testing \non a simulated target\n on a non-Windows machine.\n\n\nThird, you 
will download eggs and use tools to create a runtime image for a board to 
\nmake its LED blink\n. \n\n\n\n\nIf you want to explore even further, you can 
try to upload the image to the board's flash memory and have it \nboot from 
flash\n!\n\n\nWhat you need\n\n\n\n\nSTM32-E407 development board from 
Olimex.\n\n\nARM-USB-TINY-H connector with JTAG interface for debugging ARM 
microcontrollers (comes with the ribbon cable to hook up to the board)\n\n\nUSB 
A-B type 
 cable to connect the debugger to your personal computer\n\n\nPersonal 
Computer\n\n\n\n\nThe instructions assume the user is using a Bourne-compatible 
shell (e.g. bash or zsh) on your computer. You may already have some of the 
required packages on your machine.  In that \ncase, simply skip the 
corresponding installation step in the instructions under \nGetting your Mac 
Ready\n or \nGetting your Ubuntu machine Ready\n or \nGetting your Windows 
machine Ready\n. While the given instructions should work on other versions, 
they have been tested for the three specific releases of operating systems 
noted here:\n\n\n\n\nMac: OS X Yosemite Version 10.10.5\n\n\nLinux: Ubuntu 
14.10 (Utopic Unicorn)\n\n\nWindows: Windows 10\n\n\n\n\nGetting your Mac 
Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make 
sure you have joined the \"Newt Operating System\" 
organization.\n\n\n\n\nInstalling Homebrew to ease installs on OS 
X\n\n\n\n\n\n\nDo you have Homebrew? If not, open a t
 erminal on your Mac and paste the following at a Terminal prompt. It will ask 
you for your sudo password.\n\n\n$ ruby -e \"$(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n\n\nAlternatively,
 you can just extract (or \ngit clone\n) Homebrew and install it to 
\n/usr/local\n.\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory under it. Set the GOPATH environment 
variable to this directory and then proceed to create the directory for cloning 
the newt to
 ol repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export 
GOPATH=`pwd`\n\n\n\nNote that you need to add export statements to 
~/.bash_profile to export variables permanently.\n    $ vi 
~/.bash_profile\n\n\n\n\n\n\nThe next step is to set up the repository for the 
package building tool \"newt\" on your local machine. First create the 
appropriate directory for it and then clone the newt tool repository from 
github.com into this newly created directory. Check the installation.\n\n\n$ 
mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ 
git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ 
ls\nGodeps                  README.md               coding_style.txt        
newt.go\nLICENSE                 cli                     
design.txt\n\n\n\n\n\n\n\nInstalling Go and Godep\n\n\n\n\n\n\nNext you will 
use brew to install go. The summary message at the end of the installation 
should indicate that it is installed in the /usr/local/Cell
 ar/go/ directory. You will use the go command 'install' to compile and install 
packages (called eggs in the Mynewt world) and dependencies. \n\n\n$ brew 
install go\n==\n \n==\n \n==\n *Summary*\n\ud83c\udf7a  
/usr/local/Cellar/go/1.5.1: 5330 files, 273M\n$ cd 
$GOPATH/src/github.com/mynewt/newt\n\n\n\nAlternatively, you can download the 
go package directly from (https://golang.org/dl/) instead of brewing it. 
Install it in /usr/local directory.\n\n\n\n\n\n\nNow you will get the godep 
package. Return to the go directory level and get godep. Check for it in the 
bin subdirectory. Add the go environment to path. Make sure it is added to your 
.bash_profile.\n\n\n$ cd $GOPATH\n$ go get github.com/tools/godep\n$ ls\nbin    
 pkg     src\n$ ls bin\ngodep\n$ export 
PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nUse the go command 'install' to compile 
and install packages and dependencies. In preparation for the install, you may 
use the godep command 'restore' to check out listed dependency versions in $
 GOPATH and link all the necessary files. Note that you may have to go to the 
\n~/dev/go/src/github.com/mynewt/newt\n directory to successfully run the 
restore command (e.g. on certain distributions of Linux). You may also have to 
do a \ngo get\n before the restore to make sure all the necessary packages and 
dependencies are correct.\n\n\n$ cd ~/dev/go/src/github.com/mynewt/newt\n$ go 
get\n$ ~/dev/go/bin/godep restore\n$ go install\n\n\n\n\n\n\n\nBuilding the 
Newt tool\n\n\n\n\nYou will now use go to run the newt.go program to build the 
newt tool. You will have to use \ngo build\n command which compiles and writes 
the resulting executable to an output file named \nnewt\n. However, it does not 
install the results along with its dependencies in $GOPATH/bin (for that you 
will need to use \ngo install\n). Now try running newt using the compiled 
binary. For example, check for the version number by typing 'newt version'. See 
all the possible commands available to a user of newt by typing '
 newt -h'.\n\n\n\n\nNote: If you are going to be be modifying the newt tool 
itself often and wish to compile the program every time you call it, you may 
want to store the command in a variable in your .bash_profile. So type in 
\nexport newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your 
.bash_profile and execute it by calling \n$newt\n at the prompt instead of 
\nnewt\n. Don't forget to reload the updated bash profile by typing \nsource 
~/.bash_profile\n at the prompt! Here, you use \ngo run\n which runs the 
compiled binary directly without producing an executable.\n\n\n    $ go run 
%GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd 
~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md    
   coding_style.txt    newt\n    LICENSE         cli         design.txt      
newt.go\n    $ newt version\n    Newt version:  1.0\n    $ newt -h\n    Newt 
allows you to create your own embedded project based on the Mynewt\n    
operating system. Newt provides 
 both build and package management in a\n    single tool, which allows you to 
compose an embedded workspace, and set\n    of projects, and then build the 
necessary artifacts from those projects.\n    For more information on the 
Mynewt operating system, please visit\n    
https://www.github.com/mynewt/documentation.\n\n    Please use the newt help 
command, and specify the name of the command\n    you want help for, for help 
on how to use a specific command\n\n    Usage:\n     newt [flags]\n     newt 
[command]\n\n    Examples:\n     newt\n     newt help [\ncommand-name\n]\n      
 For help on \ncommand-name\n.  If not specified, print this message.\n\n\n    
Available Commands:\n     version     Display the Newt version number.\n     
target      Set and view target information\n     egg         Commands to list 
and inspect eggs on a nest\n     nest        Commands to manage nests \n 
clutches (remote egg repositories)\n     help        Help about any command\n\n 
   Flags:\n     -h, --help=
 false: help for newt\n     -l, --loglevel=\"WARN\": Log level, defaults to 
WARN.\n     -q, --quiet=false: Be quiet; only display error output.\n     -s, 
--silent=false: Be silent; don't output anything.\n     -v, --verbose=false: 
Enable verbose output when executing commands.\n\n\n    Use \"newt help 
[command]\" for more information about a command.\n\n\n\n\n\nWithout creating a 
project repository you can't do a whole lot with the Newt tool. So you'll have 
to wait till you have downloaded a nest to try out the tool. \n\n\n\n\nGetting 
the debugger ready\n\n\n\n\n\n\nBefore you start building nests and hatching 
eggs, you need to do one final step in the environment preparation - install 
gcc / libc that can produce 32-bit executables. So, first install gcc. You will 
see the brew steps and a final summary confirming install.\n\n\n$ brew install 
gcc\n...\n...\n==\n Summary\n\ud83c\udf7a  /usr/local/Cellar/gcc/5.2.0: 1353 
files, 248M\n\n\n\n\n\n\n\nARM maintains a pre-built GNU toolchain 
 with a GCC source branch targeted at Embedded ARM Processors namely 
Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check the 
version installed. Make sure that the symbolic link installed by Homebrew 
points to the correct version of the debugger. If not, you can either change 
the symbolic link using the \"ln -f -s\" command or just go ahead and try with 
the version it points to!\n\n\n$ brew tap PX4/homebrew-px4\n$ brew update\n$ 
brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  
\narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 
(release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free 
Software Foundation, Inc.\nThis is free software; see the source for copying 
conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR 
A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 
aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n 
/usr/local/Cell
 ar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\nNote: If no 
version is specified, brew will install the latest version available. StackOS 
will eventually work with multiple versions available including the latest 
releases. However, at present we have tested only with this version and 
recommend it for getting started. \n\n\n\n\n\n\nYou have to install OpenOCD 
(Open On-Chip Debugger) which is an open-source software that will allow you to 
interface with the JTAG debug connector/adaptor for the Olimex board. It lets 
you program, debug, and test embedded target devices which, in this case, is 
the Olimex board. Use brew to install it. Brew adds a simlink 
/usr/local/bin/openocd to the openocd directory in the Cellar.\n\n\n$ brew 
install open-ocd\n$ which openocd\n/usr/local/bin/openocd\n$ ls -l $(which 
openocd)\nlrwxr-xr-x  1 \nuser\n  admin  36 Sep 17 16:22 /usr/local/bin/openocd 
-\n ../Cellar/open-ocd/0.9.0/bin/openocd\n\n\n\n\n\n\n\nProceed to the 
\nBuilding test code on 
 simulator\n section.\n\n\n\n\n\n\nGetting your Ubuntu machine 
Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make 
sure you have joined the \"Newt Operating System\" 
organization.\n\n\n\n\nInstalling some prerequisites\n\n\n\n\nInstall git, 
libcurl, and the go language if you do not have them already.\n$ sudo apt-get 
install git \n$ sudo apt-get install libcurl4-gnutls-dev \n$ sudo apt-get 
install golang\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory u
 nder it. Set the GOPATH environment variable to this directory and then 
proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd 
$HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=$PWD\n\n\n\nNote that 
you need to add export statements to ~/.bashrc (or equivalent) to export 
variables permanently.\n\n\n\n\n\n\nNext, install godep. Note that the 
following command produces no output.\n\n\n$ go get 
github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package 
building tool \"newt\" on your local machine. First create the appropriate 
directory for it and then clone the newt tool repository from github.com into 
this newly created directory. Check the contents of the directory.\n\n\n$ mkdir 
-p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git 
clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps   
               README.md               coding_style.txt        newt.go\nLICENSE 
                cli    
                  design.txt\n\n\n\n\n\n\n\nUse the go command 'install' to 
compile and install packages and dependencies. Add go environment to path. 
Again, to make the export variable permanent, add it to your ~/.bashrc (or 
equivalent) file.\n\n\n$ $GOPATH/bin/godep restore \n$ go get \n$ go install 
\n$ export PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nBuilding the newt 
tool\n\n\n\n\nYou will now use go to run the newt.go program to build the newt 
tool. You will have to use \ngo build\n command which compiles and writes the 
resulting executable to an output file named \nnewt\n. However, it does not 
install the results along with its dependencies in $GOPATH/bin (for that you 
will need to use \ngo install\n). Now try running newt using the compiled 
binary. For example, check for the version number by typing 'newt version'. See 
all the possible commands available to a user of newt by typing 'newt 
-h'.\n\n\n\n\nNote: If you are going to be be modifying the newt tool itself 
often and wish to
  compile the program every time you call it, you may want to store the command 
in a variable in your .bash_profile. So type in \nexport newt=\"go run 
$GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your ~/.bashrc (or 
equivalent) and execute it by calling \n$newt\n at the prompt instead of 
\nnewt\n. Here, you use \ngo run\n which runs the compiled binary directly 
without producing an executable.\n\n\n    $ go build 
%GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd 
~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md    
   coding_style.txt    newt\n    LICENSE         cli         design.txt      
newt.go\n    $ newt version\n    Newt version:  1.0\n    $ newt -h\n    Newt 
allows you to create your own embedded project based on the Mynewt\n    
operating system. Newt provides both build and package management in a\n    
single tool, which allows you to compose an embedded workspace, and set\n    of 
projects, and then build the necessary artifacts from those p
 rojects.\n    For more information on the Mynewt operating system, please 
visit\n    https://www.github.com/mynewt/documentation.\n\n    Please use the 
newt help command, and specify the name of the command\n    you want help for, 
for help on how to use a specific command\n\n    Usage:\n     newt [flags]\n    
 newt [command]\n\n    Examples:\n     newt\n     newt help 
[\ncommand-name\n]\n       For help on \ncommand-name\n.  If not specified, 
print this message.\n\n\n    Available Commands:\n     version     Display the 
Newt version number.\n     target      Set and view target information\n     
egg         Commands to list and inspect eggs on a nest\n     nest        
Commands to manage nests \n clutches (remote egg repositories)\n     help       
 Help about any command\n\n    Flags:\n     -h, --help=false: help for newt\n   
  -l, --loglevel=\"WARN\": Log level, defaults to WARN.\n     -q, 
--quiet=false: Be quiet; only display error output.\n     -s, --silent=false: 
Be silent; don't
  output anything.\n     -v, --verbose=false: Enable verbose output when 
executing commands.\n\n\n    Use \"newt help [command]\" for more information 
about a command.\n\n\n\n\n\nWithout creating a project repository you can't do 
a whole lot with the Newt tool. So you'll have to wait till you have downloaded 
a nest to try out the tool. \n\n\n\n\nGetting the debugger 
ready\n\n\n\n\n\n\nBefore you start building nests and hatching eggs, you need 
to do one final step in the environment preparation - install gcc / libc that 
can produce 32-bit executables. You can install these as follows: \n\n\n$ sudo 
apt-get install gcc-multilib libc6-i386\n\n\n\n\n\n\n\nFor the LED project on 
the Olimex hardware, you have to install gcc for AM 4.9.3.  This package can be 
installed with apt-get as documented \nhere\n.\n\n\n$ sudo apt-get remove 
binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo add-apt-repository 
ppa:terry.guo/gcc-arm-embedded \n$ sudo apt-get update \n$ sudo apt-get install 
gcc-arm-none
 -eabi\n\n\n\n\n\n\n\nAnd finally, you have to install OpenOCD (Open On-Chip 
Debugger) which is an open-source software that will allow you to interface 
with the JTAG debug connector/adaptor for the Olimex board. It lets you 
program, debug, and test embedded target devices which, in this case, is the 
Olimex board. You have to acquire OpenOCD 0.8.0. \n\n\nIf you are running 
Ubuntu 15.x, then you are in luck and you can simply run: \n\n\n$ sudo apt-get 
install openocd\n\n\n\nOther versions of Ubuntu may not have the correct 
version of openocd available.  In this case, you should download the openocd 
0.8.0 package from \nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n. The 
direct link to the amd64 build is 
\nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n. 
\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator\n 
section.\n\n\n\n\n\n\nGetting your Windows machine Ready\n\n\nGetting an 
account on GitHub\n\n\n\n\nGet an account on GitHub. Make sure you have
  joined the \"Newt Operating System\" organization.\n\n\n\n\nInstalling some 
prerequisites\n\n\n\n\n\n\nYou have to install the following if you do not have 
them already.  The steps below indicate specific folders where each of these 
programs should be installed. You can choose different locations, but the 
remainder of this\ntutorial for a Windows machine assumes the specified 
folders.    \n\n\n\n\nwin-builds-i686\n\n\nwin-builds-x86_64\n\n\nMSYS\n\n\ngcc 
for ARM\n\n\nopenocd\n\n\nzadig\n\n\ngit\n\n\n\n\ngo\n\n\n\n\nwin-builds 
(mingw64) 1.5 for i686\n\n\n\n\nDownload from 
\nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. 
Install at: \"C:\\win-builds-i686\".\n\n\nBe sure to click the i686 option (not 
x86_64). The defaults for all other options are OK. The installer will want to 
download a bunch of additional packages. They are not all necessary, but it is 
simplest to just accept the defaults.\n\n\n\n\nwin-builds (mingw64) 1.5 for 
x86_64\n\n\n\n\nDownload from
  \nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. 
Install at \"C:\\win-builds-x86_64\"\n\n\nRun the installer a second time, but 
this time click the x86_64 option, NOT i686.  The defaults for all other 
options are OK.\n\n\n\n\nMSYS\n\n\n\n\nStart your download from 
\nhttp://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip\n\n\nUnzip
 to \"C:\\msys\"\n\n\n\n\ngcc for ARM, 4.9.3\n\n\n\n\nDownload the Windows 
installer from \nhttps://launchpad.net/gcc-arm-embedded/+download\n and install 
at \"C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 
2015q3\".\n\n\n\n\nOpenOCD 0.8.0\n\n\n\n\nDownload OpenOCD 0.8.0 from 
\nhttp://www.freddiechopin.info/en/download/category/4-openocd\n. Unzip to 
\"C:\\openocd\".\n\n\n\n\nZadig 2.1.2\n\n\n\n\nDownload it from 
\nhttp://zadig.akeo.ie\n and install it at 
\"C:\\zadig\".\n\n\n\n\nGit\n\n\n\n\nClick on 
\nhttps://git-scm.com/download/win\n to star
 t the download. Install at \"C:\\Program Files (x86)\\Git\". Specify the \"Use 
Git from the Windows Command Prompt\" option.  The defaults for all other 
options are OK.\n\n\n\n\nGo\n\n\n\n\nDownload the release for Microsoft Windows 
from \nhttps://golang.org/dl/\n and install it 
\"C:\\Go\".\n\n\n\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory under it. Set the GOPATH environment 
variable to this directory and then proceed to create the directory for cloning 
the newt tool reposit
 ory.\n\n\n$ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go\n\n\n\n\n\n\n\nSet the 
following user environment variables using the steps outlined 
here.\n\n\n\n\nGOPATH: C:\\dev\\go\n\n\nPATH: C:\\Program Files (x86)\\GNU 
Tools ARM Embedded\\4.9 
2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin\n\n\n\n\nSteps:\n\n\n\n\nRight-click
 the start button\n\n\nClick \"Control panel\"\n\n\nClick \"System and 
Security\"\n\n\nClick \"System\"\n\n\nClick \"Advanced system settings\" in the 
left panel\n\n\nClick the \"Envoronment Variables...\" button\n\n\nThere will 
be two sets of environment variables: user variables\n  in the upper half of 
the screen, and system variables in the lower\n  half.  Configuring the user 
variables is recommended and tested \n  (though system variables will work as 
well).\n\n\n\n\n\n\n\n\nNext, install godep. Note that the following command 
produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up 
the repository fo
 r the package building tool \"newt\" on your local machine. First create the 
appropriate directory for it and then clone the newt tool repository from 
github.com into this newly created directory. Check the contents of the 
directory.\n\n\n$ mkdir %GOPATH%\\src\\github.com\\mynewt\n$ cd 
%GOPATH%\\src\\github.com\\mynewt\n$ git clone 
https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps         
         README.md               coding_style.txt        newt.go\nLICENSE       
          cli                     design.txt\n\n\n\n\n\n\n\nUse the go command 
'install' to compile and install packages and dependencies. Add go environment 
to path. Again, to make the export variable permanent, add it to your ~/.bashrc 
(or equivalent) file.\n\n\n$ %GOPATH%\\bin\\godep restore \n$ go get \n$ go 
install\n\n\n\n\n\n\n\nBuilding the newt tool\n\n\n\n\n\n\nYou will now use go 
to run the newt.go program to build the newt tool. You will have to use \ngo 
build\n command which compiles an
 d writes the resulting executable to an output file named \nnewt\n. However, 
it does not install the results along with its dependencies in $GOPATH/bin (for 
that you will need to use \ngo install\n). Now try running newt using the 
compiled binary. For example, check for the version number by typing 'newt 
version'. See all the possible commands available to a user of newt by typing 
'newt -h'.\n\n\nNote: If you are going to be be modifying the newt tool itself 
often and wish to compile the program every time you call it, you may want to 
define the newt environment variable that allows you to execute the command via 
\n%newt%\n. Use \nset newt=go run 
%GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n or set it from the GUI. 
Here, you use \ngo run\n which runs the compiled binary directly without 
producing an executable.\n\n\n$ go build 
%GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n$ cd 
~/dev/go/src/github.com/mynewt/newt\n$ dir\nGodeps          README.md       
coding_style.txt    ne
 wt\nLICENSE         cli         design.txt      newt.go\n$ newt version\nNewt 
version:  1.0\n$ newt -h\nNewt allows you to create your own embedded project 
based on the Mynewt\noperating system. Newt provides both build and package 
management in a\nsingle tool, which allows you to compose an embedded 
workspace, and set\nof projects, and then build the necessary artifacts from 
those projects.\nFor more information on the Mynewt operating system, please 
visit\nhttps://www.github.com/mynewt/documentation.\n\nPlease use the newt help 
command, and specify the name of the command\nyou want help for, for help on 
how to use a specific command\n\nUsage:\n newt [flags]\n newt 
[command]\n\nExamples:\n newt\n newt help [\ncommand-name\n]\n   For help on 
\ncommand-name\n.  If not specified, print this message.\n\nAvailable 
Commands:\n version     Display the Newt version number.\n target      Set and 
view target information\n egg         Commands to list and inspect eggs on a 
nest\n nest        
 Commands to manage nests \n clutches (remote egg repositories)\n help        
Help about any command\n\nFlags:\n -h, --help=false: help for newt\n -l, 
--loglevel=\"WARN\": Log level, defaults to WARN.\n -q, --quiet=false: Be 
quiet; only display error output.\n -s, --silent=false: Be silent; don't output 
anything.\n -v, --verbose=false: Enable verbose output when executing 
commands.\n\nUse \"newt help [command]\" for more information about a 
command.\n\n\n\n\n\n\n\nWithout creating a project repository you can't do a 
whole lot with the Newt tool. So you'll have to wait till you have downloaded a 
nest to try out the tool. \n\n\n\n\n\n\nGetting the debugger 
ready\n\n\n\n\n\n\nUse Zadig to configure the USB driver for your Olimex 
debugger.  If your debugger is already set up, you can skip this 
step.\n\n\n\n\nPlug in your Olimex debugger.\n\n\nStart Zadig.\n\n\nCheck the 
Options -\n List All Devices checkbox.\n\n\nSelect \"Olimex OpenOCD JTAG 
ARM-USB-TINY-H\" in the dropdown menu.\n\n\nSe
 lect the \"WinUSB\" driver.\n\n\nClick the \"Install Driver\" 
button.\n\n\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator on 
Windows machine\n section.\n\n\nNote: Currently, the simulator cannot be run in 
the Windows machine. We are working on it. In the meantime proceed to the 
\nMaking an LED blink\n on the Olimex hardware directly.\n\n\nBuilding test 
code on simulator\n\n\nNote: Currently, the simulator cannot be run in the 
Windows machine. We are working on it. If you are on a Windows machine proceed 
to the \nMaking an LED blink\n on the Olimex hardware 
directly.\n\n\n\n\n\n\nFirst, you have to create a repository for the project 
i.e. build your first nest! Go to ~/dev and clone the larva repository from 
github. The URL used below is the HTTPS clone URL from the github.com 
repository for the Newt Operating System. \n\n\nSubstitute DOS commands for 
Unix commands as necessary in the following steps if your machine is running 
Windows. The newt tool commands do not chan
 ge.\n\n\n$ cd ~/dev \n$ git clone https://github.com/mynewt/larva.git\n$ 
ls\ngo  larva\n$ cd larva\n$ ls\nLICENSE         hw          project\nREADME.md 
      libs            repo.yml\ncompiler        pkg         
setup-remotes.sh\n\n\n\n\n\n\n\nYou will now create a new project using the 
newt tool. You can either use the compiled binary \nnewt\n or run the newt.go 
program using \n$newt\n (assuming you have stored the command in a variable in 
your .bash_profile or .bashrc). When you do a \nnewt target show\n or \n$newt 
target show\n it should list all the projects you have created so far. \n\n\n$ 
newt target create sim_test\nCreating target sim_test\nTarget sim_test 
sucessfully created!\n$ newt target show\nsim_test\n    name: sim_test\n    
arch: sim\n\n\n\n\n\n\n\nNow continue to populate and build out the sim 
project.\n\n\n$ newt target set sim_test project=test\nTarget sim_test 
successfully set project to test\n$ newt target set sim_test 
compiler_def=debug\nTarget sim_test success
 fully set compiler_def to debug\n$ newt target set sim_test 
bsp=hw/bsp/native\nTarget sim_test successfully set bsp to hw/bsp/native\n$ 
newt target set sim_test compiler=sim\nTarget sim_test successfully set 
compiler to sim\n$ newt target show sim_test\nsim_test\n    arch: sim\n    
project: test\n    compiler_def: debug\n    bsp: hw/bsp/native\n    compiler: 
sim\n    name: sim_test\n\n\n\n\n\n\n\nConfigure newt to use the gnu build 
tools native to OS X or linux. In order for sim to work properly, it needs to 
be using 32-bit gcc (gcc-5). Replace \n~/dev/larva/compiler/sim/compiler.yml 
with the compiler/sim/osx-compiler.yml or linux-compiler.yml file, depending on 
the system. \n\n\nFor a Mac OS X environment:\n\n\n$ cp 
compiler/sim/osx-compiler.yml compiler/sim/compiler.yml\n\n\n\nFor a Linux 
machine:\n\n\n$ cp compiler/sim/linux-compiler.yml 
compiler/sim/compiler.yml\n\n\n\n\n\n\n\nNext, create (hatch!) the eggs for 
this project using the newt tool - basically, build the packages for
  it. You can specify the VERBOSE option if you want to see the gory details. 
\n\n\n$ $newt target build sim_test\nSuccessfully run!\n\n\n\nYou can specify 
the VERBOSE option if you want to see the gory details.\n\n\n$newt -l VERBOSE 
target build sim_test\n2015/09/29 09:46:12 [INFO] Building project 
test\n2015/09/29 09:46:12 [INFO] Loading Package 
/Users/aditihilbert/dev/larva/libs//bootutil...\n2015/09/29 09:46:12 [INFO] 
Loading Package /Users/aditihilbert/dev/larva/libs//cmsis-core...\n2015/09/29 
09:46:12 [INFO] Loading Package 
/Users/aditihilbert/dev/larva/libs//ffs..\n...\nSuccessfully 
run!\n\n\n\n\n\n\n\nTry running the test suite executable inside this project 
and enjoy your first successful hatch.\n\n\n$ 
./project/test/bin/sim_test/test.elf\n[pass] 
os_mempool_test_suite/os_mempool_test_case\n[pass] 
os_mutex_test_suite/os_mutex_test_basic\n[pass] 
os_mutex_test_suite/os_mutex_test_case_1\n[pass] 
os_mutex_test_suite/os_mutex_test_case_2\n[pass] 
os_sem_test_suite/os_sem_test_basic
 \n[pass] os_sem_test_suite/os_sem_test_case_1\n[pass] 
os_sem_test_suite/os_sem_test_case_2\n[pass] 
os_sem_test_suite/os_sem_test_case_3\n[pass] 
os_sem_test_suite/os_sem_test_case_4\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_1\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_2\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_3\n[pass] gen_1_1/ffs_test_unlink\n[pass] 
gen_1_1/ffs_test_rename\n[pass] gen_1_1/ffs_test_truncate\n[pass] 
gen_1_1/ffs_test_append\n[pass] gen_1_1/ffs_test_read\n[pass] 
gen_1_1/ffs_test_overwrite_one\n[pass] gen_1_1/ffs_test_overwrite_two\n[pass] 
gen_1_1/ffs_test_overwrite_three\n...\n...\n[pass] 
boot_test_main/boot_test_vb_ns_11\n\n\n\n\n\n\n\nBuilding test code on 
simulator on Windows machine\n\n\nComing soon.\n\n\nMaking an LED 
blink\n\n\nPreparing the Software\n\n\n\n\n\n\nMake sure the PATH environment 
variable includes the $HOME/dev/go/bin directory (or C:\\%GOPATH%\\bin on 
Windows machine). \n\n\nSubstitute DOS commands for Unix commands as necessary 
in the fol
 lowing steps if your machine is running Windows. The newt tool commands do not 
change.\n\n\n\n\n\n\nAgain, you first have to create a repository for the 
project. Go to the ~dev/larva directory and build out a second project inside 
larva. The project name is \"blinky\", in keeping with the objective. Starting 
with the target name, you have to specify the different aspects of the project 
to build the right package for the board. In this case that means setting the 
architecture (arch), compiler, board support package (bsp), project, and 
compiler mode.\n\n\n$ newt target create blinky\nCreating target blinky\nTarget 
blinky sucessfully created!\n$ newt target set blinky arch=cortex_m4\nTarget 
blinky successfully set arch to arm\n$ newt target set blinky 
compiler=arm-none-eabi-m4\nTarget blinky successfully set compiler to 
arm-none-eabi-m4\n$ newt target set blinky project=blinky\nTarget blinky 
successfully set project to blinky\n$ newt target set blinky 
compiler_def=debug\nTarget blinky 
 successfully set compiler_def to debug\n$ newt target set blinky 
bsp=hw/bsp/olimex_stm32-e407_devboard\nTarget blinky successfully set bsp to 
hw/bsp/olimex_stm32-e407_devboard\n$ newt target show blinky\nblinky\n    
compiler: arm-none-eabi-m4\n    project: blinky\n    compiler_def: debug\n    
bsp: hw/bsp/olimex_stm32-e407_devboard\n    name: blinky\n    arch: 
cortex_m4\n\n\n\n\n\n\n\nNow you have to build the image package. Once built, 
you can find the executable \"blinky.elf\" in the project directory at 
~/dev/larva/project/blinky/bin/blink. It's a good idea to take a little time to 
understand the directory structure.\n\n\n$ newt target build blinky\nBuilding 
target blinky (project = blinky)\nCompiling case.c\nCompiling 
suite.c\n...\nSuccessfully run!\n$ ls\nLICENSE     clutch.yml  hw      nest.yml 
   project\nREADME.md   compiler    libs        net     scripts\n$ cd 
project\n$ ls\nbin2img     bletest     blinky      boot        ffs2native  
test\n$ cd blinky\n$ ls\nbin     blinky.y
 ml  egg.yml     src\n$ cd bin\n$ ls\nblinky\n$ cd blinky\n$ ls\nblinky.elf  
blinky.elf.bin  blinky.elf.cmd  blinky.elf.lst  
blinky.elf.map\n\n\n\n\n\n\n\nCheck that you have all the scripts needed to get 
OpenOCD up and talking with the project's specific hardware. Check whether you 
already have the scripts in your \n/usr/share/openocd/scripts/\n directory as 
they may have been part of the openocd download. If yes, you are all set and 
can proceed to preparing the hardware. If not, continue with this 
step.\n\n\nCurrently, the following 5 files are required. They are likely to be 
packed into a .tar file and made available under mynewt on github.com. Unpack 
it in the blinky directory using \ntar xvfz\n command. Go into the openocd 
directory created and make sure that the gdb-8888.cfg file indicates the 
correct file ('blinky.elf' in this case) to load and its full path. 
Specifically, add 'load ~/dev/larva/project/main/bin/blink/main.elf' and 
'symbol-file ~/larva/larva/project/main/bin/bl
 ink/main.elf' to this file. Alternatively, you could load these files from 
within the debugger (gdb) as explained later in the project when you connect to 
the board using openocd.   
\n\n\n\n\nocd-8888.cfg\n\n\nolimex-arm-usb-tiny-h-ftdi.cfg\n\n\narm-gdb.cfg\n\n\ngdb-dev_test-8888.cfg\n\n\nstm32f4x.cfg
  \n\n\n\n\nCheck the arm-gdb.cfg file and see whether the executable you 
created in the previous step is specified as the file to be loaded to the 
board. You have the choice of specifying the target and load from within the 
gdb debugger (Section \"Let's Go\", Step 2) instead.\n\n\n$ cat 
gdb-8888.cfg\necho \\n*** Set target charset ASCII\\n\nset target-charset 
ASCII\n#set arm fallback-mode arm\n#echo \\n*** set arm fallback-mode arm 
***\\n\necho \\n*** Connecting to OpenOCD over port #8888 ***\\n\ntarget remote 
localhost:8888\necho \\n*** loading nic.out.elf ***\\n\nload 
~/dev/larva/project/main/bin/blink/main.elf\nsymbol-file 
~/dev/larva/project/main/bin/blink/main.elf \n#echo *** Set 
 breakpoint and run to main() to sync with gdb ***\\n\n#b 
main\n#continue\n#delete 1\n\n#set arm fallback-mode thumb\n#echo \\n*** set 
arm fallback-mode thumb ***\\n\\n\n\n\n\nNote that an OpenOCD configuration 
script is available from Olimex for the STM32-E407 development board e.g. at 
\nhttps://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg\n, 
however getting it to work with different versions of OpenOCD and gcc could get 
tricky. [\nThis will be simplified eventually into a consolidated single action 
step instead of manual tweaks currently required\n]\n\n\n\n\n\n\nPreparing the 
hardware to boot from embedded SRAM\n\n\n\n\n\n\nLocate the boot jumpers on the 
board.\n\n\n\n\n\n\n\n\n\nB1_1/B1_0 and B0_1/B0_0 are PTH jumpers which can be 
moved relatively easy. Note that the markings on the board may not always be 
accurate. Always refer to the manual for the correct positioning of jumpers in 
case of doubt. The two jumpers must always be moved together \u2013 they are r
 esponsible for the boot mode if bootloader is present. The board can search 
for bootloader on three places \u2013 User Flash Memory, System Memory or the 
Embedded SRAM. We will configure it to boot from SRAM by jumpering B0_1 and 
B1_1.\n\n\n\n\n\n\nConnect USB-OTG#2 in the picture above to a USB port on your 
computer (or a powered USB hub to make sure there is enough power available to 
the board). \n\n\n\n\n\n\nConnect the JTAG connector to the SWD/JTAG interface 
on the board. The other end of the cable should be connected to the USB port or 
hub of your computer.\n\n\n\n\n\n\nThe red PWR LED should be lit. 
\n\n\n\n\n\n\nLet's Go!\n\n\n\n\n\n\nGo into the openocd directory and start an 
OCD session. You should see some status messages are shown below. Check the 
value of the msp (main service pointer) register. If it is not 0x10010000 as 
indicated below, you will have to manually set it after you open the gdp tool 
to load the image on it (next step). Note the \n-c \"reset halt\"\n flag
  that tells it to halt after opening the session. It will now require a manual 
\"continue\" command from the GNU debugger in step 3. \n\n\n$ cd 
~/dev/larva/project/blinky/bin/blinky/openocd\n$ openocd -f 
olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c \"reset 
halt\" \nOpen On-Chip Debugger 0.8.0 (2015-09-22-18:21)\nLicensed under GNU GPL 
v2\nFor bug reports, read\n    
http://openocd.sourceforge.net/doc/doxygen/bugs.html\nInfo : only one transport 
option; autoselect 'jtag'\nadapter speed: 1000 kHz\nadapter_nsrst_assert_width: 
500\nadapter_nsrst_delay: 100\njtag_ntrst_delay: 100\ncortex_m reset_config 
sysresetreq\nInfo : clock speed 1000 kHz\nInfo : JTAG tap: stm32f4x.cpu 
tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG 
tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 
0x0)\nInfo : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\nInfo : 
JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, p
 art: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 
0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\ntarget state: halted\ntarget 
halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 
0x2000053c msp: 0x10010000\n\n\n\nIf your scripts are in 
\n/usr/share/openocd/scripts/\n directory you may need to provide the full path 
information in the arguments.\n\n\n$ openocd -f 
/usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f 
/usr/share/openocd/scripts/target/stm32f4x.cfg -c \"gdb_port 8888; init; reset 
halt\"\n\n\n\nIf you are on a Windows machine, connect to the board with 
openocd using the following:\n\n\n$ cd C:\\openocd\n$ bin\\openocd-0.8.0.exe -f 
scripts\\interface\\ftdi\\olimex-arm-usb-tiny-h.cfg -f 
scripts\\target\\stm32f4x.cfg -c \"gdb_port 8888; init; reset 
halt\"\n\n\n\n\n\n\n\nOpen a new terminal window and run the GNU debugger for 
ARM. Specifying the script gdb-8888.cfg tells it what image to load. You should 
now have a (
 gdb) prompt inside the debugger.\n\n\n$ cd 
~/dev/larva/project/blinky/bin/blinky/openocd\n$ arm-none-eabi-gdb -x 
gdb-8888.cfg \nGNU gdb (GNU Tools for ARM Embedded Processors) 
7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense 
GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis 
is free software: you are free to change and redistribute it.\nThere is NO 
WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show 
warranty\" for details.\nThis GDB was configured as 
\"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\nType \"show 
configuration\" for configuration details.\nFor bug reporting instructions, 
please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual 
and other documentation resources online 
at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type 
\"help\".\nType \"apropos word\" to search for commands related to 
\"word\".\n\n*** Set target charset ASCII\n\n*** Connect
 ing to OpenOCD over port #8888 ***\n0x20000580 in ?? ()\n\n*** loading image 
***\nLoading section .text, size 0x65d4 lma 0x20000000\nLoading section 
.ARM.extab, size 0x24 lma 0x200065dc\nLoading section .ARM.exidx, size 0xd8 lma 
0x20006600\nLoading section .data, size 0x8f8 lma 0x200066d8\nStart address 
0x2000053c, load size 28624\nTransfer rate: 78 KB/sec, 2862 
bytes/write.\n(gdb)\n\n\n\nInstead of the script, you could connect to the 
openocd process and tell the debugger what image to load from within gdb (which 
is 'blinky.elf' in this case). Below is an example input/output when doing it 
on a Windows machine. Note the forward 
slashes.\n\n\nC:\\dev\\larva\narm-none-eabi-gdb -q\n(gdb) target remote 
localhost:8888\nRemote debugging using localhost:8888\n0xb064f054 in ?? 
()\n...\n(gdb) load C:/dev/larva/project/blinky/bin/blinky/blinky.elf\nLoading 
section .text, size 0x6778 lma 0x20000000\nLoading section .ARM.extab, size 
0x18 lma 0x20006778\nLoading section .ARM.exidx, size 0xc8 lm
 a 0x20006790\nLoading section .data, size 0x8f8 lma 0x20006858\nStart address 
0x20000528, load size 29008\nTransfer rate: 72 KB/sec, 2900 bytes/write.\n(gdb) 
symbol-file C:/dev/larva/project/blinky/bin/blinky/blinky.elf\nReading symbols 
from 
C:/dev/larva/project/blinky/bin/blinky/blinky.elf...done.\n\n\n\n\n\n\n\nFrom 
within gdb check the registers. Set the msp register for the main stack pointer 
to the expected value as shown here. \n\n\nFinally, hit \nc\n to continue... 
and your green LED should blink!\n\n\n(gdb) info reg all\n r0             0x0 
0\n r1             0x0 0\n r2             0x0 0\n r3             0x0 0\n r4     
        0x0 0\n r5             0x0 0\n r6             0x0 0\n r7             
0x0 0\n r8             0x0 0\n r9             0x0 0\n r10            0x0 0\n 
r11            0x0 0\n r12            0x0 0\n sp             0x10010000  
0x10010000\n lr             0xffffffff  -1\n pc             0x20000580  
0x20000580 \nReset_Handler\n\n xPSR           0x1000000   16777
 216\n msp            0x10010000  0x10010000\n psp            0x0 0x0\n primask 
       0x0 0\n basepri        0x0 0\n faultmask      0x0 0\n control        0x0 
0\n (gdb) set $msp=0x10010000\n (gdb) c\n 
Continuing.\n\n\n\n\n\n\n\nVoil\u00e0! The board's LED should be blinking at 1 
Hz.\n\n\n\n\n\n\nUsing flash to make LED blink\n\n\n\n\nConfigure the board to 
boot from flash by moving the two jumpers together to B0_0 and B1_0. 
\n\n\n\n\nYou will have to reset the board once the image is uploaded to 
it.\n\n\n\n\n\n\nBy now you know that you have to build a new package. First, 
the olimex_stm32-e407_devboard.ld linker script which was previously the same 
as run_from_sram.ld will now need the contents of run_from_flash.ld. Then the 
target has to be rebuilt. You will simply replace the blinky project contents 
with the eggs needed to boot from flash instead of creating a new nest.\n\n\n$ 
cd ~/dev/larva/hw/bsp/olimex_stm32-e407_devboard\n$ diff 
olimex_stm32-e407_devboard.ld run_from_sram.ld\n
 $ cp run_from_flash.ld olimex_stm32-e407_devboard.ld\n$ cd 
~/dev/larva/project/blinky/bin/blinky\n$ newt target build 
blinky\n\n\n\n\n\n\n\nGo to the openocd directory under blink and use OpenOCD 
to open up a session with the board as done while booting from SRAM.\n\n\n$ cd 
~/dev/larva/project/blinky/bin/blinky/openocd\n$ openocd -f 
olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c \"reset 
halt\" \nOpen On-Chip Debugger 0.8.0 (2015-09-22-18:21)\nLicensed under GNU GPL 
v2\nFor bug reports, read\n    
http://openocd.sourceforge.net/doc/doxygen/bugs.html\nInfo : only one transport 
option; autoselect 'jtag'\nadapter speed: 1000 kHz\nadapter_nsrst_assert_width: 
500\nadapter_nsrst_delay: 100\njtag_ntrst_delay: 100\ncortex_m reset_config 
sysresetreq\nInfo : clock speed 1000 kHz\nInfo : JTAG tap: stm32f4x.cpu 
tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG 
tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 
0x0)\nInfo :
  stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\ntarget state: 
halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 
0x01000000 pc: 0x0800408c psp: 0x20003c60\nInfo : JTAG tap: stm32f4x.cpu 
tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG 
tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 
0x0)\ntarget state: halted\ntarget halted due to debug-request, current mode: 
Thread \nxPSR: 0x01000000 pc: 0x0800053c msp: 0x10010000\n\n\n\n\n\n\n\nRun the 
GNU debugger for ARM in a different window. Specifying the script gdb-8888.cfg 
tells it what image to load. You should now have a (gdb) prompt inside the 
debugger.\n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky/openocd\n$ 
arm-none-eabi-gdb -x gdb-8888.cfg \nGNU gdb (GNU Tools for ARM Embedded 
Processors) 7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, 
Inc.\nLicense GPLv3+: GNU GPL version 3 or later 
\nhttp://gnu.org/licenses/gpl.html\n\nThis 
 is free software: you are free to change and redistribute it.\nThere is NO 
WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show 
warranty\" for details.\nThis GDB was configured as 
\"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\nType \"show 
configuration\" for configuration details.\nFor bug reporting instructions, 
please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual 
and other documentation resources online 
at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type 
\"help\".\nType \"apropos word\" to search for commands related to 
\"word\".\n\n*** Set target charset ASCII\n\n*** Connecting to OpenOCD over 
port #8888 ***\n0x20000580 in ?? ()\n\n*** loading nic.out.elf ***\nLoading 
section .text, size 0x65d4 lma 0x20000000\nLoading section .ARM.extab, size 
0x24 lma 0x200065d4\nLoading section .ARM.exidx, size 0xd8 lma 
0x200065f8\nLoading section .data, size 0x8f8 lma 0x200066d0\nStart address 
0x20000580, load size 
 28616\nTransfer rate: 78 KB/sec, 2861 bytes/write.\n(gdb)\n\n\n\n\n\n\n\nFrom 
within gdb check the registers. Set the msp register to the value expected. 
Finally, hit \nc\n to continue... and your green LED should blink!\n\n\n(gdb) 
info reg all\n r0             0x0 0\n r1             0x0 0\n r2             0x0 
0\n r3             0x0 0\n r4             0x0 0\n r5             0x0 0\n r6     
        0x0 0\n r7             0x0 0\n r8             0x0 0\n r9             
0x0 0\n r10            0x0 0\n r11            0x0 0\n r12            0x0 0\n sp 
            0x10010000  0x10010000\n lr             0xffffffff  -1\n pc         
    0x20000580  0x20000580 \nReset_Handler\n\n xPSR           0x1000000   
16777216\n msp            0x10010000  0x10010000\n psp            0x0 0x0\n 
primask        0x0 0\n basepri        0x0 0\n faultmask      0x0 0\n control    
    0x0 0\n (gdb) set $msp=0x10010000\n (gdb) c\n 
Continuing.\n\n\n\n\n\n\n\nThe LED should be blinking! But wait...let's double 
check tha
 t it is indeed booting from flash and making the LED blink from the image in 
flash. Pull the USB cable off the Olimex JTAG adaptor. The debug connection to 
the JTAG port is now severed. Next power off the Olimex board by pulling out 
the USB cable from the board. Wait for a couple of seconds and plug the USB 
cable back to the board. \n\n\nThe LED light will start blinking again. 
Success!\n\n\nNote: If you want to erase the flash and load the image again you 
may use the following commands from within gdb. \nflash erase 0 0 x\n tells it 
to erase sectors 0 through x. When you ask it to display (in hex notation) the 
contents of the sector starting at location 'lma' you should therefore see all 
f's. The memory location 0x8000000 is the start or origin of the flash memory 
contents and is specified in the olimex_stm32-e407_devboard.ld linker script. 
The flash memory locations is specific to the processor.\n\n\n(gdb) monitor 
flash erase_sector 0 0 4\nerased sectors 0 through 4 on flash bank 
 0 in 2.296712s\n(gdb) x/32wx 0x8000000 \n0x8000000 \n__isr_vector\n:   
0xffffffff  0xffffffff 0xffffffff 0xffffffff \n0x8000010 \n__isr_vector+16\n:   
 0xffffffff 0xffffffff 0xffffffff 0xffffffff\n...", 
-            "title": "Blinkie, The First Project"
+            "text": "Blinky, the First Project\n\n\nObjective\n\n\nWe will 
show you how you can use eggs from a nest on Mynewt to make an LED on a target 
board blink. We will call it \n Project Blinky\n. The goals of this tutorial 
are threefold:\n\n\n\n\nFirst, you will learn how to set up your environment to 
be ready to use the various eggs that you will download from Mynewt. 
\n\n\nSecond, we will walk you through a download of eggs for building and 
testing \non a simulated target\n on a non-Windows machine.\n\n\nThird, you 
will download eggs and use tools to create a runtime image for a board to 
\nmake its LED blink\n. \n\n\n\n\nIf you want to explore even further, you can 
try to upload the image to the board's flash memory and have it \nboot from 
flash\n!\n\n\nWhat you need\n\n\n\n\nSTM32-E407 development board from 
Olimex.\n\n\nARM-USB-TINY-H connector with JTAG interface for debugging ARM 
microcontrollers (comes with the ribbon cable to hook up to the board)\n\n\nUSB 
A-B type c
 able to connect the debugger to your personal computer\n\n\nPersonal 
Computer\n\n\n\n\nThe instructions assume the user is using a Bourne-compatible 
shell (e.g. bash or zsh) on your computer. You may already have some of the 
required packages on your machine.  In that \ncase, simply skip the 
corresponding installation step in the instructions under \nGetting your Mac 
Ready\n or \nGetting your Ubuntu machine Ready\n or \nGetting your Windows 
machine Ready\n. While the given instructions should work on other versions, 
they have been tested for the three specific releases of operating systems 
noted here:\n\n\n\n\nMac: OS X Yosemite Version 10.10.5\n\n\nLinux: Ubuntu 
14.10 (Utopic Unicorn)\n\n\nWindows: Windows 10\n\n\n\n\nGetting your Mac 
Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make 
sure you have joined the \"Newt Operating System\" 
organization.\n\n\n\n\nInstalling Homebrew to ease installs on OS 
X\n\n\n\n\n\n\nDo you have Homebrew? If not, open a te
 rminal on your Mac and paste the following at a Terminal prompt. It will ask 
you for your sudo password.\n\n\n$ ruby -e \"$(curl -fsSL 
https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n\n\nAlternatively,
 you can just extract (or \ngit clone\n) Homebrew and install it to 
\n/usr/local\n.\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory under it. Set the GOPATH environment 
variable to this directory and then proceed to create the directory for cloning 
the newt too
 l repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export 
GOPATH=`pwd`\n\n\n\nNote that you need to add export statements to 
~/.bash_profile to export variables permanently.\n    $ vi 
~/.bash_profile\n\n\n\n\n\n\nThe next step is to set up the repository for the 
package building tool \"newt\" on your local machine. First create the 
appropriate directory for it and then clone the newt tool repository from 
github.com into this newly created directory. Check the installation.\n\n\n$ 
mkdir -p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ 
git clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ 
ls\nGodeps                  README.md               coding_style.txt        
newt.go\nLICENSE                 cli                     
design.txt\n\n\n\n\n\n\n\nInstalling Go and Godep\n\n\n\n\n\n\nNext you will 
use brew to install go. The summary message at the end of the installation 
should indicate that it is installed in the /usr/local/Cella
 r/go/ directory. You will use the go command 'install' to compile and install 
packages (called eggs in the Mynewt world) and dependencies. \n\n\n$ brew 
install go\n==\n \n==\n \n==\n *Summary*\n\ud83c\udf7a  
/usr/local/Cellar/go/1.5.1: 5330 files, 273M\n$ cd 
$GOPATH/src/github.com/mynewt/newt\n\n\n\nAlternatively, you can download the 
go package directly from (https://golang.org/dl/) instead of brewing it. 
Install it in /usr/local directory.\n\n\n\n\n\n\nNow you will get the godep 
package. Return to the go directory level and get godep. Check for it in the 
bin subdirectory. Add the go environment to path. Make sure it is added to your 
.bash_profile.\n\n\n$ cd $GOPATH\n$ go get github.com/tools/godep\n$ ls\nbin    
 pkg     src\n$ ls bin\ngodep\n$ export 
PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nUse the go command 'install' to compile 
and install packages and dependencies. In preparation for the install, you may 
use the godep command 'restore' to check out listed dependency versions in $G
 OPATH and link all the necessary files. Note that you may have to go to the 
\n~/dev/go/src/github.com/mynewt/newt\n directory to successfully run the 
restore command (e.g. on certain distributions of Linux). You may also have to 
do a \ngo get\n before the restore to make sure all the necessary packages and 
dependencies are correct.\n\n\n$ cd ~/dev/go/src/github.com/mynewt/newt\n$ go 
get\n$ ~/dev/go/bin/godep restore\n$ go install\n\n\n\n\n\n\n\nBuilding the 
Newt tool\n\n\n\n\nYou will now use go to run the newt.go program to build the 
newt tool. You will have to use \ngo build\n command which compiles and writes 
the resulting executable to an output file named \nnewt\n. However, it does not 
install the results along with its dependencies in $GOPATH/bin (for that you 
will need to use \ngo install\n). Now try running newt using the compiled 
binary. For example, check for the version number by typing 'newt version'. See 
all the possible commands available to a user of newt by typing 'n
 ewt -h'.\n\n\n\n\nNote: If you are going to be be modifying the newt tool 
itself often and wish to compile the program every time you call it, you may 
want to store the command in a variable in your .bash_profile. So type in 
\nexport newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your 
.bash_profile and execute it by calling \n$newt\n at the prompt instead of 
\nnewt\n. Don't forget to reload the updated bash profile by typing \nsource 
~/.bash_profile\n at the prompt! Here, you use \ngo run\n which runs the 
compiled binary directly without producing an executable.\n\n\n    $ go run 
%GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd 
~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md    
   coding_style.txt    newt\n    LICENSE         cli         design.txt      
newt.go\n    $ newt version\n    Newt version:  1.0\n    $ newt -h\n    Newt 
allows you to create your own embedded project based on the Mynewt\n    
operating system. Newt provides b
 oth build and package management in a\n    single tool, which allows you to 
compose an embedded workspace, and set\n    of projects, and then build the 
necessary artifacts from those projects.\n    For more information on the 
Mynewt operating system, please visit\n    
https://www.github.com/mynewt/documentation.\n\n    Please use the newt help 
command, and specify the name of the command\n    you want help for, for help 
on how to use a specific command\n\n    Usage:\n     newt [flags]\n     newt 
[command]\n\n    Examples:\n     newt\n     newt help [\ncommand-name\n]\n      
 For help on \ncommand-name\n.  If not specified, print this message.\n\n\n    
Available Commands:\n     version     Display the Newt version number.\n     
target      Set and view target information\n     egg         Commands to list 
and inspect eggs on a nest\n     nest        Commands to manage nests \n 
clutches (remote egg repositories)\n     help        Help about any command\n\n 
   Flags:\n     -h, --help=f
 alse: help for newt\n     -l, --loglevel=\"WARN\": Log level, defaults to 
WARN.\n     -q, --quiet=false: Be quiet; only display error output.\n     -s, 
--silent=false: Be silent; don't output anything.\n     -v, --verbose=false: 
Enable verbose output when executing commands.\n\n\n    Use \"newt help 
[command]\" for more information about a command.\n\n\n\n\n\nWithout creating a 
project repository you can't do a whole lot with the Newt tool. So you'll have 
to wait till you have downloaded a nest to try out the tool. \n\n\n\n\nGetting 
the debugger ready\n\n\n\n\n\n\nBefore you start building nests and hatching 
eggs, you need to do one final step in the environment preparation - install 
gcc / libc that can produce 32-bit executables. So, first install gcc. You will 
see the brew steps and a final summary confirming install.\n\n\n$ brew install 
gcc\n...\n...\n==\n Summary\n\ud83c\udf7a  /usr/local/Cellar/gcc/5.2.0: 1353 
files, 248M\n\n\n\n\n\n\n\nARM maintains a pre-built GNU toolchain w
 ith a GCC source branch targeted at Embedded ARM Processors namely 
Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check the 
version installed. Make sure that the symbolic link installed by Homebrew 
points to the correct version of the debugger. If not, you can either change 
the symbolic link using the \"ln -f -s\" command or just go ahead and try with 
the version it points to!\n\n\n$ brew tap PX4/homebrew-px4\n$ brew update\n$ 
brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  
\narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 
(release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free 
Software Foundation, Inc.\nThis is free software; see the source for copying 
conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR 
A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 
aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n 
/usr/local/Cella
 r/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\nNote: If no 
version is specified, brew will install the latest version available. StackOS 
will eventually work with multiple versions available including the latest 
releases. However, at present we have tested only with this version and 
recommend it for getting started. \n\n\n\n\n\n\nYou have to install OpenOCD 
(Open On-Chip Debugger) which is an open-source software that will allow you to 
interface with the JTAG debug connector/adaptor for the Olimex board. It lets 
you program, debug, and test embedded target devices which, in this case, is 
the Olimex board. Use brew to install it. Brew adds a simlink 
/usr/local/bin/openocd to the openocd directory in the Cellar.\n\n\n$ brew 
install open-ocd\n$ which openocd\n/usr/local/bin/openocd\n$ ls -l $(which 
openocd)\nlrwxr-xr-x  1 \nuser\n  admin  36 Sep 17 16:22 /usr/local/bin/openocd 
-\n ../Cellar/open-ocd/0.9.0/bin/openocd\n\n\n\n\n\n\n\nProceed to the 
\nBuilding test code on s
 imulator\n section.\n\n\n\n\n\n\nGetting your Ubuntu machine 
Ready\n\n\nGetting an account on GitHub\n\n\n\n\nGet an account on GitHub. Make 
sure you have joined the \"Newt Operating System\" 
organization.\n\n\n\n\nInstalling some prerequisites\n\n\n\n\nInstall git, 
libcurl, and the go language if you do not have them already.\n$ sudo apt-get 
install git \n$ sudo apt-get install libcurl4-gnutls-dev \n$ sudo apt-get 
install golang\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory un
 der it. Set the GOPATH environment variable to this directory and then proceed 
to create the directory for cloning the newt tool repository.\n\n\n$ cd 
$HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=$PWD\n\n\n\nNote that 
you need to add export statements to ~/.bashrc (or equivalent) to export 
variables permanently.\n\n\n\n\n\n\nNext, install godep. Note that the 
following command produces no output.\n\n\n$ go get 
github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package 
building tool \"newt\" on your local machine. First create the appropriate 
directory for it and then clone the newt tool repository from github.com into 
this newly created directory. Check the contents of the directory.\n\n\n$ mkdir 
-p $GOPATH/src/github.com/mynewt  \n$ cd $GOPATH/src/github.com/mynewt\n$ git 
clone https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps   
               README.md               coding_style.txt        newt.go\nLICENSE 
                cli     
                 design.txt\n\n\n\n\n\n\n\nUse the go command 'install' to 
compile and install packages and dependencies. Add go environment to path. 
Again, to make the export variable permanent, add it to your ~/.bashrc (or 
equivalent) file.\n\n\n$ $GOPATH/bin/godep restore \n$ go get \n$ go install 
\n$ export PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nBuilding the newt 
tool\n\n\n\n\nYou will now use go to run the newt.go program to build the newt 
tool. You will have to use \ngo build\n command which compiles and writes the 
resulting executable to an output file named \nnewt\n. However, it does not 
install the results along with its dependencies in $GOPATH/bin (for that you 
will need to use \ngo install\n). Now try running newt using the compiled 
binary. For example, check for the version number by typing 'newt version'. See 
all the possible commands available to a user of newt by typing 'newt 
-h'.\n\n\n\n\nNote: If you are going to be be modifying the newt tool itself 
often and wish to 
 compile the program every time you call it, you may want to store the command 
in a variable in your .bash_profile. So type in \nexport newt=\"go run 
$GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your ~/.bashrc (or 
equivalent) and execute it by calling \n$newt\n at the prompt instead of 
\nnewt\n. Here, you use \ngo run\n which runs the compiled binary directly 
without producing an executable.\n\n\n    $ go build 
%GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd 
~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md    
   coding_style.txt    newt\n    LICENSE         cli         design.txt      
newt.go\n    $ newt version\n    Newt version:  1.0\n    $ newt -h\n    Newt 
allows you to create your own embedded project based on the Mynewt\n    
operating system. Newt provides both build and package management in a\n    
single tool, which allows you to compose an embedded workspace, and set\n    of 
projects, and then build the necessary artifacts from those pr
 ojects.\n    For more information on the Mynewt operating system, please 
visit\n    https://www.github.com/mynewt/documentation.\n\n    Please use the 
newt help command, and specify the name of the command\n    you want help for, 
for help on how to use a specific command\n\n    Usage:\n     newt [flags]\n    
 newt [command]\n\n    Examples:\n     newt\n     newt help 
[\ncommand-name\n]\n       For help on \ncommand-name\n.  If not specified, 
print this message.\n\n\n    Available Commands:\n     version     Display the 
Newt version number.\n     target      Set and view target information\n     
egg         Commands to list and inspect eggs on a nest\n     nest        
Commands to manage nests \n clutches (remote egg repositories)\n     help       
 Help about any command\n\n    Flags:\n     -h, --help=false: help for newt\n   
  -l, --loglevel=\"WARN\": Log level, defaults to WARN.\n     -q, 
--quiet=false: Be quiet; only display error output.\n     -s, --silent=false: 
Be silent; don't 
 output anything.\n     -v, --verbose=false: Enable verbose output when 
executing commands.\n\n\n    Use \"newt help [command]\" for more information 
about a command.\n\n\n\n\n\nWithout creating a project repository you can't do 
a whole lot with the Newt tool. So you'll have to wait till you have downloaded 
a nest to try out the tool. \n\n\n\n\nGetting the debugger 
ready\n\n\n\n\n\n\nBefore you start building nests and hatching eggs, you need 
to do one final step in the environment preparation - install gcc / libc that 
can produce 32-bit executables. You can install these as follows: \n\n\n$ sudo 
apt-get install gcc-multilib libc6-i386\n\n\n\n\n\n\n\nFor the LED project on 
the Olimex hardware, you have to install gcc for AM 4.9.3.  This package can be 
installed with apt-get as documented \nhere\n.\n\n\n$ sudo apt-get remove 
binutils-arm-none-eabi gcc-arm-none-eabi \n$ sudo add-apt-repository 
ppa:terry.guo/gcc-arm-embedded \n$ sudo apt-get update \n$ sudo apt-get install 
gcc-arm-none-
 eabi\n\n\n\n\n\n\n\nAnd finally, you have to install OpenOCD (Open On-Chip 
Debugger) which is an open-source software that will allow you to interface 
with the JTAG debug connector/adaptor for the Olimex board. It lets you 
program, debug, and test embedded target devices which, in this case, is the 
Olimex board. You have to acquire OpenOCD 0.8.0. \n\n\nIf you are running 
Ubuntu 15.x, then you are in luck and you can simply run: \n\n\n$ sudo apt-get 
install openocd\n\n\n\nOther versions of Ubuntu may not have the correct 
version of openocd available.  In this case, you should download the openocd 
0.8.0 package from \nhttps://launchpad.net/ubuntu/vivid/+source/openocd\n. The 
direct link to the amd64 build is 
\nhttp://launchpadlibrarian.net/188260097/openocd_0.8.0-4_amd64.deb\n. 
\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator\n 
section.\n\n\n\n\n\n\nGetting your Windows machine Ready\n\n\nGetting an 
account on GitHub\n\n\n\n\nGet an account on GitHub. Make sure you have 
 joined the \"Newt Operating System\" organization.\n\n\n\n\nInstalling some 
prerequisites\n\n\n\n\n\n\nYou have to install the following if you do not have 
them already.  The steps below indicate specific folders where each of these 
programs should be installed. You can choose different locations, but the 
remainder of this\ntutorial for a Windows machine assumes the specified 
folders.    \n\n\n\n\nwin-builds-i686\n\n\nwin-builds-x86_64\n\n\nMSYS\n\n\ngcc 
for ARM\n\n\nopenocd\n\n\nzadig\n\n\ngit\n\n\n\n\ngo\n\n\n\n\nwin-builds 
(mingw64) 1.5 for i686\n\n\n\n\nDownload from 
\nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. 
Install at: \"C:\\win-builds-i686\".\n\n\nBe sure to click the i686 option (not 
x86_64). The defaults for all other options are OK. The installer will want to 
download a bunch of additional packages. They are not all necessary, but it is 
simplest to just accept the defaults.\n\n\n\n\nwin-builds (mingw64) 1.5 for 
x86_64\n\n\n\n\nDownload from 
 \nhttp://win-builds.org/doku.php/download_and_installation_from_windows\n. 
Install at \"C:\\win-builds-x86_64\"\n\n\nRun the installer a second time, but 
this time click the x86_64 option, NOT i686.  The defaults for all other 
options are OK.\n\n\n\n\nMSYS\n\n\n\n\nStart your download from 
\nhttp://sourceforge.net/projects/mingw-w64/files/External%20binary%20packages%20%28Win64%20hosted%29/MSYS%20%2832-bit%29/MSYS-20111123.zip\n\n\nUnzip
 to \"C:\\msys\"\n\n\n\n\ngcc for ARM, 4.9.3\n\n\n\n\nDownload the Windows 
installer from \nhttps://launchpad.net/gcc-arm-embedded/+download\n and install 
at \"C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 
2015q3\".\n\n\n\n\nOpenOCD 0.8.0\n\n\n\n\nDownload OpenOCD 0.8.0 from 
\nhttp://www.freddiechopin.info/en/download/category/4-openocd\n. Unzip to 
\"C:\\openocd\".\n\n\n\n\nZadig 2.1.2\n\n\n\n\nDownload it from 
\nhttp://zadig.akeo.ie\n and install it at 
\"C:\\zadig\".\n\n\n\n\nGit\n\n\n\n\nClick on 
\nhttps://git-scm.com/download/win\n to start
  the download. Install at \"C:\\Program Files (x86)\\Git\". Specify the \"Use 
Git from the Windows Command Prompt\" option.  The defaults for all other 
options are OK.\n\n\n\n\nGo\n\n\n\n\nDownload the release for Microsoft Windows 
from \nhttps://golang.org/dl/\n and install it 
\"C:\\Go\".\n\n\n\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe 
directory structure must be first readied for using Go. Go code must be kept 
inside a workspace. A workspace is a directory hierarchy with three directories 
at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages 
(one package per directory),\n\n\n\n\n\n\npkg contains package objects, 
and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH 
environment variable specifies the location of your workspace. First create a 
'dev' directory and then a 'go' directory under it. Set the GOPATH environment 
variable to this directory and then proceed to create the directory for cloning 
the newt tool reposito
 ry.\n\n\n$ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go\n\n\n\n\n\n\n\nSet the 
following user environment variables using the steps outlined 
here.\n\n\n\n\nGOPATH: C:\\dev\\go\n\n\nPATH: C:\\Program Files (x86)\\GNU 
Tools ARM Embedded\\4.9 
2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin\n\n\n\n\nSteps:\n\n\n\n\nRight-click
 the start button\n\n\nClick \"Control panel\"\n\n\nClick \"System and 
Security\"\n\n\nClick \"System\"\n\n\nClick \"Advanced system settings\" in the 
left panel\n\n\nClick the \"Envoronment Variables...\" button\n\n\nThere will 
be two sets of environment variables: user variables\n  in the upper half of 
the screen, and system variables in the lower\n  half.  Configuring the user 
variables is recommended and tested \n  (though system variables will work as 
well).\n\n\n\n\n\n\n\n\nNext, install godep. Note that the following command 
produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up 
the repository for
  the package building tool \"newt\" on your local machine. First create the 
appropriate directory for it and then clone the newt tool repository from 
github.com into this newly created directory. Check the contents of the 
directory.\n\n\n$ mkdir %GOPATH%\\src\\github.com\\mynewt\n$ cd 
%GOPATH%\\src\\github.com\\mynewt\n$ git clone 
https://github.com/mynewt/newt.git\n$ ls\nnewt\n$ cd newt\n$ ls\nGodeps         
         README.md               coding_style.txt        newt.go\nLICENSE       
          cli                     design.txt\n\n\n\n\n\n\n\nUse the go command 
'install' to compile and install packages and dependencies. Add go environment 
to path. Again, to make the export variable permanent, add it to your ~/.bashrc 
(or equivalent) file.\n\n\n$ %GOPATH%\\bin\\godep restore \n$ go get \n$ go 
install\n\n\n\n\n\n\n\nBuilding the newt tool\n\n\n\n\n\n\nYou will now use go 
to run the newt.go program to build the newt tool. You will have to use \ngo 
build\n command which compiles and
  writes the resulting executable to an output file named \nnewt\n. However, it 
does not install the results along with its dependencies in $GOPATH/bin (for 
that you will need to use \ngo install\n). Now try running newt using the 
compiled binary. For example, check for the version number by typing 'newt 
version'. See all the possible commands available to a user of newt by typing 
'newt -h'.\n\n\nNote: If you are going to be be modifying the newt tool itself 
often and wish to compile the program every time you call it, you may want to 
define the newt environment variable that allows you to execute the command via 
\n%newt%\n. Use \nset newt=go run 
%GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n or set it from the GUI. 
Here, you use \ngo run\n which runs the compiled binary directly without 
producing an executable.\n\n\n$ go build 
%GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n$ cd 
~/dev/go/src/github.com/mynewt/newt\n$ dir\nGodeps          README.md       
coding_style.txt    new
 t\nLICENSE         cli         design.txt      newt.go\n$ newt version\nNewt 
version:  1.0\n$ newt -h\nNewt allows you to create your own embedded project 
based on the Mynewt\noperating system. Newt provides both build and package 
management in a\nsingle tool, which allows you to compose an embedded 
workspace, and set\nof projects, and then build the necessary artifacts from 
those projects.\nFor more information on the Mynewt operating system, please 
visit\nhttps://www.github.com/mynewt/documentation.\n\nPlease use the newt help 
command, and specify the name of the command\nyou want help for, for help on 
how to use a specific command\n\nUsage:\n newt [flags]\n newt 
[command]\n\nExamples:\n newt\n newt help [\ncommand-name\n]\n   For help on 
\ncommand-name\n.  If not specified, print this message.\n\nAvailable 
Commands:\n version     Display the Newt version number.\n target      Set and 
view target information\n egg         Commands to list and inspect eggs on a 
nest\n nest        C
 ommands to manage nests \n clutches (remote egg repositories)\n help        
Help about any command\n\nFlags:\n -h, --help=false: help for newt\n -l, 
--loglevel=\"WARN\": Log level, defaults to WARN.\n -q, --quiet=false: Be 
quiet; only display error output.\n -s, --silent=false: Be silent; don't output 
anything.\n -v, --verbose=false: Enable verbose output when executing 
commands.\n\nUse \"newt help [command]\" for more information about a 
command.\n\n\n\n\n\n\n\nWithout creating a project repository you can't do a 
whole lot with the Newt tool. So you'll have to wait till you have downloaded a 
nest to try out the tool. \n\n\n\n\n\n\nGetting the debugger 
ready\n\n\n\n\n\n\nUse Zadig to configure the USB driver for your Olimex 
debugger.  If your debugger is already set up, you can skip this 
step.\n\n\n\n\nPlug in your Olimex debugger.\n\n\nStart Zadig.\n\n\nCheck the 
Options -\n List All Devices checkbox.\n\n\nSelect \"Olimex OpenOCD JTAG 
ARM-USB-TINY-H\" in the dropdown menu.\n\n\nSel
 ect the \"WinUSB\" driver.\n\n\nClick the \"Install Driver\" 
button.\n\n\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator on 
Windows machine\n section.\n\n\nNote: Currently, the simulator cannot be run in 
the Windows machine. We are working on it. In the meantime proceed to the 
\nMaking an LED blink\n on the Olimex hardware directly.\n\n\nBuilding test 
code on simulator\n\n\nNote: Currently, the simulator cannot be run in the 
Windows machine. We are working on it. If you are on a Windows machine proceed 
to the \nMaking an LED blink\n on the Olimex hardware 
directly.\n\n\n\n\n\n\nFirst, you have to create a repository for the project 
i.e. build your first nest! Go to ~/dev and clone the larva repository from 
github. The URL used below is the HTTPS clone URL from the github.com 
repository for the Newt Operating System. \n\n\nSubstitute DOS commands for 
Unix commands as necessary in the following steps if your machine is running 
Windows. The newt tool commands do not chang
 e.\n\n\n$ cd ~/dev \n$ git clone https://github.com/mynewt/larva.git\n$ ls\ngo 
 larva\n$ cd larva\n$ ls\nLICENSE         hw          project\nREADME.md       
libs            repo.yml\ncompiler        pkg         
setup-remotes.sh\n\n\n\n\n\n\n\nYou will now create a new project using the 
newt tool. You can either use the compiled binary \nnewt\n or run the newt.go 
program using \n$newt\n (assuming you have stored the command in a variable in 
your .bash_profile or .bashrc). When you do a \nnewt target show\n or \n$newt 
target show\n it should list all the projects you have created so far. \n\n\n$ 
newt target create sim_test\nCreating target sim_test\nTarget sim_test 
sucessfully created!\n$ newt target show\nsim_test\n    name: sim_test\n    
arch: sim\n\n\n\n\n\n\n\nNow continue to populate and build out the sim 
project.\n\n\n$ newt target set sim_test project=test\nTarget sim_test 
successfully set project to test\n$ newt target set sim_test 
compiler_def=debug\nTarget sim_test successf
 ully set compiler_def to debug\n$ newt target set sim_test 
bsp=hw/bsp/native\nTarget sim_test successfully set bsp to hw/bsp/native\n$ 
newt target set sim_test compiler=sim\nTarget sim_test successfully set 
compiler to sim\n$ newt target show sim_test\nsim_test\n    arch: sim\n    
project: test\n    compiler_def: debug\n    bsp: hw/bsp/native\n    compiler: 
sim\n    name: sim_test\n\n\n\n\n\n\n\nConfigure newt to use the gnu build 
tools native to OS X or linux. In order for sim to work properly, it needs to 
be using 32-bit gcc (gcc-5). Replace \n~/dev/larva/compiler/sim/compiler.yml 
with the compiler/sim/osx-compiler.yml or linux-compiler.yml file, depending on 
the system. \n\n\nFor a Mac OS X environment:\n\n\n$ cp 
compiler/sim/osx-compiler.yml compiler/sim/compiler.yml\n\n\n\nFor a Linux 
machine:\n\n\n$ cp compiler/sim/linux-compiler.yml 
compiler/sim/compiler.yml\n\n\n\n\n\n\n\nNext, create (hatch!) the eggs for 
this project using the newt tool - basically, build the packages for 
 it. You can specify the VERBOSE option if you want to see the gory details. 
\n\n\n$ $newt target build sim_test\nSuccessfully run!\n\n\n\nYou can specify 
the VERBOSE option if you want to see the gory details.\n\n\n$newt -l VERBOSE 
target build sim_test\n2015/09/29 09:46:12 [INFO] Building project 
test\n2015/09/29 09:46:12 [INFO] Loading Package 
/Users/aditihilbert/dev/larva/libs//bootutil...\n2015/09/29 09:46:12 [INFO] 
Loading Package /Users/aditihilbert/dev/larva/libs//cmsis-core...\n2015/09/29 
09:46:12 [INFO] Loading Package 
/Users/aditihilbert/dev/larva/libs//ffs..\n...\nSuccessfully 
run!\n\n\n\n\n\n\n\nTry running the test suite executable inside this project 
and enjoy your first successful hatch.\n\n\n$ 
./project/test/bin/sim_test/test.elf\n[pass] 
os_mempool_test_suite/os_mempool_test_case\n[pass] 
os_mutex_test_suite/os_mutex_test_basic\n[pass] 
os_mutex_test_suite/os_mutex_test_case_1\n[pass] 
os_mutex_test_suite/os_mutex_test_case_2\n[pass] 
os_sem_test_suite/os_sem_test_basic\
 n[pass] os_sem_test_suite/os_sem_test_case_1\n[pass] 
os_sem_test_suite/os_sem_test_case_2\n[pass] 
os_sem_test_suite/os_sem_test_case_3\n[pass] 
os_sem_test_suite/os_sem_test_case_4\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_1\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_2\n[pass] 
os_mbuf_test_suite/os_mbuf_test_case_3\n[pass] gen_1_1/ffs_test_unlink\n[pass] 
gen_1_1/ffs_test_rename\n[pass] gen_1_1/ffs_test_truncate\n[pass] 
gen_1_1/ffs_test_append\n[pass] gen_1_1/ffs_test_read\n[pass] 
gen_1_1/ffs_test_overwrite_one\n[pass] gen_1_1/ffs_test_overwrite_two\n[pass] 
gen_1_1/ffs_test_overwrite_three\n...\n...\n[pass] 
boot_test_main/boot_test_vb_ns_11\n\n\n\n\n\n\n\nBuilding test code on 
simulator on Windows machine\n\n\nComing soon.\n\n\nMaking an LED 
blink\n\n\nPreparing the Software\n\n\n\n\n\n\nMake sure the PATH environment 
variable includes the $HOME/dev/go/bin directory (or C:\\%GOPATH%\\bin on 
Windows machine). \n\n\nSubstitute DOS commands for Unix commands as necessary 
in the foll
 owing steps if your machine is running Windows. The newt tool commands do not 
change.\n\n\n\n\n\n\nAgain, you first have to create a repository for the 
project. Go to the ~dev/larva directory and build out a second project inside 
larva. The project name is \"blinky\", in keeping with the objective. Starting 
with the target name, you have to specify the different aspects of the project 
to build the right package for the board. In this case that means setting the 
architecture (arch), compiler, board support package (bsp), project, and 
compiler mode.\n\n\n$ newt target create blinky\nCreating target blinky\nTarget 
blinky sucessfully created!\n$ newt target set blinky arch=cortex_m4\nTarget 
blinky successfully set arch to arm\n$ newt target set blinky 
compiler=arm-none-eabi-m4\nTarget blinky successfully set compiler to 
arm-none-eabi-m4\n$ newt target set blinky project=blinky\nTarget blinky 
successfully set project to blinky\n$ newt target set blinky 
compiler_def=debug\nTarget blinky s
 uccessfully set compiler_def to debug\n$ newt target set blinky 
bsp=hw/bsp/olimex_stm32-e407_devboard\nTarget blinky successfully set bsp to 
hw/bsp/olimex_stm32-e407_devboard\n$ newt target show blinky\nblinky\n    
compiler: arm-none-eabi-m4\n    project: blinky\n    compiler_def: debug\n    
bsp: hw/bsp/olimex_stm32-e407_devboard\n    name: blinky\n    arch: 
cortex_m4\n\n\n\n\n\n\n\nNow you have to build the image package. Once built, 
you can find the executable \"blinky.elf\" in the project directory at 
~/dev/larva/project/blinky/bin/blink. It's a good idea to take a little time to 
understand the directory structure.\n\n\n$ newt target build blinky\nBuilding 
target blinky (project = blinky)\nCompiling case.c\nCompiling 
suite.c\n...\nSuccessfully run!\n$ ls\nLICENSE     clutch.yml  hw      nest.yml 
   project\nREADME.md   compiler    libs        net     scripts\n$ cd 
project\n$ ls\nbin2img     bletest     blinky      boot        ffs2native  
test\n$ cd blinky\n$ ls\nbin     blinky.ym
 l  egg.yml     src\n$ cd bin\n$ ls\nblinky\n$ cd blinky\n$ ls\nblinky.elf  
blinky.elf.bin  blinky.elf.cmd  blinky.elf.lst  
blinky.elf.map\n\n\n\n\n\n\n\nCheck that you have all the scripts needed to get 
OpenOCD up and talking with the project's specific hardware. Check whether you 
already have the scripts in your \n/usr/share/openocd/scripts/\n directory as 
they may have been part of the openocd download. If yes, you are all set and 
can proceed to preparing the hardware. If not, continue with this 
step.\n\n\nCurrently, the following 5 files are required. They are likely to be 
packed into a .tar file and made available under mynewt on github.com. Unpack 
it in the blinky directory using \ntar xvfz\n command. Go into the openocd 
directory created and make sure that the gdb-8888.cfg file indicates the 
correct file ('blinky.elf' in this case) to load and its full path. 
Specifically, add 'load ~/dev/larva/project/main/bin/blink/main.elf' and 
'symbol-file ~/larva/larva/project/main/bin/bli
 nk/main.elf' to this file. Alternatively, you could load these files from 
within the debugger (gdb) as explained later in the project when you connect to 
the board using openocd.   
\n\n\n\n\nocd-8888.cfg\n\n\nolimex-arm-usb-tiny-h-ftdi.cfg\n\n\narm-gdb.cfg\n\n\ngdb-dev_test-8888.cfg\n\n\nstm32f4x.cfg
  \n\n\n\n\nCheck the arm-gdb.cfg file and see whether the executable you 
created in the previous step is specified as the file to be loaded to the 
board. You have the choice of specifying the target and load from within the 
gdb debugger (Section \"Let's Go\", Step 2) instead.\n\n\n$ cat 
gdb-8888.cfg\necho \\n*** Set target charset ASCII\\n\nset target-charset 
ASCII\n#set arm fallback-mode arm\n#echo \\n*** set arm fallback-mode arm 
***\\n\necho \\n*** Connecting to OpenOCD over port #8888 ***\\n\ntarget remote 
localhost:8888\necho \\n*** loading nic.out.elf ***\\n\nload 
~/dev/larva/project/main/bin/blink/main.elf\nsymbol-file 
~/dev/larva/project/main/bin/blink/main.elf \n#echo *** Set b
 reakpoint and run to main() to sync with gdb ***\\n\n#b 
main\n#continue\n#delete 1\n\n#set arm fallback-mode thumb\n#echo \\n*** set 
arm fallback-mode thumb ***\\n\\n\n\n\n\nNote that an OpenOCD configuration 
script is available from Olimex for the STM32-E407 development board e.g. at 
\nhttps://www.olimex.com/Products/ARM/ST/STM32-E407/resources/stm32f4x.cfg\n, 
however getting it to work with different versions of OpenOCD and gcc could get 
tricky. [\nThis will be simplified eventually into a consolidated single action 
step instead of manual tweaks currently required\n]\n\n\n\n\n\n\nPreparing the 
hardware to boot from embedded SRAM\n\n\n\n\n\n\nLocate the boot jumpers on the 
board.\n\n\n\n\n\n\n\n\n\nB1_1/B1_0 and B0_1/B0_0 are PTH jumpers which can be 
moved relatively easy. Note that the markings on the board may not always be 
accurate. Always refer to the manual for the correct positioning of jumpers in 
case of doubt. The two jumpers must always be moved together \u2013 they are re
 sponsible for the boot mode if bootloader is present. The board can search for 
bootloader on three places \u2013 User Flash Memory, System Memory or the 
Embedded SRAM. We will configure it to boot from SRAM by jumpering B0_1 and 
B1_1.\n\n\n\n\n\n\nConnect USB-OTG#2 in the picture above to a USB port on your 
computer (or a powered USB hub to make sure there is enough power available to 
the board). \n\n\n\n\n\n\nConnect the JTAG connector to the SWD/JTAG interface 
on the board. The other end of the cable should be connected to the USB port or 
hub of your computer.\n\n\n\n\n\n\nThe red PWR LED should be lit. 
\n\n\n\n\n\n\nLet's Go!\n\n\n\n\n\n\nGo into the openocd directory and start an 
OCD session. You should see some status messages are shown below. Check the 
value of the msp (main service pointer) register. If it is not 0x10010000 as 
indicated below, you will have to manually set it after you open the gdp tool 
to load the image on it (next step). Note the \n-c \"reset halt\"\n flag 
 that tells it to halt after opening the session. It will now require a manual 
\"continue\" command from the GNU debugger in step 3. \n\n\n$ cd 
~/dev/larva/project/blinky/bin/blinky/openocd\n$ openocd -f 
olimex-arm-usb-tiny-h-ftdi.cfg -f ocd-8888.cfg -f stm32f4x.cfg -c \"reset 
halt\" \nOpen On-Chip Debugger 0.8.0 (2015-09-22-18:21)\nLicensed under GNU GPL 
v2\nFor bug reports, read\n    
http://openocd.sourceforge.net/doc/doxygen/bugs.html\nInfo : only one transport 
option; autoselect 'jtag'\nadapter speed: 1000 kHz\nadapter_nsrst_assert_width: 
500\nadapter_nsrst_delay: 100\njtag_ntrst_delay: 100\ncortex_m reset_config 
sysresetreq\nInfo : clock speed 1000 kHz\nInfo : JTAG tap: stm32f4x.cpu 
tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG 
tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 
0x0)\nInfo : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\nInfo : 
JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, pa
 rt: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 
0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\ntarget state: halted\ntarget 
halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 
0x2000053c msp: 0x10010000\n\n\n\nIf your scripts are in 
\n/usr/share/openocd/scripts/\n directory you may need to provide the full path 
information in the arguments.\n\n\n$ openocd -f 
/usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f 
/usr/share/openocd/scripts/target/stm32f4x.cfg -c \"gdb_port 8888; init; reset 
halt\"\n\n\n\nIf you are on a Windows machine, connect to the board with 
openocd using the following:\n\n\n$ cd C:\\openocd\n$ bin\\openocd-0.8.0.exe -f 
scripts\\interface\\ftdi\\olimex-arm-usb-tiny-h.cfg -f 
scripts\\target\\stm32f4x.cfg -c \"gdb_port 8888; init; reset 
halt\"\n\n\n\n\n\n\n\nOpen a new terminal window and run the GNU debugger for 
ARM. Specifying the script gdb-8888.cfg tells it what image to load. You should 
now have a (g
 db) prompt inside the debugger.\n\n\n$ cd 
~/dev/larva/project/blinky/bin/blinky/openocd\n$ arm-none-eabi-gdb -x 
gdb-8888.cfg \nGNU gdb (GNU Tools for ARM Embedded Processors) 
7.8.0.20150604-cvs\nCopyright (C) 2014 Free Software Foundation, Inc.\nLicense 
GPLv3+: GNU GPL version 3 or later \nhttp://gnu.org/licenses/gpl.html\n\nThis 
is free software: you are free to change and redistribute it.\nThere is NO 
WARRANTY, to the extent permitted by law.  Type \"show copying\"\nand \"show 
warranty\" for details.\nThis GDB was configured as 
\"--host=x86_64-apple-darwin10 --target=arm-none-eabi\".\nType \"show 
configuration\" for configuration details.\nFor bug reporting instructions, 
please see:\n\nhttp://www.gnu.org/software/gdb/bugs/\n.\nFind the GDB manual 
and other documentation resources online 
at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type 
\"help\".\nType \"apropos word\" to search for commands related to 
\"word\".\n\n*** Set target charset ASCII\n\n*** Connecti
 ng to OpenOCD over port #8888 ***\n0x20000580 in ?? ()\n\n*** loading image 
***\nLoading section .text, size 0x65d4 lma 0x20000000\nLoading section 
.ARM.extab, size 0x24 lma 0x200065dc\nLoading section .ARM.exidx, size 0xd8 lma 
0x20006600\nLoading section .data, size 0x8f8 lma 0x200066d8\nStart address 
0x2000053c, load size 28624\nTransfer rate: 78 KB/sec, 2862 
bytes/write.\n(gdb)\n\n\n\nInstead of the script, you could connect to the 
openocd process and tell the debugger what image to load from within gdb (which 
is 'blinky.elf' in this case). Below is an example input/output when doing it 
on a Windows machine. Note the forward 
slashes.\n\n\nC:\\dev\\larva\narm-none-eabi-gdb -q\n(gdb) target remote 
localhost:8888\nRemote debugging using localhost:8888\n0xb064f054 in ?? 
()\n...\n(gdb) load C:/dev/larva/project/blinky/bin/blinky/blinky.elf\nLoading 
section .text, size 0x6778 lma 0x20000000\nLoading section .ARM.extab, size 
0x18 lma 0x20006778\nLoading section .ARM.exidx, size 0xc8 lma
  0x20006790\nLoading section .data, size 0x8f8 lma 0

<TRUNCATED>

Reply via email to