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 2016/12/10 06:51:50 UTC
[02/13] incubator-mynewt-site git commit: Added driver overview.
Updated HAL to current design. Included PR #131.
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_flash/hal_flash_map/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_flash/hal_flash_map/index.html b/latest/os/modules/hal/hal_flash/hal_flash_map/index.html
deleted file mode 100644
index ec213c4..0000000
--- a/latest/os/modules/hal/hal_flash/hal_flash_map/index.html
+++ /dev/null
@@ -1,724 +0,0 @@
-<!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="canonical" href="http://mynewt.apache.org/os/modules/hal/hal_flash/hal_flash_map/"> -->
- <link rel="shortcut icon" href="../../../../../img/favicon.ico">
-
- <title>flash_map - 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">
- <link href="../../../../../extra.css" rel="stylesheet">
-
- <!-- 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="flash_map">
-
-
- <div class="container">
- <div class="row v2-main-banner">
- <div class="col-xs-12 v2-vcenter">
- <a href="/"><img class="logo" src="/img/logo.png"></a>
-
- <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
- </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="/latest/os/introduction">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>
-
- <!-- Search, Navigation and Repo links -->
- <ul class="nav navbar-nav navbar-right">
-
- </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="/develop/os/introduction"
- selected="selected"
- >
- Version: develop (latest)
- </option>
-
- <option
- value="/v0_9_0/os/introduction"
-
- >
- Version: 0.9.0
- </option>
-
-</select>
-</li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <li ><a href="../../../../introduction/">Mynewt Documentation</a>
-
-
- <ul>
-
-
-
-
-
-
-
- <li ><a href="../../../../get_started/get_started/">Basic Setup</a>
-
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../../../get_started/vocabulary/">Concepts</a>
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../tutorials/tutorials/">Tutorials</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../os_user_guide/">OS User Guide</a>
-
-
- <ul>
-
-
-
-
-
-
-
- <li ><a href="../../../../core_os/mynewt_os/">OS Core</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../core_os/porting/port_os/">Porting to your Platform</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../console/console/">Console</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../shell/shell/">Shell</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../split/split/">Split Images</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../bootloader/bootloader/">Bootloader</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
-
-
- ../../../fs/fs/fs/
-
-">File System</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../hal/">Hardware Abstraction Layer</a>
-
-
- <ul>
-
-
-
-
-
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../hal_api/
-">API</a>
-
-
- <ul>
-
-
-
- <li >
- <a href="../../hal_api/">Summary</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../hal_flash/
-">Flash memory</a>
-
-
- <ul>
-
-
-
- <li >
- <a href="../hal_flash/">Overview</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../hal_flash_int/">flash_int</a>
- </li>
-
-
-
-
-
- <li class="active">
- <a href="./">flash_map</a>
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_gpio/hal_gpio/">GPIO</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_i2c/hal_i2c/">I2C</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_pwm/hal_pwm/">PWM</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_spi/hal_spi/">SPI</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_system/hal_sys/">System</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_uart/hal_uart/">UART</a>
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_in_libraries/">Using HAL</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_creation/">Creating HAL</a>
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../testutil/testutil/">Test Utilities</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../imgmgr/imgmgr/">Image Manager</a>
-
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../../baselibc/">Baselibc library</a>
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../elua/elua/">Embedded Lua</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../json/json/">JSON</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../fcb/fcb/">Flash Circular Buffer</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../stats/stats/">Stats</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../logs/logs/">Logs</a>
-
-
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../../../../network/ble/ble_intro/
-">BLE User Guide</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../../newt/newt_intro/">Newt Tool Guide</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../../newtmgr/overview/">Newt Manager Guide</a>
-
-
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../../../../faq/how_to_edit_docs/
-">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 pull-right">
- <li><a href="/latest/os/introduction">Docs</a></li>
-
-
-
- <li>» <a href="../../hal_api/">API</a></li>
-
-
-
- <li>» <a href="../hal_flash/">Flash memory</a></li>
-
-
-
- <li>» flash_map</li>
-
-
-
- </ul>
-</div>
- </div>
-
-
-
- <div class="row">
-
-
-
-
-<ul class="nav nav-pills" style="margin-bottom: 10px">
- <li>
-
- <a href=../hal_flash_int/>
- <span class="fa fa-arrow-left"></span>
- Previous: flash_int
- </a>
-
- </li>
- <li class="pull-right">
-
- <a href=../../hal_gpio/hal_gpio/>
- Next: GPIO
- <span class="fa fa-arrow-right"></span>
- </a>
-
- </li>
-</ul>
- </div>
- <footer class="row">
- <div class="col-xs-12">
-
- <p class="copyright">Copyright © 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
-
- </div>
- <div class="col-xs-12">
- <div class="logos">
- <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
- <small class="footnote">
- MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
- </small>
- <img src="/img/egg-logo2.png" alt="Apache Incubator" title="Apache Incubator">
- </div>
- </div>
-</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>
-
- </body>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_gpio/hal_gpio/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_gpio/hal_gpio/index.html b/latest/os/modules/hal/hal_gpio/hal_gpio/index.html
index 5f44c8a..7889be5 100644
--- a/latest/os/modules/hal/hal_gpio/hal_gpio/index.html
+++ b/latest/os/modules/hal/hal_gpio/hal_gpio/index.html
@@ -328,14 +328,6 @@
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
<li><a href="
@@ -356,23 +348,7 @@
<li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
+ <a href="../../hal_bsp/hal_bsp/">BSP</a>
</li>
@@ -409,7 +385,7 @@
<li >
- <a href="../../hal_pwm/hal_pwm/">PWM</a>
+ <a href="../../hal_os_tick/hal_os_tick/">OS Tick</a>
</li>
@@ -433,11 +409,27 @@
<li >
+ <a href="../../hal_timer/hal_timer/">Timer</a>
+ </li>
+
+
+
+
+
+ <li >
<a href="../../hal_uart/hal_uart/">UART</a>
</li>
+
+
+ <li >
+ <a href="../../hal_watchdog/hal_watchdog/">Watchdog</a>
+ </li>
+
+
+
</ul>
</li>
@@ -470,6 +462,17 @@
+ <li ><a href="../../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
<li ><a href="../../../testutil/testutil/">Test Utilities</a>
@@ -643,7 +646,7 @@
<h3 id="description">Description</h3>
<p>Contains the basic operations to set and read General Purpose Digital I/O Pins
within a Mynewt system.</p>
-<p>Individual GPIOs are referenced in the APIs as <code>pins</code>. However, in this interface the <code>pins</code> are virtual GPIO pins. The MCU hal driver maps these virtual <code>pins</code> to the physical GPIO ports and pins.</p>
+<p>Individual GPIOs are referenced in the APIs as <code>pins</code>. However, in this interface the <code>pins</code> are virtual GPIO pins. The MCU header file maps these virtual <code>pins</code> to the physical GPIO ports and pins.</p>
<p>Typically, the BSP code may define named I/O pins in terms of these virtual <code>pins</code> to describe the devices attached to the physical pins.</p>
<p>Here's a brief example so you can get the gist of the translation.</p>
<p>Suppose my product uses the stm32F4xx processor. There already exists support for this processor within Mynewt. The processor has N ports (A,B,C..) of 16 GPIO pins per port. The MCU hal_gpio driver maps these to a set of virtual pins 0-N where port A maps to 0-15, Port B maps to 16-31, Port C maps to 32-47 and so on. The exact number of physical port (and virtual
@@ -653,7 +656,7 @@ This translation is defined in the MCU implementation of
<a href="https://github.com/apache/incubator-mynewt-larva/blob/master/hw/mcu/stm/stm32f4xx/src/hal_gpio.c">hal_gpio.c</a>
for the stmf32F4xx. Each MCU will typically have a different translation method
depending on its GPIO architecture.</p>
-<p>Now, when writing a BSP, it's common to give names to the relevant port pins that you are using. Thus, the BSP may define a mapping between a function and a virtual port pin. For example</p>
+<p>Now, when writing a BSP, it's common to give names to the relevant port pins that you are using. Thus, the BSP may define a mapping between a function and a virtual port pin in the <code>bsp.h</code> header file for the BSP. For example,</p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">#define SYSTEM_LED (37)
#define FLASH_SPI_CHIP_SELECT (3)
</pre></div>
@@ -666,12 +669,12 @@ depending on its GPIO architecture.</p>
<h3 id="definition">Definition</h3>
-<p><a href="https://github.com/apache/incubator-mynewt-larva/blob/master/hw/hal/include/hal/hal_gpio.h">hal_gpio.h</a></p>
+<p><a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/hal/include/hal/hal_gpio.h">hal_gpio.h</a></p>
<h3 id="examples">Examples</h3>
<h4 id="blinky">Blinky</h4>
-<p>Blinky uses the hal_gpio to blink the system LED. The blinky source code is available
-<a href="https://github.com/apache/incubator-mynewt-core/blob/master/apps/blinky/src/main.c">here</a>.
-Examine how <code>task1_handler</code> initializes and toggles the GPIO to control the LED.</p>
+<p>Blinky uses the hal_gpio to blink the system LED. The blinky source code is available in the
+<a href="https://github.com/apache/incubator-mynewt-blinky/blob/master/apps/blinky/src/main.c">blinky repo</a>.
+Examine how <code>blinky_task_handler</code> initializes and toggles the GPIO to control the LED.</p>
<p><br></p>
<hr />
@@ -683,9 +686,9 @@ Examine how <code>task1_handler</code> initializes and toggles the GPIO to contr
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
- <a href=../../hal_flash/hal_flash_map/>
+ <a href=../../hal_flash/hal_flash_int/>
<span class="fa fa-arrow-left"></span>
- Previous: flash_map
+ Previous: flash_int
</a>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_i2c/hal_i2c/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_i2c/hal_i2c/index.html b/latest/os/modules/hal/hal_i2c/hal_i2c/index.html
index 748c6d7..c300bda 100644
--- a/latest/os/modules/hal/hal_i2c/hal_i2c/index.html
+++ b/latest/os/modules/hal/hal_i2c/hal_i2c/index.html
@@ -328,14 +328,6 @@
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
<li><a href="
@@ -356,23 +348,7 @@
<li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
+ <a href="../../hal_bsp/hal_bsp/">BSP</a>
</li>
@@ -409,7 +385,7 @@
<li >
- <a href="../../hal_pwm/hal_pwm/">PWM</a>
+ <a href="../../hal_os_tick/hal_os_tick/">OS Tick</a>
</li>
@@ -433,11 +409,27 @@
<li >
+ <a href="../../hal_timer/hal_timer/">Timer</a>
+ </li>
+
+
+
+
+
+ <li >
<a href="../../hal_uart/hal_uart/">UART</a>
</li>
+
+
+ <li >
+ <a href="../../hal_watchdog/hal_watchdog/">Watchdog</a>
+ </li>
+
+
+
</ul>
</li>
@@ -470,6 +462,17 @@
+ <li ><a href="../../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
<li ><a href="../../../testutil/testutil/">Test Utilities</a>
@@ -648,7 +651,7 @@ and often peripherals devices located off the circuit board.</p>
to send data between devices. </p>
<p>For a detailed description of I2C, see the <a href="https://en.wikipedia.org/wiki/I�C">I�C wikipedia page</a></p>
<h3 id="definition">Definition</h3>
-<p><a href="https://github.com/apache/incubator-mynewt-larva/blob/master/hw/hal/include/hal/hal_i2c.h">hal_i2c.h</a></p>
+<p><a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/hal/include/hal/hal_i2c.h">hal_i2c.h</a></p>
<h3 id="hal_i2c-theory-of-operation">HAL_I2C Theory Of Operation</h3>
<p>An I�C transaction typically involves acquiring the bus, sending and/or receiving
data and release the bus. The bus acquisition portion is important because
@@ -656,20 +659,27 @@ the bus is typically multi-master so other devices may be trying to read/write
the same peripheral. </p>
<p>HAL_I2C implements a master interface to the I�C bus. Typical usage of the
interface would involve the following steps.</p>
-<ol>
-<li>initialize an I�C device using <code>hal_i2c_init</code></li>
-<li>when you want to perform an I�C transaction:<ol>
-<li>Issue the <code>hal_i2c_begin()</code> command. </li>
-<li>Issue one or more <code>hal_i2c_read</code> and/or <code>hal_i2c_write</code> commands</li>
-<li>Issue the <code>hal_i2c_end()</code> command.</li>
-</ol>
-</li>
-</ol>
+<p>Initialize an i2c device with:
+ hal_i2c_init()</p>
+<p>When you wish to perform an i2c transaction, you call one or both of:
+ hal_i2c_master_write();
+ hal_i2c_master_read();</p>
+<p>These functions will issue a START condition, followed by the device's
+7-bit I2C address, and then send or receive the payload based on the data
+provided. This will cause a repeated start on the bus, which is valid in
+I2C specification, and the decision to use repeated starts was made to
+simplify the I2C HAL. To set the STOP condition at an appropriate moment,
+you set the <code>last_op</code> field to a <code>1</code> in either function.</p>
+<p>For example, in an I2C memory access you might write a register address and
+then read data back via:
+ hal_i2c_write(); -- write to a specific register on the device
+ hal_i2c_read(); --- read back data, setting 'last_op' to '1'</p>
<p>An addition API was added called <code>hal_i2c_probe</code>. This command combines
<code>hal_i2c_begin()</code>, <code>hal_i2c_read</code>, and <code>hal_i2c_end()</code> to try to read 0-bytes
from a specific bus address. its intended to provide an easy way to probe
the bus for a specific device. NOTE: if the device is write-only, it will
not appear with this command.</p>
+<p>A slave API is pending for further release.</p>
<h3 id="hal_i2c-data">HAL_I2C Data</h3>
<p>Data to read/write is passed to the hal_i2c APIs via the </p>
<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">struct hal_i2c_master_data {
@@ -725,7 +735,7 @@ in the data structure and ensure that address is a value between 0-127.</p>
</table>
<p>In the HAL_I2C API you would communicate with this device with address
<code>0b1000110</code>, which is hex 0x46 or decimal 70. The I�C drive would add the R/W bit
-and transmit it as hex 0x8D or 0x8D depending whether it was a read or
+and transmit it as hex 0x8C (binary 10001100) or 0x8D (binary 10001101) depending whether it was a read or
write command.</p>
<div class="row">
@@ -744,8 +754,8 @@ write command.</p>
</li>
<li class="pull-right">
- <a href=../../hal_pwm/hal_pwm/>
- Next: PWM
+ <a href=../../hal_os_tick/hal_os_tick/>
+ Next: OS Tick
<span class="fa fa-arrow-right"></span>
</a>
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_in_libraries/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_in_libraries/index.html b/latest/os/modules/hal/hal_in_libraries/index.html
index 7e95737..f2ebf42 100644
--- a/latest/os/modules/hal/hal_in_libraries/index.html
+++ b/latest/os/modules/hal/hal_in_libraries/index.html
@@ -328,14 +328,6 @@
- <li >
- <a href="../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
<li><a href="
@@ -373,6 +365,17 @@
+ <li ><a href="../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
<li ><a href="../../testutil/testutil/">Test Utilities</a>
@@ -544,66 +547,8 @@
<h1 id="using-hal-in-your-libraries">Using HAL in Your Libraries</h1>
<p>This page describes the recommended way to implement libraries that
utilize HAL functionality.</p>
-<p>Consider the light switch example from the <a href="../hal/">HAL overview</a> page.</p>
-<p>The light switch module needs a GPIO pin to set
-the light switch to on or off. The module declares that the GPIO to
-control the light switch is declared elsewhere in one of two methods.</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> extern const int light_switch_gpio;
-</pre></div>
-
-
-<p>or</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> extern int bsp_light_app_get_light_gpio();
-</pre></div>
-
-
-<p>Which method a library uses
-(extern const versus function) depends on what functionality the library
-might wish to declare. The <code>extern const</code> model uses the smallest code
-footprint, but since its constant cannot be changed at runtime (based on
-the configuration of the device say). The <code>extern function</code> call requires
-the BSP to implement a function which allows flexibility to assign the
-GPIO for the light switch to be determined at runtime with a small expense of
-slightly more code.</p>
-<p>Then the <code>libs/light</code> would go on to use the specified GPIO during its runtime
-execution. For example this shows both ways the library could interface to the
-bsp to get the right GPIO:</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> void light_on(void) {
- . . .
- /* finally time to turn the light on */
- hal_gpio_set(light_switch_gpio);
- }
-
- void light_on(void) {
- . . .
- int pin = bsp_light_app_get_light_gpio();
- /* finally time to turn the light on */
- hal_gpio_set(pin);
- }
-</pre></div>
-
-
-<p>When you library user includes <code>libs/light</code> as a dependency and then builds
-with <strong>newt</strong>, they will get an unresolved external for either <code>light_switch_gpio</code>
-or <code>bsp_light_app_get_light_gpio()</code> and will need to add to their BSP.</p>
-<p>In their BSP, they can add </p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> const int light_switch_gpio = 5;
-</pre></div>
-
-
-<p>or</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> int bsp_light_app_get_light_gpio(void) {
- return my_configured_lightswitch_io();
- }
-</pre></div>
-
-
-<p>So where did the number <code>5</code> come from. Their BSP already includes the specific
-MCU that they are using. And their <code>mcu/xxx/hal_gpio.c</code> already defines
-the mapping between physical pins and the virtual device ids. </p>
-<p>The user can determine (when writing code) from their boards physical pinmap
-and from the <code>hal_gpio.c</code> MCU mapping which virtual device_id corresponds
-to the correct physical pin in their system.</p>
+<p>An example of the GPIO HAL being used by a driver for a UART bitbanger that programs the start bit, data bits, and stop bit can be seen in <a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/drivers/uart/uart_bitbang/src/uart_bitbang.c">hw/drivers/uart/uart_bitbang/src/uart_bitbang.c</a></p>
+<p>An example of the flash HAL being used by a file sytem can be seen in <a href="https://github.com/apache/incubator-mynewt-core/blob/master/fs/nffs/src/nffs_flash.c">fs/nffs/src/nffs_flash.c</a>.</p>
<div class="row">
@@ -613,9 +558,9 @@ to the correct physical pin in their system.</p>
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
- <a href=../hal_uart/hal_uart/>
+ <a href=../hal_watchdog/hal_watchdog/>
<span class="fa fa-arrow-left"></span>
- Previous: UART
+ Previous: Watchdog
</a>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_os_tick/hal_os_tick/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_os_tick/hal_os_tick/index.html b/latest/os/modules/hal/hal_os_tick/hal_os_tick/index.html
new file mode 100644
index 0000000..483277a
--- /dev/null
+++ b/latest/os/modules/hal/hal_os_tick/hal_os_tick/index.html
@@ -0,0 +1,716 @@
+<!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="canonical" href="http://mynewt.apache.org/os/modules/hal/hal_os_tick/hal_os_tick/"> -->
+ <link rel="shortcut icon" href="../../../../../img/favicon.ico">
+
+ <title>OS Tick - 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">
+ <link href="../../../../../extra.css" rel="stylesheet">
+
+ <!-- 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="OS Tick">
+
+
+ <div class="container">
+ <div class="row v2-main-banner">
+ <div class="col-xs-12 v2-vcenter">
+ <a href="/"><img class="logo" src="/img/logo.png"></a>
+
+ <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
+ </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="/latest/os/introduction">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>
+
+ <!-- Search, Navigation and Repo links -->
+ <ul class="nav navbar-nav navbar-right">
+
+ </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="/develop/os/introduction"
+ selected="selected"
+ >
+ Version: develop (latest)
+ </option>
+
+ <option
+ value="/v0_9_0/os/introduction"
+
+ >
+ Version: 0.9.0
+ </option>
+
+</select>
+</li>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <li ><a href="../../../../introduction/">Mynewt Documentation</a>
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li ><a href="../../../../get_started/get_started/">Basic Setup</a>
+
+
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../../../get_started/vocabulary/">Concepts</a>
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../../tutorials/tutorials/">Tutorials</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../../os_user_guide/">OS User Guide</a>
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li ><a href="../../../../core_os/mynewt_os/">OS Core</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../../core_os/porting/port_os/">Porting to your Platform</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../console/console/">Console</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../shell/shell/">Shell</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../split/split/">Split Images</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../bootloader/bootloader/">Bootloader</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li><a href="
+
+
+ ../../../fs/fs/fs/
+
+">File System</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../hal/">Hardware Abstraction Layer</a>
+
+
+ <ul>
+
+
+
+
+
+
+
+ <li><a href="
+ ../../hal_api/
+">API</a>
+
+
+ <ul>
+
+
+
+ <li >
+ <a href="../../hal_api/">Summary</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_bsp/hal_bsp/">BSP</a>
+ </li>
+
+
+
+
+
+
+
+ <li><a href="
+ ../../hal_flash/hal_flash/
+">Flash memory</a>
+
+
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_gpio/hal_gpio/">GPIO</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_i2c/hal_i2c/">I2C</a>
+ </li>
+
+
+
+
+
+ <li class="active">
+ <a href="./">OS Tick</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_spi/hal_spi/">SPI</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_system/hal_sys/">System</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_timer/hal_timer/">Timer</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_uart/hal_uart/">UART</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_watchdog/hal_watchdog/">Watchdog</a>
+ </li>
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_in_libraries/">Using HAL</a>
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../hal_creation/">Creating HAL</a>
+ </li>
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../testutil/testutil/">Test Utilities</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../imgmgr/imgmgr/">Image Manager</a>
+
+
+ </li>
+
+
+
+
+
+ <li >
+ <a href="../../../baselibc/">Baselibc library</a>
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../elua/elua/">Embedded Lua</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../json/json/">JSON</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../fcb/fcb/">Flash Circular Buffer</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../stats/stats/">Stats</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../logs/logs/">Logs</a>
+
+
+ </li>
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+ <li><a href="
+ ../../../../../network/ble/ble_intro/
+">BLE User Guide</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../../../newt/newt_intro/">Newt Tool Guide</a>
+
+
+ </li>
+
+
+
+
+
+
+
+ <li ><a href="../../../../../newtmgr/overview/">Newt Manager Guide</a>
+
+
+ </li>
+
+
+
+ </ul>
+
+ </li>
+
+
+
+
+
+
+
+ <li><a href="
+ ../../../../../faq/how_to_edit_docs/
+">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 pull-right">
+ <li><a href="/latest/os/introduction">Docs</a></li>
+
+
+
+ <li>» <a href="../../hal/">Hardware Abstraction Layer</a></li>
+
+
+
+ <li>» <a href="../../hal_api/">API</a></li>
+
+
+
+ <li>» OS Tick</li>
+
+
+
+ </ul>
+</div>
+ </div>
+
+ <h1 id="hal_os_tick">hal_os_tick</h1>
+<p>The hardware independent interface to set up interrupt timers or halt CPU in terms of OS ticks.</p>
+<h3 id="description">Description</h3>
+<p>Set up the periodic timer to interrupt at a frequency of 'os_ticks_per_sec' using the following function call where 'prio' is the cpu-specific priority of the periodic timer interrupt. </p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">void</span> <span style="color: #000000">os_tick_init</span>(<span style="color: #A90D91">uint32_t</span> <span style="color: #000000">os_ticks_per_sec</span>, <span style="color: #A90D91">int</span> <span style="color: #000000">prio</span>);
+</pre></div>
+
+
+<p>You can halt CPU for up to <code>n</code> ticks:</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">void</span> <span style="color: #000000">os_tick_idle</span>(<span style="color: #A90D91">os_time_t</span> <span style="color: #000000">n</span>);
+</pre></div>
+
+
+<p>The function implementations are in the mcu-specific directories such as <code>hw/mcu/nordic/nrf51xxx/src/hal_os_tick.c</code>.</p>
+<h3 id="definition">Definition</h3>
+<p><a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/hal/include/hal/hal_os_tick.h">hal_os_tick.h</a></p>
+<h3 id="examples">Examples</h3>
+<p>An example of the API being used by the OS kernel for the Cortex M0 architecture to initialize and start the system clock timer can be seen in <a href="https://github.com/apache/incubator-mynewt-core/blob/master/kernel/os/src/arch/cortex_m0/os_arch_arm.c">kernel/os/src/arch/cortex_m0/os_arch_arm.c</a>.</p>
+
+ <div class="row">
+
+
+
+
+<ul class="nav nav-pills" style="margin-bottom: 10px">
+ <li>
+
+ <a href=../../hal_i2c/hal_i2c/>
+ <span class="fa fa-arrow-left"></span>
+ Previous: I2C
+ </a>
+
+ </li>
+ <li class="pull-right">
+
+ <a href=../../hal_spi/hal_spi/>
+ Next: SPI
+ <span class="fa fa-arrow-right"></span>
+ </a>
+
+ </li>
+</ul>
+ </div>
+ <footer class="row">
+ <div class="col-xs-12">
+
+ <p class="copyright">Copyright © 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
+
+ </div>
+ <div class="col-xs-12">
+ <div class="logos">
+ <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
+ <small class="footnote">
+ MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
+ </small>
+ <img src="/img/egg-logo2.png" alt="Apache Incubator" title="Apache Incubator">
+ </div>
+ </div>
+</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>
+
+ </body>
+</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_pwm/hal_pwm/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_pwm/hal_pwm/index.html b/latest/os/modules/hal/hal_pwm/hal_pwm/index.html
deleted file mode 100644
index 55db2b5..0000000
--- a/latest/os/modules/hal/hal_pwm/hal_pwm/index.html
+++ /dev/null
@@ -1,754 +0,0 @@
-<!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="canonical" href="http://mynewt.apache.org/os/modules/hal/hal_pwm/hal_pwm/"> -->
- <link rel="shortcut icon" href="../../../../../img/favicon.ico">
-
- <title>PWM - 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">
- <link href="../../../../../extra.css" rel="stylesheet">
-
- <!-- 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="PWM">
-
-
- <div class="container">
- <div class="row v2-main-banner">
- <div class="col-xs-12 v2-vcenter">
- <a href="/"><img class="logo" src="/img/logo.png"></a>
-
- <h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
- </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="/latest/os/introduction">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>
-
- <!-- Search, Navigation and Repo links -->
- <ul class="nav navbar-nav navbar-right">
-
- </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="/develop/os/introduction"
- selected="selected"
- >
- Version: develop (latest)
- </option>
-
- <option
- value="/v0_9_0/os/introduction"
-
- >
- Version: 0.9.0
- </option>
-
-</select>
-</li>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- <li ><a href="../../../../introduction/">Mynewt Documentation</a>
-
-
- <ul>
-
-
-
-
-
-
-
- <li ><a href="../../../../get_started/get_started/">Basic Setup</a>
-
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../../../get_started/vocabulary/">Concepts</a>
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../tutorials/tutorials/">Tutorials</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../os_user_guide/">OS User Guide</a>
-
-
- <ul>
-
-
-
-
-
-
-
- <li ><a href="../../../../core_os/mynewt_os/">OS Core</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../core_os/porting/port_os/">Porting to your Platform</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../console/console/">Console</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../shell/shell/">Shell</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../split/split/">Split Images</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../bootloader/bootloader/">Bootloader</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
-
-
- ../../../fs/fs/fs/
-
-">File System</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../hal/">Hardware Abstraction Layer</a>
-
-
- <ul>
-
-
-
-
-
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../hal_api/
-">API</a>
-
-
- <ul>
-
-
-
- <li >
- <a href="../../hal_api/">Summary</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../hal_flash/hal_flash/
-">Flash memory</a>
-
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_gpio/hal_gpio/">GPIO</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_i2c/hal_i2c/">I2C</a>
- </li>
-
-
-
-
-
- <li class="active">
- <a href="./">PWM</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_spi/hal_spi/">SPI</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_system/hal_sys/">System</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_uart/hal_uart/">UART</a>
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_in_libraries/">Using HAL</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_creation/">Creating HAL</a>
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../testutil/testutil/">Test Utilities</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../imgmgr/imgmgr/">Image Manager</a>
-
-
- </li>
-
-
-
-
-
- <li >
- <a href="../../../baselibc/">Baselibc library</a>
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../elua/elua/">Embedded Lua</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../json/json/">JSON</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../fcb/fcb/">Flash Circular Buffer</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../stats/stats/">Stats</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../logs/logs/">Logs</a>
-
-
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../../../../network/ble/ble_intro/
-">BLE User Guide</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../../newt/newt_intro/">Newt Tool Guide</a>
-
-
- </li>
-
-
-
-
-
-
-
- <li ><a href="../../../../../newtmgr/overview/">Newt Manager Guide</a>
-
-
- </li>
-
-
-
- </ul>
-
- </li>
-
-
-
-
-
-
-
- <li><a href="
- ../../../../../faq/how_to_edit_docs/
-">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 pull-right">
- <li><a href="/latest/os/introduction">Docs</a></li>
-
-
-
- <li>» <a href="../../hal/">Hardware Abstraction Layer</a></li>
-
-
-
- <li>» <a href="../../hal_api/">API</a></li>
-
-
-
- <li>» PWM</li>
-
-
-
- </ul>
-</div>
- </div>
-
- <h1 id="hal_pwm">hal_pwm</h1>
-<p>The hardware independent interface to Pulse Width Modulators</p>
-<h3 id="description">Description</h3>
-<p>Pulse Width Modulators (PWMs) are hardware devices that output digital waveforms
-with programmable duty cycle and frequency. They use a digital waveform
-but can contiuously adjust the amount of power delivered to their load via
-duty cycle. They are often used to create analog waveforms via low pass filter,
-drive LEDs at various intensities, and control DC or servo motors.</p>
-<p>For a description of PSM, see <a href="https://en.wikipedia.org/wiki/Pulse-width_modulation">wikipedia</a></p>
-<h3 id="definition">Definition</h3>
-<p><a href="https://github.com/apache/incubator-mynewt-larva/blob/master/hw/hal/include/hal/hal_pwm.h">hal_pwm.h</a></p>
-<h3 id="hal_pwm-theory-of-operation">HAL_PWM Theory Of Operation</h3>
-<p>The HAL_PWM interface was designed with some specific use cases in mind. It
-was also designed to exploit a subset of the functionality provided by
-common PWM controllers.</p>
-<p>Fundamentally, a PWM has at it root an N-bit COUNTER, a CLOCK source, one or
-more CAPTURE registers, and sometimes a TOP register.</p>
-<p>The clock source feeds the COUNTER register which is continuously counting
-(up or down), When the COUNTER is less than the value of the CAPTURE
-register, the PWM outputs a logic HIGH. When the counter is greater than
-the CAPTURE register the PWM outputs logic LOW. When the counter reaches the TOP
-register, it wraps back to zero. If the PWM has no TOP register, it simply
-wraps back to zero after reaching 2^N-1.</p>
-<p>The HAL_PWM abstracts this implementation and provides methods to set the
-PWM frequency and duty cycle. The frequency is the rate at which the counter
-wraps back to zero. The duty cycle is the fraction of time the PWM is in
-logic HIGH state.</p>
-<p>The HAL_PWM API provides a few methods to get information on the PWM.</p>
-<table>
-<thead>
-<tr>
-<th><strong>Method Name</strong></th>
-<th><strong> Description </strong></th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>hal_pwm_get_source_clock_freq</td>
-<td>gets the frequency of the CLOCK that is driving the COUNTER</td>
-</tr>
-<tr>
-<td>hal_pwm_get_resolution_bits</td>
-<td>gets the number of bits in the COUNTER</td>
-</tr>
-</tbody>
-</table>
-<p>To use a PWM via HAL_PWM, follow these simple steps.</p>
-<p>1) initialize a PWM using <code>hal_pwm_init</code> -- this binds the driver to the device
-for the specific PWM you are using
-2) Optionally set the frequency of the PWM using <code>hal_pwm_set_frequency</code>
--- PWMs that support a TOP register have fine control over their frequency
-settings. If this command is not supported by the PWM it will return an error
-and its likely that there is no TOP register; the frequency resolution is not
-finely adjustable. See the BSP for coarse adjustment of the PWM frequency.<br />
-3) Enable the PWM to output a specific duty cycle using the
-<code>hal_pwm_enable_duty_cycle</code> API</p>
-<p>To change the duty cycle dynamically, just issue another
-<code>hal_pwm_enable_duty_cycle</code> command.</p>
-<p>To disable the PWM waveform, use <code>hal_pwm_disable</code>.</p>
-
- <div class="row">
-
-
-
-
-<ul class="nav nav-pills" style="margin-bottom: 10px">
- <li>
-
- <a href=../../hal_i2c/hal_i2c/>
- <span class="fa fa-arrow-left"></span>
- Previous: I2C
- </a>
-
- </li>
- <li class="pull-right">
-
- <a href=../../hal_spi/hal_spi/>
- Next: SPI
- <span class="fa fa-arrow-right"></span>
- </a>
-
- </li>
-</ul>
- </div>
- <footer class="row">
- <div class="col-xs-12">
-
- <p class="copyright">Copyright © 2015 The Apache Software Foundation, Licensed under the Apache License, Version 2.0 Apache and the Apache feather logo are trademarks of The Apache Software Foundation.</p>
-
- </div>
- <div class="col-xs-12">
- <div class="logos">
- <img src="/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
- <small class="footnote">
- MyNewt is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
- </small>
- <img src="/img/egg-logo2.png" alt="Apache Incubator" title="Apache Incubator">
- </div>
- </div>
-</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>
-
- </body>
-</html>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_spi/hal_spi/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_spi/hal_spi/index.html b/latest/os/modules/hal/hal_spi/hal_spi/index.html
index 6de187b..c21e2e3 100644
--- a/latest/os/modules/hal/hal_spi/hal_spi/index.html
+++ b/latest/os/modules/hal/hal_spi/hal_spi/index.html
@@ -328,14 +328,6 @@
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
<li><a href="
@@ -356,23 +348,7 @@
<li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
+ <a href="../../hal_bsp/hal_bsp/">BSP</a>
</li>
@@ -409,7 +385,7 @@
<li >
- <a href="../../hal_pwm/hal_pwm/">PWM</a>
+ <a href="../../hal_os_tick/hal_os_tick/">OS Tick</a>
</li>
@@ -433,11 +409,27 @@
<li >
+ <a href="../../hal_timer/hal_timer/">Timer</a>
+ </li>
+
+
+
+
+
+ <li >
<a href="../../hal_uart/hal_uart/">UART</a>
</li>
+
+
+ <li >
+ <a href="../../hal_watchdog/hal_watchdog/">Watchdog</a>
+ </li>
+
+
+
</ul>
</li>
@@ -470,6 +462,17 @@
+ <li ><a href="../../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
<li ><a href="../../../testutil/testutil/">Test Utilities</a>
@@ -643,66 +646,37 @@
commonly used to connect components in embedded systems.</p>
<p>For a detailed description of SPI, see <a href="https://en.wikipedia.org/wiki/Serial_Peripheral_Interface_Bus">Wikipedia</a>.</p>
<h3 id="description">Description</h3>
-<p>The Mynewt HAL interface supports the SPI master functionality only. Future
-version will support SPI slave functionality.</p>
+<p>The Mynewt HAL interface supports the SPI master functionality with both blocking and non-blocking interface. SPI slave functionality is supported in non-blocking mode.</p>
<h3 id="definition">Definition</h3>
-<p><a href="https://github.com/apache/incubator-mynewt-larva/blob/master/hw/hal/include/hal/hal_spi.h">hal_spi.h</a></p>
+<p><a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/hal/include/hal/hal_spi.h">hal_spi.h</a></p>
<h3 id="hal_spi-theory-of-operation">HAL_SPI Theory Of Operation</h3>
<p>SPI is called a 4-wire interface because of the 4 signals, MISO, MOSI, CLK,
and SS. The SS signal (slave select) is an active low signal that activates
a SPI slave device. This is how a master "addresses" a particular slave
device. Often this signal is also referred to as "chip select" as it
selects particular slave device for communications.</p>
-<p>The Mynewt SPI HAL has blocking transfers. This means that the API call
+<p>The Mynewt SPI HAL has blocking and non-blocking transfers. Blocking means that the API call
to transfer a byte will wait until the byte completes transmissions before
-the function returns.</p>
-<p>Since SPI is generally a shared communications bus, the hal_spi API allows
-SPI runtime configuration to be compatible with the data format and speed of the
-slave device. See the <code>hal_spi_config</code> method in the API above for a
-description of the available settings. These settings are critical to the
-operation of the slave device.</p>
-<p>The Mynewt SPI HAL does not include built-in SS signaling. Its up to the
-hal_spi user to control their own SS pins. Typically applications will do
-this with GPIO.</p>
-<p>An example of this would look like this (error handling excluded for brevity):</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"> /* each device may have different settings */
- extern struct hal_spi_settings dev1;
- extern struct hal_spi_settings dev2;
-
- gpio_init_out(SS_DEV_1, 1);
- gpio_init_out(SS_DEV_2, 1);
- hal_spi *pspi = hal_spi_init(SPI0);
-
- ...
- /* write a single byte (0) to device 1 */
- hal_spi_config(pspi, &dev1);
- gpio_clear(SS_DEV_1)
- rc = hal_spi_transfer(pspi, 0)
- gpio_set(SS_DEV_1)
-
- /* read a single byte from device 2 */
- hal_spi_config(pspi, &dev2);
- gpio_clear(SS_DEV_2)
- val = hal_spi_transfer(pspi, 0)
- gpio_set(SS_DEV_2)
+the function returns. Blocking interface can be used for only the master slave SPI type.
+Non-blocking means he function returns control to the execution environment immediately after the API call and a callback function is executed at the completion of the transmission. Non-blocking interface can be used for both master and slave SPI types.</p>
+<p>The <code>hal_spi_config</code> method in the API above allows the SPI to be configured with appropriate settings for master or slave. It Must be called after the spi is initialized (i.e. after hal_spi_init is called) and when the spi is disabled (i.e. user must call hal_spi_disable if the spi has been enabled through hal_spi_enable prior to calling this function). It can also be used to reconfigure an initialized SPI (assuming it is disabled as described previously).</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">int</span> <span style="color: #000000">hal_spi_config</span>(<span style="color: #A90D91">int</span> <span style="color: #000000">spi_num</span>, <span style="color: #A90D91">struct</span> <span style="color: #000000">hal_spi_settings</span> <span style="color: #000000">*psettings</span>);
</pre></div>
-<p>Depending on the device's operation, it may be necessary or more efficient
-to write or read multiple bytes in a single transaction. An example is
-shown below</p>
-<p>```no-highlight</p>
-<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%">void spi_write_buf(struct hal_spi *pspi, uint8_t *buf, int len) {
- char *ptr = buf;
-
- hal_spi_config(pspi, &dev2);
- gpio_clear(SS_DEV_2)
- while(len-- > 0) {
- val = hal_spi_transfer(pspi, (uint16_t) *ptr++)
- }
- gpio_set(SS_DEV_2)
-}
+<p>The SPI settings consist of the following:</p>
+<div class="codehilite" style="background: #ffffff"><pre style="line-height: 125%"><span style="color: #A90D91">struct</span> <span style="color: #000000">hal_spi_settings</span> {
+ <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">data_mode</span>;
+ <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">data_order</span>;
+ <span style="color: #A90D91">uint8_t</span> <span style="color: #000000">word_size</span>;
+ <span style="color: #A90D91">uint32_t</span> <span style="color: #000000">baudrate</span>; <span style="color: #177500">/* baudrate in kHz */</span>
+};
</pre></div>
+
+
+<p>The Mynewt SPI HAL does not include built-in SS (Slave Select) signaling. It's up to the
+hal_spi user to control their own SS pins. Typically applications will do
+this with GPIO.</p>
<div class="row">
@@ -712,9 +686,9 @@ shown below</p>
<ul class="nav nav-pills" style="margin-bottom: 10px">
<li>
- <a href=../../hal_pwm/hal_pwm/>
+ <a href=../../hal_os_tick/hal_os_tick/>
<span class="fa fa-arrow-left"></span>
- Previous: PWM
+ Previous: OS Tick
</a>
</li>
http://git-wip-us.apache.org/repos/asf/incubator-mynewt-site/blob/294de97a/latest/os/modules/hal/hal_system/hal_sys/index.html
----------------------------------------------------------------------
diff --git a/latest/os/modules/hal/hal_system/hal_sys/index.html b/latest/os/modules/hal/hal_system/hal_sys/index.html
index 1f0335b..f8559f6 100644
--- a/latest/os/modules/hal/hal_system/hal_sys/index.html
+++ b/latest/os/modules/hal/hal_system/hal_sys/index.html
@@ -328,14 +328,6 @@
- <li >
- <a href="../../hal_architecture/">Architecture</a>
- </li>
-
-
-
-
-
<li><a href="
@@ -356,23 +348,7 @@
<li >
- <a href="../../hal_adc/hal_adc/">ADC</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_cputime/hal_cpu_timer/">CPU timer</a>
- </li>
-
-
-
-
-
- <li >
- <a href="../../hal_dac/hal_dac/">DAC</a>
+ <a href="../../hal_bsp/hal_bsp/">BSP</a>
</li>
@@ -409,7 +385,7 @@
<li >
- <a href="../../hal_pwm/hal_pwm/">PWM</a>
+ <a href="../../hal_os_tick/hal_os_tick/">OS Tick</a>
</li>
@@ -433,11 +409,27 @@
<li >
+ <a href="../../hal_timer/hal_timer/">Timer</a>
+ </li>
+
+
+
+
+
+ <li >
<a href="../../hal_uart/hal_uart/">UART</a>
</li>
+
+
+ <li >
+ <a href="../../hal_watchdog/hal_watchdog/">Watchdog</a>
+ </li>
+
+
+
</ul>
</li>
@@ -470,6 +462,17 @@
+ <li ><a href="../../../drivers/driver/">Drivers</a>
+
+
+ </li>
+
+
+
+
+
+
+
<li ><a href="../../../testutil/testutil/">Test Utilities</a>
@@ -638,7 +641,13 @@
</div>
</div>
-
+ <h1 id="hal_system">hal_system</h1>
+<p>A hardware independent interface for starting and resetting the system.</p>
+<h3 id="description">Description</h3>
+<p>The API allows the user to detect whether a debugger is connected, sissue a soft reset, and enumerate the reset causes. The functions are implemented in the MCU specific directories e.g. <code>hal_reset_cause.c</code>, <code>hal_system.c</code>, and <code>hal_system_start.c</code> in <code>/hw/mcu/nordic/nrf52xxx/src/</code> directory for Nordic nRF52 series of chips.</p>
+<h3 id="definition">Definition</h3>
+<p><a href="https://github.com/apache/incubator-mynewt-core/blob/master/hw/hal/include/hal/hal_system.h">hal_system.h</a></p>
+<h3 id="examples">Examples</h3>
<div class="row">
@@ -656,8 +665,8 @@
</li>
<li class="pull-right">
- <a href=../../hal_uart/hal_uart/>
- Next: UART
+ <a href=../../hal_timer/hal_timer/>
+ Next: Timer
<span class="fa fa-arrow-right"></span>
</a>