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/nuttx-website.git
The following commit(s) were added to refs/heads/asf-site by this push: new 00c281112 Publishing web: 405a7126bab3fbbeef1bb95fabd1561c86029fc1 docs: e15f7b13c7ed16934d10018ac7f868df936797d3 00c281112 is described below commit 00c281112f886f1503b75e09629b4de520ea8301 Author: raiden00pl <raide...@railab.me> AuthorDate: Fri Mar 7 00:28:14 2025 +0000 Publishing web: 405a7126bab3fbbeef1bb95fabd1561c86029fc1 docs: e15f7b13c7ed16934d10018ac7f868df936797d3 --- content/docs/10.0.0/index.html | 2 +- content/docs/10.0.1/index.html | 2 +- content/docs/10.1.0/index.html | 2 +- content/docs/10.2.0/index.html | 2 +- content/docs/10.3.0/index.html | 2 +- content/docs/11.0.0/index.html | 2 +- content/docs/12.0.0/index.html | 2 +- content/docs/12.0.0/searchindex.js | 2 +- content/docs/12.1.0/index.html | 2 +- content/docs/12.1.0/searchindex.js | 2 +- content/docs/12.2.0/index.html | 2 +- content/docs/12.2.0/searchindex.js | 2 +- content/docs/12.2.1/index.html | 2 +- content/docs/12.2.1/searchindex.js | 2 +- content/docs/12.3.0/index.html | 2 +- content/docs/12.3.0/searchindex.js | 2 +- content/docs/12.4.0/index.html | 2 +- content/docs/12.4.0/searchindex.js | 2 +- content/docs/12.5.0/index.html | 2 +- content/docs/12.5.0/searchindex.js | 2 +- content/docs/12.5.1/index.html | 2 +- content/docs/12.5.1/searchindex.js | 2 +- content/docs/12.6.0/index.html | 2 +- content/docs/12.6.0/searchindex.js | 2 +- content/docs/12.7.0/index.html | 2 +- content/docs/12.7.0/searchindex.js | 2 +- content/docs/12.8.0/index.html | 2 +- content/docs/12.8.0/searchindex.js | 2 +- content/docs/latest/_images/starpro64.jpg | Bin 0 -> 190885 bytes .../components/drivers/special/wireless.rst.txt | 8 + .../drivers/special/wireless/rn2xx3.rst.txt | 355 +++++++++++++ .../risc-v/eic7700x/boards/starpro64/index.rst.txt | 3 + .../latest/components/drivers/special/index.html | 32 +- .../components/drivers/special/wireless.html | 15 +- .../drivers/special/wireless/rn2xx3.html | 565 +++++++++++++++++++++ .../latest/components/drivers/thermal/index.html | 4 +- content/docs/latest/index.html | 2 +- content/docs/latest/objects.inv | Bin 139789 -> 140207 bytes .../arm/lpc31xx/boards/olimex-lpc-h3131/index.html | 2 +- .../risc-v/eic7700x/boards/starpro64/index.html | 3 + content/docs/latest/searchindex.js | 2 +- content/feed.xml | 4 +- 42 files changed, 1012 insertions(+), 39 deletions(-) diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html index a42ca6bef..9ebcd4432 100644 --- a/content/docs/10.0.0/index.html +++ b/content/docs/10.0.0/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 32-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: 06 March 25 at 00:14</p> +<p>Last Updated: 07 March 25 at 00:13</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/10.0.1/index.html b/content/docs/10.0.1/index.html index 04e703c97..599acf90c 100644 --- a/content/docs/10.0.1/index.html +++ b/content/docs/10.0.1/index.html @@ -241,7 +241,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 32-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: 06 March 25 at 00:14</p> +<p>Last Updated: 07 March 25 at 00:14</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/10.1.0/index.html b/content/docs/10.1.0/index.html index 4b8194c77..da5a94d2a 100644 --- a/content/docs/10.1.0/index.html +++ b/content/docs/10.1.0/index.html @@ -241,7 +241,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: 06 March 25 at 00:14</p> +<p>Last Updated: 07 March 25 at 00:14</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/10.2.0/index.html b/content/docs/10.2.0/index.html index f437bba79..6a4d55936 100644 --- a/content/docs/10.2.0/index.html +++ b/content/docs/10.2.0/index.html @@ -242,7 +242,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: 06 March 25 at 00:15</p> +<p>Last Updated: 07 March 25 at 00:14</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/10.3.0/index.html b/content/docs/10.3.0/index.html index f437bba79..6a4d55936 100644 --- a/content/docs/10.3.0/index.html +++ b/content/docs/10.3.0/index.html @@ -242,7 +242,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: 06 March 25 at 00:15</p> +<p>Last Updated: 07 March 25 at 00:14</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/11.0.0/index.html b/content/docs/11.0.0/index.html index f437bba79..71b6a0c26 100644 --- a/content/docs/11.0.0/index.html +++ b/content/docs/11.0.0/index.html @@ -242,7 +242,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: 06 March 25 at 00:15</p> +<p>Last Updated: 07 March 25 at 00:15</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/12.0.0/index.html b/content/docs/12.0.0/index.html index 5c284a419..608954530 100644 --- a/content/docs/12.0.0/index.html +++ b/content/docs/12.0.0/index.html @@ -167,7 +167,7 @@ by following these <a class="reference internal" href="contributing/documentatio <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: 06 March 25 at 00:16</p> +<p>Last Updated: 07 March 25 at 00:15</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.0.0/searchindex.js b/content/docs/12.0.0/searchindex.js index d4bbb9293..b4716f0d9 100644 --- a/content/docs/12.0.0/searchindex.js +++ b/content/docs/12.0.0/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","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ 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","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file diff --git a/content/docs/12.1.0/index.html b/content/docs/12.1.0/index.html index 383f0462c..f5ca2572d 100644 --- a/content/docs/12.1.0/index.html +++ b/content/docs/12.1.0/index.html @@ -167,7 +167,7 @@ by following these <a class="reference internal" href="contributing/documentatio <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: 06 March 25 at 00:16</p> +<p>Last Updated: 07 March 25 at 00:15</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.1.0/searchindex.js b/content/docs/12.1.0/searchindex.js index 91b766791..e562909bb 100644 --- a/content/docs/12.1.0/searchindex.js +++ b/content/docs/12.1.0/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","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ 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","components/binfmt","components/drivers/block/index","components/drivers/character/analog","components/drivers/character/can","components/drivers/character/foc","components/drivers/character/index","components/drivers/character [...] \ No newline at end of file diff --git a/content/docs/12.2.0/index.html b/content/docs/12.2.0/index.html index 395295339..19f26aa7f 100644 --- a/content/docs/12.2.0/index.html +++ b/content/docs/12.2.0/index.html @@ -168,7 +168,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></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: 06 March 25 at 00:16</p> +<p>Last Updated: 07 March 25 at 00:16</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.0/searchindex.js b/content/docs/12.2.0/searchindex.js index 3f4fb8fca..627fcaf08 100644 --- a/content/docs/12.2.0/searchindex.js +++ b/content/docs/12.2.0/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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ 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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.2.1/index.html b/content/docs/12.2.1/index.html index 76172ef65..19f26aa7f 100644 --- a/content/docs/12.2.1/index.html +++ b/content/docs/12.2.1/index.html @@ -168,7 +168,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></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: 06 March 25 at 00:17</p> +<p>Last Updated: 07 March 25 at 00:16</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.2.1/searchindex.js b/content/docs/12.2.1/searchindex.js index eb604750b..6cb516989 100644 --- a/content/docs/12.2.1/searchindex.js +++ b/content/docs/12.2.1/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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ 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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.3.0/index.html b/content/docs/12.3.0/index.html index 1ca2550bf..2ea7bc6c3 100644 --- a/content/docs/12.3.0/index.html +++ b/content/docs/12.3.0/index.html @@ -168,7 +168,7 @@ by following these <a class="reference internal" href="contributing/documentatio <section id="nuttx-documentation"> <h1>NuttX Documentation<a class="headerlink" href="#nuttx-documentation" title="Permalink to this heading"></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: 06 March 25 at 00:17</p> +<p>Last Updated: 07 March 25 at 00:17</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.3.0/searchindex.js b/content/docs/12.3.0/searchindex.js index 62f96652b..37ef192e1 100644 --- a/content/docs/12.3.0/searchindex.js +++ b/content/docs/12.3.0/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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ 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", "applications/nxdiag/config", "applications/nxdiag/index", "applications/wapi/commands", "applications/wapi/index", "applications/wapi/wireless", "components/binfmt", "components/drivers/block/index", "components/dr [...] \ No newline at end of file diff --git a/content/docs/12.4.0/index.html b/content/docs/12.4.0/index.html index d74416080..17256d05d 100644 --- a/content/docs/12.4.0/index.html +++ b/content/docs/12.4.0/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:18</p> +<p>Last Updated: 07 March 25 at 00:17</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.4.0/searchindex.js b/content/docs/12.4.0/searchindex.js index 06e17127a..5b0ccfc65 100644 --- a/content/docs/12.4.0/searchindex.js +++ b/content/docs/12.4.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.5.0/index.html b/content/docs/12.5.0/index.html index a7bec4e88..c7fe2b45b 100644 --- a/content/docs/12.5.0/index.html +++ b/content/docs/12.5.0/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:19</p> +<p>Last Updated: 07 March 25 at 00:18</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.5.0/searchindex.js b/content/docs/12.5.0/searchindex.js index 5fa586b6f..a5fedf9a8 100644 --- a/content/docs/12.5.0/searchindex.js +++ b/content/docs/12.5.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.5.1/index.html b/content/docs/12.5.1/index.html index 8454947b5..059807b88 100644 --- a/content/docs/12.5.1/index.html +++ b/content/docs/12.5.1/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:20</p> +<p>Last Updated: 07 March 25 at 00:20</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.5.1/searchindex.js b/content/docs/12.5.1/searchindex.js index 48f2d7d25..dcef2a26b 100644 --- a/content/docs/12.5.1/searchindex.js +++ b/content/docs/12.5.1/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/coremark/index", "applications/benchmarks/index", "applications/boot/index", "applications/boot/mcuboot/index", "applications/boot/miniboot/index", "applications/canutils/candump/index", "applications/canutils/canlib/index", "applications/canutils/cansend/index", "applications/c [...] \ No newline at end of file diff --git a/content/docs/12.6.0/index.html b/content/docs/12.6.0/index.html index dec9722c9..67d698b48 100644 --- a/content/docs/12.6.0/index.html +++ b/content/docs/12.6.0/index.html @@ -176,7 +176,7 @@ 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: 06 March 25 at 00:22</p> +<p>Last Updated: 07 March 25 at 00:21</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.6.0/searchindex.js b/content/docs/12.6.0/searchindex.js index 366d4da56..6b8363b8f 100644 --- a/content/docs/12.6.0/searchindex.js +++ b/content/docs/12.6.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/12.7.0/index.html b/content/docs/12.7.0/index.html index fddc0a6f9..8ba7e8e68 100644 --- a/content/docs/12.7.0/index.html +++ b/content/docs/12.7.0/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:23</p> +<p>Last Updated: 07 March 25 at 00:23</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.7.0/searchindex.js b/content/docs/12.7.0/searchindex.js index 130bae007..ee774aaae 100644 --- a/content/docs/12.7.0/searchindex.js +++ b/content/docs/12.7.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/12.8.0/index.html b/content/docs/12.8.0/index.html index 28210f942..393db9dc9 100644 --- a/content/docs/12.8.0/index.html +++ b/content/docs/12.8.0/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:25</p> +<p>Last Updated: 07 March 25 at 00:24</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> <ul class="current"> diff --git a/content/docs/12.8.0/searchindex.js b/content/docs/12.8.0/searchindex.js index 4dbef4360..fdb3a620c 100644 --- a/content/docs/12.8.0/searchindex.js +++ b/content/docs/12.8.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/benchmarks/iozone/index", "applications/bench [...] \ No newline at end of file diff --git a/content/docs/latest/_images/starpro64.jpg b/content/docs/latest/_images/starpro64.jpg new file mode 100644 index 000000000..53fbf0bfc Binary files /dev/null and b/content/docs/latest/_images/starpro64.jpg differ diff --git a/content/docs/latest/_sources/components/drivers/special/wireless.rst.txt b/content/docs/latest/_sources/components/drivers/special/wireless.rst.txt index 9997ed887..bdf0366c9 100644 --- a/content/docs/latest/_sources/components/drivers/special/wireless.rst.txt +++ b/content/docs/latest/_sources/components/drivers/special/wireless.rst.txt @@ -1,3 +1,11 @@ ================ Wireless Drivers ================ + +.. toctree:: + :glob: + :maxdepth: 1 + :titlesonly: + :caption: Contents + + ./wireless/* diff --git a/content/docs/latest/_sources/components/drivers/special/wireless/rn2xx3.rst.txt b/content/docs/latest/_sources/components/drivers/special/wireless/rn2xx3.rst.txt new file mode 100644 index 000000000..b2ce63716 --- /dev/null +++ b/content/docs/latest/_sources/components/drivers/special/wireless/rn2xx3.rst.txt @@ -0,0 +1,355 @@ +====== +RN2XX3 +====== + +This driver provides support for the RN2XX3 family of LoRa radio transceivers by +Microchip. This includes both the RN2903 and RN2483 modules. + +.. warning:: + This driver only contains preliminary support for a few 'radio set' commands + and raw radio transmit/receive. There is no support for the LoRaWAN stack + yet. IT IS EXPERIMENTAL. + +Application Programming Interface +================================= + +To register the device for use, you will need to enable the standard upper half +serial drivers (``CONFIG_STANDARD_SERIAL``), since the RN2XX3 driver requires +the path to the UART interface the module is connected to. + +You will also need to ensure that the baud rate of the UART interface is set to +57600, which is the baud rate of the RN2XX3. + +At registration time, the driver will automatically determine if the device is +the RN2903 or RN2483. + +.. code-block:: c + + #include <nuttx/wireless/lpwan/rn2xx3.h> + + #ifdef CONFIG_LPWAN_RN2XX3 + + /* Register the RN2XX3 device driver */ + + ret = rn2xx3_register("/dev/rn2903", "/dev/ttyS1"); + if (ret < 0) { + syslog(LOG_ERR, "Failed to register RN2XX3 device driver: %d\n", ret); + } + #endif + +This driver uses the standard POSIX character device interface, implementing +``read()``, ``write()`` and ``ioctl()``. + +To transmit, the ``write()`` function can be used. Bytes in the provided buffer +will be transmitted as a packet. This has the following behaviour: + +* If the radio is in FSK modulation mode, packets will only contain up to 64 + bytes. A buffer of more than 64 bytes will only have 64 bytes transmitted. +* If the radio is in LoRa modulation mode, packets will only contain up to 255 + bytes. +* If the buffer contains less than the current packet size limit (64 or 255 + bytes), its contents will be transmitted as a single packet. + +.. code-block:: c + + int radio = open("/dev/rn2903", O_RDWR); + if (radio < 0) + { + fprintf(stderr, "Couldn't open radio: %d\n", errno); + return -1; + } + + char message[] = "Hello, world!"; + ssize_t b_sent = write(radio, message, sizeof(message)); + if (b_sent < 0) + { + fprintf(stderr, "Couldn't transmit: %d\n", errno); + return -1; + } + +To receive, the ``read()`` function can be used. As much of the received packet +as possible will be stored in the user buffer. This has the following behaviour: + +* If the buffer is too small to contain the full received packet, as much of the + packet as possible will be stored in the buffer. +* When the packet is fully read, ``read()`` will return ``0``. +* If only part of the packet has been read and a call to ``write()`` or + ``ioctl()`` is made, the remainder of the packet is discarded. + +.. code-block:: c + + int radio = open("/dev/rn2903", O_RDWR); + if (radio < 0) + { + fprintf(stderr, "Couldn't open radio: %d\n", errno); + return -1; + } + + char buffer[16]; + ssize_t b_read; + + do { + b_read = read(radio, buffer, sizeof(buffer)); + if (b_read < 0) + { + fprintf(stderr, "Couldn't receive: %d\n", errno); + return -1; + } + write(0, buffer, b_read); /* Print received bytes to stdout */ + } while (b_read != 0); + +Finally, the ``ioctl()`` interface provides access to some underlying module +commands. + +``WLIOC_GETSNR`` +---------------- + +Gets the signal to noise ration of the last received packet. If no packets have +been received, it will default to -128. Argument is a pointer to an ``int8_t``. + +.. code-block:: c + + int8_t snr; + err = ioctl(radio, WLIOC_GETSNR, &snr); + +``WLIOC_SETRADIOFREQ`` +---------------------- + +Sets the operating frequency of the radio module. The argument is the desired +frequency in Hz (``uint32_t``). + +.. code-block:: c + + err = ioctl(radio, WLIOC_SETRADIOFREQ, 902400000); + +``WLIOC_GETRADIOFREQ`` +---------------------- + +Gets the current operating frequency of the radio module in Hz. The argument is +a pointer to a ``uint32_t``. + +.. code-block:: c + + uint32_t freq; + err = ioctl(radio, WLIOC_GETRADIOFREQ, &freq); + +``WLIOC_SETTXPOWERF`` +--------------------- + +Sets the transmission power of the radio. Argument is a pointer to a ``int32_t`` +containing the desired transmission power in 0.01 dBm. After setting the +transmission power successfully, this pointer will contain the new transmission +power. This value may be different from the desired value, but will be the +closest available setting that is greater than or equal to the desired value. + +.. code-block:: c + + int32_t txpower = 1200; + err = ioctl(radio, WLIOC_SETTXPOWERF, &txpower); + printf("Actual TX power: %.2f dBm\n", txpower / 100.0f); + +``WLIOC_GETTXPOWERF`` +--------------------- + +Gets the current transmission power level in 0.01 dBm. The argument is a pointer +to a ``int32_t``. + +.. code-block:: c + + int32_t txpwr; + err = ioctl(radio, WLIOC_GETTXPOWER, &txpwr); + +``WLIOC_SETBANDWIDTH`` +---------------------- + +Sets the operating bandwidth of the radio module. The argument is the desired +bandwidth in kHz (``uint32_t``). The radio only supports exact values of 125, +250 and 500. + +.. code-block:: c + + err = ioctl(radio, WLIOC_SETBANDWIDTH, 250); + +``WLIOC_GETBANDWIDTH`` +---------------------- + +Gets the current operating bandwidth of the radio module in kHz. The argument is +a pointer to a ``uint32_t``. + +.. code-block:: c + + uint32_t bandwidth; + err = ioctl(radio, WLIOC_GETBANDWIDTH, &bandwidth); + +``WLIOC_SETSPREAD`` +---------------------- + +Sets the operating spread factor of the radio module. The argument is a +``uint8_t`` containing the desired spread factor between 7 and 12 (inclusive). + +.. code-block:: c + + err = ioctl(radio, WLIOC_SETSPREAD, 8); + +``WLIOC_GETSPREAD`` +---------------------- + +Gets the current operating spread factor of the radio module. The argument is a +pointer to a ``uint8_t``. + +.. code-block:: c + + uint8_t spread; + err = ioctl(radio, WLIOC_GETSPREAD, &spread); + +``WLIOC_SETPRLEN`` +---------------------- + +Sets the operating preamble length of the radio module. The argument is a +``uint16_t`` containing the desired preamble length. + +.. code-block:: c + + err = ioctl(radio, WLIOC_SETPRLEN, 8); + +``WLIOC_GETPRLEN`` +---------------------- + +Gets the current operating preamble length of the radio module. The argument is +a pointer to a ``uint16_t``. + +.. code-block:: c + + uint16_t prlen; + err = ioctl(radio, WLIOC_GETPRLEN, &prlen); + +``WLIOC_SETMOD`` +---------------------- + +Sets the operating modulation of the radio module. The argument is one of the +values in ``enum rn2xx3_mod_e``. + +.. code-block:: c + + err = ioctl(radio, WLIOC_SETMOD, RN2XX3_MOD_FSK); + +``WLIOC_GETMOD`` +---------------------- + +Gets the current operating modulation of the radio module. The argument is a +pointer to an ``enum rn2xx3_mod_e``. + +.. code-block:: c + + enum rn2xx3_mod_e modulation; + err = ioctl(radio, WLIOC_GETMOD, &modulation); + if (modulation == RN2XX3_MOD_LORA) + { + printf("LoRa modulation!\n"); + } + +``WLIOC_RESET`` +--------------- + +Resets the RN2xx3 radio module. This command takes no arguments. + +.. code-block:: c + + err = ioctl(radio, WLIOC_RESET, 0); + +``WLIOC_SETSYNC`` +----------------- + +Sets the sync word parameter of the RN2xx3 module. The argument is a pointer to +a ``uint64_t``. Please note that when operating using FSK modulation, the sync +word can be a full 8 bytes (64 bits), but LoRa modulation only accepts a single +byte sync word. + +.. code-block:: c + + /* Radio in FSK mode prior to this call */ + + uint64_t syncword = 0xdeadbeefdeadbeef; + err = ioctl(radio, WLIOC_SETSYNC, &syncword); + +``WLIOC_GETSYNC`` +----------------- + +Gets the sync word parameter of the RN2xx3 module. The argument is a pointer to +a ``uint64_t``. + +.. code-block:: c + + uint64_t syncword; + err = ioctl(radio, WLIOC_GETSYNC, &syncword); + +``WLIOC_SETBITRATE`` +-------------------- + +Sets the bit rate of the RN2xx3 module. The argument is a ``uint32_t``. The +bit rate only applies to the module when it is in FSK modulation mode, and it +must be between 1 - 300000. + +.. code-block:: c + + /* Radio in FSK mode prior to this call */ + + err = ioctl(radio, WLIOC_SETBITRATE, 300000); + +``WLIOC_GETBITRATE`` +-------------------- + +Gets the configured bit rate of the RN2xx3 module. The argument is a pointer to +a ``uint32_t``. + +.. code-block:: c + + uint32_t bitrate; + err = ioctl(radio, WLIOC_GETBITRATE, &bitrate); + +``WLIOC_IQIEN`` +--------------- + +Enables the invert IQ functionality of the module. The argument is boolean of +either true (non-zero) or false (zero). + +.. code-block:: c + + /* Enables IQI */ + + err = ioctl(radio, WLIOC_IQIEN, 1); + +``WLIOC_CRCEN`` +--------------- + +Enables adding a CRC header to packets. The argument is a boolean of either true +(non-zero) or false (zero). + +.. code-block:: c + + /* Enables CRC */ + + err = ioctl(radio, WLIOC_CRCEN, 1); + +``WLIOC_SETCODERATE`` +--------------------- + +Sets the coding rate of the RN2xx3 module. The argument is one of the values in +``enum rn2xx3_cr_e``. + +.. code-block:: c + + /* Sets 4/7 coding rate */ + + err = ioctl(radio, WLIOC_SETCODERATE, RN2XX3_CR_4_7); + +``WLIOC_GETCODERATE`` +--------------------- + +Gets the currently configured coding rate of the RN2xx3 module. The argument is +a pointer to an ``enum rn2xx3_cr_e``. + +.. code-block:: c + + enum rn2xx3_cr_e coderate; + err = ioctl(radio, WLIOC_GETCODERATE, &coderate); diff --git a/content/docs/latest/_sources/platforms/risc-v/eic7700x/boards/starpro64/index.rst.txt b/content/docs/latest/_sources/platforms/risc-v/eic7700x/boards/starpro64/index.rst.txt index ca651934c..8e8564231 100644 --- a/content/docs/latest/_sources/platforms/risc-v/eic7700x/boards/starpro64/index.rst.txt +++ b/content/docs/latest/_sources/platforms/risc-v/eic7700x/boards/starpro64/index.rst.txt @@ -6,6 +6,9 @@ PINE64 StarPro64 is a RISC-V Single-Board Computer based on the ESWIN EIC7700X RISC-V SoC with Quad-Core 64-bit RISC-V CPU, 32 GB LPDDR5 RAM and 100 Mbps Ethernet. +.. figure:: starpro64.jpg + :align: center + Features ======== diff --git a/content/docs/latest/components/drivers/special/index.html b/content/docs/latest/components/drivers/special/index.html index 029a016db..2935b5cb0 100644 --- a/content/docs/latest/components/drivers/special/index.html +++ b/content/docs/latest/components/drivers/special/index.html @@ -447,7 +447,37 @@ and thus expose them to applications.</p> <li class="toctree-l2"><a class="reference internal" href="video.html#max7456">max7456</a></li> </ul> </li> -<li class="toctree-l1"><a class="reference internal" href="wireless.html">Wireless Drivers</a></li> +<li class="toctree-l1"><a class="reference internal" href="wireless.html">Wireless Drivers</a><ul> +<li class="toctree-l2"><a class="reference internal" href="wireless/rn2xx3.html">RN2XX3</a><ul> +<li class="toctree-l3"><a class="reference internal" href="wireless/rn2xx3.html#application-programming-interface">Application Programming Interface</a><ul> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getsnr"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSNR</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setradiofreq"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETRADIOFREQ</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getradiofreq"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETRADIOFREQ</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-settxpowerf"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETTXPOWERF</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-gettxpowerf"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETTXPOWERF</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setbandwidth"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETBANDWIDTH</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getbandwidth"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETBANDWIDTH</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setspread"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETSPREAD</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getspread"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSPREAD</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setprlen"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETPRLEN</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getprlen"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETPRLEN</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setmod"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETMOD</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getmod"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETMOD</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-reset"><code class="docutils literal notranslate"><span class="pre">WLIOC_RESET</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setsync"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETSYNC</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getsync"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSYNC</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setbitrate"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETBITRATE</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getbitrate"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETBITRATE</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-iqien"><code class="docutils literal notranslate"><span class="pre">WLIOC_IQIEN</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-crcen"><code class="docutils literal notranslate"><span class="pre">WLIOC_CRCEN</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-setcoderate"><code class="docutils literal notranslate"><span class="pre">WLIOC_SETCODERATE</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="wireless/rn2xx3.html#wlioc-getcoderate"><code class="docutils literal notranslate"><span class="pre">WLIOC_GETCODERATE</span></code></a></li> +</ul> +</li> +</ul> +</li> +</ul> +</li> </ul> </div> </section> diff --git a/content/docs/latest/components/drivers/special/wireless.html b/content/docs/latest/components/drivers/special/wireless.html index b390d7f9b..01c805df3 100644 --- a/content/docs/latest/components/drivers/special/wireless.html +++ b/content/docs/latest/components/drivers/special/wireless.html @@ -43,7 +43,7 @@ <script src="../../../_static/js/theme.js"></script> <link rel="index" title="Index" href="../../../genindex.html" /> <link rel="search" title="Search" href="../../../search.html" /> - <link rel="next" title="Thermal Framework" href="../thermal/index.html" /> + <link rel="next" title="RN2XX3" href="wireless/rn2xx3.html" /> <link rel="prev" title="Video Device Drivers" href="video.html" /> </head> @@ -161,7 +161,10 @@ <li class="toctree-l4"><a class="reference internal" href="power/index.html">Power-related Drivers</a></li> <li class="toctree-l4"><a class="reference internal" href="virtio.html">Virtio Device Drivers</a></li> <li class="toctree-l4"><a class="reference internal" href="video.html">Video Device Drivers</a></li> -<li class="toctree-l4 current"><a class="current reference internal" href="#">Wireless Drivers</a></li> +<li class="toctree-l4 current"><a class="current reference internal" href="#">Wireless Drivers</a><ul> +<li class="toctree-l5"><a class="reference internal" href="wireless/rn2xx3.html">RN2XX3</a></li> +</ul> +</li> </ul> </li> <li class="toctree-l3"><a class="reference internal" href="../thermal/index.html">Thermal Framework</a></li> @@ -228,6 +231,12 @@ <section id="wireless-drivers"> <h1>Wireless Drivers<a class="headerlink" href="#wireless-drivers" title="Permalink to this heading"></a></h1> +<div class="toctree-wrapper compound"> +<p class="caption" role="heading"><span class="caption-text">Contents</span></p> +<ul> +<li class="toctree-l1"><a class="reference internal" href="wireless/rn2xx3.html">RN2XX3</a></li> +</ul> +</div> </section> @@ -235,7 +244,7 @@ </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> <a href="video.html" class="btn btn-neutral float-left" title="Video Device Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> - <a href="../thermal/index.html" class="btn btn-neutral float-right" title="Thermal Framework" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + <a href="wireless/rn2xx3.html" class="btn btn-neutral float-right" title="RN2XX3" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> <hr/> diff --git a/content/docs/latest/components/drivers/special/wireless/rn2xx3.html b/content/docs/latest/components/drivers/special/wireless/rn2xx3.html new file mode 100644 index 000000000..2ec5b27c9 --- /dev/null +++ b/content/docs/latest/components/drivers/special/wireless/rn2xx3.html @@ -0,0 +1,565 @@ +<!-- + Documentation/_templates/layout.html + + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. The + ASF licenses this file to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance with the + License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations + under the License. +--> + + + +<!DOCTYPE html> +<html class="writer-html5" lang="en"> +<head> + <meta charset="utf-8" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" /> + + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <title>RN2XX3 — NuttX latest documentation</title> + <link rel="stylesheet" type="text/css" href="../../../../_static/pygments.css" /> + <link rel="stylesheet" type="text/css" href="../../../../_static/css/theme.css" /> + <link rel="stylesheet" type="text/css" href="../../../../_static/copybutton.css" /> + <link rel="stylesheet" type="text/css" href="../../../../_static/custom.css" /> + + + <link rel="shortcut icon" href="../../../../_static/favicon.ico"/> + <script src="../../../../_static/jquery.js"></script> + <script src="../../../../_static/_sphinx_javascript_frameworks_compat.js"></script> + <script data-url_root="../../../../" id="documentation_options" src="../../../../_static/documentation_options.js"></script> + <script src="../../../../_static/doctools.js"></script> + <script src="../../../../_static/sphinx_highlight.js"></script> + <script src="../../../../_static/clipboard.min.js"></script> + <script src="../../../../_static/copybutton.js"></script> + <script src="../../../../_static/js/theme.js"></script> + <link rel="index" title="Index" href="../../../../genindex.html" /> + <link rel="search" title="Search" href="../../../../search.html" /> + <link rel="next" title="Thermal Framework" href="../../thermal/index.html" /> + <link rel="prev" title="Wireless Drivers" href="../wireless.html" /> +</head> + +<body class="wy-body-for-nav"> + <div class="wy-grid-for-nav"> + <nav data-toggle="wy-nav-shift" class="wy-nav-side"> + <div class="wy-side-scroll"> + <div class="wy-side-nav-search" > + + <a href="../../../../index.html" class="icon icon-home"> NuttX + + + + </a> + + <!-- this version selector is quite ugly, should be probably replaced by something + more modern --> + + <div class="version-selector"> + <select onchange="javascript:location.href = this.value;"> + + <option value="../../../../../latest" selected="selected">latest</option> + + <option value="../../../../../10.0.0" >10.0.0</option> + + <option value="../../../../../10.0.1" >10.0.1</option> + + <option value="../../../../../10.1.0" >10.1.0</option> + + <option value="../../../../../10.2.0" >10.2.0</option> + + <option value="../../../../../10.3.0" >10.3.0</option> + + <option value="../../../../../11.0.0" >11.0.0</option> + + <option value="../../../../../12.0.0" >12.0.0</option> + + <option value="../../../../../12.1.0" >12.1.0</option> + + <option value="../../../../../12.2.0" >12.2.0</option> + + <option value="../../../../../12.2.1" >12.2.1</option> + + <option value="../../../../../12.3.0" >12.3.0</option> + + <option value="../../../../../12.4.0" >12.4.0</option> + + <option value="../../../../../12.5.0" >12.5.0</option> + + <option value="../../../../../12.5.1" >12.5.1</option> + + <option value="../../../../../12.6.0" >12.6.0</option> + + <option value="../../../../../12.7.0" >12.7.0</option> + + <option value="../../../../../12.8.0" >12.8.0</option> + + </select> + </div> + + +<div role="search"> + <form id="rtd-search-form" class="wy-form" action="../../../../search.html" method="get"> + <input type="text" name="q" placeholder="Search docs" aria-label="Search docs" /> + <input type="hidden" name="check_keywords" value="yes" /> + <input type="hidden" name="area" value="default" /> + </form> +</div> + + </div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu"> + <p class="caption" role="heading"><span class="caption-text">Table of Contents</span></p> +<ul class="current"> +<li class="toctree-l1"><a class="reference internal" href="../../../../index.html">Home</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../introduction/index.html">Introduction</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../quickstart/index.html">Getting Started</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../contributing/index.html">Contributing</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../introduction/inviolables.html">The Inviolable Principles of NuttX</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../platforms/index.html">Supported Platforms</a></li> +<li class="toctree-l1 current"><a class="reference internal" href="../../../index.html">OS Components</a><ul class="current"> +<li class="toctree-l2"><a class="reference internal" href="../../../binfmt.html">Binary Loader</a></li> +<li class="toctree-l2 current"><a class="reference internal" href="../../index.html">Device Drivers</a><ul class="current"> +<li class="toctree-l3"><a class="reference internal" href="../../character/index.html">Character Device Drivers</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../block/index.html">Block Device Drivers</a></li> +<li class="toctree-l3 current"><a class="reference internal" href="../index.html">Specialized Device Drivers</a><ul class="current"> +<li class="toctree-l4"><a class="reference internal" href="../audio.html">Audio Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../clk.html">Clock management (CLK)</a></li> +<li class="toctree-l4"><a class="reference internal" href="../devicetree.html">Device Tree support</a></li> +<li class="toctree-l4"><a class="reference internal" href="../devmem.html">DEVMEM Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../dma.html">DMA Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../framebuffer.html">Frame Buffer Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../i2c.html">I2C Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../i3c.html">I3C Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../ioexpander.html">IO Expander Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../lcd.html">LCD Character Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../mtd.html">Memory Technology Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../regmap.html">drivers/regmap</a></li> +<li class="toctree-l4"><a class="reference internal" href="../reset.html">Reset Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="../rptun.html">Remote Proc Tunnel Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../rwbuffer.html"><code class="docutils literal notranslate"><span class="pre">rwbuffer.c</span></code></a></li> +<li class="toctree-l4"><a class="reference internal" href="../sensors.html">Sensor Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../segger.html">Segger RTT drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../spi.html">SPI Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../syslog.html">SYSLOG</a></li> +<li class="toctree-l4"><a class="reference internal" href="../sdio.html">SDIO Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../usbdev.html">USB Device-Side Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../usbhost.html">USB Host-Side Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../usbmisc.html">USB Miscellaneous Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../usbmonitor.html">USB Monitor support</a></li> +<li class="toctree-l4"><a class="reference internal" href="../usrsock.html">Usrsock Driver</a></li> +<li class="toctree-l4"><a class="reference internal" href="../mmcsd.html">MMCSD Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../net/index.html">Network interface drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../pci/index.html">PCI(e) Bus Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../pinctrl.html">Pinctrl Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../pipes.html">FIFO and named pipe drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../power/index.html">Power-related Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../virtio.html">Virtio Device Drivers</a></li> +<li class="toctree-l4"><a class="reference internal" href="../video.html">Video Device Drivers</a></li> +<li class="toctree-l4 current"><a class="reference internal" href="../wireless.html">Wireless Drivers</a><ul class="current"> +<li class="toctree-l5 current"><a class="current reference internal" href="#">RN2XX3</a></li> +</ul> +</li> +</ul> +</li> +<li class="toctree-l3"><a class="reference internal" href="../../thermal/index.html">Thermal Framework</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../index.html#lower-half-and-upper-half">Lower-half and upper-half</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../index.html#subdirectories-of-nuttx-drivers">Subdirectories of <code class="docutils literal notranslate"><span class="pre">nuttx/drivers</span></code></a></li> +<li class="toctree-l3"><a class="reference internal" href="../../index.html#skeleton-files">Skeleton Files</a></li> +<li class="toctree-l3"><a class="reference internal" href="../../index.html#drivers-early-initialization">Drivers Early Initialization</a></li> +</ul> +</li> +<li class="toctree-l2"><a class="reference internal" href="../../../nxflat.html">NXFLAT</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../nxgraphics/index.html">NX Graphics Subsystem</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../paging.html">On-Demand Paging</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../audio/index.html">Audio Subsystem</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../filesystem/index.html">NuttX File System</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../libs/index.html">NuttX libraries</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../net/index.html">Network Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../mm/index.html">Memory Management</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../syscall.html">Syscall Layer</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../tools/index.html"><code class="docutils literal notranslate"><span class="pre">/tools</span></code> Host Tools</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../arch/index.html">Architecture-Specific Code</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../boards.html">Boards Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../cmake.html">CMake Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../openamp.html">OpenAMP Support</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../video.html">Video Subsystem</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../crypto.html">Crypto API Subsystem</a></li> +<li class="toctree-l2"><a class="reference internal" href="../../../wireless.html">Wireless Subsystem</a></li> +</ul> +</li> +<li class="toctree-l1"><a class="reference internal" href="../../../../applications/index.html">Applications</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../implementation/index.html">Implementation Details</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../reference/index.html">API Reference</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../faq/index.html">FAQ</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../guides/index.html">Guides</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../glossary.html">Glossary</a></li> +<li class="toctree-l1"><a class="reference internal" href="../../../../logos/index.html">NuttX Logos</a></li> +</ul> + + </div> + </div> + </nav> + + <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" > + <i data-toggle="wy-nav-top" class="fa fa-bars"></i> + <a href="../../../../index.html">NuttX</a> + </nav> + + <div class="wy-nav-content"> + <div class="rst-content"> + <div role="navigation" aria-label="Page navigation"> + <ul class="wy-breadcrumbs"> + <li><a href="../../../../index.html" class="icon icon-home" aria-label="Home"></a></li> + <li class="breadcrumb-item"><a href="../../../index.html">OS Components</a></li> + <li class="breadcrumb-item"><a href="../../index.html">Device Drivers</a></li> + <li class="breadcrumb-item"><a href="../index.html">Specialized Device Drivers</a></li> + <li class="breadcrumb-item"><a href="../wireless.html">Wireless Drivers</a></li> + <li class="breadcrumb-item active">RN2XX3</li> + <li class="wy-breadcrumbs-aside"> + <a href="../../../../_sources/components/drivers/special/wireless/rn2xx3.rst.txt" rel="nofollow"> View page source</a> + </li> + </ul> + <hr/> +</div> + <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article"> + <div itemprop="articleBody"> + + <section id="rn2xx3"> +<h1>RN2XX3<a class="headerlink" href="#rn2xx3" title="Permalink to this heading"></a></h1> +<p>This driver provides support for the RN2XX3 family of LoRa radio transceivers by +Microchip. This includes both the RN2903 and RN2483 modules.</p> +<div class="admonition warning"> +<p class="admonition-title">Warning</p> +<p>This driver only contains preliminary support for a few ‘radio set’ commands +and raw radio transmit/receive. There is no support for the LoRaWAN stack +yet. IT IS EXPERIMENTAL.</p> +</div> +<section id="application-programming-interface"> +<h2>Application Programming Interface<a class="headerlink" href="#application-programming-interface" title="Permalink to this heading"></a></h2> +<p>To register the device for use, you will need to enable the standard upper half +serial drivers (<code class="docutils literal notranslate"><span class="pre">CONFIG_STANDARD_SERIAL</span></code>), since the RN2XX3 driver requires +the path to the UART interface the module is connected to.</p> +<p>You will also need to ensure that the baud rate of the UART interface is set to +57600, which is the baud rate of the RN2XX3.</p> +<p>At registration time, the driver will automatically determine if the device is +the RN2903 or RN2483.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><nuttx/wireless/lpwan/rn2xx3.h></span> + +<span class="cp">#ifdef CONFIG_LPWAN_RN2XX3</span> + +<span class="cm">/* Register the RN2XX3 device driver */</span> + +<span class="n">ret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">rn2xx3_register</span><span class="p">(</span><span class="s">"/dev/rn2903"</span><span class="p">,</span><span class="w"> </span><span class="s">"/dev/ttyS1"</span><span class="p">);</span> +<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">ret</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">syslog</span><span class="p">(</span><span class="n">LOG_ERR</span><span class="p">,</span><span class="w"> </span><span class="s">"Failed to register RN2XX3 device driver: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">ret</span><span class="p">);</span> +<span class="p">}</span> +<span class="cp">#endif</span> +</pre></div> +</div> +<p>This driver uses the standard POSIX character device interface, implementing +<code class="docutils literal notranslate"><span class="pre">read()</span></code>, <code class="docutils literal notranslate"><span class="pre">write()</span></code> and <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code>.</p> +<p>To transmit, the <code class="docutils literal notranslate"><span class="pre">write()</span></code> function can be used. Bytes in the provided buffer +will be transmitted as a packet. This has the following behaviour:</p> +<ul class="simple"> +<li><p>If the radio is in FSK modulation mode, packets will only contain up to 64 +bytes. A buffer of more than 64 bytes will only have 64 bytes transmitted.</p></li> +<li><p>If the radio is in LoRa modulation mode, packets will only contain up to 255 +bytes.</p></li> +<li><p>If the buffer contains less than the current packet size limit (64 or 255 +bytes), its contents will be transmitted as a single packet.</p></li> +</ul> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">radio</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">open</span><span class="p">(</span><span class="s">"/dev/rn2903"</span><span class="p">,</span><span class="w"> </span><span class="n">O_RDWR</span><span class="p">);</span> +<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">radio</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">"Couldn't open radio: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">errno</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> + +<span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">message</span><span class="p">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Hello, world!"</span><span class="p">;</span> +<span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">b_sent</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">write</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">message</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">message</span><span class="p">));</span> +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">b_sent</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">"Couldn't transmit: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">errno</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> +</pre></div> +</div> +<p>To receive, the <code class="docutils literal notranslate"><span class="pre">read()</span></code> function can be used. As much of the received packet +as possible will be stored in the user buffer. This has the following behaviour:</p> +<ul class="simple"> +<li><p>If the buffer is too small to contain the full received packet, as much of the +packet as possible will be stored in the buffer.</p></li> +<li><p>When the packet is fully read, <code class="docutils literal notranslate"><span class="pre">read()</span></code> will return <code class="docutils literal notranslate"><span class="pre">0</span></code>.</p></li> +<li><p>If only part of the packet has been read and a call to <code class="docutils literal notranslate"><span class="pre">write()</span></code> or +<code class="docutils literal notranslate"><span class="pre">ioctl()</span></code> is made, the remainder of the packet is discarded.</p></li> +</ul> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">radio</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">open</span><span class="p">(</span><span class="s">"/dev/rn2903"</span><span class="p">,</span><span class="w"> </span><span class="n">O_RDWR</span><span class="p">);</span> +<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">radio</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">"Couldn't open radio: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">errno</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> + +<span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="n">buffer</span><span class="p">[</span><span class="mi">16</span><span class="p">];</span> +<span class="w"> </span><span class="kt">ssize_t</span><span class="w"> </span><span class="n">b_read</span><span class="p">;</span> + +<span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">b_read</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">read</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">buffer</span><span class="p">,</span><span class="w"> </span><span class="k">sizeof</span><span class="p">(</span><span class="n">buffer</span><span class="p">));</span> +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">b_read</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">fprintf</span><span class="p">(</span><span class="n">stderr</span><span class="p">,</span><span class="w"> </span><span class="s">"Couldn't receive: %d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">errno</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="mi">-1</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="n">write</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="n">buffer</span><span class="p">,</span><span class="w"> </span><span class="n">b_read</span><span class="p">);</span><span class="w"> </span><span class="cm">/* Print received bytes to stdout */</span> +<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="n">b_read</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span> +</pre></div> +</div> +<p>Finally, the <code class="docutils literal notranslate"><span class="pre">ioctl()</span></code> interface provides access to some underlying module +commands.</p> +<section id="wlioc-getsnr"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSNR</span></code><a class="headerlink" href="#wlioc-getsnr" title="Permalink to this heading"></a></h3> +<p>Gets the signal to noise ration of the last received packet. If no packets have +been received, it will default to -128. Argument is a pointer to an <code class="docutils literal notranslate"><span class="pre">int8_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int8_t</span><span class="w"> </span><span class="n">snr</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETSNR</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">snr</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setradiofreq"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETRADIOFREQ</span></code><a class="headerlink" href="#wlioc-setradiofreq" title="Permalink to this heading"></a></h3> +<p>Sets the operating frequency of the radio module. The argument is the desired +frequency in Hz (<code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>).</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETRADIOFREQ</span><span class="p">,</span><span class="w"> </span><span class="mi">902400000</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getradiofreq"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETRADIOFREQ</span></code><a class="headerlink" href="#wlioc-getradiofreq" title="Permalink to this heading"></a></h3> +<p>Gets the current operating frequency of the radio module in Hz. The argument is +a pointer to a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">freq</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETRADIOFREQ</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">freq</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-settxpowerf"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETTXPOWERF</span></code><a class="headerlink" href="#wlioc-settxpowerf" title="Permalink to this heading"></a></h3> +<p>Sets the transmission power of the radio. Argument is a pointer to a <code class="docutils literal notranslate"><span class="pre">int32_t</span></code> +containing the desired transmission power in 0.01 dBm. After setting the +transmission power successfully, this pointer will contain the new transmission +power. This value may be different from the desired value, but will be the +closest available setting that is greater than or equal to the desired value.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int32_t</span><span class="w"> </span><span class="n">txpower</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1200</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETTXPOWERF</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">txpower</span><span class="p">);</span> +<span class="n">printf</span><span class="p">(</span><span class="s">"Actual TX power: %.2f dBm</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="w"> </span><span class="n">txpower</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mf">100.0f</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-gettxpowerf"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETTXPOWERF</span></code><a class="headerlink" href="#wlioc-gettxpowerf" title="Permalink to this heading"></a></h3> +<p>Gets the current transmission power level in 0.01 dBm. The argument is a pointer +to a <code class="docutils literal notranslate"><span class="pre">int32_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">int32_t</span><span class="w"> </span><span class="n">txpwr</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETTXPOWER</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">txpwr</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setbandwidth"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETBANDWIDTH</span></code><a class="headerlink" href="#wlioc-setbandwidth" title="Permalink to this heading"></a></h3> +<p>Sets the operating bandwidth of the radio module. The argument is the desired +bandwidth in kHz (<code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>). The radio only supports exact values of 125, +250 and 500.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETBANDWIDTH</span><span class="p">,</span><span class="w"> </span><span class="mi">250</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getbandwidth"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETBANDWIDTH</span></code><a class="headerlink" href="#wlioc-getbandwidth" title="Permalink to this heading"></a></h3> +<p>Gets the current operating bandwidth of the radio module in kHz. The argument is +a pointer to a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">bandwidth</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETBANDWIDTH</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">bandwidth</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setspread"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETSPREAD</span></code><a class="headerlink" href="#wlioc-setspread" title="Permalink to this heading"></a></h3> +<p>Sets the operating spread factor of the radio module. The argument is a +<code class="docutils literal notranslate"><span class="pre">uint8_t</span></code> containing the desired spread factor between 7 and 12 (inclusive).</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETSPREAD</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getspread"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSPREAD</span></code><a class="headerlink" href="#wlioc-getspread" title="Permalink to this heading"></a></h3> +<p>Gets the current operating spread factor of the radio module. The argument is a +pointer to a <code class="docutils literal notranslate"><span class="pre">uint8_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint8_t</span><span class="w"> </span><span class="n">spread</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETSPREAD</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">spread</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setprlen"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETPRLEN</span></code><a class="headerlink" href="#wlioc-setprlen" title="Permalink to this heading"></a></h3> +<p>Sets the operating preamble length of the radio module. The argument is a +<code class="docutils literal notranslate"><span class="pre">uint16_t</span></code> containing the desired preamble length.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETPRLEN</span><span class="p">,</span><span class="w"> </span><span class="mi">8</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getprlen"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETPRLEN</span></code><a class="headerlink" href="#wlioc-getprlen" title="Permalink to this heading"></a></h3> +<p>Gets the current operating preamble length of the radio module. The argument is +a pointer to a <code class="docutils literal notranslate"><span class="pre">uint16_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint16_t</span><span class="w"> </span><span class="n">prlen</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETPRLEN</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">prlen</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setmod"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETMOD</span></code><a class="headerlink" href="#wlioc-setmod" title="Permalink to this heading"></a></h3> +<p>Sets the operating modulation of the radio module. The argument is one of the +values in <code class="docutils literal notranslate"><span class="pre">enum</span> <span class="pre">rn2xx3_mod_e</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETMOD</span><span class="p">,</span><span class="w"> </span><span class="n">RN2XX3_MOD_FSK</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getmod"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETMOD</span></code><a class="headerlink" href="#wlioc-getmod" title="Permalink to this heading"></a></h3> +<p>Gets the current operating modulation of the radio module. The argument is a +pointer to an <code class="docutils literal notranslate"><span class="pre">enum</span> <span class="pre">rn2xx3_mod_e</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="n">rn2xx3_mod_e</span><span class="w"> </span><span class="n">modulation</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETMOD</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">modulation</span><span class="p">);</span> +<span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">modulation</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">RN2XX3_MOD_LORA</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">printf</span><span class="p">(</span><span class="s">"LoRa modulation!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> +<span class="w"> </span><span class="p">}</span> +</pre></div> +</div> +</section> +<section id="wlioc-reset"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_RESET</span></code><a class="headerlink" href="#wlioc-reset" title="Permalink to this heading"></a></h3> +<p>Resets the RN2xx3 radio module. This command takes no arguments.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_RESET</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setsync"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETSYNC</span></code><a class="headerlink" href="#wlioc-setsync" title="Permalink to this heading"></a></h3> +<p>Sets the sync word parameter of the RN2xx3 module. The argument is a pointer to +a <code class="docutils literal notranslate"><span class="pre">uint64_t</span></code>. Please note that when operating using FSK modulation, the sync +word can be a full 8 bytes (64 bits), but LoRa modulation only accepts a single +byte sync word.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Radio in FSK mode prior to this call */</span> + +<span class="kt">uint64_t</span><span class="w"> </span><span class="n">syncword</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mh">0xdeadbeefdeadbeef</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETSYNC</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">syncword</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getsync"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETSYNC</span></code><a class="headerlink" href="#wlioc-getsync" title="Permalink to this heading"></a></h3> +<p>Gets the sync word parameter of the RN2xx3 module. The argument is a pointer to +a <code class="docutils literal notranslate"><span class="pre">uint64_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint64_t</span><span class="w"> </span><span class="n">syncword</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETSYNC</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">syncword</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setbitrate"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETBITRATE</span></code><a class="headerlink" href="#wlioc-setbitrate" title="Permalink to this heading"></a></h3> +<p>Sets the bit rate of the RN2xx3 module. The argument is a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>. The +bit rate only applies to the module when it is in FSK modulation mode, and it +must be between 1 - 300000.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Radio in FSK mode prior to this call */</span> + +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETBITRATE</span><span class="p">,</span><span class="w"> </span><span class="mi">300000</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getbitrate"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETBITRATE</span></code><a class="headerlink" href="#wlioc-getbitrate" title="Permalink to this heading"></a></h3> +<p>Gets the configured bit rate of the RN2xx3 module. The argument is a pointer to +a <code class="docutils literal notranslate"><span class="pre">uint32_t</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="kt">uint32_t</span><span class="w"> </span><span class="n">bitrate</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETBITRATE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">bitrate</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-iqien"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_IQIEN</span></code><a class="headerlink" href="#wlioc-iqien" title="Permalink to this heading"></a></h3> +<p>Enables the invert IQ functionality of the module. The argument is boolean of +either true (non-zero) or false (zero).</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Enables IQI */</span> + +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_IQIEN</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-crcen"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_CRCEN</span></code><a class="headerlink" href="#wlioc-crcen" title="Permalink to this heading"></a></h3> +<p>Enables adding a CRC header to packets. The argument is a boolean of either true +(non-zero) or false (zero).</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Enables CRC */</span> + +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_CRCEN</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-setcoderate"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_SETCODERATE</span></code><a class="headerlink" href="#wlioc-setcoderate" title="Permalink to this heading"></a></h3> +<p>Sets the coding rate of the RN2xx3 module. The argument is one of the values in +<code class="docutils literal notranslate"><span class="pre">enum</span> <span class="pre">rn2xx3_cr_e</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cm">/* Sets 4/7 coding rate */</span> + +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_SETCODERATE</span><span class="p">,</span><span class="w"> </span><span class="n">RN2XX3_CR_4_7</span><span class="p">);</span> +</pre></div> +</div> +</section> +<section id="wlioc-getcoderate"> +<h3><code class="docutils literal notranslate"><span class="pre">WLIOC_GETCODERATE</span></code><a class="headerlink" href="#wlioc-getcoderate" title="Permalink to this heading"></a></h3> +<p>Gets the currently configured coding rate of the RN2xx3 module. The argument is +a pointer to an <code class="docutils literal notranslate"><span class="pre">enum</span> <span class="pre">rn2xx3_cr_e</span></code>.</p> +<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="k">enum</span><span class="w"> </span><span class="n">rn2xx3_cr_e</span><span class="w"> </span><span class="n">coderate</span><span class="p">;</span> +<span class="n">err</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ioctl</span><span class="p">(</span><span class="n">radio</span><span class="p">,</span><span class="w"> </span><span class="n">WLIOC_GETCODERATE</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">coderate</span><span class="p">);</span> +</pre></div> +</div> +</section> +</section> +</section> + + + </div> + </div> + <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> + <a href="../wireless.html" class="btn btn-neutral float-left" title="Wireless Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../../thermal/index.html" class="btn btn-neutral float-right" title="Thermal Framework" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> + </div> + + <hr/> + + <div role="contentinfo"> + <p>© Copyright 2023, The Apache Software Foundation.</p> + </div> + + + +</footer> + </div> + </div> + </section> + </div> + <script> + jQuery(function () { + SphinxRtdTheme.Navigation.enable(true); + }); + </script> + +</body> +</html> \ No newline at end of file diff --git a/content/docs/latest/components/drivers/thermal/index.html b/content/docs/latest/components/drivers/thermal/index.html index 91d10332f..1a50d8095 100644 --- a/content/docs/latest/components/drivers/thermal/index.html +++ b/content/docs/latest/components/drivers/thermal/index.html @@ -44,7 +44,7 @@ <link rel="index" title="Index" href="../../../genindex.html" /> <link rel="search" title="Search" href="../../../search.html" /> <link rel="next" title="NXFLAT" href="../../nxflat.html" /> - <link rel="prev" title="Wireless Drivers" href="../special/wireless.html" /> + <link rel="prev" title="RN2XX3" href="../special/wireless/rn2xx3.html" /> </head> <body class="wy-body-for-nav"> @@ -390,7 +390,7 @@ static const struct thermal_zone_params_s g_dummy_params = </div> </div> <footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer"> - <a href="../special/wireless.html" class="btn btn-neutral float-left" title="Wireless Drivers" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> + <a href="../special/wireless/rn2xx3.html" class="btn btn-neutral float-left" title="RN2XX3" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a> <a href="../../nxflat.html" class="btn btn-neutral float-right" title="NXFLAT" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a> </div> diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html index 51ed56caf..99d0779b7 100644 --- a/content/docs/latest/index.html +++ b/content/docs/latest/index.html @@ -175,7 +175,7 @@ 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: 06 March 25 at 00:26</p> +<p>Last Updated: 07 March 25 at 00:26</p> <div class="toctree-wrapper compound"> <p class="caption" role="heading"><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 3e5af932b..6a35581df 100644 Binary files a/content/docs/latest/objects.inv and b/content/docs/latest/objects.inv differ diff --git a/content/docs/latest/platforms/arm/lpc31xx/boards/olimex-lpc-h3131/index.html b/content/docs/latest/platforms/arm/lpc31xx/boards/olimex-lpc-h3131/index.html index 601152a5c..1d53e42a3 100644 --- a/content/docs/latest/platforms/arm/lpc31xx/boards/olimex-lpc-h3131/index.html +++ b/content/docs/latest/platforms/arm/lpc31xx/boards/olimex-lpc-h3131/index.html @@ -1069,7 +1069,7 @@ Configurations CONFIG_NSH_DISABLE_MH=y CONFIG_NSH_DISABLE_MKFIFO=y CONFIG_NSH_DISABLE_MKRD=y - CONFIG_NSH_DISABLE_NSFMOUNT=y + CONFIG_NSH_DISABLE_NFSMOUNT=y CONFIG_NSH_DISABLE_PING=y CONFIG_NSH_DISABLE_PUT=y CONFIG_NSH_DISABLE_PWD=y diff --git a/content/docs/latest/platforms/risc-v/eic7700x/boards/starpro64/index.html b/content/docs/latest/platforms/risc-v/eic7700x/boards/starpro64/index.html index b3685a64f..56ad943b5 100644 --- a/content/docs/latest/platforms/risc-v/eic7700x/boards/starpro64/index.html +++ b/content/docs/latest/platforms/risc-v/eic7700x/boards/starpro64/index.html @@ -213,6 +213,9 @@ <p><a class="reference external" href="https://lupyuen.github.io/articles/starpro64">PINE64 StarPro64</a> is a RISC-V Single-Board Computer based on the ESWIN EIC7700X RISC-V SoC with Quad-Core 64-bit RISC-V CPU, 32 GB LPDDR5 RAM and 100 Mbps Ethernet.</p> +<figure class="align-center"> +<img alt="../../../../../_images/starpro64.jpg" src="../../../../../_images/starpro64.jpg" /> +</figure> <section id="features"> <h2>Features<a class="headerlink" href="#features" title="Permalink to this heading"></a></h2> <ul class="simple"> diff --git a/content/docs/latest/searchindex.js b/content/docs/latest/searchindex.js index 8c9be7e8d..dce28abd7 100644 --- a/content/docs/latest/searchindex.js +++ b/content/docs/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...] \ No newline at end of file +Search.setIndex({"docnames": ["applications/audioutils/fmsynt/index", "applications/audioutils/index", "applications/audioutils/mml_parser/index", "applications/audioutils/nxaudio/index", "applications/benchmarks/cachespeed/index", "applications/benchmarks/coremark-pro/index", "applications/benchmarks/coremark/index", "applications/benchmarks/cyclictest/index", "applications/benchmarks/dhrystone/index", "applications/benchmarks/fio/index", "applications/benchmarks/index", "applications/b [...] \ No newline at end of file diff --git a/content/feed.xml b/content/feed.xml index 113f5d7ba..4abf8dcb2 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>Thu, 06 Mar 2025 00:28:44 +0000</pubDate> - <lastBuildDate>Thu, 06 Mar 2025 00:28:44 +0000</lastBuildDate> + <pubDate>Fri, 07 Mar 2025 00:28:00 +0000</pubDate> + <lastBuildDate>Fri, 07 Mar 2025 00:28:00 +0000</lastBuildDate> <generator>Jekyll v4.3.2</generator> <item>