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 2015/11/19 00:15:57 UTC

[02/17] incubator-mynewt-site git commit: update website with stubs for doc contributors

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/4883e672/mkdocs/search_index.json
----------------------------------------------------------------------
diff --git a/mkdocs/search_index.json b/mkdocs/search_index.json
index 7e6cc2e..72e8099 100644
--- a/mkdocs/search_index.json
+++ b/mkdocs/search_index.json
@@ -2,12 +2,12 @@
     "docs": [
         {
             "location": "/", 
-            "text": "Objective of Mynewt\n\n\nMynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices like wearables, lightbulbs, locks, and doorbells. At the core is a real-time operating system that is designed to work on a variety of microcontrollers. The project includes the Newt tool to help you build and distribute embedded projects using Mynewt OS. The modular implementation allows the user the flexibility to mix and match hardware components and software stack depending on the feature and performance requirements of the particular application he or she has in mind.\n\n\nThe world of Mynewt, therefore, has three primary collaborative goals:\n\n\n\n\nBuild a modularized real-time operating system for a rich set of hardware components\n\n\nOffer a suite of open-source software for efficient and secure two-way communications with an embedded device\n\n\nDevelop method and tools necessary to build an op
 timized executable image on the desired hardware\n\n\n\n\nProject GIT Repository\n\n\n\n\n\n\nDocumentation repository\n containing the markdown docs that generate the html pages you see here.\n\n\n\n\n\n\nMynewt OS development repository (larva)\n containing all code packages for newt operating system and middleware software being worked on.\n\n\n\n\n\n\nNewt tool development repository (newt)\n containing source code for the newt tool.\n\n\n\n\n\n\nProject Information Links\n\n\n\n\nProject Proposal\n\n\nIssue Tracking\n\n\nProject Status\n\n\n\n\nMailing Lists\n\n\n\n\n\n\ndev@mynewt.incubator.apache.org \n\n\nThis is for both contributors and users. In order to subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org.\n\n\n\n\n\n\ncommits@mynewt.incubator.apache.org\n\n\nThis is mainly for contributors to code or documentation. In order to subscribe to the commits list, send an email to commits-subscribe@mynewt.incubator.apache.org.\n\n\n\n\n\n\nnoti
 fications@mynewt.incubator.apache.org\n\n\nThis is for all autogenerated mail except commits e.g. JIRA notifications. In order to subscribe to the notifications list, send an email to notifications-subscribe@mynewt.incubator.apache.org. \n\n\n\n\n\n\nTo subscribe to a mailing list, you simply send an email to a special subscription address. To subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org. For the issues list, the address would be issues-subscribe@mynewt.incubator.apache.org. You should then get an automated email which details how to confirm your subscription.\n\n\nProject Documentation\n\n\nThe chapter organization is outlined below. Each chapter will include one or more tutorials for hands-on experience with the material in each chapter. \n\n\n\n\n\n\nChapter 1: Get Started\n introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.\n\n\n\n\n\n\nChapter 2: Get Acc
 limated\n delves deeper into the concepts crucial to the software development effort. \n\n\n\n\n\n\nChapter 3: Newt Tool Reference\n describes the command structure and details all the available commands to help you with your project. \n\n\n\n\n\n\nChapter 4: Newt OS\n provides an overview of the features available and how to customize for your hardware and software application.\n\n\n\n\n\n\nChapter 5: Modules\n lays out all the available modules such as HAL (Hardware Abstraction Layer), console, file system, networking stacks, and other middleware components.\n\n\n\n\n\n\nChapter 6: Creating packages for distribution\n delineates the process of creating complete packages to load on your embedded device to get it up, connected, and ready for remote management.\n\n\n\n\n\n\nContributing to Documentation\n\n\nAll content on this site is statically generated using \nMkDocs\n from documents written in Markdown and stored in the \ndocs\n directory on the master branch in the \nDocumentat
 ion repository\n. As a documentation contributor you will modify in the desired markdown file or create new ones in the appropriate chapter subdirectory under \ndocs\n. \n\n\nTo edit content in a Markdown file and be able to see how the changes look rendered in html you may use desktop apps such as:\n\n\n\n\nMou\n for Mac\n\n\nSomething like Mou\n for Windows\n\n\n\n\nThe static html content is generated and maintained in the asf-site branch in the documentation repository. Currently, the static html files are generated manually once a day. This will be automated in the future.\n\n\nYou can preview the changes you have made on your desktop by installing MkDocs and starting up its built-in webserver as described in \nMkDocs\n.", 
+            "text": "Objective of Mynewt\n\n\nMynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices like wearables, lightbulbs, locks, and doorbells. At the core is a real-time operating system that is designed to work on a variety of microcontrollers. The project includes the Newt tool to help you build and distribute embedded projects using Mynewt OS. The modular implementation allows the user the flexibility to mix and match hardware components and software stack depending on the feature and performance requirements of the particular application he or she has in mind.\n\n\nThe world of Mynewt, therefore, has three primary collaborative goals:\n\n\n\n\nBuild a modularized real-time operating system for a rich set of hardware components\n\n\nOffer a suite of open-source software for efficient and secure two-way communications with an embedded device\n\n\nDevelop method and tools necessary to build an op
 timized executable image on the desired hardware\n\n\n\n\nProject Information Links\n\n\n\n\n\n\nProject Proposal\n\n\n\n\n\n\nIssue Tracking\n\n\n\n\n\n\nProject Status\n\n\n\n\n\n\nProject GIT Repository\n\n\n\n\n\n\nDocumentation repository\n containing the markdown docs that generate the html pages you see here.\n\n\n\n\n\n\nMynewt OS development repository (larva)\n containing all code packages for newt operating system and middleware software being worked on.\n\n\n\n\n\n\nNewt tool development repository (newt)\n containing source code for the newt tool.\n\n\n\n\n\n\nMailing Lists\n\n\n\n\n\n\ndev@mynewt.incubator.apache.org \n\n\nThis is for both contributors and users. In order to subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org.\n\n\n\n\n\n\ncommits@mynewt.incubator.apache.org\n\n\nThis is mainly for contributors to code or documentation. In order to subscribe to the commits list, send an email to commits-subscribe@mynewt.incubator.apach
 e.org.\n\n\n\n\n\n\nnotifications@mynewt.incubator.apache.org\n\n\nThis is for all autogenerated mail except commits e.g. JIRA notifications. In order to subscribe to the notifications list, send an email to notifications-subscribe@mynewt.incubator.apache.org. \n\n\n\n\n\n\nTo subscribe to a mailing list, you simply send an email to a special subscription address. To subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org. For the issues list, the address would be issues-subscribe@mynewt.incubator.apache.org. You should then get an automated email which details how to confirm your subscription.\n\n\nDocumentation Organization\n\n\nThe chapter organization is outlined below. Each chapter will include one or more tutorials for hands-on experience with the material in each chapter. \n\n\n\n\n\n\nChapter 1: Getting Started\n introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products
 .\n\n\n\n\n\n\nChapter 2: Getting Acclimated\n delves deeper into the concepts crucial to the software development effort. \n\n\n\n\n\n\nChapter 3: Newt Tool Reference\n describes the command structure and details all the available commands to help you with your project. \n\n\n\n\n\n\nChapter 4: Newt OS\n provides an overview of the features available and how to customize for your hardware and software application.\n\n\n\n\n\n\nChapter 5: Modules\n lays out all the available modules such as HAL (Hardware Abstraction Layer), console, file system, networking stacks, and other middleware components.\n\n\n\n\n\n\nChapter 6: Creating packages for distribution\n delineates the process of creating complete packages to load on your embedded device to get it up, connected, and ready for remote management.\n\n\n\n\n\n\nContributing to Documentation\n\n\nAll content on this site is statically generated using \nMkDocs\n from documents written in Markdown and stored in the \ndocs\n directory on 
 the master branch in the \nDocumentation repository\n. As a documentation contributor you will modify in the desired markdown file or create new ones in the appropriate chapter subdirectory under \ndocs\n. \n\n\nTo edit content in a Markdown file and be able to see how the changes look you may use desktop apps such as:\n\n\n\n\nMou\n for Mac\n\n\nSomething like Mou\n for Windows\n\n\n\n\nClick on \nHow to edit docs\n under \"Get Started\" to learn how to edit a sample file \ntry_markdown.md\n on Mynewt's documentation git repository.\n\n\nThe static html content is generated and maintained in the asf-site branch in the documentation repository. Currently, the static html files are generated manually once a day. This will be automated in the future.\n\n\nYou can preview the changes you have made on your desktop by installing MkDocs and starting up its built-in webserver as described in \nMkDocs\n.", 
             "title": "Home"
         }, 
         {
             "location": "/#objective-of-mynewt", 
-            "text": "Mynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices like wearables, lightbulbs, locks, and doorbells. At the core is a real-time operating system that is designed to work on a variety of microcontrollers. The project includes the Newt tool to help you build and distribute embedded projects using Mynewt OS. The modular implementation allows the user the flexibility to mix and match hardware components and software stack depending on the feature and performance requirements of the particular application he or she has in mind.  The world of Mynewt, therefore, has three primary collaborative goals:   Build a modularized real-time operating system for a rich set of hardware components  Offer a suite of open-source software for efficient and secure two-way communications with an embedded device  Develop method and tools necessary to build an optimized executable image on the desired hard
 ware   Project GIT Repository    Documentation repository  containing the markdown docs that generate the html pages you see here.    Mynewt OS development repository (larva)  containing all code packages for newt operating system and middleware software being worked on.    Newt tool development repository (newt)  containing source code for the newt tool.    Project Information Links   Project Proposal  Issue Tracking  Project Status   Mailing Lists    dev@mynewt.incubator.apache.org   This is for both contributors and users. In order to subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org.    commits@mynewt.incubator.apache.org  This is mainly for contributors to code or documentation. In order to subscribe to the commits list, send an email to commits-subscribe@mynewt.incubator.apache.org.    notifications@mynewt.incubator.apache.org  This is for all autogenerated mail except commits e.g. JIRA notifications. In order to subscribe to the notificatio
 ns list, send an email to notifications-subscribe@mynewt.incubator.apache.org.     To subscribe to a mailing list, you simply send an email to a special subscription address. To subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org. For the issues list, the address would be issues-subscribe@mynewt.incubator.apache.org. You should then get an automated email which details how to confirm your subscription.  Project Documentation  The chapter organization is outlined below. Each chapter will include one or more tutorials for hands-on experience with the material in each chapter.     Chapter 1: Get Started  introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.    Chapter 2: Get Acclimated  delves deeper into the concepts crucial to the software development effort.     Chapter 3: Newt Tool Reference  describes the command structure and details all the available commands to he
 lp you with your project.     Chapter 4: Newt OS  provides an overview of the features available and how to customize for your hardware and software application.    Chapter 5: Modules  lays out all the available modules such as HAL (Hardware Abstraction Layer), console, file system, networking stacks, and other middleware components.    Chapter 6: Creating packages for distribution  delineates the process of creating complete packages to load on your embedded device to get it up, connected, and ready for remote management.    Contributing to Documentation  All content on this site is statically generated using  MkDocs  from documents written in Markdown and stored in the  docs  directory on the master branch in the  Documentation repository . As a documentation contributor you will modify in the desired markdown file or create new ones in the appropriate chapter subdirectory under  docs .   To edit content in a Markdown file and be able to see how the changes look rendered in html y
 ou may use desktop apps such as:   Mou  for Mac  Something like Mou  for Windows   The static html content is generated and maintained in the asf-site branch in the documentation repository. Currently, the static html files are generated manually once a day. This will be automated in the future.  You can preview the changes you have made on your desktop by installing MkDocs and starting up its built-in webserver as described in  MkDocs .", 
+            "text": "Mynewt is an open source initiative to build a stack of modularized control, networking, and monitoring software for embedded devices like wearables, lightbulbs, locks, and doorbells. At the core is a real-time operating system that is designed to work on a variety of microcontrollers. The project includes the Newt tool to help you build and distribute embedded projects using Mynewt OS. The modular implementation allows the user the flexibility to mix and match hardware components and software stack depending on the feature and performance requirements of the particular application he or she has in mind.  The world of Mynewt, therefore, has three primary collaborative goals:   Build a modularized real-time operating system for a rich set of hardware components  Offer a suite of open-source software for efficient and secure two-way communications with an embedded device  Develop method and tools necessary to build an optimized executable image on the desired hard
 ware   Project Information Links    Project Proposal    Issue Tracking    Project Status    Project GIT Repository    Documentation repository  containing the markdown docs that generate the html pages you see here.    Mynewt OS development repository (larva)  containing all code packages for newt operating system and middleware software being worked on.    Newt tool development repository (newt)  containing source code for the newt tool.    Mailing Lists    dev@mynewt.incubator.apache.org   This is for both contributors and users. In order to subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org.    commits@mynewt.incubator.apache.org  This is mainly for contributors to code or documentation. In order to subscribe to the commits list, send an email to commits-subscribe@mynewt.incubator.apache.org.    notifications@mynewt.incubator.apache.org  This is for all autogenerated mail except commits e.g. JIRA notifications. In order to subscribe to the notif
 ications list, send an email to notifications-subscribe@mynewt.incubator.apache.org.     To subscribe to a mailing list, you simply send an email to a special subscription address. To subscribe to the dev list, send an email to dev-subscribe@mynewt.incubator.apache.org. For the issues list, the address would be issues-subscribe@mynewt.incubator.apache.org. You should then get an automated email which details how to confirm your subscription.  Documentation Organization  The chapter organization is outlined below. Each chapter will include one or more tutorials for hands-on experience with the material in each chapter.     Chapter 1: Getting Started  introduces some key terms in this initiative and includes a tutorial for a quick project to show how to work with some of the products.    Chapter 2: Getting Acclimated  delves deeper into the concepts crucial to the software development effort.     Chapter 3: Newt Tool Reference  describes the command structure and details all the avail
 able commands to help you with your project.     Chapter 4: Newt OS  provides an overview of the features available and how to customize for your hardware and software application.    Chapter 5: Modules  lays out all the available modules such as HAL (Hardware Abstraction Layer), console, file system, networking stacks, and other middleware components.    Chapter 6: Creating packages for distribution  delineates the process of creating complete packages to load on your embedded device to get it up, connected, and ready for remote management.    Contributing to Documentation  All content on this site is statically generated using  MkDocs  from documents written in Markdown and stored in the  docs  directory on the master branch in the  Documentation repository . As a documentation contributor you will modify in the desired markdown file or create new ones in the appropriate chapter subdirectory under  docs .   To edit content in a Markdown file and be able to see how the changes look
  you may use desktop apps such as:   Mou  for Mac  Something like Mou  for Windows   Click on  How to edit docs  under \"Get Started\" to learn how to edit a sample file  try_markdown.md  on Mynewt's documentation git repository.  The static html content is generated and maintained in the asf-site branch in the documentation repository. Currently, the static html files are generated manually once a day. This will be automated in the future.  You can preview the changes you have made on your desktop by installing MkDocs and starting up its built-in webserver as described in  MkDocs .", 
             "title": "Objective of Mynewt"
         }, 
         {
@@ -22,15 +22,35 @@
         }, 
         {
             "location": "/chapter1/project1/", 
-            "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 Mynewt OS and newt tool. \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 terminal on your Mac and paste
  the following at a Terminal prompt. It will ask you for your sudo password.\n\n\n$ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n\n\nAlternatively, you can just extract (or \ngit clone\n) Homebrew and install it to \n/usr/local\n.\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd $HOM
 E\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 the online apache repository (or its github.com mirror) 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://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git newt\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/Cellar/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 'r
 estore' 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 possi
 ble 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        He
 lp about any command\n\n    Flags:\n     -h, --help=false: help for newt\n     -l, --loglevel=\"WARN\": Log level, defaults to WARN.\n     -q, --quiet=false: Be quiet; only display error output.\n     -s, --silent=false: Be silent; don't output anything.\n     -v, --verbose=false: Enable verbose output when executing commands.\n\n\n    Use \"newt help [command]\" for more information about a command.\n\n\n\n\n\nWithout creating a project repository you can't do a whole lot with the Newt tool. So you'll have to wait till you have downloaded a nest to try out the tool. \n\n\n\n\nGetting the debugger ready\n\n\n\n\n\n\nBefore you start building nests and hatching eggs, you need to do one final step in the environment preparation - install gcc / libc that can produce 32-bit executables. So, first install gcc. You will see the brew steps and a final summary confirming install.\n\n\n$ brew install gcc\n...\n...\n==\n Summary\n\ud83c\udf7a  /usr/local/Cellar/gcc/5.2.0: 1353 files, 248M\n\n
 \n\n\n\n\n\nARM maintains a pre-built GNU toolchain with a GCC source branch targeted at Embedded ARM Processors namely Cortex-R/Cortex-M processor families. Install the PX4 Toolchain and check the version installed. Make sure that the symbolic link installed by Homebrew points to the correct version of the debugger. If not, you can either change the symbolic link using the \"ln -f -s\" command or just go ahead and try with the version it points to!\n\n\n$ brew tap PX4/homebrew-px4\n$ brew update\n$ brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  \narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 aditihilbert  admin  69 Sep 22 17:16 
 /usr/local/bin/arm-none-eabi-gdb -\n /usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\nNote: If no version is specified, brew will install the latest version 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 under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=$PWD\n\n\n\nNote that you need to add export statements to ~/.bashrc (or equivalent) to export variables permanently.\n\n\n\n\n\n\nNext, install godep. Note that the following command produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from the online apache repository (or its github.com mirror) 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://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git newt\n$ ls\nne
 wt\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 avail
 able 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 t
 ool, 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. 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-a
 rm-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 n
 ot 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 repository.\n\n\n$ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go\n\n\n\n\n\n\n\nSet the following user environment variables using the steps outlined here.\n\n\n\n\nGOPATH: C:\\dev\\go\n\n\nPATH: C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin\n\n\n\n\nSteps:\n\n\n\n\nRight-click the start button\n\n\nClick \"Control panel\"\n\n\nClick \"System and Security\"\n\n\nClick \"System\"\n\n\nClick \"Advanced system settings\" in the left panel\n\n\nClick the \"Envoronment Variables...\" button\n\n\nThere will be two sets of environment variables: user variables\n  in the upper half of the screen, and system variables in the lower\n  half.  Configuring the user variables is recommended and tested \n  (though system variables will work as well).\n\n\n\n\n\n\n\n\nNext, install go
 dep. 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 the online apache repository (or its github.com mirror) 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://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git newt\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 r
 estore \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 bina
 ry directly without producing an executable.\n\n\n$ go build %GOPATH%\\src\\github.com\\mynewt\\newt\\newt.go\n$ cd ~/dev/go/src/github.com/mynewt/newt\n$ dir\nGodeps          README.md       coding_style.txt    newt\nLICENSE         cli         design.txt      newt.go\n$ newt version\nNewt version:  1.0\n$ newt -h\nNewt allows you to create your own embedded project 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 speci
 fied, 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, y
 ou can skip this step.\n\n\n\n\nPlug in your Olimex debugger.\n\n\nStart Zadig.\n\n\nCheck the Options -\n List All Devices checkbox.\n\n\nSelect \"Olimex OpenOCD JTAG ARM-USB-TINY-H\" in the dropdown menu.\n\n\nSelect the \"WinUSB\" driver.\n\n\nClick the \"Install Driver\" button.\n\n\n\n\n\n\n\n\nProceed to the \nBuilding test code on simulator on Windows machine\n section.\n\n\nNote: Currently, the simulator cannot be run in the Windows machine. We are still working on it. So you will go ahead and \nmake an LED blink\n on the Olimex hardware directly. \n\n\nHowever, before you skip to the hardware target, you still need to build your first nest as outlined in step 1 in the \nBuilding test code on simulator\n.\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, do step 1 below and then 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 the apache git repository into a local directory named \nlarva\n.\n\n\nSubstitute DOS commands for Unix commands as necessary in the following steps if your machine is running Windows. The newt tool commands do not change.\n\n\n$ cd ~/dev \n$ git clone https://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva.git larva\n$ ls\ngo  larva\n$ cd larva\n$ ls\nLICENSE     clutch.yml  hw      nest.yml      project\nREADME.md   compiler    libs        net       scripts\n\n\n\n\n\n\n\nYou will now create a new target 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 si
 m_test\nCreating target sim_test\nTarget sim_test sucessfully created!\n$ newt target show\nsim_test\n    name: sim_test\n    arch: sim\n\n\n\n\n\n\n\nNow continue to populate and build out the sim project.\n\n\n$ newt target set sim_test project=test\nTarget sim_test successfully set project to test\n$ newt target set sim_test compiler_def=debug\nTarget sim_test successfully set compiler_def to debug\n$ newt target set sim_test bsp=hw/bsp/native\nTarget sim_test successfully set bsp to hw/bsp/native\n$ newt target set sim_test compiler=sim\nTarget sim_test successfully set compiler to sim\n$ newt target show sim_test\nsim_test\n    arch: sim\n    project: test\n    compiler_def: debug\n    bsp: hw/bsp/native\n    compiler: sim\n    name: sim_test\n\n\n\n\n\n\n\nConfigure newt to use the gnu build tools native to 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-compile
 r.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 runn
 ing 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 following steps if your machine is running Windows. The newt tool commands do not change.\n\n\n\n\n\n\nYou 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 pull the appropriate eggs and 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 tar
 get 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. The linker script within the \nhw/bsp/olimex_stm32-e407_devboard\n egg builds an image for flash memory by default. Therefore, you need to switch that script with \nrun_from_sram.ld
 \n in order to get the egg to produce an image for SRAM. \n We are working on making it easier to specify where the executable will be run from for a particular project and automatically choose the correct linker scripts and generate the appropriate image. It will be specified as a project identity e.g. bootloader, RAM, flash (default) and the target will build accordingly. \n. \n\n\nOnce the target is built, you can find the executable \"blinky.elf\" in the project directory at ~/dev/larva/project/blinky/bin/blinky. It's a good idea to take a little time to understand the directory structure.\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_sram.ld olimex_stm32-e407_devboard.ld\n$ cd ~/dev/larva/project/blinky/bin/blinky\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    proje
 ct\nREADME.md   compiler    libs        net     scripts\n$ cd project\n$ ls\nbin2img     bletest     blinky      boot        ffs2native  test\n$ cd blinky\n$ ls\nbin     blinky.yml  egg.yml     src\n$ cd bin\n$ ls\nblinky\n$ cd blinky\n$ ls\nblinky.elf  blinky.elf.bin  blinky.elf.cmd  blinky.elf.lst  blinky.elf.map\n\n\n\n\n\n\n\nCheck that you have all the scripts needed to get OpenOCD up and talking with the project's specific hardware. Check whether you already have the scripts in your \n/usr/share/openocd/scripts/\n directory as they may have been part of the openocd download. If yes, you are all set and can proceed to preparing the hardware. If not, continue with this step.\n\n\nCurrently, the following 5 files are required. They are likely to be packed into a .tar file and made available under mynewt on github.com. Unpack it in the blinky directory using \ntar xvfz\n command. Go into the openocd directory created and make sure that the gdb-8888.cfg file indicates the correct f
 ile ('blinky.elf' in this case) to load and its full path. Specifically, add 'load ~/dev/larva/project/main/bin/blink/main.elf' and 'symbol-file ~/larva/larva/project/main/bin/blink/main.elf' to this file. Alternatively, you could load these files from within the debugger (gdb) as explained later in the project when you connect to the board using openocd.   \n\n\n\n\nocd-8888.cfg\n\n\nolimex-arm-usb-tiny-h-ftdi.cfg\n\n\narm-gdb.cfg\n\n\ngdb-dev_test-8888.cfg\n\n\nstm32f4x.cfg  \n\n\n\n\nCheck the arm-gdb.cfg file and see whether the executable you created in the previous step is specified as the file to be loaded to the board. You have the choice of specifying the target and load from within the gdb debugger (Section \"Let's Go\", Step 2) instead.\n\n\n$ cat gdb-8888.cfg\necho \\n*** Set target charset ASCII\\n\nset target-charset ASCII\n#set arm fallback-mode arm\n#echo \\n*** set arm fallback-mode arm ***\\n\necho \\n*** Connecting to OpenOCD over port #8888 ***\\n\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 boa
 rd may not always be accurate. Always refer to the manual for the correct positioning of jumpers in case of doubt. The two jumpers must always be moved together \u2013 they are responsible for the boot mode if bootloader is present. The board can search for bootloader on three places \u2013 User Flash Memory, System Memory or the Embedded SRAM. We will configure it to boot from SRAM by jumpering B0_1 and B1_1.\n\n\n\n\n\n\nConnect USB-OTG#2 in the picture above to a USB port on your computer (or a powered USB hub to make sure there is enough power available to the board). \n\n\n\n\n\n\nConnect the JTAG connector to the SWD/JTAG interface on the board. The other end of the cable should be connected to the USB port or hub of your computer.\n\n\n\n\n\n\nThe red PWR LED should be lit. \n\n\n\n\n\n\nLet's Go!\n\n\n\n\n\n\nGo into the openocd directory and start an OCD session. You should see some status messages are shown below. Check the value of the msp (main service 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: 0x064130
 41 (mfg: 0x020, part: 0x6413, ver: 0x0)\nInfo : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints\nInfo : JTAG tap: stm32f4x.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x4)\nInfo : JTAG tap: stm32f4x.bs tap/device found: 0x06413041 (mfg: 0x020, part: 0x6413, ver: 0x0)\ntarget state: halted\ntarget halted due to debug-request, current mode: Thread \nxPSR: 0x01000000 pc: 0x2000053c msp: 0x10010000\n\n\n\nIf your scripts are in \n/usr/share/openocd/scripts/\n directory you may need to provide the full path information in the arguments.\n\n\n$ openocd -f /usr/share/openocd/scripts/interface/ftdi/olimex-arm-usb-tiny-h.cfg -f /usr/share/openocd/scripts/target/stm32f4x.cfg -c \"gdb_port 8888; init; reset halt\"\n\n\n\nIf you are on a Windows machine, connect to the board with openocd using the following:\n\n\n$ cd C:\\openocd\n$ bin\\openocd-0.8.0.exe -f scripts\\interface\\ftdi\\olimex-arm-usb-tiny-h.cfg -f scripts\\target\\stm32f4x.cfg -c \"gdb_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*** Connecting to OpenOCD over port #8888 ***\n0x20000580 in ?? ()\n\n*** loading image ***\nLoading section .text, size 0x65d4 lma 0x20000000\nLoading section .ARM.extab, size 0x24 lma 0x200065dc\nLoading section .ARM.exidx, size 0xd8 lma 0x20006600\nLoading section .data, size 0x8f8 lma 0x200066d8\nStart address 0x2000053c, load size 28624\nTransfer rate: 78 KB/sec, 2862 bytes/write.\n(gdb)\n\n\n\nInstead of the script, you could connect to the openocd process and tell the debugger what image to load from within gdb (which is 'blinky.elf' in this case). Below is an example input/output when doing it on a Windows machine. Note the forward slashes.\n\n\nC:\\dev\\larva\narm-none-eabi-gdb -q\n(gdb) target remote localhost:8888\nRemote debugging using localhost:8888\n0xb064f054 in ?? ()\n...\n(gdb) load C:/dev/larva/proje
 ct/blinky/bin/blinky/blinky.elf\nLoading section .text, size 0x6778 lma 0x20000000\nLoading section .ARM.extab, size 0x18 lma 0x20006778\nLoading section .ARM.exidx, size 0xc8 lma 0x20006790\nLoading section .data, size 0x8f8 lma 0x20006858\nStart address 0x20000528, load size 29008\nTransfer rate: 72 KB/sec, 2900 bytes/write.\n(gdb) symbol-file C:/dev/larva/project/blinky/bin/blinky/blinky.elf\nReading symbols from C:/dev/larva/project/blinky/bin/blinky/blinky.elf...done.\n\n\n\n\n\n\n\nFrom within gdb check the registers. Set the msp register for the main stack pointer to the expected value as shown here. \n\n\nFinally, hit \nc\n to continue... and your green LED should blink!\n\n\n(gdb) info reg all\n r0             0x0 0\n r1             0x0 0\n r2             0x0 0\n r3             0x0 0\n r4             0x0 0\n r5             0x0 0\n r6             0x0 0\n r7             0x0 0\n r8             0x0 0\n r9             0x0 0\n r10            0x0 0\n r11            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\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 that will run from flash. First, the olimex_stm32-e407_devboard.ld linker script which was previously made the same as run_from_sram.ld will now need the contents of run_from_flash.ld. Then the target has to be rebuilt. \n\n\n$ cd ~/dev/larva/hw/bs
 p/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 project directory and download the image to flash ... in a flash! \n\n\n$ cd ~/dev/larva/project/blinky/bin/blinky\n$ newt target download blinky\nDownloading with ~/dev/larva/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_download.sh\n\n\n\n\n\n\n\nThe LED should be blinking!\n\n\n\n\n\n\nBut wait...let's double check that it is indeed booting from flash and making the LED blink from the image in flash. Pull the USB cable off the Olimex JTAG adaptor. The debug connection to the JTAG port is now severed. Next power off the Olimex board by pulling out the USB cable from the board. Wait for a couple of seconds and plug the USB cable back to the board. \n\n\nThe LED light will start blinking again. Success!\n\n\nNote #1: If you want to downl
 oad the image to flash and a gdb session opened up, use \nnewt target debug blinky\n instead of \nnewt target download blinky\n.\n\n\n$ newt target debug blinky\nDebugging with ~/dev/larva/hw/bsp/olimex_stm32-e407_devboard/olimex_stm32-e407_devboard_debug.sh blinky\nDebugging ~/dev/larva/project/blinky/bin/blinky/blinky.elf\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 onli
 ne at:\n\nhttp://www.gnu.org/software/gdb/documentation/\n.\nFor help, type \"help\".\nType \"apropos word\" to search for commands related to \"word\"...\nReading symbols from /Users/aditihilbert/dev/larva/project/blinky/bin/blinky/blinky.elf...done.\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_delay: 100\njtag_ntrst_delay: 100\nWarn : target name is deprecated use: 'cortex_m'\nDEPRECATED! use 'cortex_m' not 'cortex_m3'\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, 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: 0x08000250 msp: 0x10010000\nInfo : accepting 'gdb' connection from 3333\nInfo : device id = 0x10036413\nInfo : flash size = 1024kbytes\nReset_Handler () at startup_STM32F40x.s:199\n199     ldr    r1, =__etext\n(gdb)\n\n\n\nNote #2: 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 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...", 
+            "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 Mynewt OS and newt tool. \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 make its LED blink. You have two choices here - you can \ndownload an image to SRAM\n or you can \ndownload it to flash\n.\n\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\nPerso
 nal 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\nAccess to the Apache repo\n\n\n\n\n\n\nGet an account on Apache. \n\n\n\n\n\n\nThe latest codebase for the Mynewt OS is on the master branch at  https://git-wip-us.apache.org/repos/asf/incubator-mynewt-larva.git\n\n\n\n\n\n\nThe latest codebase for the Newt tool is on the master branch at  https://git-wip-us.apache.org/repos/asf/in
 cubator-mynewt-newt.git\n\n\n\n\n\n\nGetting your Mac Ready\n\n\nInstalling Homebrew to ease installs on OS X\n\n\n\n\n\n\nDo you have Homebrew? If not, open a terminal on your Mac and paste the following at a Terminal prompt. It will ask you for your sudo password.\n\n\n$ ruby -e \"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)\"\n\n\n\nAlternatively, you can just extract (or \ngit clone\n) Homebrew and install it to \n/usr/local\n.\n\n\n\n\n\n\nInstalling Go\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 t
 hen a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$ cd dev/go\n$ export GOPATH=`pwd`\n\n\n\nNote that you need to add export statements to ~/.bash_profile to export variables permanently.\n    $ vi ~/.bash_profile\n\n\n\n\n\n\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/Cellar/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\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\nYou will now get the godep package. Make sure you a
 re at 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 src/github.com/tools/\ngodep\n$ export PATH=$PATH:$GOPATH/bin\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nYou are ready to download the newt tool repository. You will use \"go\" to copy the directory (currently the asf incubator directory). Be patient as it may take a minute or two. Check the directories installed.\n\n\n$  go get git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git\n$ $ ls\n bin    pkg    src\n$ ls src\ngit-wip-us.apache.org   github.com      gopkg.in\n\n\n\n\n\n\n\nCheck that newt is installed.\n\n\n$ ls $GOPATH/src/git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git/mkdir -p $GOPATH/src/github.com/mynewt  \nGodeps          README.md       coding_style.txt    newt.go\nLICENSE         cli             design.txt\n\n\n\n\n\n\n\nBuildin
 g 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. The \n-o\n option is used to specify a reasonable name such as \nnewt\n for the the resulting executable and install the executable along with its dependencies in $GOPATH/bin. 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. \n\n\n\n\nHowever, it does not install the results along with its dependencies in $GOPATH/bin (for that you will need to use \ngo install\n). \n\n\n    $ ~/dev/go/bin/godep restore\n    $ go build -o \"$GOPATH\"/bin/newt\n    $ ls \"$GOPATH\"/bin/\n    godep       incubator-mynewt-newt.git     newt\n\n\n\n\n\nTry running newt using the compiled binary. For example, check for the version number by typing 'newt version'. See all the possib
 le 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    $ 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 thos
 e 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; do
 n'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 th
 e symbolic link installed by Homebrew points to the correct version of the debugger. If not, you can either change the symbolic link using the \"ln -f -s\" command or just go ahead and try with the version it points to!\n\n\n$ brew tap PX4/homebrew-px4\n$ brew update\n$ brew install gcc-arm-none-eabi-49\n$ arm-none-eabi-gcc --version  \narm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 4.9.3 20150529 (release) [ARM/embedded-4_9-branch revision 224288]\nCopyright (C) 2014 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions.  There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n$ ls -al /usr/local/bin/arm-none-eabi-gdb\nlrwxr-xr-x  1 aditihilbert  admin  69 Sep 22 17:16 /usr/local/bin/arm-none-eabi-gdb -\n /usr/local/Cellar/gcc-arm-none-eabi-49/20150609/bin/arm-none-eabi-gdb\n\n\n\nNote: If no version is specified, brew will install the latest version available. MynewtOS will eventually work with mul
 tiple 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 Operati
 ng System\" organization.\n\n\n\n\nInstalling some prerequisites\n\n\n\n\nInstall git, libcurl, and the go language if you do not have them already.\n$ sudo apt-get install git \n$ sudo apt-get install libcurl4-gnutls-dev \n$ sudo apt-get install golang\n\n\n\n\n\n\n\nCreating local repository\n\n\n\n\n\n\nThe directory structure must be first readied for using Go. Go code must be kept inside a workspace. A workspace is a directory hierarchy with three directories at its root:\n\n\n\n\n\n\nsrc contains Go source files organized into packages (one package per directory),\n\n\n\n\n\n\npkg contains package objects, and\n\n\n\n\n\n\nbin contains executable commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd $HOME\n$ mkdir -p dev/go  \n$
  cd dev/go\n$ export GOPATH=$PWD\n\n\n\nNote that you need to add export statements to ~/.bashrc (or equivalent) to export variables permanently.\n\n\n\n\n\n\nNext, install godep. Note that the following command produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\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. The \n-o\n option is used to specify a reasonable name such as \nnewt\n for the the resulting executable and install the executable along with its dependencies in $GOPATH/bin. 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. \n\n\n$ ~/dev/go/bin/godep restore\n$ go build -o \"$GOPATH\"/bin/newt\n$ ls \"$GOPATH\"/bin/\ngodep       incubator-mynewt-newt.git     newt\n\n\
 n\n\n\n\n\nTry 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\n\n\nNote: If you are going to be be modifying the newt tool itself often and wish to compile the program every time you call it, you may want to store the command in a variable in your .bash_profile. So type in \nexport newt=\"go run $GOPATH/src/github.com/mynewt/newt/newt.go\"\n in your ~/.bashrc (or equivalent) and execute it by calling \n$newt\n at the prompt instead of \nnewt\n. Here, you use \ngo run\n which runs the compiled binary directly without producing an executable.\n\n\n    $ go build %GOPATH%/src/github.com/mynewt/newt/newt.go\n    $ cd ~/dev/go/src/github.com/mynewt/newt\n    $ ls\n    Godeps          README.md       coding_style.txt    newt\n    LICENSE         cli         design.txt      newt.go\n    $ newt version\n    Newt version:  1.0\n    $ newt -h\n   
  Newt allows you to create your own embedded project based on the Mynewt\n    operating system. Newt provides both build and package management in a\n    single tool, which allows you to compose an embedded workspace, and set\n    of projects, and then build the necessary artifacts from those projects.\n    For more information on the Mynewt operating system, please visit\n    https://www.github.com/mynewt/documentation.\n\n    Please use 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 sur
 e 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\nDownl
 oad 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 executab
 le commands.\n\n\n\n\n\n\nThe GOPATH environment variable specifies the location of your workspace. First create a 'dev' directory and then a 'go' directory under it. Set the GOPATH environment variable to this directory and then proceed to create the directory for cloning the newt tool repository.\n\n\n$ cd c:\\\n$ mkdir dev\\go\n$ cd dev\\go\n\n\n\n\n\n\n\nSet the following user environment variables using the steps outlined here.\n\n\n\n\nGOPATH: C:\\dev\\go\n\n\nPATH: C:\\Program Files (x86)\\GNU Tools ARM Embedded\\4.9 2015q3\\bin;%GOPATH%\\bin;C:\\win-builds-x86_64\\bin;C:\\win-builds-i686\\bin;C:\\msys\\bin\n\n\n\n\nSteps:\n\n\n\n\nRight-click the start button\n\n\nClick \"Control panel\"\n\n\nClick \"System and Security\"\n\n\nClick \"System\"\n\n\nClick \"Advanced system settings\" in the left panel\n\n\nClick the \"Envoronment Variables...\" button\n\n\nThere will be two sets of environment variables: user variables\n  in the upper half of the screen, and system variables 
 in the lower\n  half.  Configuring the user variables is recommended and tested \n  (though system variables will work as well).\n\n\n\n\n\n\n\n\nNext, install godep. Note that the following command produces no output.\n\n\n$ go get github.com/tools/godep\n\n\n\n\n\n\n\nSet up the repository for the package building tool \"newt\" on your local machine. First create the appropriate directory for it and then clone the newt tool repository from the online apache repository (or its github.com mirror) 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://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt.git newt\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 de
 pendencies. Add go environment to path. Again, to make the export variable permanent, add i

<TRUNCATED>