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/12/18 21:27:07 UTC

[09/17] incubator-mynewt-site git commit: new chapter names and references, updated but not complete Windows instructions for blinky project

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/2c998465/get_started/newt_concepts/index.html
----------------------------------------------------------------------
diff --git a/get_started/newt_concepts/index.html b/get_started/newt_concepts/index.html
new file mode 100644
index 0000000..7b2a01f
--- /dev/null
+++ b/get_started/newt_concepts/index.html
@@ -0,0 +1,436 @@
+<!DOCTYPE html>
+<!--[if IE 8]><html class="no-js lt-ie9" lang="en" > <![endif]-->
+<!--[if gt IE 8]><!--> <html class="no-js" lang="en" > <!--<![endif]-->
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1.0">
+  
+  <title>Newt Concepts - Mynewt</title>
+  
+
+  <link rel="shortcut icon" href="../../img/favicon.ico">
+
+  
+  <link href='https://fonts.googleapis.com/css?family=Lato:400,700|Roboto+Slab:400,700|Inconsolata:400,700' rel='stylesheet' type='text/css'>
+
+  <link rel="stylesheet" href="../../css/theme.css" type="text/css" />
+  <link rel="stylesheet" href="../../css/theme_extra.css" type="text/css" />
+  <link rel="stylesheet" href="../../css/highlight.css">
+  <link href="../../extra.css" rel="stylesheet">
+
+  
+  <script>
+    // Current page data
+    var mkdocs_page_name = "Newt Concepts";
+  </script>
+  
+  <script src="../../js/jquery-2.1.1.min.js"></script>
+  <script src="../../js/modernizr-2.8.3.min.js"></script>
+  <script type="text/javascript" src="../../js/highlight.pack.js"></script>
+  <script src="../../js/theme.js"></script> 
+
+  
+</head>
+
+<body class="wy-body-for-nav" role="document">
+
+  <div class="wy-grid-for-nav">
+
+    
+    <nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
+      <div class="wy-side-nav-search">
+        <a href="../.." class="icon icon-home"> Mynewt</a>
+        <div role="search">
+  <form id ="rtd-search-form" class="wy-form" action="../../search.html" method="get">
+    <input type="text" name="q" placeholder="Search docs" />
+  </form>
+</div>
+      </div>
+
+      <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
+        <ul class="current">
+          
+            <li>
+    <li class="toctree-l1 ">
+        <a class="" href="../..">Home</a>
+        
+    </li>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Get Started</span></li>
+
+        
+            
+    <li class="toctree-l1 current">
+        <a class="current" href="./">Newt Concepts</a>
+        
+            <ul>
+            
+                <li class="toctree-l3"><a href="#newt-concepts">Newt Concepts</a></li>
+                
+                    <li><a class="toctree-l4" href="#basic-components-in-the-ecosystem">Basic components in the ecosystem</a></li>
+                
+                    <li><a class="toctree-l4" href="#terminology">Terminology</a></li>
+                
+                    <li><a class="toctree-l4" href="#a-mynewt-contributor">A Mynewt contributor</a></li>
+                
+                    <li><a class="toctree-l4" href="#a-mynewt-user">A Mynewt user</a></li>
+                
+            
+            </ul>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../project1/">Blinky, The First Project</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../how_to_edit_docs/">How to edit docs</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../try_markdown/">Sample doc to edit</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Get Acclimated</span></li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../get_acclimated/vocabulary/">Understanding Newt Terms</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../get_acclimated/project2/">Project 2</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../get_acclimated/project3/">Project 3</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Newt Tool</span></li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../newt/newt_ops/">Command structure</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../newt/newt_tool_reference/">Command list</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Mynewt OS</span></li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/mynewt_os/">Overview</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/context_switch/">Scheduler/Context Switching</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/time/">Time</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/task/">Tasks</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/event_queue/">Event Queues</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/semaphore/">Semaphores</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/mutex/">Mutexes</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/memory_pool/">Memory Pools</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/heap/">Heap</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/mbufs/">Mbufs</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/sanity/">Sanity</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/callout/">Callout Functions</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../os/port_os/">Porting to other Platforms</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Chapter5 - Modules</span></li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../modules/console/">Console</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../modules/shell/">Shell</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../modules/bootloader/">Bootloader</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../modules/filesystem/">File System</a>
+        
+    </li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../modules/testutil/">Test Utilities</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+            <li>
+    <ul class="subnav">
+    <li><span>Chapter6 - Packaging it</span></li>
+
+        
+            
+    <li class="toctree-l1 ">
+        <a class="" href="../../packaging/dist/">Creating Packages</a>
+        
+    </li>
+
+        
+    </ul>
+<li>
+          
+        </ul>
+      </div>
+      &nbsp;
+    </nav>
+
+    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
+
+      
+      <nav class="wy-nav-top" role="navigation" aria-label="top navigation">
+        <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
+        <a href="../..">Mynewt</a>
+      </nav>
+
+      
+      <div class="wy-nav-content">
+        <div class="rst-content">
+          <div role="navigation" aria-label="breadcrumbs navigation">
+  <ul class="wy-breadcrumbs">
+    <li><a href="../..">Docs</a> &raquo;</li>
+    
+      
+        
+          <li>Get Started &raquo;</li>
+        
+      
+    
+    <li>Newt Concepts</li>
+    <li class="wy-breadcrumbs-aside">
+      
+    </li>
+  </ul>
+  <hr/>
+</div>
+          <div role="main">
+            <div class="section">
+              
+                <h2 id="newt-concepts">Newt Concepts<a class="headerlink" href="#newt-concepts" title="Permanent link">&para;</a></h2>
+<p>This page introduces the basic terms you will need to find your way around the Mynewt ecosystem.</p>
+<h3 id="basic-components-in-the-ecosystem">Basic components in the ecosystem<a class="headerlink" href="#basic-components-in-the-ecosystem" title="Permanent link">&para;</a></h3>
+<ul>
+<li>
+<p>NewtOS is an open-source RTOS (Real Time Operating System) that works on a variety of hardware. The goal is to develop a pre-emptive, multitasking OS that is highly modular, making it possible to mix and match components to enable desired features and capabilities on multiple hardware architectures. Examples of components being worked on are the Core RTOS, a flash file system, utility functions, a variety of board support packages, packages of microcontrollers etc.</p>
+</li>
+<li>
+<p>Network protocol stacks such as Bluetooth Low Energy, and more</p>
+</li>
+<li>
+<p>Newt Tool helps you mix the specific packages for the combination of hardware and low-level embedded architecture features of the user's choice and generate the corresponding run-time image based on the NewtOS. It provides the infrastructure to manage and build for different CPU architectures, memory units, board support packages etc., allowing a user to formulate the contents according to the low-level features needed by his or her project.</p>
+</li>
+</ul>
+<h3 id="terminology">Terminology<a class="headerlink" href="#terminology" title="Permanent link">&para;</a></h3>
+<p>A Mynewt user starts with a project in mind that defines the application or utility that he or she wants to implement on an embedded device. Making an LED blink on an electronics prototyping board is a common starter project. Enabling a BLE (Bluetooth Low Energy) peripheral mode on a development board is a more complex project. Specifying a project requires naming it, at the very least, and then adding the desired properties or attributes. In order to actualize a project, it needs to be applied to a target which is essentially a combination of some specified hardware and the execution environment. </p>
+<p>In the mynewt lifecycle, a project grows in a nest. A nest may house multiple projects. The nest is, therefore, a repository where various component packages for one or more projects reside. Each package is an egg (naturally!). However, in the world of Mynewt an egg may consist of other eggs! For example, the starter project Blinky is an egg consisting of several constituent eggs that enable core features. The egg form is suitable for elemental units of code as it explicitly exposes characteristics such as dependencies, versions, capabilities, requirements etc., thus making assembling appropriate components for a project and building an image for it easy to follow, modular, and robust.</p>
+<p>A nest can be given any name. For example, you will see a nest named "tadpole" in Mynewt (<a href="https://git-wip-us.apache.org/repos/asf?p=incubator-mynewt-tadpole.git">https://git-wip-us.apache.org/repos/asf?p=incubator-mynewt-tadpole.git</a>). It contains all the core libraries of the operating system for the native platform which currently supports compilation on Mac OS X. The core libraries are contained in the form of eggs where an egg is a basic unit of implementation of any aspect of the RTOS. The eggs are distributed in the following directory structure inside the nest:</p>
+<ul>
+<li>libs: contains the two eggs <code>os</code> and <code>testutil</code></li>
+<li>hw: contains three eggs - (i) <code>hal</code> which has the abstraction layer (HAL) API definitions that all BSP and MCU implementations must support, (ii) <code>/mcu/native</code> which in an MCU implementation for the native platform (a simulator, in this case), and (iii) <code>bsp/native</code> which is a BSP implementation for the native platform </li>
+<li>compiler: contains the <code>sim</code> egg which bundles the compiler specifications for the native platform.</li>
+</ul>
+<p>Let's explore this sample nest a bit further. The <code>libs/os</code> egg contains code for scheduler, process/thread/memory management, semaphores etc. It is the core RTOS which ports to all supported chip platforms.The <code>libs/testutil</code> egg contains code for testing packages on hardware or simulated environment. The <code>hw/hal</code> egg contains header files that provide abstraction for physical hardware components such as GPIO (general purpose input/output), network adapters, timers, and UARTs. This <code>hw/hal</code> egg is an MCU peripheral abstraction designed to make it easy to port to different MCUs (microcontrollers). The <code>hw/mcu/native</code> egg contains code for microcontroller operations on the native platform. The <code>hw/bsp/native</code> egg contains the board support package for the native platform. And finally, the sixth egg <code>sim</code> contains the compiler specifications such as path and flags. Currently the compilation is supported on
  Mac OS X.</p>
+<p>You can see another nest in the mynewt ecosystem called the "larva". It was spawned from the skeletal "tadpole" nest using the newt tool. Spawning is easy - <code>$ newt create nest &lt;your_nest_name&gt;</code>. "larva" is the developer's test repository containing all sorts of eggs being written and incubated, including ones to enhance the core operating system which should eventually make their way into the "tadpole" nest. There is a <code>hatch_tadpole</code> script to update the "tadpole" nest when the core OS related eggs in "larva" are ready.</p>
+<p>There is a third nest named "newt" that contains all the eggs needed to support the build and release process of mynewt software. In the future, there will also be pre-built nests for certain common hardware devices to enable a user to quickly get started with a project.</p>
+<h3 id="a-mynewt-contributor">A Mynewt contributor<a class="headerlink" href="#a-mynewt-contributor" title="Permanent link">&para;</a></h3>
+<p>A contributor can choose to work on any area(s) of the Mynewt endeavor that appeals to him or her. Hence, you can work on one or more eggs or an entire nest. You can create your own nest (master) or create a branch in an existing nest. For now, Runtime contributors will review any new areas of support that you may wish to introduce e.g. a new board support package (BSP) or a new network protocol. </p>
+<p>A contributer role necessarily implies he or she is a Mynewt user (see below) of some or all of the products developed.</p>
+<h3 id="a-mynewt-user">A Mynewt user<a class="headerlink" href="#a-mynewt-user" title="Permanent link">&para;</a></h3>
+<p>An application developer is interested only in using software available in this ecosystem to build a top level build artifact. He or she may either:</p>
+<ul>
+<li>Use a pre-built nest, or</li>
+<li>Spawn a new nest using the newt tool for a target where a target is a custom combination of supported hardware components</li>
+</ul>
+<p>In either case, the user would use the newt tool to create and set the target in the chosen nest. The newt tool would then be used to build out the target profile which would determine which eggs to choose. Finally, the user would use the newt tool to generate a run-time image that can be run on the device.</p>
+              
+            </div>
+          </div>
+          <footer>
+  
+    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
+      
+        <a href="../project1/" class="btn btn-neutral float-right" title="Blinky, The First Project"/>Next <span class="icon icon-circle-arrow-right"></span></a>
+      
+      
+        <a href="../.." class="btn btn-neutral" title="Home"><span class="icon icon-circle-arrow-left"></span> Previous</a>
+      
+    </div>
+  
+
+  <hr/>
+
+  <div role="contentinfo">
+    <!-- Copyright etc -->
+    
+  </div>
+
+  Built with <a href="http://www.mkdocs.org">MkDocs</a> using a <a href="https://github.com/snide/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
+</footer>
+	  
+        </div>
+      </div>
+
+    </section>
+
+  </div>
+
+<div class="rst-versions" role="note" style="cursor: pointer">
+    <span class="rst-current-version" data-toggle="rst-current-version">
+      
+      
+        <span><a href="../.." style="color: #fcfcfc;">&laquo; Previous</a></span>
+      
+      
+        <span style="margin-left: 15px"><a href="../project1/" style="color: #fcfcfc">Next &raquo;</a></span>
+      
+    </span>
+</div>
+
+</body>
+</html>

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/2c998465/get_started/pics/bottomview.png
----------------------------------------------------------------------
diff --git a/get_started/pics/bottomview.png b/get_started/pics/bottomview.png
new file mode 100644
index 0000000..fb7bf0a
Binary files /dev/null and b/get_started/pics/bottomview.png differ

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/2c998465/get_started/pics/topview.png
----------------------------------------------------------------------
diff --git a/get_started/pics/topview.png b/get_started/pics/topview.png
new file mode 100644
index 0000000..e57995e
Binary files /dev/null and b/get_started/pics/topview.png differ