You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by gi...@apache.org on 2020/11/10 00:45:35 UTC

[incubator-nuttx-website] branch asf-site updated: Publishing web: 5eb8540a7fe060c5e451b36dfb23656a6f18e3e7 docs: f55a2879ca94a8eda439d30e561884b446b8781d

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx-website.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 2221497  Publishing web: 5eb8540a7fe060c5e451b36dfb23656a6f18e3e7 docs: f55a2879ca94a8eda439d30e561884b446b8781d
2221497 is described below

commit 2221497450b899e664fe1ea44de641edad1f3446
Author: Xiang <xi...@xiaomi.com>
AuthorDate: Tue Nov 10 00:40:29 2020 +0000

    Publishing web: 5eb8540a7fe060c5e451b36dfb23656a6f18e3e7 docs: f55a2879ca94a8eda439d30e561884b446b8781d
---
 .../components/drivers/character/watchdog.rst.txt  | 127 +++++++++++++++++++
 .../latest/components/drivers/character/index.html |   7 +-
 .../components/drivers/character/watchdog.html     | 139 +++++++++++++++++++++
 content/docs/latest/genindex.html                  |  16 +++
 content/docs/latest/index.html                     |   2 +-
 content/docs/latest/objects.inv                    | Bin 22158 -> 22278 bytes
 content/docs/latest/searchindex.js                 |   2 +-
 content/feed.xml                                   |   4 +-
 8 files changed, 292 insertions(+), 5 deletions(-)

diff --git a/content/docs/latest/_sources/components/drivers/character/watchdog.rst.txt b/content/docs/latest/_sources/components/drivers/character/watchdog.rst.txt
index 94a28c9..21092c5 100644
--- a/content/docs/latest/_sources/components/drivers/character/watchdog.rst.txt
+++ b/content/docs/latest/_sources/components/drivers/character/watchdog.rst.txt
@@ -27,3 +27,130 @@ following locations:
    ``arch/``\ *<architecture>*\ ``/src/``\ *<hardware>* directory
    for the specific processor *<architecture>* and for the
    specific *<chip>* watchdog timer peripheral devices.
+
+There are two ways to enable Watchdog Timer Support along with the Watchdog Example. The first is faster and simpler. Just run the following command to use a ready config file with watchdog timer support and example included. You need to check if there's a watchdog config file for your specific chip. You may check it at the specific board's path: ``/boards/<arch>/<chip>/<board>/config``.
+
+.. code-block:: console
+
+   $ ./tools/configure.sh <board>:watchdog
+
+And the second way is creating your own config file. To do so, follow the next instructions.
+
+Enabling the Watchdog Support and Example in ``menuconfing``
+------------------------------------------------------------
+
+1. Select Watchdog Timer Instances
+
+ To select these wdts browse in the ``menuconfig`` using the following path:
+
+ Go into menu :menuselection:`System Type --> <Chip> Peripheral Selection` and press :kbd:`Enter`. Then select one or more watchdog timers according to availability of your chip.
+
+2. Enable the Watchdog Timer Support
+
+ Go into menu :menuselection:`Device Drivers --> Timer Driver Support` and press :kbd:`Enter`. Then enable:
+
+ - [x] Watchdog Timer Support
+
+3. Include the Watchdog Timer Example
+
+ Go into menu :menuselection:`Application Configuration --> Examples` and press :kbd:`Enter`. Then select the Watchdog Timer example.
+
+ - [x] Watchdog Timer example
+
+ Below the option, it is possible to manually configure some standard parameters that will be used by the example, but they also can be passed as command line arguments later.
+ The parameters are the following: the standard timer device path (which defines the WDT instance), the timeout period (which is the period on which the watchdog will expire),
+ the ping delay (which is the interval period between feeding the dog) and the ping time (which is the total interval that the example will feed the dog, after this interval,
+ the dog will starve and the chip will trigger an interrupt or reset.
+
+4. Include the Debug Watchdog Feature
+
+ In order to get the watchdog timer status, you need to enable it. For production code and for your application you may disable it.
+ 
+ Go into menu :menuselection:`Build Setup --> Debug Options` and press :kbd:`Enter`. Then enable:
+
+ - [x] Enable Debug Features
+ - [x] Watchdog Timer Debug Features
+
+Watchdog Timer Example
+----------------------
+
+The previously selected example will basically do the following:
+
+* Open the watchdog device
+* Set the watchdog timeout
+* Start the watchdog timer
+* Ping (feed the dog) during the ``pingtime`` with a delay of ``pingdelay`` and print out the wdt status in case debug was enabled. 
+* Enter into an endless loop without pinging. It will cause the watchdog timer to reset the chip on timeout, i.e., after timer expiration.
+
+
+The `example code <https://github.com/apache/incubator-nuttx-apps/blob/master/examples/watchdog/watchdog_main.c>`_  may be explored, its path is at ``/examples/watchdog/watchdog_main.c`` in the apps' repository.
+
+In NuttX, the watchdog timer driver is a character driver and when a chip supports multiple watchdog timers, each one is accessible through its respective special file in ``/dev`` directory. Each watchdog timer is registered using a unique numeric identifier (i.e. ``/dev/watchdog0``, ``/dev/watchdog1``, ...).
+
+Use the following command to run the example:
+
+.. code-block:: console
+
+  nsh> wdog
+
+This command will use the watchdog timer 0. To use the others, specify it through a parameter (where x is the timer number):
+
+.. code-block:: console
+
+  nsh> wdog -i /dev/watchdogx
+
+Application Level Interface
+----------------------------
+
+The first necessary thing to be done in order to use the watchdog timer driver in an application is to include the header file for the NuttX Watchdog timer driver. It contains the Application Level Interface to the timer driver. To do so, include:
+
+.. code-block:: c
+
+  #include <nuttx/timers/watchdog.h>
+
+
+At an application level, the watchdog timer functionalities may be accessed through ``ioctl`` systems calls. These ``ioctl`` commands internally call lower-half layer operations and the parameters are forwarded to these operations through the ``ioctl`` system call. The example provides a great resource to demonstrate how to use those ``ioctl`` commands. The available ``ioctl`` commands are:
+
+.. c:macro:: WDIOC_START
+
+This command starts the watchdog timer.
+
+.. c:macro:: WDIOC_STOP
+
+This command stops the watchdog timer.
+
+.. c:macro:: WDIOC_GETSTATUS
+
+This command gets the status of the watchdog timer. It receives a writeable pointer to struct ``watchdog_status_s`` as parameter. The lower-half driver writes the current status in this struct.
+
+.. c:struct:: watchdog_status_s
+.. code-block:: c
+
+	struct watchdog_status_s
+	{
+	  uint32_t  flags;          /* See WDFLAGS_* definitions above */
+	  uint32_t  timeout;        /* The current timeout setting (in milliseconds) */
+	  uint32_t  timeleft;       /* Time left until the watchdog expiration
+		                     * (in milliseconds) */
+	};
+
+.. c:macro:: WDIOC_SETTIMEOUT
+
+This command sets the timeout value, i.e., the value that will trigger the reset or interrupt. The argument is a ``uint32_t`` value in miliseconds.
+
+.. c:macro:: WDIOC_CAPTURE
+
+This command registers an user callback that will be triggered on timeout. It receives as argument a pointer to struct ``watchdog_capture_s``. If the user callback is NULL, then it configures only to reset. Not all chips support interrupt on timeout. This command is optional, i.e., if it's not used, the standard behaviour is to reset on timeout.
+
+.. c:struct:: watchdog_capture_s
+.. code-block:: c
+
+	struct watchdog_capture_s
+	{
+	  CODE xcpt_t newhandler;   /* The new watchdog capture handler */
+	  CODE xcpt_t oldhandler;   /* The previous watchdog capture handler (if any) */
+	};
+
+.. c:macro:: WDIOC_KEEPALIVE
+
+ This command resets the watchdog timer ("ping",  "pet the dog",  "feed the dog"). 
\ No newline at end of file
diff --git a/content/docs/latest/components/drivers/character/index.html b/content/docs/latest/components/drivers/character/index.html
index 5bfd43e..de93a38 100644
--- a/content/docs/latest/components/drivers/character/index.html
+++ b/content/docs/latest/components/drivers/character/index.html
@@ -291,7 +291,12 @@ documented in the following paragraphs.</p>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="rtc.html">RTC Drivers</a></li>
-<li class="toctree-l1"><a class="reference internal" href="watchdog.html">Watchdog Timer Drivers</a></li>
+<li class="toctree-l1"><a class="reference internal" href="watchdog.html">Watchdog Timer Drivers</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="watchdog.html#enabling-the-watchdog-support-and-example-in-menuconfing">Enabling the Watchdog Support and Example in <code class="docutils literal notranslate"><span class="pre">menuconfing</span></code></a></li>
+<li class="toctree-l2"><a class="reference internal" href="watchdog.html#watchdog-timer-example">Watchdog Timer Example</a></li>
+<li class="toctree-l2"><a class="reference internal" href="watchdog.html#application-level-interface">Application Level Interface</a></li>
+</ul>
+</li>
 <li class="toctree-l1"><a class="reference internal" href="keypad.html">Keyboard/Keypad Drivers</a></li>
 <li class="toctree-l1"><a class="reference internal" href="note.html">Note Driver Interface</a><ul>
 <li class="toctree-l2"><a class="reference internal" href="note.html#notectl-device-dev-notectl">Notectl Device (<code class="docutils literal notranslate"><span class="pre">/dev/notectl</span></code>)</a><ul>
diff --git a/content/docs/latest/components/drivers/character/watchdog.html b/content/docs/latest/components/drivers/character/watchdog.html
index da36635..5fec486 100644
--- a/content/docs/latest/components/drivers/character/watchdog.html
+++ b/content/docs/latest/components/drivers/character/watchdog.html
@@ -257,6 +257,145 @@ drivers reside in
 for the specific processor <em>&lt;architecture&gt;</em> and for the
 specific <em>&lt;chip&gt;</em> watchdog timer peripheral devices.</p></li>
 </ul>
+<p>There are two ways to enable Watchdog Timer Support along with the Watchdog Example. The first is faster and simpler. Just run the following command to use a ready config file with watchdog timer support and example included. You need to check if there’s a watchdog config file for your specific chip. You may check it at the specific board’s path: <code class="docutils literal notranslate"><span class="pre">/boards/&lt;arch&gt;/&lt;chip&gt;/&lt;board&gt;/config</span></code>.</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span> ./tools/configure.sh &lt;board&gt;:watchdog
+</pre></div>
+</div>
+<p>And the second way is creating your own config file. To do so, follow the next instructions.</p>
+<div class="section" id="enabling-the-watchdog-support-and-example-in-menuconfing">
+<h2>Enabling the Watchdog Support and Example in <code class="docutils literal notranslate"><span class="pre">menuconfing</span></code><a class="headerlink" href="#enabling-the-watchdog-support-and-example-in-menuconfing" title="Permalink to this headline">¶</a></h2>
+<ol class="arabic simple">
+<li><p>Select Watchdog Timer Instances</p></li>
+</ol>
+<blockquote>
+<div><p>To select these wdts browse in the <code class="docutils literal notranslate"><span class="pre">menuconfig</span></code> using the following path:</p>
+<p>Go into menu <span class="menuselection">System Type ‣ &lt;Chip&gt; Peripheral Selection</span> and press <kbd class="kbd docutils literal notranslate">Enter</kbd>. Then select one or more watchdog timers according to availability of your chip.</p>
+</div></blockquote>
+<ol class="arabic simple" start="2">
+<li><p>Enable the Watchdog Timer Support</p></li>
+</ol>
+<blockquote>
+<div><p>Go into menu <span class="menuselection">Device Drivers ‣ Timer Driver Support</span> and press <kbd class="kbd docutils literal notranslate">Enter</kbd>. Then enable:</p>
+<ul class="simple">
+<li><p>[x] Watchdog Timer Support</p></li>
+</ul>
+</div></blockquote>
+<ol class="arabic simple" start="3">
+<li><p>Include the Watchdog Timer Example</p></li>
+</ol>
+<blockquote>
+<div><p>Go into menu <span class="menuselection">Application Configuration ‣ Examples</span> and press <kbd class="kbd docutils literal notranslate">Enter</kbd>. Then select the Watchdog Timer example.</p>
+<ul class="simple">
+<li><p>[x] Watchdog Timer example</p></li>
+</ul>
+<p>Below the option, it is possible to manually configure some standard parameters that will be used by the example, but they also can be passed as command line arguments later.
+The parameters are the following: the standard timer device path (which defines the WDT instance), the timeout period (which is the period on which the watchdog will expire),
+the ping delay (which is the interval period between feeding the dog) and the ping time (which is the total interval that the example will feed the dog, after this interval,
+the dog will starve and the chip will trigger an interrupt or reset.</p>
+</div></blockquote>
+<ol class="arabic simple" start="4">
+<li><p>Include the Debug Watchdog Feature</p></li>
+</ol>
+<blockquote>
+<div><p>In order to get the watchdog timer status, you need to enable it. For production code and for your application you may disable it.</p>
+<p>Go into menu <span class="menuselection">Build Setup ‣ Debug Options</span> and press <kbd class="kbd docutils literal notranslate">Enter</kbd>. Then enable:</p>
+<ul class="simple">
+<li><p>[x] Enable Debug Features</p></li>
+<li><p>[x] Watchdog Timer Debug Features</p></li>
+</ul>
+</div></blockquote>
+</div>
+<div class="section" id="watchdog-timer-example">
+<h2>Watchdog Timer Example<a class="headerlink" href="#watchdog-timer-example" title="Permalink to this headline">¶</a></h2>
+<p>The previously selected example will basically do the following:</p>
+<ul class="simple">
+<li><p>Open the watchdog device</p></li>
+<li><p>Set the watchdog timeout</p></li>
+<li><p>Start the watchdog timer</p></li>
+<li><p>Ping (feed the dog) during the <code class="docutils literal notranslate"><span class="pre">pingtime</span></code> with a delay of <code class="docutils literal notranslate"><span class="pre">pingdelay</span></code> and print out the wdt status in case debug was enabled.</p></li>
+<li><p>Enter into an endless loop without pinging. It will cause the watchdog timer to reset the chip on timeout, i.e., after timer expiration.</p></li>
+</ul>
+<p>The <a class="reference external" href="https://github.com/apache/incubator-nuttx-apps/blob/master/examples/watchdog/watchdog_main.c">example code</a>  may be explored, its path is at <code class="docutils literal notranslate"><span class="pre">/examples/watchdog/watchdog_main.c</span></code> in the apps’ repository.</p>
+<p>In NuttX, the watchdog timer driver is a character driver and when a chip supports multiple watchdog timers, each one is accessible through its respective special file in <code class="docutils literal notranslate"><span class="pre">/dev</span></code> directory. Each watchdog timer is registered using a unique numeric identifier (i.e. <code class="docutils literal notranslate"><span class="pre">/dev/watchdog0</span></code>, <code class="docutils literal notranslate"><span class="pre">/ [...]
+<p>Use the following command to run the example:</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">nsh&gt; wdog</span>
+</pre></div>
+</div>
+<p>This command will use the watchdog timer 0. To use the others, specify it through a parameter (where x is the timer number):</p>
+<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">nsh&gt; wdog -i /dev/watchdogx</span>
+</pre></div>
+</div>
+</div>
+<div class="section" id="application-level-interface">
+<h2>Application Level Interface<a class="headerlink" href="#application-level-interface" title="Permalink to this headline">¶</a></h2>
+<p>The first necessary thing to be done in order to use the watchdog timer driver in an application is to include the header file for the NuttX Watchdog timer driver. It contains the Application Level Interface to the timer driver. To do so, include:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span> <span class="cpf">&lt;nuttx/timers/watchdog.h&gt;</span><span class="cp"></span>
+</pre></div>
+</div>
+<p>At an application level, the watchdog timer functionalities may be accessed through <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> systems calls. These <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> commands internally call lower-half layer operations and the parameters are forwarded to these operations through the <code class="docutils literal notranslate"><span class="pre">ioctl</span></code> system call. The exampl [...]
+<dl class="c macro">
+<dt id="c.WDIOC_START">
+<code class="sig-name descname">WDIOC_START</code><a class="headerlink" href="#c.WDIOC_START" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<p>This command starts the watchdog timer.</p>
+<dl class="c macro">
+<dt id="c.WDIOC_STOP">
+<code class="sig-name descname">WDIOC_STOP</code><a class="headerlink" href="#c.WDIOC_STOP" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<p>This command stops the watchdog timer.</p>
+<dl class="c macro">
+<dt id="c.WDIOC_GETSTATUS">
+<code class="sig-name descname">WDIOC_GETSTATUS</code><a class="headerlink" href="#c.WDIOC_GETSTATUS" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<p>This command gets the status of the watchdog timer. It receives a writeable pointer to struct <code class="docutils literal notranslate"><span class="pre">watchdog_status_s</span></code> as parameter. The lower-half driver writes the current status in this struct.</p>
+<dl class="c struct">
+<dt id="c.watchdog_status_s">
+<em class="property">struct </em><code class="sig-name descname">watchdog_status_s</code><a class="headerlink" href="#c.watchdog_status_s" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">watchdog_status_s</span>
+<span class="p">{</span>
+  <span class="kt">uint32_t</span>  <span class="n">flags</span><span class="p">;</span>          <span class="cm">/* See WDFLAGS_* definitions above */</span>
+  <span class="kt">uint32_t</span>  <span class="n">timeout</span><span class="p">;</span>        <span class="cm">/* The current timeout setting (in milliseconds) */</span>
+  <span class="kt">uint32_t</span>  <span class="n">timeleft</span><span class="p">;</span>       <span class="cm">/* Time left until the watchdog expiration</span>
+<span class="cm">                             * (in milliseconds) */</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<dl class="c macro">
+<dt id="c.WDIOC_SETTIMEOUT">
+<code class="sig-name descname">WDIOC_SETTIMEOUT</code><a class="headerlink" href="#c.WDIOC_SETTIMEOUT" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<p>This command sets the timeout value, i.e., the value that will trigger the reset or interrupt. The argument is a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code> value in miliseconds.</p>
+<dl class="c macro">
+<dt id="c.WDIOC_CAPTURE">
+<code class="sig-name descname">WDIOC_CAPTURE</code><a class="headerlink" href="#c.WDIOC_CAPTURE" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<p>This command registers an user callback that will be triggered on timeout. It receives as argument a pointer to struct <code class="docutils literal notranslate"><span class="pre">watchdog_capture_s</span></code>. If the user callback is NULL, then it configures only to reset. Not all chips support interrupt on timeout. This command is optional, i.e., if it’s not used, the standard behaviour is to reset on timeout.</p>
+<dl class="c struct">
+<dt id="c.watchdog_capture_s">
+<em class="property">struct </em><code class="sig-name descname">watchdog_capture_s</code><a class="headerlink" href="#c.watchdog_capture_s" title="Permalink to this definition">¶</a><br /></dt>
+<dd></dd></dl>
+
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">struct</span> <span class="nc">watchdog_capture_s</span>
+<span class="p">{</span>
+  <span class="n">CODE</span> <span class="n">xcpt_t</span> <span class="n">newhandler</span><span class="p">;</span>   <span class="cm">/* The new watchdog capture handler */</span>
+  <span class="n">CODE</span> <span class="n">xcpt_t</span> <span class="n">oldhandler</span><span class="p">;</span>   <span class="cm">/* The previous watchdog capture handler (if any) */</span>
+<span class="p">};</span>
+</pre></div>
+</div>
+<dl class="c macro">
+<dt id="c.WDIOC_KEEPALIVE">
+<code class="sig-name descname">WDIOC_KEEPALIVE</code><a class="headerlink" href="#c.WDIOC_KEEPALIVE" title="Permalink to this definition">¶</a><br /></dt>
+<dd><p>This command resets the watchdog timer (“ping”,  “pet the dog”,  “feed the dog”).</p>
+</dd></dl>
+
+</div>
 </div>
 
 
diff --git a/content/docs/latest/genindex.html b/content/docs/latest/genindex.html
index f1de858..69555f3 100644
--- a/content/docs/latest/genindex.html
+++ b/content/docs/latest/genindex.html
@@ -1652,6 +1652,10 @@
 </li>
       <li><a href="glossary.html#term-WAN"><strong>WAN</strong></a>
 </li>
+      <li><a href="components/drivers/character/watchdog.html#c.watchdog_capture_s">watchdog_capture_s (C struct)</a>
+</li>
+      <li><a href="components/drivers/character/watchdog.html#c.watchdog_status_s">watchdog_status_s (C struct)</a>
+</li>
       <li><a href="reference/os/time_clock.html#c.wd_cancel">wd_cancel (C function)</a>
 </li>
       <li><a href="reference/os/time_clock.html#c.wd_gettime">wd_gettime (C function)</a>
@@ -1660,8 +1664,20 @@
 </li>
       <li><a href="reference/os/time_clock.html#c.wdentry_t">wdentry_t (C type)</a>
 </li>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_CAPTURE">WDIOC_CAPTURE (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_GETSTATUS">WDIOC_GETSTATUS (C macro)</a>
+</li>
   </ul></td>
   <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_KEEPALIVE">WDIOC_KEEPALIVE (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_SETTIMEOUT">WDIOC_SETTIMEOUT (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_START">WDIOC_START (C macro)</a>
+</li>
+      <li><a href="components/drivers/character/watchdog.html#c.WDIOC_STOP">WDIOC_STOP (C macro)</a>
+</li>
       <li><a href="glossary.html#term-WDT"><strong>WDT</strong></a>
 </li>
       <li><a href="glossary.html#term-WLAN"><strong>WLAN</strong></a>
diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html
index ad8e851..75c8b7f 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -207,7 +207,7 @@ by following these <a class="reference internal" href="contributing/documentatio
 <div class="section" id="nuttx-documentation">
 <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this headline">¶</a></h1>
 <p>NuttX is a real-time operating system (RTOS) with an emphasis on standards compliance and small footprint. Scalable from 8-bit to 64-bit microcontroller environments, the primary governing standards in NuttX are POSIX and ANSI standards. Additional standard APIs from Unix and other common RTOS’s (such as VxWorks) are adopted for functionality not available under these standards, or for functionality that is not appropriate for deeply-embedded environments (such as fork()).</p>
-<p>Last Updated: 09 November 20 at 00:39</p>
+<p>Last Updated: 10 November 20 at 00:38</p>
 <div class="toctree-wrapper compound">
 <p class="caption"><span class="caption-text">Table of Contents</span></p>
 <ul class="current">
diff --git a/content/docs/latest/objects.inv b/content/docs/latest/objects.inv
index b1e4a27..e1e3f0e 100644
Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ
diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js
index f503901..adfd4d4 100644
--- a/content/docs/latest/searchindex.js
+++ b/content/docs/latest/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","boards/index","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/index","components/drivers/character/keypad","components [...]
\ No newline at end of file
+Search.setIndex({docnames:["applications/index","applications/nsh/builtin","applications/nsh/commands","applications/nsh/config","applications/nsh/customizing","applications/nsh/index","applications/nsh/installation","applications/nsh/login","applications/nsh/nsh","boards/index","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/index","components/drivers/character/keypad","components [...]
\ No newline at end of file
diff --git a/content/feed.xml b/content/feed.xml
index adce16f..bab17d3 100644
--- a/content/feed.xml
+++ b/content/feed.xml
@@ -5,8 +5,8 @@
     <description></description>
     <link>/</link>
     <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/>
-    <pubDate>Mon, 09 Nov 2020 00:40:51 +0000</pubDate>
-    <lastBuildDate>Mon, 09 Nov 2020 00:40:51 +0000</lastBuildDate>
+    <pubDate>Tue, 10 Nov 2020 00:40:28 +0000</pubDate>
+    <lastBuildDate>Tue, 10 Nov 2020 00:40:28 +0000</lastBuildDate>
     <generator>Jekyll v3.8.5</generator>
     
       <item>