<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        
        
        <!-- This is broken by doc revisioning.
         -->
        <link rel="shortcut icon" href="../../img/favicon.ico">

        <title>Newt Theory of Ops - Apache Mynewt</title>

        <link href="../../css/bootstrap-3.0.3.min.css" rel="stylesheet">
        <link rel="stylesheet" href="../../css/highlight.css">
        <link href="../../css/base.css" rel="stylesheet">
        <link href="../../css/custom.css" rel="stylesheet">
        <link href="../../css/v2.css" rel="stylesheet">
        <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
        <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

        <!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
        <!--[if lt IE 9]>
            <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
            <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
        <![endif]-->

        
            <script>
            (function(i, s, o, g, r, a, m) {
    i["GoogleAnalyticsObject"] = r;
    (i[r] =
        i[r] ||
        function() {
            (i[r].q = i[r].q || []).push(arguments);
        }),
        (i[r].l = 1 * new Date());
    (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
    a.async = 1;
    a.src = g;
    m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");

ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
        
    </head>


    <body class="Newt Theory of Ops">


        <div class="container">
    <div class="row v2-main-banner">
        <a class="logo-cell" href="/">
            <img class="logo" src="/img/logo.png">
        </a>
        <div class="tagline-cell">
            <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
        </div>
        <div class="news-cell">
            <div class="well">
                <h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.12.0, Apache NimBLE 1.7.0 </a> released (April 4, 2024)
            </div>
        </div>
    </div>
</div>

        






<nav id="navbar" class="navbar navbar-inverse affix-top" data-spy="affix" data-offset-top="150" role="navigation">
    <div class="container">
        <!-- Collapsed navigation -->
        <div class="navbar-header">
            <!-- Expander button -->
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>

        </div>

        <!-- Expanded navigation -->
        <div class="navbar-collapse collapse">
            <!-- Main navigation -->
            <ul class="nav navbar-nav navbar-right">
                <li 
  class=""
>
                    <a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
                </li>
                <li 
  class="important"
>
                    <a href="/quick-start/">Quick Start</a>
                </li>
                <li 
  class=""
>
                    <a href="/about/">About</a>
                </li>
                <li 
  class=""
>
                    <a href="/talks/">Talks</a>
                </li>
                <li 
  class="active"
>
                    <a href="/documentation/">Documentation</a>
                </li>
                <li 
  class=""
>
                    <a href="/download/">Download</a>
                </li>
                <li 
  class=""
>
                    <a href="/community/">Community</a>
                </li>
                <li 
  class=""
>
                    <a href="/events/">Events</a>
                </li>
            </ul>

        </div>
    </div>
</nav>

        

        <div class="container">
            
                <div class="row">
                    <div class="col-md-3 v2-sidebar sidebar-container"><div id="docSidebar" class="hidden-print" role="complementary">
    <div class="top">
        <div role="search">
            <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
                <div class="form-group">
                    <input type="text" name="q" class="form-control" placeholder="Search documentation" />
                </div>
            </form>
        </div>
    </div>
    <ul class="toc-nav">
      <li class="doc-version"><select class="form-control" onchange="if (this.value) window.location.href=this.value">
  <option value="/latest">
    Version: master
  </option>
  <option value="/v1_12_0/" >
    Version: 1.12.0
  </option>
  <option value="/v1_11_0/" >
    Version: 1.11.0
  </option>
  <option value="/v1_10_0/" >
    Version: 1.10.0
  </option>
  <option value="/v1_9_0/" >
    Version: 1.9.0
  </option>
    <option value="/v1_8_0/" >
    Version: 1.8.0
  </option>
  <option value="/v1_7_0/" >
    Version: 1.7.0
  </option>
  <option value="/v1_6_0/" >
    Version: 1.6.0
  </option>
  <option value="/v1_5_0/" >
    Version: 1.5.0
  </option>
  <option value="/v1_4_0/" >
    Version: 1.4.0
  </option>
  <option value="/v1_3_0/os/introduction" >
    Version: 1.3.0
  </option>
  <option value="/v1_2_0/os/introduction" >
    Version: 1.2.0
  </option>
  <option value="/v1_1_0/os/introduction" selected="selected" >
    Version: 1.1.0
  </option>
  <option value="/v1_0_0/os/introduction" >
    Version: 1.0.0
  </option>
  <option value="/v0_9_0/os/introduction" >
    Version: 0.9.0
  </option>
</select></li>
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
      
        
          
  
  
    <li ><a href="../../os/introduction/">Mynewt Documentation</a>
  
  
    <ul>
          
              
          
              
                
  
  
    <li ><a href="../../os/get_started/get_started/">Basic Setup</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../os/get_started/vocabulary/">Concepts</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../../os/tutorials/tutorials/">Tutorials</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../os/os_user_guide/">OS User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li><a href="
  ../../network/ble/ble_intro/
">BLE User Guide</a>
  
  
    </li>

              
          
              
                
  
  
    <li ><a href="../newt_intro/">Newt Tool Guide</a>
  
  
    <ul>
          
              
          
              
                
  <li class="active">
    <a href="./">Newt Theory of Ops</a>
  </li>

              
          
              
                
  
  
    <li ><a href="../newt_ops/">Command Guide</a>
  
  
    </li>

              
          
    </ul>
  
    </li>

              
          
              
                
  
  
    <li ><a href="../../newtmgr/overview/">Newt Manager Guide</a>
  
  
    </li>

              
          
              
                
  <li >
    <a href="../../known_issues/">Known Issues</a>
  </li>

              
          
    </ul>
  
    </li>

        
      
        
          
  
  
    <li><a href="
  ../../faq/go_env/
">Appendix</a>
  
  
    </li>

        
      
    </ul>
</div></div>

                    <div class="col-md-9" role="main">
                        <div class="doc-header">
                            <div role="navigation" aria-label="breadcrumbs navigation">
  <ul class="wy-breadcrumbs">
    <li><a href="/documentation/">Docs</a></li>
    
    
        
          <li>&raquo; <a href="newt/newt_intro/">Newt Tool Guide</a></li>
        
      
        
          <li>&raquo; <a href="os/introduction/">Mynewt Documentation</a></li>
        
      
      
        <li>&raquo; Newt Theory of Ops</li>
      
    
    
      <li class="wy-breadcrumbs-aside">
        
          <a href="https://github.com/apache/mynewt-site/blob/master/docs/newt/newt_operation.md"
            class="icon icon-github"> Edit on GitHub</a>
        
      </li>
    
  </ul>
</div>
                        </div>
                        
                          
                        
                          
                        
                          
                        
                          
                            <div class="alert alert-warning">
                                <p>
                                    Version 1.1.0 is not the most recent version of the Apache Mynewt
                                    documentation. Click <a href="/latest">here</a> to read the latest
                                    version.
                                </p>
                            </div>
                          
                        
                        
                            <h2 id="newt-tool-theory-of-operations">Newt Tool - Theory of Operations</h2>
<p>Newt has a fairly smart package manager that can read a directory tree, build a dependency tree, and emit the right build artifacts.</p>
<h3 id="building-dependencies">Building dependencies</h3>
<p>Newt can read a directory tree, build a dependency tree, and emit the right build artifacts.  An example newt source tree is in mynewt-blinky/develop:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ tree -L 3 
.
├── DISCLAIMER
├── LICENSE
├── NOTICE
├── README.md
<span style="background-color: #ffffcc">├── apps
</span>│   └── blinky
│       ├── pkg.yml
│       └── src
├── project.yml
<span style="background-color: #ffffcc">└── targets
</span>     ├── my_blinky_sim
     │   ├── pkg.yml
     │   └── target.yml
     └── unittest
         ├── pkg.yml
         └── target.yml

6 directories, 10 files
</code></pre></div>

<p><br></p>
<p>When newt sees a directory tree that contains a "project.yml" file it knows that it is in the base directory of a project, and automatically builds a package tree. You can see that there are two essential package directories, "apps" and "targets." </p>
<p><br></p>
<h4 id="apps-package-directory">"apps" Package Directory</h4>
<p><code>apps</code> is where applications are stored, and applications are where the main() function is contained.  The base project directory comes with one simple app called <code>blinky</code> in the <code>apps</code> directory. The core repository <code>@apache-mynewt-core</code> comes with many additional sample apps in its <code>apps</code> directory. At the time of this writing, there are several example BLE apps, the boot app, slinky app for using newt manager protocol, and more in that directory.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>@~/dev/myproj$ ls repos/apache-mynewt-core/apps/
blecent     blesplit    boot        sensors_test    splitty
blehci      bletest     fat2native  slinky      test
bleprph     bletiny     ffs2native  slinky_oic  testbench
bleprph_oic bleuart     ocf_sample  spitest     timtest
</code></pre></div>

<p>Along with the <code>targets</code> directory, <code>apps</code> represents the top-level of the build tree for the particular project, and define the dependencies for the rest of the system. Mynewt users and developers can add their own apps to the project's <code>apps</code> directory.   </p>
<p>The app definition is contained in a <code>pkg.yml</code> file. For example, blinky's <code>pkg.yml</code> file is:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more apps/blinky/pkg.yml
&lt;snip&gt;
pkg.name: apps/blinky
pkg.type: app
pkg.description: Basic example application which blinks an LED.
pkg.author: &quot;Apache Mynewt &lt;dev@mynewt.apache.org&gt;&quot;
pkg.homepage: &quot;http://mynewt.apache.org/&quot;
pkg.keywords:

pkg.deps:
    - &quot;@apache-mynewt-core/kernel/os&quot;
    - &quot;@apache-mynewt-core/hw/hal&quot;
    - &quot;@apache-mynewt-core/sys/console/full&quot;
</code></pre></div>

<p><br></p>
<p>This file says that the name of the package is apps/blinky, and it depends on the <code>kernel/os,</code>hw/hal<code>and</code>sys/console/full` packages.</p>
<p><strong>NOTE:</strong> @apache-mynewt-core is a repository descriptor, and this will be 
covered in the "repository" section. </p>
<p><br></p>
<h4 id="targets-package-directory">"targets" Package Directory</h4>
<p><code>targets</code> is where targets are stored, and each target is a collection of parameters that must be passed to newt in order to generate a reproducible build. Along with the <code>apps</code> directory, <code>targets</code> represents the top of the build tree. Any packages or parameters specified at the target level cascades down to all dependencies.</p>
<p>Most targets consist of:</p>
<ul>
<li>app: The application to build</li>
<li>bsp: The board support package to combine with that application</li>
<li>build_profile: Either debug or optimized.</li>
</ul>
<p>The <code>my_blinky_sim</code> target that is included by default has the following settings:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ newt target show
targets/my_blinky_sim
    app=apps/blinky
    bsp=@apache-mynewt-core/hw/bsp/native
    build_profile=debug
$ ls targets/my_blinky_sim/
pkg.yml     target.yml
</code></pre></div>

<p>There are helper functions to aid the developer specify parameters for a target. </p>
<ul>
<li><strong>vals</strong>: Displays all valid values for the specified parameter type (e.g. bsp for a target)</li>
<li><strong>target show</strong>: Displays the variable values for either a specific target or all targets defined for the project</li>
<li><strong>target set</strong>: Sets values for target variables</li>
</ul>
<p>In general, the three basic parameters of a target (<code>app</code>, <code>bsp</code>, and <code>build_profile</code>) are stored in the target's <code>target.yml</code> file in the targets/&lt;target-name&gt; directory, where <code>target-name</code> is the name of the target. You will also see a <code>pkg.yml</code> file in the same directory. Since targets are packages, a <code>pkg.yml</code> is expected. It contains typical package descriptors, dependencies, and additional parameters such as the following:</p>
<ul>
<li>Cflags: Any additional compiler flags you might want to specify to the build</li>
<li>Aflags: Any additional assembler flags you might want to specify to the build</li>
<li>Lflags: Any additional linker flags you might want to specify to the build</li>
</ul>
<p>You can also override the values of the system configuration settings that are defined by the packages that your target includes. You override the values in your target's <code>syscfg.yml</code> file (stored in the targets/&lt;target-name&gt; directory). You can use the <code>newt target config show</code> command to see the configuration settings and values for your target, and use the <code>newt target set</code> command to set the <code>syscfg</code> variable and override the configuration setting values.  You can also use an editor to create your target's <code>syscfg.yml</code> file and add the setting values to the file.  See <a href="/os/modules/sysinitconfig/sysinitconfig.md">System Configuration And Initialization</a> for more information on system configuration settings.</p>
<p><br></p>
<h3 id="resolving-dependencies">Resolving dependencies</h3>
<p>When newt builds a project, it will:</p>
<ul>
<li>find the top-level project.yml file</li>
<li>recurse the packages in the package tree, and build a list of all 
source packages</li>
</ul>
<p>Newt then looks at the target that the user set, for example, blinky_sim:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more targets/my_blinky_sim/
pkg.yml     target.yml
$ more targets/my_blinky_sim/target.yml
### Target: targets/my_blinky_sim
target.app: &quot;apps/blinky&quot;
target.bsp: &quot;@apache-mynewt-core/hw/bsp/native&quot;
target.build_profile: &quot;debug&quot;
</code></pre></div>

<p><br></p>
<p>The target specifies two major things:</p>
<ul>
<li>Application (target.app): The application to build</li>
<li>Board Support Package (target.bsp): The board support package to build 
along with that application.</li>
</ul>
<p>Newt builds the dependency tree specified by all the packages. While building this tree, it does a few other things:</p>
<ul>
<li>Sets up the include paths for each package. Any package that depends on another package, automatically gets the include directories from the package it includes.  Include directories in the
newt structure must always be prefixed by the package name. For example, kernel/os has the following include tree and its include directory files contains the package name "os" before any header files.  This is so in order to avoid any header file conflicts.</li>
</ul>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$tree kernel/os/include
kernel/os/include
└── os
    ├── arch
    │   ├── cortex_m0
    │   │   └── os
    │   │       └── os_arch.h
    │   ├── cortex_m4
    │   │   └── os
    │   │       └── os_arch.h
    │   ├── mips
    │   │   └── os
    │   │       └── os_arch.h
    │   ├── sim
    │   │   └── os
    │   │       └── os_arch.h
    │   └── sim-mips
    │       └── os
    │           └── os_arch.h
    ├── endian.h
    ├── os.h
    ├── os_callout.h
    ├── os_cfg.h
    ├── os_cputime.h
    ├── os_dev.h
    ├── os_eventq.h
    ├── os_fault.h
    ├── os_heap.h
    ├── os_malloc.h
    ├── os_mbuf.h
    ├── os_mempool.h
    ├── os_mutex.h
    ├── os_sanity.h
    ├── os_sched.h
    ├── os_sem.h
    ├── os_task.h
    ├── os_test.h
    ├── os_time.h
    └── queue.h

&lt;snip&gt;
</code></pre></div>

<p><br></p>
<ul>
<li>
<p>Validates API requirements.  Packages can export APIs they 
implement, (i.e. pkg.api: hw-hal-impl), and other packages can require 
those APIs (i.e. pkg.req_api: hw-hal-impl).</p>
</li>
<li>
<p>Reads and validates the configuration setting definitions and values from the package <code>syscfg.yml</code> files.
It generates a <code>syscfg.h</code> header file that packages include in the source files in order to access the settings.<br />
It also generates a system initialization function to initialize the packages.
See <a href="/os/modules/sysinitconfig/sysinitconfig.md">System Configuration And Initialization</a> for more information.</p>
</li>
</ul>
<p>In order to properly resolve all dependencies in the build system, newt recursively processes the package dependencies until there are no new dependencies.  And it builds a big list of all the packages that need to be build.</p>
<p>Newt then goes through this package list, and builds every package into 
an archive file.</p>
<p><strong>NOTE:</strong> The newt tool generates compiler dependencies for all of these packages, and only rebuilds the packages whose dependencies have changed. Changes in package &amp; project dependencies are also taken into account. It is smart, after all!</p>
<h3 id="producing-artifacts">Producing artifacts</h3>
<p>Once newt has built all the archive files, it then links the archive files together.  The linkerscript to use is specified by the board support package (BSP.)</p>
<p>The newt tool creates a bin directory under the base project directory, and places a target's build artifacts into the bin/targets/&lt;target-name&gt;/app/apps/&lt;app-name&gt; directory, where <code>target-name</code> is the name of the target and <code>app-name</code> is the name of the application. As an example, the <code>blinky.elf</code> executable for the <code>blinky</code> application defined by the <code>my_blinky_sim</code> target is stored in the bin/targets/my_blinky_sim/app/apps/blinky directory as shown in the following source tree:</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$tree -L 9 bin/ bin/
└── targets
    ├── my_blinky_sim
    │   ├── app
    │   │   ├── apps
    │   │   │   └── blinky
    │   │   │       ├── apps
    │   │   │       │   └── blinky
    │   │   │       │       └── src
    │   │   │       │           ├── main.d
    │   │   │       │           ├── main.o
    │   │   │       │           └── main.o.cmd
    │   │   │       ├── apps_blinky.a
    │   │   │       ├── apps_blinky.a.cmd
    │   │   │       ├── blinky.elf
    │   │   │       ├── blinky.elf.cmd
    │   │   │       ├── blinky.elf.dSYM
    │   │   │       │   └── Contents
    │   │   │       │       ├── Info.plist
    │   │   │       │       └── Resources
    │   │   │       │           └── DWARF
    │   │   │       ├── blinky.elf.lst
    │   │   │       └── manifest.json
    │   │   ├── hw
    │   │   │   ├── bsp
    │   │   │   │   └── native
    │   │   │   │       ├── hw_bsp_native.a
    │   │   │   │       ├── hw_bsp_native.a.cmd
    │   │   │   │       └── repos
    │   │   │   │           └── apache-mynewt-core
    │   │   │   │               └── hw

&lt;snip&gt;
</code></pre></div>

<p><br></p>
<p>As you can see, a number of files are generated:</p>
<ul>
<li>Archive File</li>
<li>*.cmd: The command use to generate the object or archive file</li>
<li>*.lst: The list file where symbols are located</li>
</ul>
<p>Note: The *.o object files that get put into the archive file are stored in the bin/targets/my_blinky_sim/app/apps/blinky/apps/blinky/src directory.</p>
<h3 id="downloaddebug-support">Download/Debug Support</h3>
<p>Once a target has been build, there are a number of helper functions 
that work on the target.  These are:</p>
<ul>
<li><strong>load</strong>     Download built target to board</li>
<li><strong>debug</strong>        Open debugger session to target</li>
<li><strong>size</strong>         Size of target components</li>
<li><strong>create-image</strong>  Add image header to target binary</li>
<li><strong>run</strong>  The equivalent of build, create-image, load, and debug on specified target</li>
<li><strong>target</strong> Create, delete, configure, and query a target</li>
</ul>
<p><code>load</code> and <code>debug</code> handles driving GDB and the system debugger.  These 
commands call out to scripts that are defined by the BSP.</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%;"><span></span><code>$ more repos/apache-mynewt-core/hw/bsp/nrf52dk/nrf52dk_debug.sh
&lt;snip&gt;
. $CORE_PATH/hw/scripts/jlink.sh

FILE_NAME=$BIN_BASENAME.elf

if [ $# -gt 2 ]; then
    SPLIT_ELF_NAME=$3.elf
    # TODO -- this magic number 0x42000 is the location of the second image
    # slot. we should either get this from a flash map file or somehow learn
    # this from the image itself
    EXTRA_GDB_CMDS=&quot;add-symbol-file $SPLIT_ELF_NAME 0x8000 -readnow&quot;
fi

JLINK_DEV=&quot;nRF52&quot;

jlink_debug
</code></pre></div>

<p>The idea is that every BSP will add support for the debugger environment 
for that board.  That way common tools can be used across various development boards and kits.</p>
                        
                        <div class="row">
                            



<ul class="nav nav-pills" style="margin-bottom: 10px">
    <li>
    
    </li>
    <li class="pull-right">
    
    </li>
</ul>
                        </div>
                        <footer class="row">
    <div class="col-xs-12">
        
            <p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
        
    </div>
    <div class="col-xs-12">
        <div class="logos">
            <a href="https://www.apache.org/">
                <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
            </a>
            <p>
                Copyright © 2015-2021 The Apache Software Foundation.<br>
                <small class="footnote">
                    Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt
                    project logo are either registered trademarks or trademarks of the Apache
                    Software Foundation in the United States and other countries.
                </small>
            </p>
            <a href="">
                <img src="https://www.countit.com/images/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
            </a>
        </div>
    </div>
    <a href="https://www.apache.org/licenses/">
        <button class="button-footer-asf">
            License
        </button>
    </a>
    <a href="https://www.apache.org/foundation/sponsorship.html">
        <button class="button-footer-asf">
            Sponsorship
        </button>
    </a>
    <a href="https://www.apache.org/foundation/thanks.html">
        <button class="button-footer-asf">
            Thanks
        </button>
    </a>
    <a href="https://www.apache.org/security/">
        <button class="button-footer-asf">
            Security
        </button>
    </a>
    <a href="https://apache.org/events/current-event">
        <button class="button-footer-asf">
            ASF Events
        </button>
    </a>
</footer>
                    </div>
                </div>
            
            
        </div>

        <script src="../../js/jquery-1.10.2.min.js"></script>
        <script src="../../js/bootstrap-3.0.3.min.js"></script>
        <script src="../../js/highlight.pack.js"></script>
        <script src="../../js/base.js"></script>
        <script src="../../js/custom.js"></script>
            <script src="search/main.js"></script>

    </body>
</html>