blob: 31864804ccfa6f1e9c03fd1b47e9c33dcd678b55 [file] [log] [blame]
<!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">
<title>Mynewt Documentation &mdash; Apache Mynewt latest documentation</title>
<link rel="shortcut icon" href="_static/mynewt-logo-only-newt32x32.png"/>
<link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="_static/css/sphinx_theme.css" type="text/css" />
<link rel="stylesheet" href="_static/css/bootstrap-3.0.3.min.css" type="text/css" />
<link rel="stylesheet" href="_static/css/v2.css" type="text/css" />
<link rel="stylesheet" href="_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="_static/css/restructuredtext.css" type="text/css" />
<link rel="stylesheet" href="_static/css/overrides.css" type="text/css" />
<link rel="index" title="Index"
href="genindex.html"/>
<link rel="search" title="Search" href="search.html"/>
<link rel="top" title="Apache Mynewt latest documentation" href="#"/>
<link rel="next" title="Setup &amp; Get Started" href="get_started/index.html"/>
<script src="_static/js/modernizr.min.js"></script>
<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="not-front page-documentation" role="document" >
<div id="wrapper">
<div class="container">
<div id="banner" class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="_static/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.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</div>
</div>
</div>
</div>
<header>
<nav id="navbar" class="navbar navbar-inverse" 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>
<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>
<a href="/about/">About</a>
</li>
<li>
<a href="/talks/">Talks</a>
</li>
<li class="active">
<a href="/documentation/">Documentation</a>
</li>
<li>
<a href="/download/">Download</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/events/">Events</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
</nav>
</header>
<!-- STARTS MAIN CONTENT -->
<div id="main-content">
<div id="breadcrumb">
<div class="container">
<a href="/documentation/">Docs</a> /
Mynewt Documentation
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/index.rst" class="icon icon-github"
rel="nofollow"> Edit on GitHub</a>
</div>
</div>
</div>
<!-- STARTS CONTAINER -->
<div class="container">
<!-- STARTS .content -->
<div id="content" class="row">
<!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
<div id="docSidebar" class="sticky-container">
<div role="search" class="sphinx-search">
<form id="rtd-search-form" class="wy-form" action="search.html" method="get">
<input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest" selected>
Version: latest
</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" selected="selected" >
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" >
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>
<div class="region region-sidebar">
<div class="docs-menu">
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="concepts.html">Concepts</a></li>
<li class="toctree-l1"><a class="reference internal" href="tutorials/tutorials.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="network/index.html">BLE User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="misc/index.html">Appendix</a></li>
</ul>
</div>
</div>
</div>
<!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->
<div class="col-xs-12 col-sm-9">
<div class="alert alert-warning">
<p>
Version 1.9.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>
<div class="">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="introduction">
<h1>Introduction<a class="headerlink" href="#introduction" title="Permalink to this headline"></a></h1>
<div class="toctree-wrapper compound">
</div>
<div class="section" id="welcome-to-apache-mynewt">
<h2>Welcome to Apache Mynewt<a class="headerlink" href="#welcome-to-apache-mynewt" title="Permalink to this headline"></a></h2>
<p>Apache Mynewt is an operating system that makes it easy to develop
applications for microcontroller environments where power and cost are
driving factors. Examples of these devices are connected locks, lights,
and wearables.</p>
<p>Microcontroller environments have a number of characteristics that makes
the operating system requirements for them unique:</p>
<ul class="simple">
<li><p>Low memory footprint: memory on these systems range from 8-16KB (on
the low end) to 16MB (on the high end).</p></li>
<li><p>Reduced code size: code often runs out of flash, and total available
code size ranges from 64-128KB to 16-32MB.</p></li>
<li><p>Low processing speed: processor speeds vary from 10-12MHz to
160-200MHz.</p></li>
<li><p>Low power operation: devices operate in mostly sleeping mode, in
order to conserve battery power and maximize power usage.</p></li>
</ul>
<p>As more and more devices get connected, these interconnected devices
perform complex tasks. To perform these tasks, you need low-level
operational functionality built into the operating system. Typically,
connected devices built with these microcontrollers perform a myriad of
functions:</p>
<ul class="simple">
<li><p>Networking Stacks: Bluetooth Low Energy and Thread</p></li>
<li><p>Peripherals: PWM to drive motors, ADCs to measure sensor data, and
RTCs to keep time.</p></li>
<li><p>Scheduled Processing: actions must happen on a calendared or periodic
basis.</p></li>
</ul>
<p>Apache Mynewt accomplishes all the above easily, by providing a complete
operating system for constrained devices, including:</p>
<ul class="simple">
<li><p>A fully open-source Bluetooth Low Energy stack with both Host and
Controller implementations.</p></li>
<li><p>A pre-emptive, multi-tasking Real Time operating system kernel</p></li>
<li><p>A Hardware Abstraction Layer (HAL) that abstracts the MCU’s
peripheral functions, allowing developers to easily write
cross-platform code.</p></li>
</ul>
</div>
<div class="section" id="newt">
<h2>Newt<a class="headerlink" href="#newt" title="Permalink to this headline"></a></h2>
<p>In order to provide all this functionality, and operate in an extremely
low resource environment, Mynewt provides a very fine-grained source
package management and build system tool, called <em>newt</em>.</p>
<p>You can install <em>newt</em> for <a class="reference internal" href="newt/install/newt_mac.html"><span class="doc">Mac OS</span></a>,
<a class="reference internal" href="newt/install/newt_linux.html"><span class="doc">Linux</span></a>, or
<a class="reference internal" href="newt/install/newt_windows.html"><span class="doc">Windows</span></a>.</p>
</div>
<div class="section" id="newt-manager">
<h2>Newt Manager<a class="headerlink" href="#newt-manager" title="Permalink to this headline"></a></h2>
<p>In order to enable a user to communicate with remote instances of Mynewt
OS and query, configure, and operate them, Mynewt provides an
application tool called Newt Manager or <em>newtmgr</em>.</p>
<p>You can install <em>newtmgr</em> for <a class="reference internal" href="newtmgr/install/install_mac.html"><span class="doc">Mac OS</span></a>,
<a class="reference internal" href="newtmgr/install/install_linux.html"><span class="doc">Linux</span></a>, or
<a class="reference internal" href="newtmgr/install/install_windows.html"><span class="doc">Windows</span></a>.</p>
</div>
<div class="section" id="build-your-first-mynewt-app-with-newt">
<h2>Build your first Mynewt App with Newt<a class="headerlink" href="#build-your-first-mynewt-app-with-newt" title="Permalink to this headline"></a></h2>
<p>With the introductions out of the way, now is a good time to <a class="reference internal" href="get_started/index.html"><span class="doc">get set up
and started</span></a> with your first Mynewt
application.</p>
<p>Happy Hacking!</p>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="get_started/index.html" class="btn btn-neutral float-right" title="Setup &amp; Get Started" accesskey="n">Next: Setup &amp; Get Started <span class="fa fa-arrow-circle-right"></span></a>
</div>
</div>
</div>
</div>
<!-- ENDS CONTENT SECTION -->
</div>
<!-- ENDS .content -->
</div>
</div>
<footer>
<div class="container">
<div 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">
<img src="_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
<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>
<a href="">
<img src="_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- ENDS #wrapper -->
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'./',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</script>
<script type="text/javascript" src="_static/jquery.js"></script>
<script type="text/javascript" src="_static/underscore.js"></script>
<script type="text/javascript" src="_static/doctools.js"></script>
<script type="text/javascript" src="_static/js/bootstrap-3.0.3.min.js"></script>
<script type="text/javascript" src="_static/js/affix.js"></script>
<script type="text/javascript" src="_static/js/main.js"></script>
</body>
</html>