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 e3b073c00 Publishing web: f355c37abb2c2dea4b5ff1c582aacf9520a34e3a 
docs: a20b3e83359c406573dd6b384b40a88bd65978a3
e3b073c00 is described below

commit e3b073c0094337a9a340796ca8f0d573fc24ff81
Author: Tomasz 'CeDeROM' CEDRO <[email protected]>
AuthorDate: Wed Mar 6 00:15:33 2024 +0000

    Publishing web: f355c37abb2c2dea4b5ff1c582aacf9520a34e3a docs: 
a20b3e83359c406573dd6b384b40a88bd65978a3
---
 content/docs/10.0.0/index.html                     |   2 +-
 content/docs/10.0.0/searchindex.js                 |   2 +-
 content/docs/10.0.1/index.html                     |   2 +-
 content/docs/10.0.1/searchindex.js                 |   2 +-
 content/docs/10.1.0/index.html                     |   2 +-
 content/docs/10.1.0/searchindex.js                 |   2 +-
 content/docs/10.2.0/index.html                     |   2 +-
 content/docs/10.2.0/searchindex.js                 |   2 +-
 content/docs/10.3.0/index.html                     |   2 +-
 content/docs/10.3.0/searchindex.js                 |   2 +-
 content/docs/11.0.0/index.html                     |   2 +-
 content/docs/11.0.0/searchindex.js                 |   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 +-
 .../docs/latest/_sources/components/paging.rst.txt | 104 +++++++++++++----
 .../_sources/platforms/arm/samv7/index.rst.txt     |   8 +-
 .../risc-v/qemu-rv/boards/rv-virt/index.rst.txt    |  16 +++
 .../latest/_sources/quickstart/debugging.rst.txt   |   2 +-
 content/docs/latest/components/index.html          |   5 +-
 content/docs/latest/components/paging.html         | 123 +++++++++++++++------
 content/docs/latest/index.html                     |   2 +-
 content/docs/latest/objects.inv                    | Bin 113435 -> 113561 bytes
 content/docs/latest/platforms/arm/samv7/index.html |   8 +-
 .../risc-v/qemu-rv/boards/rv-virt/index.html       |  13 +++
 content/docs/latest/quickstart/debugging.html      |   2 +-
 content/docs/latest/searchindex.js                 |   2 +-
 content/feed.xml                                   |   4 +-
 37 files changed, 243 insertions(+), 94 deletions(-)

diff --git a/content/docs/10.0.0/index.html b/content/docs/10.0.0/index.html
index bce7a5a1e..b8808597a 100644
--- a/content/docs/10.0.0/index.html
+++ b/content/docs/10.0.0/index.html
@@ -131,7 +131,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 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: 05 March 24 at 00:09</p>
+<p>Last Updated: 06 March 24 at 00:10</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/10.0.0/searchindex.js 
b/content/docs/10.0.0/searchindex.js
index e6a462283..d87585193 100644
--- a/content/docs/10.0.0/searchindex.js
+++ b/content/docs/10.0.0/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index", "boards/index", 
"components/binfmt", "components/drivers/block/index", 
"components/drivers/character/analog", "components/drivers/character/can", 
"components/drivers/character/index", "components/drivers/character/keypad", 
"components/drivers/character/pwm", "components/drivers/character/quadrature", 
"components/drivers/character/rtc", "components/drivers/character/serial", 
"components/drivers/character/timer", "components/drivers/chara [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", "boards/index", 
"components/binfmt", "components/drivers/block/index", 
"components/drivers/character/analog", "components/drivers/character/can", 
"components/drivers/character/index", "components/drivers/character/keypad", 
"components/drivers/character/pwm", "components/drivers/character/quadrature", 
"components/drivers/character/rtc", "components/drivers/character/serial", 
"components/drivers/character/timer", "components/drivers/chara [...]
\ No newline at end of file
diff --git a/content/docs/10.0.1/index.html b/content/docs/10.0.1/index.html
index 8007d8fb9..654aeed7d 100644
--- a/content/docs/10.0.1/index.html
+++ b/content/docs/10.0.1/index.html
@@ -155,7 +155,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 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: 05 March 24 at 00:09</p>
+<p>Last Updated: 06 March 24 at 00:10</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/10.0.1/searchindex.js 
b/content/docs/10.0.1/searchindex.js
index f38183793..55b0cc34f 100644
--- a/content/docs/10.0.1/searchindex.js
+++ b/content/docs/10.0.1/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["applications/index", "boards/index", 
"components/binfmt", "components/drivers/block/index", 
"components/drivers/character/analog", "components/drivers/character/can", 
"components/drivers/character/index", "components/drivers/character/keypad", 
"components/drivers/character/pwm", "components/drivers/character/quadrature", 
"components/drivers/character/rtc", "components/drivers/character/serial", 
"components/drivers/character/timer", "components/drivers/chara [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", "boards/index", 
"components/binfmt", "components/drivers/block/index", 
"components/drivers/character/analog", "components/drivers/character/can", 
"components/drivers/character/index", "components/drivers/character/keypad", 
"components/drivers/character/pwm", "components/drivers/character/quadrature", 
"components/drivers/character/rtc", "components/drivers/character/serial", 
"components/drivers/character/timer", "components/drivers/chara [...]
\ No newline at end of file
diff --git a/content/docs/10.1.0/index.html b/content/docs/10.1.0/index.html
index c4404dd92..7f6ab3ab9 100644
--- a/content/docs/10.1.0/index.html
+++ b/content/docs/10.1.0/index.html
@@ -154,7 +154,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: 05 March 24 at 00:09</p>
+<p>Last Updated: 06 March 24 at 00:10</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/10.1.0/searchindex.js 
b/content/docs/10.1.0/searchindex.js
index 415addf7c..026dc4120 100644
--- a/content/docs/10.1.0/searchindex.js
+++ b/content/docs/10.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 [...]
\ 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 [...]
\ No newline at end of file
diff --git a/content/docs/10.2.0/index.html b/content/docs/10.2.0/index.html
index 5231e36d2..eb0e41991 100644
--- a/content/docs/10.2.0/index.html
+++ b/content/docs/10.2.0/index.html
@@ -155,7 +155,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: 05 March 24 at 00:10</p>
+<p>Last Updated: 06 March 24 at 00:10</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/10.2.0/searchindex.js 
b/content/docs/10.2.0/searchindex.js
index 567ac26e8..dbf4efbe0 100644
--- a/content/docs/10.2.0/searchindex.js
+++ b/content/docs/10.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", "components/binfmt", 
"components/drivers/block/index", "components/drivers/character/analog", 
"components/drivers/character/can", "components/drivers/character/foc", 
"components/drivers/character/index", "components [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", 
"applications/nsh/builtin", "applications/nsh/commands", 
"applications/nsh/config", "applications/nsh/customizing", 
"applications/nsh/index", "applications/nsh/installation", 
"applications/nsh/login", "applications/nsh/nsh", "components/binfmt", 
"components/drivers/block/index", "components/drivers/character/analog", 
"components/drivers/character/can", "components/drivers/character/foc", 
"components/drivers/character/index", "components [...]
\ No newline at end of file
diff --git a/content/docs/10.3.0/index.html b/content/docs/10.3.0/index.html
index 5231e36d2..eb0e41991 100644
--- a/content/docs/10.3.0/index.html
+++ b/content/docs/10.3.0/index.html
@@ -155,7 +155,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: 05 March 24 at 00:10</p>
+<p>Last Updated: 06 March 24 at 00:10</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/10.3.0/searchindex.js 
b/content/docs/10.3.0/searchindex.js
index 9b59a2c94..9fdd30711 100644
--- a/content/docs/10.3.0/searchindex.js
+++ b/content/docs/10.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", "components/binfmt", 
"components/drivers/block/index", "components/drivers/character/analog", 
"components/drivers/character/can", "components/drivers/character/foc", 
"components/drivers/character/index", "components [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["applications/index", 
"applications/nsh/builtin", "applications/nsh/commands", 
"applications/nsh/config", "applications/nsh/customizing", 
"applications/nsh/index", "applications/nsh/installation", 
"applications/nsh/login", "applications/nsh/nsh", "components/binfmt", 
"components/drivers/block/index", "components/drivers/character/analog", 
"components/drivers/character/can", "components/drivers/character/foc", 
"components/drivers/character/index", "components [...]
\ No newline at end of file
diff --git a/content/docs/11.0.0/index.html b/content/docs/11.0.0/index.html
index 5231e36d2..f5fbdeafc 100644
--- a/content/docs/11.0.0/index.html
+++ b/content/docs/11.0.0/index.html
@@ -155,7 +155,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: 05 March 24 at 00:10</p>
+<p>Last Updated: 06 March 24 at 00:11</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/11.0.0/searchindex.js 
b/content/docs/11.0.0/searchindex.js
index c5d4f305c..b834dfe5e 100644
--- a/content/docs/11.0.0/searchindex.js
+++ b/content/docs/11.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 [...]
\ 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 [...]
\ No newline at end of file
diff --git a/content/docs/12.0.0/index.html b/content/docs/12.0.0/index.html
index b4c3219b5..26a0f7922 100644
--- a/content/docs/12.0.0/index.html
+++ b/content/docs/12.0.0/index.html
@@ -155,7 +155,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: 05 March 24 at 00:10</p>
+<p>Last Updated: 06 March 24 at 00:11</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 e2f7eada3..a305e83d2 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 [...]
\ 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 [...]
\ 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 782ceffa9..f369ebe4e 100644
--- a/content/docs/12.1.0/index.html
+++ b/content/docs/12.1.0/index.html
@@ -155,7 +155,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: 05 March 24 at 00:10</p>
+<p>Last Updated: 06 March 24 at 00:11</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 778ba9f58..6c67015b8 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 [...]
\ 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 [...]
\ 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 6a3fd990a..2b7b07dcd 100644
--- a/content/docs/12.2.0/index.html
+++ b/content/docs/12.2.0/index.html
@@ -158,7 +158,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: 05 March 24 at 00:11</p>
+<p>Last Updated: 06 March 24 at 00:11</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 d260d4fd1..768a8ef2d 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 6a3fd990a..2b7b07dcd 100644
--- a/content/docs/12.2.1/index.html
+++ b/content/docs/12.2.1/index.html
@@ -158,7 +158,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: 05 March 24 at 00:11</p>
+<p>Last Updated: 06 March 24 at 00:11</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 5448292ad..3b3717e43 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 1747a99be..92cacc37b 100644
--- a/content/docs/12.3.0/index.html
+++ b/content/docs/12.3.0/index.html
@@ -158,7 +158,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: 05 March 24 at 00:11</p>
+<p>Last Updated: 06 March 24 at 00:12</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 0cf863b8e..e9c92f6d4 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 ea8ce0cdc..01968d5af 100644
--- a/content/docs/12.4.0/index.html
+++ b/content/docs/12.4.0/index.html
@@ -165,7 +165,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: 05 March 24 at 00:11</p>
+<p>Last Updated: 06 March 24 at 00:12</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 e92d62551..ecdede013 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/latest/_sources/components/paging.rst.txt 
b/content/docs/latest/_sources/components/paging.rst.txt
index 455ac76da..7adf8b223 100644
--- a/content/docs/latest/_sources/components/paging.rst.txt
+++ b/content/docs/latest/_sources/components/paging.rst.txt
@@ -4,17 +4,78 @@
 On-Demand Paging
 ================
 
-Introduction
-============
-
-Overview
---------
-
-This document summarizes the design of NuttX on-demand paging. This
-feature permits embedded MCUs with some limited RAM space to execute
-large programs from some non-random access media.
-
-What kind of platforms can support NuttX on-demang paging?
+Kernel Build Implementation
+===========================
+
+On-demand paging and lazy loading are techniques used to manage physical
+memory. The basic idea is to allow a program to execute even though the
+entire program is not resident in memory. The program is loaded into
+memory on demand. This is a technique that is used in many operating
+systems to allow large programs to execute on small memory systems.
+Commonly, a Memory Management Unit (MMU) is used to map virtual memory
+into physical memory. Applications are then loaded into virtual memory
+address spaces and access to physical memory is managed by the MMU. If
+the virtual memory is not resident in physical memory, then a page fault
+occurs. The operating system then loads the missing page into memory and
+resumes execution.
+
+Requirements and Assumptions
+----------------------------
+
+On-demand paging requires *Kernel Build* (``CONFIG_BUILD_KERNEL=y``) mode.
+In this mode, no applications are built within the NuttX kernel. Instead,
+the applications are built as separate programs that are loaded into memory
+(``CONFIG_ELF=y`` and ``CONFIG_BINFMT_LOADABLE=y``). In this mode, each
+process has its own address environment (``CONFIG_ARCH_ADDRENV=y``).
+
+Logic Design Description
+------------------------
+
+When an application is being loaded ``up_addrenv_create`` is called to create
+the process's address environment. This includes mapping the commonly used
+``text``, ``data`` and ``heap`` sections withing the virtual memory space.
+Without on-demand paging, the physical memory is then allocated and mapped
+accordingly, before the process is started. When on-demand paging is enabled,
+usually only one single page for each section is allocated and mapped.
+
+The process starts executing within its address environment, accessing the
+virtual memory. Whenever it tries to access a virtual memory address that is
+not mapped in the MMU, a page fault occurs. The MMU then triggers an
+exception that is handled by the kernel. The kernel then checks if there are
+enough free physical pages available and maps the virtual memory address to
+it. Finally, execution is resumed from the same point where the page fault
+first occurred.
+
+Example: RISC-V
+^^^^^^^^^^^^^^^
+
+RISC-V's ``up_addrenv_create`` calls ``create_region`` (both defined in
+``arch/risc-v/src/common/riscv_addrenv.c``). ``create_region`` maps a single
+region to MMU by allocating physical memory for the page tables. When
+``CONFIG_PAGING=y`` is not selected, all the physical page tables are
+allocated from the physical memory space and then mapped to the virtual
+memory space. When ``CONFIG_PAGING=y`` is selected, only the first page of
+each section is mapped to the virtual memory space. The rest of the pages are
+mapped to the virtual memory space only when a page fault occurs.
+
+The page fault is handled by the ``riscv_fillpage`` function in the exception
+handler (defined in ``arch/risc-v/src/common/riscv_exception.c``). Whenever
+a page fault occurs, the ``riscv_fillpage`` function is called. This function
+allocates a physical page and maps it to the virtual memory space that
+triggered the page fault exception and then resumes execution from the same
+point where the page fault first occurred.
+
+:ref:`knsh32_paging` simulates a device with 4MiB physical memory with 8MiB
+of virtual heap memory allocated for each process. This is possible by
+enabling on-demand paging.
+
+Legacy Implementation
+=====================
+
+This legacy implementation runs on *Flat Build* (*Kernel Build* did not
+even exist at that time).
+
+What kind of platforms can support NuttX legacy on-demand paging?
 
   #. The MCU should have some large, probably low-cost non-volatile
      storage such as serial FLASH or an SD card. This storage probably
@@ -29,7 +90,7 @@ What kind of platforms can support NuttX on-demang paging?
      LPC3131) would be sufficient for many applications.
   #. The MCU has an MMU (again like the NXP LPC3131).
 
-If the platform meets these requirement, then NuttX can provide
+If the platform meets these requirements, then NuttX can provide
 on-demand paging: It can copy .text from the large program in
 non-volatile media into RAM as needed to execute a huge program from the
 small RAM.
@@ -55,10 +116,10 @@ Terminology
      Task Control Block
 
 NuttX Common Logic Design Description
-=====================================
+-------------------------------------
 
 Initialization
---------------
+^^^^^^^^^^^^^^
 
 The following declarations will be added.
 
@@ -89,7 +150,7 @@ logic, those architecture specific functions are instead 
declared in
 ``include/nuttx/page.h``.
 
 Page Faults
------------
+^^^^^^^^^^^
 
 **Page fault exception handling**. Page fault handling is performed by
 the function ``pg_miss()``. This function is called from
@@ -146,7 +207,7 @@ inputs are required.
    page fill.
 
 Fill Initiation
----------------
+^^^^^^^^^^^^^^^
 
 The page fill worker thread will be awakened on one of three conditions:
 
@@ -217,7 +278,7 @@ The architecture-specific functions, ``up_checkmapping()``,
 will be prototyped in ``include/nuttx/arch.h``
 
 Fill Complete
--------------
+^^^^^^^^^^^^^
 
 For the blocking ``up_fillpage()``, the result of the fill will be
 returned directly from the call to ``up_fillpage``.
@@ -246,7 +307,7 @@ completed:
 -  Signal the page fill worker thread.
 
 Task Resumption
----------------
+^^^^^^^^^^^^^^^
 
 For the non-blocking ``up_fillpage()``, the page fill worker thread will
 detect that the page fill is complete when it is awakened with
@@ -279,10 +340,10 @@ In this either, the page fill worker thread will:
    -  Wait for the next fill related event (a new page fault).
 
 Architecture-Specific Support Requirements
-==========================================
+------------------------------------------
 
 Memory Organization
--------------------
+^^^^^^^^^^^^^^^^^^^
 
 **Memory Regions**. Chip specific logic will map the virtual and
 physical address spaces into three general regions:
@@ -367,7 +428,7 @@ would be a two phase link:
    "non-swappable" region.
 
 Architecture-Specific Functions
--------------------------------
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 Most standard, architecture-specific functions are declared in
 ``include/nuttx/arch.h``. However, for the case of this paging logic,
@@ -406,4 +467,3 @@ implemented just for on-demand paging support are:
   will be called when the page fill is finished (or an error occurs). This
   callback is assumed to occur from an interrupt level when the device
   driver completes the fill operation.
-
diff --git a/content/docs/latest/_sources/platforms/arm/samv7/index.rst.txt 
b/content/docs/latest/_sources/platforms/arm/samv7/index.rst.txt
index e8a0ceed2..644a26106 100644
--- a/content/docs/latest/_sources/platforms/arm/samv7/index.rst.txt
+++ b/content/docs/latest/_sources/platforms/arm/samv7/index.rst.txt
@@ -284,10 +284,10 @@ The peripheral implements four timer counter modules, 
each supporting three inde
 Universal Synchronous Asynchronous Receiver Transceiver (USART)
 ---------------------------------------------------------------
 
-The MCU supports both UART and USART controllers. USART peripheral can be used 
with RX DMA support.
-For this purpose it is required to configure idle bus timeout value in 
``CONFIG_SAMV7_SERIAL_DMA_TIMEOUT``.
-This option ensures data are read from the DMA buffer even if it is not full 
yet. TX DMA support is not
-implemented as well as entire DMA support for UART peripheral.
+The MCU supports both UART and USART controllers. USART peripheral can be used 
with TX and RX DMA support.
+For RX DMA it is required to configure idle bus timeout value in 
``CONFIG_SAMV7_SERIAL_DMA_TIMEOUT``.
+This option ensures data are read from the DMA buffer even if it is not full 
yet. DMA support is
+implemented only for USART peripheral and not for UART.
 
 There are several modes in which USART peripheral can operate (ISO7816, IrDA, 
RS485, SPI, LIN and LON).
 Currently RS485 and SPI master are supported by NuttX.
diff --git 
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
 
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
index 2fea91ef1..c8aa05867 100644
--- 
a/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
+++ 
b/content/docs/latest/_sources/platforms/risc-v/qemu-rv/boards/rv-virt/index.rst.txt
@@ -154,6 +154,22 @@ In `nsh`, applications can be run from the `/system/bin` 
directory::
 
     nsh> /system/bin/hello
 
+.. _knsh32_paging:
+
+knsh32_paging
+-------------
+
+Similar to ``knsh32_romfs``, but enabling on-demand paging: this
+configuration simulates a 4MiB device (using QEMU), but sets the number of
+heap pages equal to ``CONFIG_ARCH_HEAP_NPAGES=2048``. This means that each
+process's heap is 8MiB, whereas ``CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE`` is
+``1048576`` (1MiB) represents the stack size of the processes (which is
+allocated from the process's heap). This configuration is used for 32-bit
+RISC-V which implements the Sv32 MMU specification and enables processes
+to have their own address space larger than the available physical memory.
+This is particularly useful for implementing a set of programming language
+interpreters.
+
 knsh32_romfs
 ------------
 
diff --git a/content/docs/latest/_sources/quickstart/debugging.rst.txt 
b/content/docs/latest/_sources/quickstart/debugging.rst.txt
index 546f72560..d9bc13d3a 100644
--- a/content/docs/latest/_sources/quickstart/debugging.rst.txt
+++ b/content/docs/latest/_sources/quickstart/debugging.rst.txt
@@ -129,7 +129,7 @@ as there are some options hardcoded into
 opencd. By default, it assumes:
 
   * ``CONFIG_DISABLE_MQUEUE=y``
-  * ``CONFIG_PAGING=n``
+  * ``CONFIG_LEGACY_PAGING=n``
   
 If you need these options to be set differently, you will have to edit 
``./src/rtos/nuttx_header.h`` from ``openocd``, 
 change the corresponding settings and then rebuild it.
diff --git a/content/docs/latest/components/index.html 
b/content/docs/latest/components/index.html
index 1fb1a33e8..a4b0cc065 100644
--- a/content/docs/latest/components/index.html
+++ b/content/docs/latest/components/index.html
@@ -205,9 +205,8 @@ case, you can head to the <a class="reference internal" 
href="../reference/index
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" 
href="paging.html">On-Demand Paging</a><ul>
-<li class="toctree-l2"><a class="reference internal" 
href="paging.html#introduction">Introduction</a></li>
-<li class="toctree-l2"><a class="reference internal" 
href="paging.html#nuttx-common-logic-design-description">NuttX Common Logic 
Design Description</a></li>
-<li class="toctree-l2"><a class="reference internal" 
href="paging.html#architecture-specific-support-requirements">Architecture-Specific
 Support Requirements</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="paging.html#kernel-build-implementation">Kernel Build 
Implementation</a></li>
+<li class="toctree-l2"><a class="reference internal" 
href="paging.html#legacy-implementation">Legacy Implementation</a></li>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" 
href="audio/index.html">Audio Subsystem</a><ul>
diff --git a/content/docs/latest/components/paging.html 
b/content/docs/latest/components/paging.html
index 1dc2f37a0..dd65653db 100644
--- a/content/docs/latest/components/paging.html
+++ b/content/docs/latest/components/paging.html
@@ -119,22 +119,29 @@
 <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 current"><a class="current reference internal" 
href="#">On-Demand Paging</a><ul>
-<li class="toctree-l3"><a class="reference internal" 
href="#introduction">Introduction</a><ul>
-<li class="toctree-l4"><a class="reference internal" 
href="#overview">Overview</a></li>
+<li class="toctree-l3"><a class="reference internal" 
href="#kernel-build-implementation">Kernel Build Implementation</a><ul>
+<li class="toctree-l4"><a class="reference internal" 
href="#requirements-and-assumptions">Requirements and Assumptions</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="#logic-design-description">Logic Design Description</a><ul>
+<li class="toctree-l5"><a class="reference internal" 
href="#example-risc-v">Example: RISC-V</a></li>
+</ul>
+</li>
+</ul>
+</li>
+<li class="toctree-l3"><a class="reference internal" 
href="#legacy-implementation">Legacy Implementation</a><ul>
 <li class="toctree-l4"><a class="reference internal" 
href="#terminology">Terminology</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="#nuttx-common-logic-design-description">NuttX Common Logic Design 
Description</a><ul>
+<li class="toctree-l5"><a class="reference internal" 
href="#initialization">Initialization</a></li>
+<li class="toctree-l5"><a class="reference internal" href="#page-faults">Page 
Faults</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="#fill-initiation">Fill Initiation</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="#fill-complete">Fill Complete</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="#task-resumption">Task Resumption</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" 
href="#nuttx-common-logic-design-description">NuttX Common Logic Design 
Description</a><ul>
-<li class="toctree-l4"><a class="reference internal" 
href="#initialization">Initialization</a></li>
-<li class="toctree-l4"><a class="reference internal" href="#page-faults">Page 
Faults</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#fill-initiation">Fill Initiation</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#fill-complete">Fill Complete</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#task-resumption">Task Resumption</a></li>
+<li class="toctree-l4"><a class="reference internal" 
href="#architecture-specific-support-requirements">Architecture-Specific 
Support Requirements</a><ul>
+<li class="toctree-l5"><a class="reference internal" 
href="#memory-organization">Memory Organization</a></li>
+<li class="toctree-l5"><a class="reference internal" 
href="#architecture-specific-functions">Architecture-Specific Functions</a></li>
 </ul>
 </li>
-<li class="toctree-l3"><a class="reference internal" 
href="#architecture-specific-support-requirements">Architecture-Specific 
Support Requirements</a><ul>
-<li class="toctree-l4"><a class="reference internal" 
href="#memory-organization">Memory Organization</a></li>
-<li class="toctree-l4"><a class="reference internal" 
href="#architecture-specific-functions">Architecture-Specific Functions</a></li>
 </ul>
 </li>
 </ul>
@@ -190,14 +197,69 @@
              
   <section id="on-demand-paging">
 <span id="ondemandpaging"></span><h1>On-Demand Paging<a class="headerlink" 
href="#on-demand-paging" title="Permalink to this heading"></a></h1>
-<section id="introduction">
-<h2>Introduction<a class="headerlink" href="#introduction" title="Permalink to 
this heading"></a></h2>
-<section id="overview">
-<h3>Overview<a class="headerlink" href="#overview" title="Permalink to this 
heading"></a></h3>
-<p>This document summarizes the design of NuttX on-demand paging. This
-feature permits embedded MCUs with some limited RAM space to execute
-large programs from some non-random access media.</p>
-<p>What kind of platforms can support NuttX on-demang paging?</p>
+<section id="kernel-build-implementation">
+<h2>Kernel Build Implementation<a class="headerlink" 
href="#kernel-build-implementation" title="Permalink to this heading"></a></h2>
+<p>On-demand paging and lazy loading are techniques used to manage physical
+memory. The basic idea is to allow a program to execute even though the
+entire program is not resident in memory. The program is loaded into
+memory on demand. This is a technique that is used in many operating
+systems to allow large programs to execute on small memory systems.
+Commonly, a Memory Management Unit (MMU) is used to map virtual memory
+into physical memory. Applications are then loaded into virtual memory
+address spaces and access to physical memory is managed by the MMU. If
+the virtual memory is not resident in physical memory, then a page fault
+occurs. The operating system then loads the missing page into memory and
+resumes execution.</p>
+<section id="requirements-and-assumptions">
+<h3>Requirements and Assumptions<a class="headerlink" 
href="#requirements-and-assumptions" title="Permalink to this 
heading"></a></h3>
+<p>On-demand paging requires <em>Kernel Build</em> (<code class="docutils 
literal notranslate"><span class="pre">CONFIG_BUILD_KERNEL=y</span></code>) 
mode.
+In this mode, no applications are built within the NuttX kernel. Instead,
+the applications are built as separate programs that are loaded into memory
+(<code class="docutils literal notranslate"><span 
class="pre">CONFIG_ELF=y</span></code> and <code class="docutils literal 
notranslate"><span class="pre">CONFIG_BINFMT_LOADABLE=y</span></code>). In this 
mode, each
+process has its own address environment (<code class="docutils literal 
notranslate"><span class="pre">CONFIG_ARCH_ADDRENV=y</span></code>).</p>
+</section>
+<section id="logic-design-description">
+<h3>Logic Design Description<a class="headerlink" 
href="#logic-design-description" title="Permalink to this heading"></a></h3>
+<p>When an application is being loaded <code class="docutils literal 
notranslate"><span class="pre">up_addrenv_create</span></code> is called to 
create
+the process’s address environment. This includes mapping the commonly used
+<code class="docutils literal notranslate"><span 
class="pre">text</span></code>, <code class="docutils literal 
notranslate"><span class="pre">data</span></code> and <code class="docutils 
literal notranslate"><span class="pre">heap</span></code> sections withing the 
virtual memory space.
+Without on-demand paging, the physical memory is then allocated and mapped
+accordingly, before the process is started. When on-demand paging is enabled,
+usually only one single page for each section is allocated and mapped.</p>
+<p>The process starts executing within its address environment, accessing the
+virtual memory. Whenever it tries to access a virtual memory address that is
+not mapped in the MMU, a page fault occurs. The MMU then triggers an
+exception that is handled by the kernel. The kernel then checks if there are
+enough free physical pages available and maps the virtual memory address to
+it. Finally, execution is resumed from the same point where the page fault
+first occurred.</p>
+<section id="example-risc-v">
+<h4>Example: RISC-V<a class="headerlink" href="#example-risc-v" 
title="Permalink to this heading"></a></h4>
+<p>RISC-V’s <code class="docutils literal notranslate"><span 
class="pre">up_addrenv_create</span></code> calls <code class="docutils literal 
notranslate"><span class="pre">create_region</span></code> (both defined in
+<code class="docutils literal notranslate"><span 
class="pre">arch/risc-v/src/common/riscv_addrenv.c</span></code>). <code 
class="docutils literal notranslate"><span 
class="pre">create_region</span></code> maps a single
+region to MMU by allocating physical memory for the page tables. When
+<code class="docutils literal notranslate"><span 
class="pre">CONFIG_PAGING=y</span></code> is not selected, all the physical 
page tables are
+allocated from the physical memory space and then mapped to the virtual
+memory space. When <code class="docutils literal notranslate"><span 
class="pre">CONFIG_PAGING=y</span></code> is selected, only the first page of
+each section is mapped to the virtual memory space. The rest of the pages are
+mapped to the virtual memory space only when a page fault occurs.</p>
+<p>The page fault is handled by the <code class="docutils literal 
notranslate"><span class="pre">riscv_fillpage</span></code> function in the 
exception
+handler (defined in <code class="docutils literal notranslate"><span 
class="pre">arch/risc-v/src/common/riscv_exception.c</span></code>). Whenever
+a page fault occurs, the <code class="docutils literal notranslate"><span 
class="pre">riscv_fillpage</span></code> function is called. This function
+allocates a physical page and maps it to the virtual memory space that
+triggered the page fault exception and then resumes execution from the same
+point where the page fault first occurred.</p>
+<p><a class="reference internal" 
href="../platforms/risc-v/qemu-rv/boards/rv-virt/index.html#knsh32-paging"><span
 class="std std-ref">knsh32_paging</span></a> simulates a device with 4MiB 
physical memory with 8MiB
+of virtual heap memory allocated for each process. This is possible by
+enabling on-demand paging.</p>
+</section>
+</section>
+</section>
+<section id="legacy-implementation">
+<h2>Legacy Implementation<a class="headerlink" href="#legacy-implementation" 
title="Permalink to this heading"></a></h2>
+<p>This legacy implementation runs on <em>Flat Build</em> (<em>Kernel 
Build</em> did not
+even exist at that time).</p>
+<p>What kind of platforms can support NuttX legacy on-demand paging?</p>
 <blockquote>
 <div><ol class="arabic simple">
 <li><p>The MCU should have some large, probably low-cost non-volatile
@@ -214,11 +276,10 @@ LPC3131) would be sufficient for many 
applications.</p></li>
 <li><p>The MCU has an MMU (again like the NXP LPC3131).</p></li>
 </ol>
 </div></blockquote>
-<p>If the platform meets these requirement, then NuttX can provide
+<p>If the platform meets these requirements, then NuttX can provide
 on-demand paging: It can copy .text from the large program in
 non-volatile media into RAM as needed to execute a huge program from the
 small RAM.</p>
-</section>
 <section id="terminology">
 <h3>Terminology<a class="headerlink" href="#terminology" title="Permalink to 
this heading"></a></h3>
 <blockquote>
@@ -242,11 +303,10 @@ a page fault.</p>
 </dl>
 </div></blockquote>
 </section>
-</section>
 <section id="nuttx-common-logic-design-description">
-<h2>NuttX Common Logic Design Description<a class="headerlink" 
href="#nuttx-common-logic-design-description" title="Permalink to this 
heading"></a></h2>
+<h3>NuttX Common Logic Design Description<a class="headerlink" 
href="#nuttx-common-logic-design-description" title="Permalink to this 
heading"></a></h3>
 <section id="initialization">
-<h3>Initialization<a class="headerlink" href="#initialization" 
title="Permalink to this heading"></a></h3>
+<h4>Initialization<a class="headerlink" href="#initialization" 
title="Permalink to this heading"></a></h4>
 <p>The following declarations will be added.</p>
 <ul class="simple">
 <li><p><code class="docutils literal notranslate"><span 
class="pre">g_waitingforfill</span></code>. A doubly linked list that will be 
used to
@@ -276,7 +336,7 @@ logic, those architecture specific functions are instead 
declared in
 <code class="docutils literal notranslate"><span 
class="pre">include/nuttx/page.h</span></code>.</p>
 </section>
 <section id="page-faults">
-<h3>Page Faults<a class="headerlink" href="#page-faults" title="Permalink to 
this heading"></a></h3>
+<h4>Page Faults<a class="headerlink" href="#page-faults" title="Permalink to 
this heading"></a></h4>
 <p><strong>Page fault exception handling</strong>. Page fault handling is 
performed by
 the function <code class="docutils literal notranslate"><span 
class="pre">pg_miss()</span></code>. This function is called from
 architecture-specific memory segmentation fault handling logic. This
@@ -331,7 +391,7 @@ page fill.</p></li>
 </ul>
 </section>
 <section id="fill-initiation">
-<h3>Fill Initiation<a class="headerlink" href="#fill-initiation" 
title="Permalink to this heading"></a></h3>
+<h4>Fill Initiation<a class="headerlink" href="#fill-initiation" 
title="Permalink to this heading"></a></h4>
 <p>The page fill worker thread will be awakened on one of three conditions:</p>
 <ul class="simple">
 <li><p>When signaled by <code class="docutils literal notranslate"><span 
class="pre">pg_miss()</span></code>, the page fill worker thread will be
@@ -401,7 +461,7 @@ task must still be available to run.</p>
 will be prototyped in <code class="docutils literal notranslate"><span 
class="pre">include/nuttx/arch.h</span></code></p>
 </section>
 <section id="fill-complete">
-<h3>Fill Complete<a class="headerlink" href="#fill-complete" title="Permalink 
to this heading"></a></h3>
+<h4>Fill Complete<a class="headerlink" href="#fill-complete" title="Permalink 
to this heading"></a></h4>
 <p>For the blocking <code class="docutils literal notranslate"><span 
class="pre">up_fillpage()</span></code>, the result of the fill will be
 returned directly from the call to <code class="docutils literal 
notranslate"><span class="pre">up_fillpage</span></code>.</p>
 <p>For the non-blocking <code class="docutils literal notranslate"><span 
class="pre">up_fillpage()</span></code>, the architecture-specific driver
@@ -428,7 +488,7 @@ highest priority task that is waiting for a fill.</p></li>
 </ul>
 </section>
 <section id="task-resumption">
-<h3>Task Resumption<a class="headerlink" href="#task-resumption" 
title="Permalink to this heading"></a></h3>
+<h4>Task Resumption<a class="headerlink" href="#task-resumption" 
title="Permalink to this heading"></a></h4>
 <p>For the non-blocking <code class="docutils literal notranslate"><span 
class="pre">up_fillpage()</span></code>, the page fill worker thread will
 detect that the page fill is complete when it is awakened with
 <code class="docutils literal notranslate"><span 
class="pre">g_pftcb</span></code> non-NULL and fill completion status from 
<code class="docutils literal notranslate"><span 
class="pre">pg_callback</span></code>. In
@@ -464,9 +524,9 @@ described above).</p></li>
 </section>
 </section>
 <section id="architecture-specific-support-requirements">
-<h2>Architecture-Specific Support Requirements<a class="headerlink" 
href="#architecture-specific-support-requirements" title="Permalink to this 
heading"></a></h2>
+<h3>Architecture-Specific Support Requirements<a class="headerlink" 
href="#architecture-specific-support-requirements" title="Permalink to this 
heading"></a></h3>
 <section id="memory-organization">
-<h3>Memory Organization<a class="headerlink" href="#memory-organization" 
title="Permalink to this heading"></a></h3>
+<h4>Memory Organization<a class="headerlink" href="#memory-organization" 
title="Permalink to this heading"></a></h4>
 <p><strong>Memory Regions</strong>. Chip specific logic will map the virtual 
and
 physical address spaces into three general regions:</p>
 <ol class="arabic simple">
@@ -583,7 +643,7 @@ should position the “special” section so that it lies in a 
reserved,
 </ul>
 </section>
 <section id="architecture-specific-functions">
-<h3>Architecture-Specific Functions<a class="headerlink" 
href="#architecture-specific-functions" title="Permalink to this 
heading"></a></h3>
+<h4>Architecture-Specific Functions<a class="headerlink" 
href="#architecture-specific-functions" title="Permalink to this 
heading"></a></h4>
 <p>Most standard, architecture-specific functions are declared in
 <code class="docutils literal notranslate"><span 
class="pre">include/nuttx/arch.h</span></code>. However, for the case of this 
paging logic,
 the architecture specific functions are declared in
@@ -629,6 +689,7 @@ driver completes the fill operation.</p>
 
 </section>
 </section>
+</section>
 </section>
 
 
diff --git a/content/docs/latest/index.html b/content/docs/latest/index.html
index 23eb371b5..396b747f0 100644
--- a/content/docs/latest/index.html
+++ b/content/docs/latest/index.html
@@ -165,7 +165,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: 05 March 24 at 00:13</p>
+<p>Last Updated: 06 March 24 at 00:13</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 87f7dd4cf..106cb846c 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/samv7/index.html 
b/content/docs/latest/platforms/arm/samv7/index.html
index a365543ce..e47b5e5db 100644
--- a/content/docs/latest/platforms/arm/samv7/index.html
+++ b/content/docs/latest/platforms/arm/samv7/index.html
@@ -599,10 +599,10 @@ and one data line.</p>
 </section>
 <section id="universal-synchronous-asynchronous-receiver-transceiver-usart">
 <h3>Universal Synchronous Asynchronous Receiver Transceiver (USART)<a 
class="headerlink" 
href="#universal-synchronous-asynchronous-receiver-transceiver-usart" 
title="Permalink to this heading"></a></h3>
-<p>The MCU supports both UART and USART controllers. USART peripheral can be 
used with RX DMA support.
-For this purpose it is required to configure idle bus timeout value in <code 
class="docutils literal notranslate"><span 
class="pre">CONFIG_SAMV7_SERIAL_DMA_TIMEOUT</span></code>.
-This option ensures data are read from the DMA buffer even if it is not full 
yet. TX DMA support is not
-implemented as well as entire DMA support for UART peripheral.</p>
+<p>The MCU supports both UART and USART controllers. USART peripheral can be 
used with TX and RX DMA support.
+For RX DMA it is required to configure idle bus timeout value in <code 
class="docutils literal notranslate"><span 
class="pre">CONFIG_SAMV7_SERIAL_DMA_TIMEOUT</span></code>.
+This option ensures data are read from the DMA buffer even if it is not full 
yet. DMA support is
+implemented only for USART peripheral and not for UART.</p>
 <p>There are several modes in which USART peripheral can operate (ISO7816, 
IrDA, RS485, SPI, LIN and LON).
 Currently RS485 and SPI master are supported by NuttX.</p>
 <p>RS-485 mode is enabled by <code class="docutils literal notranslate"><span 
class="pre">CONFIG_SAMV7_USARTx_RS485MODE</span></code> option (<code 
class="docutils literal notranslate"><span 
class="pre">CONFIG_SAMV7_USART2_SERIALDRIVER</span></code>
diff --git 
a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html 
b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
index e8f85d48c..29d2c11fe 100644
--- a/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
+++ b/content/docs/latest/platforms/risc-v/qemu-rv/boards/rv-virt/index.html
@@ -332,6 +332,19 @@ $ popd
 </pre></div>
 </div>
 </section>
+<section id="knsh32-paging">
+<span id="id1"></span><h3>knsh32_paging<a class="headerlink" 
href="#knsh32-paging" title="Permalink to this heading"></a></h3>
+<p>Similar to <code class="docutils literal notranslate"><span 
class="pre">knsh32_romfs</span></code>, but enabling on-demand paging: this
+configuration simulates a 4MiB device (using QEMU), but sets the number of
+heap pages equal to <code class="docutils literal notranslate"><span 
class="pre">CONFIG_ARCH_HEAP_NPAGES=2048</span></code>. This means that each
+process’s heap is 8MiB, whereas <code class="docutils literal 
notranslate"><span 
class="pre">CONFIG_POSIX_SPAWN_DEFAULT_STACKSIZE</span></code> is
+<code class="docutils literal notranslate"><span 
class="pre">1048576</span></code> (1MiB) represents the stack size of the 
processes (which is
+allocated from the process’s heap). This configuration is used for 32-bit
+RISC-V which implements the Sv32 MMU specification and enables processes
+to have their own address space larger than the available physical memory.
+This is particularly useful for implementing a set of programming language
+interpreters.</p>
+</section>
 <section id="knsh32-romfs">
 <h3>knsh32_romfs<a class="headerlink" href="#knsh32-romfs" title="Permalink to 
this heading"></a></h3>
 <p>Similar to the <a class="reference internal" href="#knsh32">knsh32</a> 
configuration, but uses ROMFS instead of <cite>hostfs</cite>.
diff --git a/content/docs/latest/quickstart/debugging.html 
b/content/docs/latest/quickstart/debugging.html
index cd8b1d127..bc07dd508 100644
--- a/content/docs/latest/quickstart/debugging.html
+++ b/content/docs/latest/quickstart/debugging.html
@@ -265,7 +265,7 @@ opencd. By default, it assumes:</p>
 <blockquote>
 <div><ul class="simple">
 <li><p><code class="docutils literal notranslate"><span 
class="pre">CONFIG_DISABLE_MQUEUE=y</span></code></p></li>
-<li><p><code class="docutils literal notranslate"><span 
class="pre">CONFIG_PAGING=n</span></code></p></li>
+<li><p><code class="docutils literal notranslate"><span 
class="pre">CONFIG_LEGACY_PAGING=n</span></code></p></li>
 </ul>
 </div></blockquote>
 <p>If you need these options to be set differently, you will have to edit 
<code class="docutils literal notranslate"><span 
class="pre">./src/rtos/nuttx_header.h</span></code> from <code class="docutils 
literal notranslate"><span class="pre">openocd</span></code>,
diff --git a/content/docs/latest/searchindex.js 
b/content/docs/latest/searchindex.js
index 45e3d6c6e..c299866cd 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/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/feed.xml b/content/feed.xml
index 96fa8e67e..b84f7437d 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>Tue, 05 Mar 2024 00:14:29 +0000</pubDate>
-    <lastBuildDate>Tue, 05 Mar 2024 00:14:29 +0000</lastBuildDate>
+    <pubDate>Wed, 06 Mar 2024 00:15:26 +0000</pubDate>
+    <lastBuildDate>Wed, 06 Mar 2024 00:15:26 +0000</lastBuildDate>
     <generator>Jekyll v4.3.2</generator>
     
       <item>

Reply via email to