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 43b95bcb1 Publishing web: aaa9187cb47fad9df46b094700a96756379c8b6f docs: 1daa2d54e31bfd6e57509991f23ab52fa8bc0801 43b95bcb1 is described below commit 43b95bcb1ca539a89cc7d38c25f686a471dbd43d Author: Matteo Golin <matteo.go...@gmail.com> AuthorDate: Tue Sep 16 00:32:22 2025 +0000 Publishing web: aaa9187cb47fad9df46b094700a96756379c8b6f docs: 1daa2d54e31bfd6e57509991f23ab52fa8bc0801 --- 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.10.0/index.html | 2 +- content/docs/12.10.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/12.9.0/index.html | 2 +- content/docs/12.9.0/searchindex.js | 2 +- .../docs/latest/_sources/guides/cpp_cmake.rst.txt | 227 +++++++-------------- content/docs/latest/guides/cpp_cmake.html | 226 ++++++-------------- content/docs/latest/guides/fully_linked_elf.html | 2 +- .../docs/latest/guides/partially_linked_elf.html | 2 +- content/docs/latest/index.html | 2 +- content/docs/latest/searchindex.js | 2 +- content/feed.xml | 4 +- 39 files changed, 175 insertions(+), 354 deletions(-) diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html index 0623c327f..9d7273556 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: 15 September 25 at 00:15</p> +<p>Last Updated: 16 September 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 74df69fd7..1d0790938 100644 --- a/content/docs/10.0.1/index.html +++ b/content/docs/10.0.1/index.html @@ -245,7 +245,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: 15 September 25 at 00:15</p> +<p>Last Updated: 16 September 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.1.0/index.html b/content/docs/10.1.0/index.html index f8b94ed27..f7c11d7b3 100644 --- a/content/docs/10.1.0/index.html +++ b/content/docs/10.1.0/index.html @@ -245,7 +245,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: 15 September 25 at 00:15</p> +<p>Last Updated: 16 September 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 735d6199b..2bcd1c21d 100644 --- a/content/docs/10.2.0/index.html +++ b/content/docs/10.2.0/index.html @@ -246,7 +246,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: 15 September 25 at 00:16</p> +<p>Last Updated: 16 September 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 735d6199b..2bcd1c21d 100644 --- a/content/docs/10.3.0/index.html +++ b/content/docs/10.3.0/index.html @@ -246,7 +246,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: 15 September 25 at 00:16</p> +<p>Last Updated: 16 September 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 735d6199b..cd731249f 100644 --- a/content/docs/11.0.0/index.html +++ b/content/docs/11.0.0/index.html @@ -246,7 +246,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: 15 September 25 at 00:16</p> +<p>Last Updated: 16 September 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 ae06af0e3..52efbec9d 100644 --- a/content/docs/12.0.0/index.html +++ b/content/docs/12.0.0/index.html @@ -171,7 +171,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: 15 September 25 at 00:17</p> +<p>Last Updated: 16 September 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 72e76e62b..1096e39ae 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 2c8885c22..82f54ffe2 100644 --- a/content/docs/12.1.0/index.html +++ b/content/docs/12.1.0/index.html @@ -171,7 +171,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: 15 September 25 at 00:17</p> +<p>Last Updated: 16 September 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 5be032bba..51026e7fd 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.10.0/index.html b/content/docs/12.10.0/index.html index 54a9d5f27..a271556db 100644 --- a/content/docs/12.10.0/index.html +++ b/content/docs/12.10.0/index.html @@ -183,7 +183,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: 15 September 25 at 00:30</p> +<p>Last Updated: 16 September 25 at 00:28</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.10.0/searchindex.js b/content/docs/12.10.0/searchindex.js index 9513668e4..6442be833 100644 --- a/content/docs/12.10.0/searchindex.js +++ b/content/docs/12.10.0/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...] \ No newline at end of file +Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tags/chip-nrf52", "_tags/ [...] \ 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 c73ef6471..413df633d 100644 --- a/content/docs/12.2.0/index.html +++ b/content/docs/12.2.0/index.html @@ -172,7 +172,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: 15 September 25 at 00:17</p> +<p>Last Updated: 16 September 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 f1ed0ae6f..1619a6d32 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 28e12b418..413df633d 100644 --- a/content/docs/12.2.1/index.html +++ b/content/docs/12.2.1/index.html @@ -172,7 +172,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: 15 September 25 at 00:18</p> +<p>Last Updated: 16 September 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 aadca7d94..448bf6b78 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 559a067da..2ea0a5eb9 100644 --- a/content/docs/12.3.0/index.html +++ b/content/docs/12.3.0/index.html @@ -172,7 +172,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: 15 September 25 at 00:18</p> +<p>Last Updated: 16 September 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 1420e35ae..b1d0ff97e 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 4b193656a..94ef837ff 100644 --- a/content/docs/12.4.0/index.html +++ b/content/docs/12.4.0/index.html @@ -179,7 +179,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: 15 September 25 at 00:19</p> +<p>Last Updated: 16 September 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 227eb19e1..371777383 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 a694dcb17..3e023145a 100644 --- a/content/docs/12.5.0/index.html +++ b/content/docs/12.5.0/index.html @@ -179,7 +179,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: 15 September 25 at 00:20</p> +<p>Last Updated: 16 September 25 at 00:19</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 cac868809..710e2a842 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 5d115fec8..154d2c968 100644 --- a/content/docs/12.5.1/index.html +++ b/content/docs/12.5.1/index.html @@ -179,7 +179,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: 15 September 25 at 00:22</p> +<p>Last Updated: 16 September 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 eb18d4e76..28198b926 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 3534e8b04..0494bce36 100644 --- a/content/docs/12.6.0/index.html +++ b/content/docs/12.6.0/index.html @@ -180,7 +180,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: 15 September 25 at 00:23</p> +<p>Last Updated: 16 September 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 2c9e58783..1bd662edc 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 33e7a77d4..125810f0c 100644 --- a/content/docs/12.7.0/index.html +++ b/content/docs/12.7.0/index.html @@ -179,7 +179,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: 15 September 25 at 00:25</p> +<p>Last Updated: 16 September 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 79943f441..aaad2f103 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 d3fd81aa0..80126e6dd 100644 --- a/content/docs/12.8.0/index.html +++ b/content/docs/12.8.0/index.html @@ -179,7 +179,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: 15 September 25 at 00:26</p> +<p>Last Updated: 16 September 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 a79d08a0a..a0bc9e2c2 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/12.9.0/index.html b/content/docs/12.9.0/index.html index 491269be5..3fed6f183 100644 --- a/content/docs/12.9.0/index.html +++ b/content/docs/12.9.0/index.html @@ -179,7 +179,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: 15 September 25 at 00:28</p> +<p>Last Updated: 16 September 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/12.9.0/searchindex.js b/content/docs/12.9.0/searchindex.js index 82195982e..7e2f60636 100644 --- a/content/docs/12.9.0/searchindex.js +++ b/content/docs/12.9.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/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/docs/latest/_sources/guides/cpp_cmake.rst.txt b/content/docs/latest/_sources/guides/cpp_cmake.rst.txt index 71948e730..925a73fae 100644 --- a/content/docs/latest/_sources/guides/cpp_cmake.rst.txt +++ b/content/docs/latest/_sources/guides/cpp_cmake.rst.txt @@ -29,18 +29,27 @@ Preparation #. Base NuttX compilation changes - For this example, load the configuration 'stm32f4discovery:testlibcxx' for building + For this example, load the configuration 'stm32f4discovery:nsh' for building (Linux host) .. code-block:: console $ cd nuttx - $ ./tools/configure.sh stm32f4discovery:testlibcxx + $ ./tools/configure.sh -l stm32f4discovery:nsh + + See :ref:`quickstart/compiling_make:Initialize Configuration` for more information about configure.sh tool. In menuconfig, the main points to be changed on a typical NuttX configuration are the following: - * Set RTOS Features -> Tasks and Scheduling -> Application entry point to 'hellocpp_main' + * RTOS Features -> Tasks and Scheduling -> Application entry point to 'main' + * Library Routines -> Have C++ compiler + * Library Routines -> Have C++ initialization -> C++ Library -> Toolchain C++ support (you can also choose the basic version or the LLVM one) + * Library Routines -> Have C++ initialization -> C++ Library -> C++ low level library select -> GNU low level libsupc++ + * Library Routines -> Language standard -> choose the version you want - for this example we will use "c++17" + * Library Routines -> Enable Exception Support -> to enable to support C++ exceptions - for this example we will select it + * Library Routines -> Enable RTTI Support -> to enable to support C++ RTTI features (like dynamic_cast()/typeid()) - for this example we will not enable it + - * Build NuttX and generate the export + Build NuttX and generate the export .. code-block:: console @@ -57,14 +66,12 @@ Creating the project hellocpp/ hellocpp/CMakeLists.txt - hellocpp/cmake/stm32f4discovery.cmake - hellocpp/nuttx-export-10.0.1/ - hellocpp/src/CMakeLists.txt - hellocpp/src/main.cpp - hellocpp/src/HelloWorld.h - hellocpp/src/HelloWorld.cpp - - The directory 'nuttx-export-10.0.1' is the unzipped content from the file created during + hellocpp/nuttx-export-12.10.0/ + hellocpp/main.cpp + hellocpp/HelloWorld.h + hellocpp/HelloWorld.cpp + + The directory 'nuttx-export-12.10.0' is the unzipped content from the file created during make export procedure done before. #. File contents @@ -73,7 +80,7 @@ Creating the project .. code-block:: cmake - cmake_minimum_required(VERSION 3.2...3.15) + cmake_minimum_required(VERSION 3.12...3.31) project(HelloCpp VERSION 1.0 @@ -82,159 +89,63 @@ Creating the project set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) - # set(CMAKE_CXX_EXTENSIONS OFF) - set(CMAKE_C_STANDARD 99) - - set(NUTTX_PATH "${CMAKE_SOURCE_DIR}/nuttx-export-10.0.1") - - include(cmake/stm32f4discovery.cmake) - - set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -Wall -Wshadow -Wundef -fno-strict-aliasing -Os") - set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -D_DEBUG -D_LIBCPP_BUILD_STATIC -D_LIBCPP_NO_EXCEPTIONS ") - set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -fno-exceptions -fcheck-new -fno-rtti -pedantic ") - set(AC_COMMON_FLAGS "${AC_COMMON_FLAGS} -nostdinc++") - - set(AC_DEFINES "${AC_DEFINES} -DCONFIG_WCHAR_BUILTIN") - - include_directories( - src - ${NUTTX_PATH}/include - ${NUTTX_PATH}/include/libcxx - ${NUTTX_PATH}/arch/chip - ) - - set(EXE_NAME hellocpp) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${AC_HW_FLAGS} ${AC_DEFINES}") - set(CMAKE_CXX_FLAGS "${AC_HW_FLAGS} ${AC_DEFINES} ${AC_COMMON_FLAGS} ${AC_CXX_EXTRA_FLAGS}") - if (PARAM_DEBUG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g") - endif() - - set(CMAKE_SKIP_RPATH ON) - set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_LINKER} ${AC_LINKER_FLAGS} -o ${EXE_NAME}.elf <OBJECTS> <LINK_LIBRARIES>") - set(BUILD_SHARED_LIBS OFF) - add_subdirectory(src) - -* hellocpp/cmake/stm32f4discovery.cmake - -.. code-block:: cmake - - set(CMAKE_SYSTEM_NAME Generic) - set(CMAKE_SYSTEM_PROCESSOR arm) - - set(MCU_LINKER_SCRIPT "${NUTTX_PATH}/scripts/ld.script") - - set(COMPILER_PREFIX arm-none-eabi-) - - # cmake-format: off - set(CMAKE_C_COMPILER ${COMPILER_PREFIX}gcc) - set(CMAKE_CXX_COMPILER ${COMPILER_PREFIX}g++) - set(CMAKE_AR ${COMPILER_PREFIX}ar) - set(CMAKE_RANLIB ${COMPILER_PREFIX}ranlib) - set(CMAKE_LINKER ${COMPILER_PREFIX}ld) - set(CMAKE_ASM_COMPILER ${COMPILER_PREFIX}gcc) - set(CMAKE_OBJCOPY ${COMPILER_PREFIX}objcopy) - set(CMAKE_OBJDUMP ${COMPILER_PREFIX}objdump) - set(CMAKE_SIZE ${COMPILER_PREFIX}size) - - set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) - set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) - - set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) - - set(AC_HW_FLAGS "-mcpu=cortex-m4 -mthumb -mfloat-abi=soft ") - set(AC_HW_FLAGS "${AC_HW_FLAGS} -isystem ${NUTTX_PATH}/include") - set(AC_HW_FLAGS "${AC_HW_FLAGS} -pipe") - - set(AC_LINKER_FLAGS "--entry=__start -nostdlib -T${MCU_LINKER_SCRIPT}") - -* hellocpp/src/CMakeLists.txt - -.. code-block:: cmake - - set(HEADER_FILES - HelloWorld.h - ) set(SOURCE_FILES - HelloWorld.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/HelloWorld.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp ) - link_directories(${EXE_NAME} ${NUTTX_PATH}/libs) - - add_executable(${EXE_NAME} ${SOURCE_FILES} main.cpp ${HEADER_FILES}) + set(EXE_NAME "hello") + add_executable(${EXE_NAME} ${SOURCE_FILES}) add_custom_command( TARGET ${EXE_NAME} POST_BUILD - COMMAND ${CMAKE_OBJCOPY} ARGS -S -O binary ${CMAKE_BINARY_DIR}/${EXE_NAME}.elf ${CMAKE_BINARY_DIR}/${EXE_NAME}.bin - ) - - target_link_libraries(${EXE_NAME} --start-group) - - target_link_libraries(${EXE_NAME} sched) - target_link_libraries(${EXE_NAME} drivers) - target_link_libraries(${EXE_NAME} boards) - target_link_libraries(${EXE_NAME} c) - target_link_libraries(${EXE_NAME} mm) - target_link_libraries(${EXE_NAME} arch) - target_link_libraries(${EXE_NAME} xx) - target_link_libraries(${EXE_NAME} apps) - target_link_libraries(${EXE_NAME} fs) - target_link_libraries(${EXE_NAME} binfmt) - target_link_libraries(${EXE_NAME} board) - target_link_libraries(${EXE_NAME} gcc) - target_link_libraries(${EXE_NAME} supc++) + COMMAND ${CMAKE_OBJCOPY} ARGS -S -O binary ${CMAKE_BINARY_DIR}/${EXE_NAME} ${CMAKE_BINARY_DIR}/${EXE_NAME}.bin - target_link_libraries(${EXE_NAME} --end-group) -* hellocpp/src/main.cpp +* hellocpp/main.cpp .. code-block:: c++ + #include <memory> + #include "HelloWorld.h" - #include <nuttx/config.h> - extern "C" + extern "C" int main(int, char*[]) { - int hellocpp_main(void) - { - - CHelloWorld *pHelloWorld = new CHelloWorld(); - pHelloWorld->HelloWorld(); + auto pHelloWorld = std::make_shared<CHelloWorld>(); + pHelloWorld->HelloWorld(); - CHelloWorld helloWorld; - helloWorld.HelloWorld(); + CHelloWorld helloWorld; + helloWorld.HelloWorld(); - delete pHelloWorld; - return 0; - } + return 0; } -* hellocpp/src/HelloWorld.h -.. code-block:: c++ +* hellocpp/HelloWorld.h - #ifndef HELLOWORLD_H_ - #define HELLOWORLD_H_ +.. code-block:: c++ - #include "nuttx/config.h" + #ifndef HELLOWORLD_H + #define HELLOWORLD_H class CHelloWorld { - public: - CHelloWorld(); - ~CHelloWorld(); - bool HelloWorld(void); - private: - int mSecret; + public: + CHelloWorld(); + ~CHelloWorld() = default; + + bool HelloWorld(); + + private: + int mSecret; }; #endif -* hellocpp/src/HelloWorld.cpp +* hellocpp/HelloWorld.cpp .. code-block:: c++ @@ -243,30 +154,32 @@ Creating the project #include "HelloWorld.h" - CHelloWorld::CHelloWorld() { - mSecret = 42; - std::printf("Constructor: mSecret=%d\n",mSecret); + CHelloWorld::CHelloWorld() + { + mSecret = 42; + std::printf("Constructor: mSecret=%d\n",mSecret); } - CHelloWorld::~CHelloWorld() { + bool CHelloWorld::HelloWorld() + { + std::printf("HelloWorld: mSecret=%d\n",mSecret); + + std::string sentence = "Hello"; + std::printf("TEST=%s\n",sentence.c_str()); + + if (mSecret == 42) + { + std::printf("CHelloWorld: HelloWorld: Hello, world!\n"); + return true; + } + else + { + std::printf("CHelloWorld: HelloWorld: CONSTRUCTION FAILED!\n"); + return false; + } } - bool CHelloWorld::HelloWorld(void) { - std::printf("HelloWorld: mSecret=%d\n",mSecret); - - std::string sentence = "Hello"; - std::printf("TEST=%s\n",sentence.c_str()); - - if (mSecret == 42) { - std::printf("CHelloWorld: HelloWorld: Hello, world!\n"); - return true; - } - else { - std::printf("CHelloWorld: HelloWorld: CONSTRUCTION FAILED!\n"); - return false; - } - } Building ======== @@ -277,7 +190,7 @@ To launch build, you use the cmake procedure: $ mkdir build $ cd build - $ cmake .. + $ cmake .. -DCMAKE_TOOLCHAIN_FILE=../nuttx-export-12.10.0/scripts/toolchain.cmake $ make -And finally a bin file will be created to be loaded on the board. +Two binaries are generated: an elf one - useful for debug purpose - and a binary one to be flashed on the board diff --git a/content/docs/latest/guides/cpp_cmake.html b/content/docs/latest/guides/cpp_cmake.html index 53a516e42..1379f5f31 100644 --- a/content/docs/latest/guides/cpp_cmake.html +++ b/content/docs/latest/guides/cpp_cmake.html @@ -250,16 +250,23 @@ applications using C++ language and also the cmake build tool.</p> <ol class="arabic"> <li><p>Base NuttX compilation changes</p> <blockquote> -<div><p>For this example, load the configuration ‘stm32f4discovery:testlibcxx’ for building</p> +<div><p>For this example, load the configuration ‘stm32f4discovery:nsh’ for building (Linux host)</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>nuttx -<span class="gp">$ </span>./tools/configure.sh<span class="w"> </span>stm32f4discovery:testlibcxx +<span class="gp">$ </span>./tools/configure.sh<span class="w"> </span>-l<span class="w"> </span>stm32f4discovery:nsh </pre></div> </div> +<p>See <a class="reference internal" href="../quickstart/compiling_make.html#initialize-configuration"><span class="std std-ref">Initialize Configuration</span></a> for more information about configure.sh tool.</p> <p>In menuconfig, the main points to be changed on a typical NuttX configuration are the following:</p> <ul class="simple"> -<li><p>Set RTOS Features -> Tasks and Scheduling -> Application entry point to ‘hellocpp_main’</p></li> -<li><p>Build NuttX and generate the export</p></li> +<li><p>RTOS Features -> Tasks and Scheduling -> Application entry point to ‘main’</p></li> +<li><p>Library Routines -> Have C++ compiler</p></li> +<li><p>Library Routines -> Have C++ initialization -> C++ Library -> Toolchain C++ support (you can also choose the basic version or the LLVM one)</p></li> +<li><p>Library Routines -> Have C++ initialization -> C++ Library -> C++ low level library select -> GNU low level libsupc++</p></li> +<li><p>Library Routines -> Language standard -> choose the version you want - for this example we will use “c++17”</p></li> +<li><p>Library Routines -> Enable Exception Support -> to enable to support C++ exceptions - for this example we will select it</p></li> +<li><p>Library Routines -> Enable RTTI Support -> to enable to support C++ RTTI features (like dynamic_cast()/typeid()) - for this example we will not enable it</p></li> </ul> +<p>Build NuttX and generate the export</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>make<span class="w"> </span><span class="nb">export</span> </pre></div> </div> @@ -275,15 +282,13 @@ applications using C++ language and also the cmake build tool.</p> <div><p>The project structure is organized as follow:</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">hellocpp/</span> <span class="go">hellocpp/CMakeLists.txt</span> -<span class="go">hellocpp/cmake/stm32f4discovery.cmake</span> -<span class="go">hellocpp/nuttx-export-10.0.1/</span> -<span class="go">hellocpp/src/CMakeLists.txt</span> -<span class="go">hellocpp/src/main.cpp</span> -<span class="go">hellocpp/src/HelloWorld.h</span> -<span class="go">hellocpp/src/HelloWorld.cpp</span> +<span class="go">hellocpp/nuttx-export-12.10.0/</span> +<span class="go">hellocpp/main.cpp</span> +<span class="go">hellocpp/HelloWorld.h</span> +<span class="go">hellocpp/HelloWorld.cpp</span> </pre></div> </div> -<p>The directory ‘nuttx-export-10.0.1’ is the unzipped content from the file created during +<p>The directory ‘nuttx-export-12.10.0’ is the unzipped content from the file created during make export procedure done before.</p> </div></blockquote> </li> @@ -292,7 +297,7 @@ make export procedure done before.</p> <ul class="simple"> <li><p>hellocpp/CMakeLists.txt</p></li> </ul> -<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">cmake_minimum_required</span><span class="p">(</span><span class="s">VERSION</span><span class="w"> </span><span class="s">3.2...3.15</span><span class="p">)</span> +<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">cmake_minimum_required</span><span class="p">(</span><span class="s">VERSION</span><span class="w"> </span><span class="s">3.12...3.31</span><span class="p">)</span> <span class="nb">project</span><span class="p">(</span><span class="s">HelloCpp</span> <span class="w"> </span><span class="s">VERSION</span><span class="w"> </span><span class="s">1.0</span> @@ -301,190 +306,93 @@ make export procedure done before.</p> <span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_STANDARD</span><span class="w"> </span><span class="s">17</span><span class="p">)</span> <span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_STANDARD_REQUIRED</span><span class="w"> </span><span class="s">ON</span><span class="p">)</span> -<span class="c"># set(CMAKE_CXX_EXTENSIONS OFF)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_C_STANDARD</span><span class="w"> </span><span class="s">99</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">NUTTX_PATH</span><span class="w"> </span><span class="s2">"${CMAKE_SOURCE_DIR}/nuttx-export-10.0.1"</span><span class="p">)</span> - -<span class="nb">include</span><span class="p">(</span><span class="s">cmake/stm32f4discovery.cmake</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span><span class="w"> </span><span class="s2">"${AC_COMMON_FLAGS} -Wall -Wshadow -Wundef -fno-strict-aliasing -Os"</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span><span class="w"> </span><span class="s2">"${AC_COMMON_FLAGS} -D_DEBUG -D_LIBCPP_BUILD_STATIC -D_LIBCPP_NO_EXCEPTIONS "</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span><span class="w"> </span><span class="s2">"${AC_COMMON_FLAGS} -fno-exceptions -fcheck-new -fno-rtti -pedantic "</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">AC_COMMON_FLAGS</span><span class="w"> </span><span class="s2">"${AC_COMMON_FLAGS} -nostdinc++"</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">AC_DEFINES</span><span class="w"> </span><span class="s2">"${AC_DEFINES} -DCONFIG_WCHAR_BUILTIN"</span><span class="p">)</span> - -<span class="nb">include_directories</span><span class="p">(</span> -<span class="w"> </span><span class="s">src</span> -<span class="w"> </span><span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/include</span> -<span class="w"> </span><span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/include/libcxx</span> -<span class="w"> </span><span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/arch/chip</span> -<span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">EXE_NAME</span><span class="w"> </span><span class="s">hellocpp</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_C_FLAGS</span><span class="w"> </span><span class="s2">"${CMAKE_C_FLAGS} ${AC_HW_FLAGS} ${AC_DEFINES}"</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_FLAGS</span><span class="w"> </span><span class="s2">"${AC_HW_FLAGS} ${AC_DEFINES} ${AC_COMMON_FLAGS} ${AC_CXX_EXTRA_FLAGS}"</span><span class="p">)</span> -<span class="nb">if</span><span class="w"> </span><span class="p">(</span><span class="s">PARAM_DEBUG</span><span class="p">)</span> -<span class="w"> </span><span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_FLAGS</span><span class="w"> </span><span class="s2">"${CMAKE_CXX_FLAGS} -g"</span><span class="p">)</span> -<span class="nb">endif</span><span class="p">()</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SKIP_RPATH</span><span class="w"> </span><span class="s">ON</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_LINK_EXECUTABLE</span><span class="w"> </span><span class="s2">"${CMAKE_LINKER} ${AC_LINKER_FLAGS} -o ${EXE_NAME}.elf <OBJECTS> <LINK_LIBRARIES>"</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">BUILD_SHARED_LIBS</span><span class="w"> </span><span class="s">OFF</span><span class="p">)</span> -<span class="nb">add_subdirectory</span><span class="p">(</span><span class="s">src</span><span class="p">)</span> -</pre></div> -</div> -<ul class="simple"> -<li><p>hellocpp/cmake/stm32f4discovery.cmake</p></li> -</ul> -<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SYSTEM_NAME</span><span class="w"> </span><span class="s">Generic</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SYSTEM_PROCESSOR</span><span class="w"> </span><span class="s">arm</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">MCU_LINKER_SCRIPT</span><span class="w"> </span><span class="s2">"${NUTTX_PATH}/scripts/ld.script"</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">COMPILER_PREFIX</span><span class="w"> </span><span class="s">arm-none-eabi-</span><span class="p">)</span> - -<span class="c"># cmake-format: off</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_C_COMPILER</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">gcc</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_CXX_COMPILER</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">g++</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_AR</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ar</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_RANLIB</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ranlib</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_LINKER</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">ld</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_ASM_COMPILER</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">gcc</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_OBJCOPY</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">objcopy</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_OBJDUMP</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">objdump</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_SIZE</span><span class="w"> </span><span class="o">${</span><span class="nv">COMPILER_PREFIX</span><span class="o">}</span><span class="s">size</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</span><span class="w"> </span><span class="s">NEVER</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</span><span class="w"> </span><span class="s">ONLY</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</span><span class="w"> </span><span class="s">ONLY</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</span><span class="w"> </span><span class="s">ONLY</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">CMAKE_TRY_COMPILE_TARGET_TYPE</span><span class="w"> </span><span class="s">STATIC_LIBRARY</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span><span class="w"> </span><span class="s2">"-mcpu=cortex-m4 -mthumb -mfloat-abi=soft "</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span><span class="w"> </span><span class="s2">"${AC_HW_FLAGS} -isystem ${NUTTX_PATH}/include"</span><span class="p">)</span> -<span class="nb">set</span><span class="p">(</span><span class="s">AC_HW_FLAGS</span><span class="w"> </span><span class="s2">"${AC_HW_FLAGS} -pipe"</span><span class="p">)</span> - -<span class="nb">set</span><span class="p">(</span><span class="s">AC_LINKER_FLAGS</span><span class="w"> </span><span class="s2">"--entry=__start -nostdlib -T${MCU_LINKER_SCRIPT}"</span><span class="p">)</span> -</pre></div> -</div> -<ul class="simple"> -<li><p>hellocpp/src/CMakeLists.txt</p></li> -</ul> -<div class="highlight-cmake notranslate"><div class="highlight"><pre><span></span><span class="nb">set</span><span class="p">(</span><span class="s">HEADER_FILES</span> -<span class="w"> </span><span class="s">HelloWorld.h</span> -<span class="p">)</span> <span class="nb">set</span><span class="p">(</span><span class="s">SOURCE_FILES</span> -<span class="w"> </span><span class="s">HelloWorld.cpp</span> +<span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_CURRENT_SOURCE_DIR</span><span class="o">}</span><span class="s">/HelloWorld.cpp</span> +<span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_CURRENT_SOURCE_DIR</span><span class="o">}</span><span class="s">/main.cpp</span> <span class="p">)</span> -<span class="nb">link_directories</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="o">${</span><span class="nv">NUTTX_PATH</span><span class="o">}</span><span class="s">/libs</span><span class="p">)</span> - -<span class="nb">add_executable</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="o">${</span><span class="nv">SOURCE_FILES</span><span class="o">}</span><span class="w"> </span><span class="s">main.cpp</span><span class="w"> </span><span class="o">${</span><span class="nv">HEADER_FILES</span><span class="o">}</span><span class="p">)</span> +<span class="nb">set</span><span class="p">(</span><span class="s">EXE_NAME</span><span class="w"> </span><span class="s2">"hello"</span><span class="p">)</span> +<span class="nb">add_executable</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="o">${</span><span class="nv">SOURCE_FILES</span><span class="o">}</span><span class="p">)</span> <span class="nb">add_custom_command</span><span class="p">(</span> <span class="w"> </span><span class="s">TARGET</span><span class="w"> </span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span> <span class="w"> </span><span class="s">POST_BUILD</span> -<span class="w"> </span><span class="s">COMMAND</span><span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_OBJCOPY</span><span class="o">}</span><span class="w"> </span><span class="s">ARGS</span><span class="w"> </span><span class="s">-S</span><span class="w"> </span><span class="s">-O</span><span class="w"> </span><span class="s">binary</span><span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_BINARY_DIR</span><span class="o">}</span><span [...] -<span class="p">)</span> - -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">--start-group</span><span class="p">)</span> - -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">sched</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">drivers</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">boards</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">c</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">mm</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">arch</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">xx</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">apps</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">fs</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">binfmt</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">board</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">gcc</span><span class="p">)</span> -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">supc++</span><span class="p">)</span> - -<span class="nb">target_link_libraries</span><span class="p">(</span><span class="o">${</span><span class="nv">EXE_NAME</span><span class="o">}</span><span class="w"> </span><span class="s">--end-group</span><span class="p">)</span> +<span class="w"> </span><span class="s">COMMAND</span><span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_OBJCOPY</span><span class="o">}</span><span class="w"> </span><span class="s">ARGS</span><span class="w"> </span><span class="s">-S</span><span class="w"> </span><span class="s">-O</span><span class="w"> </span><span class="s">binary</span><span class="w"> </span><span class="o">${</span><span class="nv">CMAKE_BINARY_DIR</span><span class="o">}</span><span [...] </pre></div> </div> <ul class="simple"> -<li><p>hellocpp/src/main.cpp</p></li> +<li><p>hellocpp/main.cpp</p></li> </ul> -<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">"HelloWorld.h"</span> -<span class="cp">#include</span><span class="w"> </span><span class="cpf"><nuttx/config.h></span> +<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><memory></span> -<span class="k">extern</span><span class="w"> </span><span class="s">"C"</span> -<span class="p">{</span> -<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="nf">hellocpp_main</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span> -<span class="w"> </span><span class="p">{</span> +<span class="cp">#include</span><span class="w"> </span><span class="cpf">"HelloWorld.h"</span> -<span class="w"> </span><span class="n">CHelloWorld</span><span class="w"> </span><span class="o">*</span><span class="n">pHelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">CHelloWorld</span><span class="p">();</span> -<span class="w"> </span><span class="n">pHelloWorld</span><span class="o">-></span><span class="n">HelloWorld</span><span class="p">();</span> +<span class="k">extern</span><span class="w"> </span><span class="s">"C"</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">main</span><span class="p">(</span><span class="kt">int</span><span class="p">,</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="p">[])</span> +<span class="p">{</span> +<span class="w"> </span><span class="k">auto</span><span class="w"> </span><span class="n">pHelloWorld</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">make_shared</span><span class="o"><</span><span class="n">CHelloWorld</span><span class="o">></span><span class="p">();</span> +<span class="w"> </span><span class="n">pHelloWorld</span><span class="o">-></span><span class="n">HelloWorld</span><span class="p">();</span> -<span class="w"> </span><span class="n">CHelloWorld</span><span class="w"> </span><span class="n">helloWorld</span><span class="p">;</span> -<span class="w"> </span><span class="n">helloWorld</span><span class="p">.</span><span class="n">HelloWorld</span><span class="p">();</span> +<span class="w"> </span><span class="n">CHelloWorld</span><span class="w"> </span><span class="n">helloWorld</span><span class="p">;</span> +<span class="w"> </span><span class="n">helloWorld</span><span class="p">.</span><span class="n">HelloWorld</span><span class="p">();</span> -<span class="w"> </span><span class="k">delete</span><span class="w"> </span><span class="n">pHelloWorld</span><span class="p">;</span> -<span class="w"> </span><span class="k">return</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="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span> <span class="p">}</span> </pre></div> </div> <ul class="simple"> -<li><p>hellocpp/src/HelloWorld.h</p></li> +<li><p>hellocpp/HelloWorld.h</p></li> </ul> -<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#ifndef HELLOWORLD_H_</span> -<span class="cp">#define HELLOWORLD_H_</span> - -<span class="cp">#include</span><span class="w"> </span><span class="cpf">"nuttx/config.h"</span> +<div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#ifndef HELLOWORLD_H</span> +<span class="cp">#define HELLOWORLD_H</span> <span class="k">class</span><span class="w"> </span><span class="nc">CHelloWorld</span> <span class="p">{</span> -<span class="w"> </span><span class="k">public</span><span class="o">:</span> -<span class="w"> </span><span class="n">CHelloWorld</span><span class="p">();</span> -<span class="w"> </span><span class="o">~</span><span class="n">CHelloWorld</span><span class="p">();</span> -<span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">HelloWorld</span><span class="p">(</span><span class="kt">void</span><span class="p">);</span> -<span class="w"> </span><span class="k">private</span><span class="o">:</span> -<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">mSecret</span><span class="p">;</span> +<span class="k">public</span><span class="o">:</span> +<span class="w"> </span><span class="n">CHelloWorld</span><span class="p">();</span> +<span class="w"> </span><span class="o">~</span><span class="n">CHelloWorld</span><span class="p">()</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">default</span><span class="p">;</span> + +<span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">HelloWorld</span><span class="p">();</span> + +<span class="k">private</span><span class="o">:</span> +<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">mSecret</span><span class="p">;</span> <span class="p">};</span> <span class="cp">#endif</span> </pre></div> </div> <ul class="simple"> -<li><p>hellocpp/src/HelloWorld.cpp</p></li> +<li><p>hellocpp/HelloWorld.cpp</p></li> </ul> <div class="highlight-c++ notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf"><cstdio></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf"><string></span> <span class="cp">#include</span><span class="w"> </span><span class="cpf">"HelloWorld.h"</span> -<span class="n">CHelloWorld</span><span class="o">::</span><span class="n">CHelloWorld</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="n">mSecret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">42</span><span class="p">;</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"Constructor: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span> -<span class="p">}</span> - -<span class="n">CHelloWorld</span><span class="o">::~</span><span class="n">CHelloWorld</span><span class="p">()</span><span class="w"> </span><span class="p">{</span> - +<span class="n">CHelloWorld</span><span class="o">::</span><span class="n">CHelloWorld</span><span class="p">()</span> +<span class="p">{</span> +<span class="w"> </span><span class="n">mSecret</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">42</span><span class="p">;</span> +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"Constructor: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span> <span class="p">}</span> -<span class="kt">bool</span><span class="w"> </span><span class="n">CHelloWorld</span><span class="o">::</span><span class="n">HelloWorld</span><span class="p">(</span><span class="kt">void</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"HelloWorld: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">sentence</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Hello"</span><span class="p">;</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"TEST=%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">sentence</span><span class="p">.</span><span class="n">c_str</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">mSecret</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">42</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: Hello, world!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> -<span class="w"> </span><span class="p">}</span> -<span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> -<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: CONSTRUCTION FAILED!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> -<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span> -<span class="w"> </span><span class="p">}</span> +<span class="kt">bool</span><span class="w"> </span><span class="n">CHelloWorld</span><span class="o">::</span><span class="n">HelloWorld</span><span class="p">()</span> +<span class="p">{</span> +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"HelloWorld: mSecret=%d</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">mSecret</span><span class="p">);</span> + +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">string</span><span class="w"> </span><span class="n">sentence</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"Hello"</span><span class="p">;</span> +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"TEST=%s</span><span class="se">\n</span><span class="s">"</span><span class="p">,</span><span class="n">sentence</span><span class="p">.</span><span class="n">c_str</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">mSecret</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">42</span><span class="p">)</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: Hello, world!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">true</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> +<span class="w"> </span><span class="k">else</span> +<span class="w"> </span><span class="p">{</span> +<span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">printf</span><span class="p">(</span><span class="s">"CHelloWorld: HelloWorld: CONSTRUCTION FAILED!</span><span class="se">\n</span><span class="s">"</span><span class="p">);</span> +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nb">false</span><span class="p">;</span> +<span class="w"> </span><span class="p">}</span> <span class="p">}</span> </pre></div> </div> @@ -494,11 +402,11 @@ make export procedure done before.</p> <p>To launch build, you use the cmake procedure:</p> <div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>mkdir<span class="w"> </span>build <span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>build -<span class="gp">$ </span>cmake<span class="w"> </span>.. +<span class="gp">$ </span>cmake<span class="w"> </span>..<span class="w"> </span>-DCMAKE_TOOLCHAIN_FILE<span class="o">=</span>../nuttx-export-12.10.0/scripts/toolchain.cmake <span class="gp">$ </span>make </pre></div> </div> -<p>And finally a bin file will be created to be loaded on the board.</p> +<p>Two binaries are generated: an elf one - useful for debug purpose - and a binary one to be flashed on the board</p> </section> </section> diff --git a/content/docs/latest/guides/fully_linked_elf.html b/content/docs/latest/guides/fully_linked_elf.html index 65877a03f..571573436 100644 --- a/content/docs/latest/guides/fully_linked_elf.html +++ b/content/docs/latest/guides/fully_linked_elf.html @@ -475,7 +475,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition"> <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p> <div class="sphinx_collapse docutils"> -<input class="sphinx_collapse__input" id="f5d98df2-5681-41f6-9b0d-e421ba1ac8b7" name="f5d98df2-5681-41f6-9b0d-e421ba1ac8b7" type="checkbox"><label class="sphinx_collapse__label" for="f5d98df2-5681-41f6-9b0d-e421ba1ac8b7"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> +<input class="sphinx_collapse__input" id="ff1750ee-3951-45fc-a4a3-2d169cfcacf2" name="ff1750ee-3951-45fc-a4a3-2d169cfcacf2" type="checkbox"><label class="sphinx_collapse__label" for="ff1750ee-3951-45fc-a4a3-2d169cfcacf2"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS { .text 0x00000000 : diff --git a/content/docs/latest/guides/partially_linked_elf.html b/content/docs/latest/guides/partially_linked_elf.html index aed0da100..83b48eec3 100644 --- a/content/docs/latest/guides/partially_linked_elf.html +++ b/content/docs/latest/guides/partially_linked_elf.html @@ -501,7 +501,7 @@ NuttX package: <code class="docutils literal notranslate"><span class="pre">nutt <div class="admonition-here-is-an-alternative-minimal-and-possibly-outdated-version admonition"> <p class="admonition-title">Here is an alternative minimal (and possibly outdated) version</p> <div class="sphinx_collapse docutils"> -<input class="sphinx_collapse__input" id="45432464-cf40-4988-860c-9d7ea3e57225" name="45432464-cf40-4988-860c-9d7ea3e57225" type="checkbox"><label class="sphinx_collapse__label" for="45432464-cf40-4988-860c-9d7ea3e57225"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> +<input class="sphinx_collapse__input" id="16f9c200-347d-4d8c-b0f4-dfa945d685a4" name="16f9c200-347d-4d8c-b0f4-dfa945d685a4" type="checkbox"><label class="sphinx_collapse__label" for="16f9c200-347d-4d8c-b0f4-dfa945d685a4"><i class="sphinx_collapse__icon"></i>Show content:</label><div class="sphinx_collapse__content docutils"> <div class="highlight-text notranslate"><div class="highlight"><pre><span></span>SECTIONS { .text 0x00000000 : diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html index 922c13aa6..89798b07a 100644 --- a/content/docs/latest/index.html +++ b/content/docs/latest/index.html @@ -185,7 +185,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: 15 September 25 at 00:31</p> +<p>Last Updated: 16 September 25 at 00:29</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/searchindex.js b/content/docs/latest/searchindex.js index ff4ec7c16..d073f5529 100644 --- a/content/docs/latest/searchindex.js +++ b/content/docs/latest/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/arch-renesas", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tag [...] \ No newline at end of file +Search.setIndex({"docnames": ["_tags/arch-arm64", "_tags/arch-avr", "_tags/arch-example", "_tags/arch-renesas", "_tags/chip-a527", "_tags/chip-a64", "_tags/chip-at90usb", "_tags/chip-atmega", "_tags/chip-atmega2560", "_tags/chip-bcm2711", "_tags/chip-esp32", "_tags/chip-esp32a1s", "_tags/chip-esp32picod4", "_tags/chip-esp32s2", "_tags/chip-esp32s3", "_tags/chip-esp32wroom32", "_tags/chip-esp32wrover32", "_tags/chip-example", "_tags/chip-fpga", "_tags/chip-imx8", "_tags/chip-imx93", "_tag [...] \ No newline at end of file diff --git a/content/feed.xml b/content/feed.xml index fc62d2e96..75b4285eb 100644 --- a/content/feed.xml +++ b/content/feed.xml @@ -5,8 +5,8 @@ <description></description> <link>/</link> <atom:link href="/feed.xml" rel="self" type="application/rss+xml"/> - <pubDate>Mon, 15 Sep 2025 00:34:15 +0000</pubDate> - <lastBuildDate>Mon, 15 Sep 2025 00:34:15 +0000</lastBuildDate> + <pubDate>Tue, 16 Sep 2025 00:32:04 +0000</pubDate> + <lastBuildDate>Tue, 16 Sep 2025 00:32:04 +0000</lastBuildDate> <generator>Jekyll v4.3.2</generator> <item>