Documentation: various cosmetic changes

This commit is contained in:
raiden00pl 2023-10-29 16:40:32 +01:00 committed by Xiang Xiao
parent 64be5c6958
commit b7f94fbf22
27 changed files with 74 additions and 62 deletions

View File

@ -16,7 +16,7 @@ The NuttX analog drivers are split into two parts:
- Common analog logic and share-able analog drivers reside in the - Common analog logic and share-able analog drivers reside in the
``drivers/analog/``. ``drivers/analog/``.
- Platform-specific drivers reside in - Platform-specific drivers reside in
``arch/<architecture>//src/<hardware>`` directory ``arch/<architecture>/src/<hardware>`` directory
for the specific processor ``<architecture>`` and for the for the specific processor ``<architecture>`` and for the
specific ``<chip>`` analog peripheral devices. specific ``<chip>`` analog peripheral devices.

View File

@ -277,9 +277,9 @@ Skeleton Files
Skeleton files are "empty" frameworks for NuttX drivers. They are provided to Skeleton files are "empty" frameworks for NuttX drivers. They are provided to
give you a good starting point if you want to create a new NuttX driver. give you a good starting point if you want to create a new NuttX driver.
The following skeleton files are available:: The following skeleton files are available:
drivers/lcd/skeleton.c -- Skeleton LCD driver * ``drivers/lcd/skeleton.c`` Skeleton LCD driver
drivers/mtd/skeleton.c -- Skeleton memory technology device drivers * ``drivers/mtd/skeleton.c`` Skeleton memory technology device drivers
drivers/net/skeleton.c -- Skeleton network/Ethernet drivers * ``drivers/net/skeleton.c`` Skeleton network/Ethernet drivers
drivers/usbhost/usbhost_skeleton.c -- Skeleton USB host class driver * ``drivers/usbhost/usbhost_skeleton.c`` Skeleton USB host class driver

View File

@ -34,7 +34,6 @@ container.
The only real function of the ``libs/`` directory is to prevent the top-level The only real function of the ``libs/`` directory is to prevent the top-level
directory from becoming cluttered with individual libraries. directory from becoming cluttered with individual libraries.
.. toctree:: .. toctree::
:maxdepth: 1 :maxdepth: 1
:caption: Contents: :caption: Contents:

View File

@ -1,3 +1,4 @@
============
Contributing Contributing
============ ============

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _making-changes: .. _making-changes:
========================
Making Changes Using Git Making Changes Using Git
======================== ========================
@ -65,7 +66,7 @@ Here's how to do it:
$ git push $ git push
Git Workflow With an Upstream Repository Git Workflow With an Upstream Repository
---------------------------------------- ========================================
The main NuttX git repository is called an "upstream" repository - this is because it's the main source of truth, and The main NuttX git repository is called an "upstream" repository - this is because it's the main source of truth, and
its changes flow downstream to people who've forked that repository, like us. its changes flow downstream to people who've forked that repository, like us.
@ -160,7 +161,7 @@ maybe doing that several times. Then when everything works, I get my branch read
$ git push $ git push
Submitting Your Changes to NuttX Submitting Your Changes to NuttX
-------------------------------- ================================
Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull Pull requests let you tell others about changes you've pushed to a branch in a repository on GitHub. Once a pull
request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits request is opened, you can discuss and review the potential changes with collaborators and add follow-up commits
@ -212,7 +213,7 @@ squash before submitting the Pull Request:
1 through 6. 1 through 6.
How to Include the Suggestions on Your Pull Request? How to Include the Suggestions on Your Pull Request?
---------------------------------------------------- ====================================================
If you submitted your first PR (Pull Request) and received some feedbacks If you submitted your first PR (Pull Request) and received some feedbacks
to modify your commit, then probably you already modified it and created a to modify your commit, then probably you already modified it and created a
@ -344,7 +345,7 @@ Now you can look at your PR at NuttX's github to confirm that
this squashed commit is there. this squashed commit is there.
Git Resources Git Resources
------------- =============
* `Git Cheat Sheet (by GitHub) <https://github.github.com/training-kit/downloads/github-git-cheat-sheet.pdf>`_ * `Git Cheat Sheet (by GitHub) <https://github.github.com/training-kit/downloads/github-git-cheat-sheet.pdf>`_
* `Git Book (online) <https://git-scm.com/book/en/v2>`_ * `Git Book (online) <https://git-scm.com/book/en/v2>`_

View File

@ -1,5 +1,6 @@
.. todo:: update when workflow is settled .. todo:: update when workflow is settled
====================
Development Workflow Development Workflow
==================== ====================

View File

@ -1,6 +1,6 @@
==================== =========
Core Dump Core Dump
==================== =========
Overview Overview
======== ========

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _cpp_cmake: .. _cpp_cmake:
=======================
C++ Example using CMake C++ Example using CMake
======================= =======================
@ -24,7 +25,7 @@ applications using C++ language and also the cmake build tool.
This document will show how to reimplement the hellocpp project using this cmake. This document will show how to reimplement the hellocpp project using this cmake.
Preparation Preparation
----------- ===========
#. Base NuttX compilation changes #. Base NuttX compilation changes
@ -46,7 +47,7 @@ Preparation
$ make export $ make export
Creating the project Creating the project
-------------------- ====================
#. Create your project file structure #. Create your project file structure
@ -268,7 +269,7 @@ Creating the project
} }
Building Building
-------- ========
To launch build, you use the cmake procedure: To launch build, you use the cmake procedure:

View File

@ -18,9 +18,8 @@ the directory ``CustomApps`` as an example.
need to run ``make clean`` and possibly even ``make distclean`` before rebuilding to need to run ``make clean`` and possibly even ``make distclean`` before rebuilding to
ensure it works correctly. ensure it works correctly.
-----------------------------------------
1. Replace The Apps/ Directory Completely 1. Replace The Apps/ Directory Completely
----------------------------------------- =========================================
The CustomApps directory need only to contain the minimum three files: The CustomApps directory need only to contain the minimum three files:
@ -188,9 +187,8 @@ Then build as you normally would. When you execute the custom_hello app you shou
Hello, Custom World!! Hello, Custom World!!
---------------------------------------------------------------
2. Extend the apps/ directory to include a new custom directory 2. Extend the apps/ directory to include a new custom directory
--------------------------------------------------------------- ===============================================================
The collection of apps provided in nuttx-apps can be useful, and this method simply The collection of apps provided in nuttx-apps can be useful, and this method simply
extends the directory structure to include your own directory structure. extends the directory structure to include your own directory structure.
@ -306,9 +304,8 @@ followed by ``make menuconfig``. If successful there will be new Kconfig entries
Select the ``Custom Hello App`` and run the usual build process. If successful Select the ``Custom Hello App`` and run the usual build process. If successful
you can run the newly included ``custom_hello`` app. you can run the newly included ``custom_hello`` app.
--------------------------------------------------------------------------
3. Include an Additional Custom directory Outside of the Main Source Trees 3. Include an Additional Custom directory Outside of the Main Source Trees
-------------------------------------------------------------------------- ==========================================================================
Thia is similar to the previous approach, but places the ``CustomApps`` directory Thia is similar to the previous approach, but places the ``CustomApps`` directory
outside of the default trees. outside of the default trees.

View File

@ -17,9 +17,8 @@ Sometimes it is not appropriate, or not wanted, to add a new or custom board to
the NuttX boards tree itself. If so, the board can be defined out-of-tree in a the NuttX boards tree itself. If so, the board can be defined out-of-tree in a
custom directory and still be built easily. custom directory and still be built easily.
------------------
Add a Custom Board Add a Custom Board
------------------ ==================
The same set of files as provided for in-tree boards is required (i.e. configs, The same set of files as provided for in-tree boards is required (i.e. configs,
Kconfig, scripts, etc.) but these can be placed in a directory of your choice. Kconfig, scripts, etc.) but these can be placed in a directory of your choice.
@ -53,7 +52,7 @@ To build the custom board, the syntax is slightly different to in-tree boards an
Refreshing... Refreshing...
Kconfig Settings Kconfig Settings
---------------- ================
Once the board is configured, to ensure subsequent builds run correctly, there Once the board is configured, to ensure subsequent builds run correctly, there
are two Kconfig settings that need to be set. These are: are two Kconfig settings that need to be set. These are:

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _drivers: .. _drivers:
=======
Drivers Drivers
======= =======
@ -10,7 +11,7 @@ you will either need to port a driver from another chip, or write one yourself.
.. _drivers-porting: .. _drivers-porting:
Porting a Driver Porting a Driver
---------------- ================
Often support for on-chip peripherals exists in a closely related chip, or even a different family or from a different Often support for on-chip peripherals exists in a closely related chip, or even a different family or from a different
manufacturer. Many chips are made up of different Intellectual Property (IP) blocks that are licensed from vendors like manufacturer. Many chips are made up of different Intellectual Property (IP) blocks that are licensed from vendors like
@ -144,7 +145,7 @@ modification.
200aaaa0: 0000 0000 0000 0000 ........ 200aaaa0: 0000 0000 0000 0000 ........
NuttX Drivers as a Reference NuttX Drivers as a Reference
---------------------------- ============================
If you're not porting a NuttX driver from another architecture, it still helps to look at other similar NuttX If you're not porting a NuttX driver from another architecture, it still helps to look at other similar NuttX
drivers, if there are any. For instance, when implementing an Ethernet driver, look at other NuttX Ethernet drivers; drivers, if there are any. For instance, when implementing an Ethernet driver, look at other NuttX Ethernet drivers;
@ -152,7 +153,7 @@ for an SD Card driver, look at other NuttX SD Card drivers. Even if the chip-spe
structure to interface with NuttX can be used. structure to interface with NuttX can be used.
Using Chip Datasheets Using Chip Datasheets
--------------------- =====================
To port or write a driver, you'll have to be familiar with the information in the chip datasheet. Definitely find To port or write a driver, you'll have to be familiar with the information in the chip datasheet. Definitely find
the datasheet for your chip, and read the sections relevant to the peripheral you're working with. Doing so ahead the datasheet for your chip, and read the sections relevant to the peripheral you're working with. Doing so ahead
@ -179,7 +180,7 @@ code implements the necessary algorithms often helps one understand how the driv
examples. examples.
Logic Analyzers Logic Analyzers
--------------- ===============
For drivers that involve input and output (I/O), especially that involve complex protocols like SD Cards, SPI, I2C, For drivers that involve input and output (I/O), especially that involve complex protocols like SD Cards, SPI, I2C,
etc., actually seeing the waveform that goes in and out the chip's pins is extremely helpful. `Logic Analyzers <https://en.wikipedia.org/wiki/Logic_analyzer>`_ etc., actually seeing the waveform that goes in and out the chip's pins is extremely helpful. `Logic Analyzers <https://en.wikipedia.org/wiki/Logic_analyzer>`_
@ -187,7 +188,7 @@ can capture that information and display it graphically, allowing you to see if
on the wire. on the wire.
DMA Debugging DMA Debugging
------------- =============
* Dump registers before, during, and after transfer. Some NuttX drivers (``sam_sdmmc.c`` or ``imxrt_sdmmc.c`` for * Dump registers before, during, and after transfer. Some NuttX drivers (``sam_sdmmc.c`` or ``imxrt_sdmmc.c`` for
example) have built-in code for debugging register states, and can sample registers before, during, and example) have built-in code for debugging register states, and can sample registers before, during, and

View File

@ -1,6 +1,6 @@
==================== ===============
GDB with Python GDB with Python
==================== ===============
Introduction Introduction
============ ============

View File

@ -1,6 +1,7 @@
.. todo:: .. todo::
Create "tutorial" type documentation for specific subjects not to be covered in more general terms. Create "tutorial" type documentation for specific subjects not to be covered in more general terms.
======
Guides Guides
====== ======

View File

@ -3,7 +3,7 @@ Open Flash Loader
================= =================
Introduce Introduce
===================================== =========
Open Flash loader is an implementation in NuttX that bridges the device Open Flash loader is an implementation in NuttX that bridges the device
drivers in NuttX with the programming methods of a flash loader in J-Link. drivers in NuttX with the programming methods of a flash loader in J-Link.

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _pysimcoder: .. _pysimcoder:
=================================
pysimCoder integration with NuttX pysimCoder integration with NuttX
================================= =================================
@ -16,7 +17,7 @@ This documentation describes the steps that are needed to run application genera
on NuttX and also keeps the track of peripherals that are supported by pysimCoder for NuttX RTOS. on NuttX and also keeps the track of peripherals that are supported by pysimCoder for NuttX RTOS.
Peripheral Support Peripheral Support
------------------ ==================
The following list shows the peripherals and fuctionalities supported in pysimCoder for NuttX RTOS. The following list shows the peripherals and fuctionalities supported in pysimCoder for NuttX RTOS.
@ -39,7 +40,7 @@ Please note that the actual support for NuttX peripherals can be wider that what
in case this documentation was not updated when new fuctionalities were added to pysimCoder. in case this documentation was not updated when new fuctionalities were added to pysimCoder.
NuttX Configuration NuttX Configuration
------------------- ===================
Several configuration options are necessary to be set in order to successfully compile pysimCoder Several configuration options are necessary to be set in order to successfully compile pysimCoder
with NuttX. The list is the following: with NuttX. The list is the following:
@ -124,7 +125,7 @@ Please note that PYSUPSICTRL variable has to be set/exported in order to success
designed with pysimCoder. designed with pysimCoder.
Using pysimCoder to design NuttX application Using pysimCoder to design NuttX application
-------------------------------------------- ============================================
After running pysimCoder, separate blocks can be selected from the library menu on the left hand side. The menu contains After running pysimCoder, separate blocks can be selected from the library menu on the left hand side. The menu contains
several libraries, NuttX specific blocks can be found in library "NuttX". It is also possible to use blocks from other several libraries, NuttX specific blocks can be found in library "NuttX". It is also possible to use blocks from other

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _qemugdb: .. _qemugdb:
=====================================
How to debug NuttX using QEMU and GDB How to debug NuttX using QEMU and GDB
===================================== =====================================
@ -11,7 +12,7 @@ board or architecture supported by QEMU.
Start configuring and compiling the lm3s6965-ek board with qemu-flat profile. Start configuring and compiling the lm3s6965-ek board with qemu-flat profile.
Compiling Compiling
--------- =========
#. Configure the lm3s6965-ek #. Configure the lm3s6965-ek
@ -31,7 +32,7 @@ Compiling
$ make -j $ make -j
Start QEMU Start QEMU
---------- ==========
#. You need to start QEMU using the nuttx ELF file just create above: #. You need to start QEMU using the nuttx ELF file just create above:
@ -46,7 +47,7 @@ Start QEMU
nsh> nsh>
Start GDB to connect to QEMU Start GDB to connect to QEMU
---------------------------- ============================
These steps show how to connect GDB to QEMU running NuttX: These steps show how to connect GDB to QEMU running NuttX:

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _rndis: .. _rndis:
================
How to use RNDIS How to use RNDIS
================ ================
@ -17,7 +18,7 @@ risk and also be aware that it was tested up to Ubuntu 22.04 LTS and
couldn't work in future versions. couldn't work in future versions.
Compiling Compiling
--------- =========
#. Configure the RNDIS #. Configure the RNDIS
@ -39,7 +40,7 @@ Compiling
$ make -j $ make -j
Flashing Flashing
-------- ========
#. Flash the generated nuttx.bin to your board: #. Flash the generated nuttx.bin to your board:
@ -65,7 +66,7 @@ Flashing
Setup RNDIS in your computer Setup RNDIS in your computer
---------------------------- ============================
These steps show how to connect your board to your Linux machine. These steps show how to connect your board to your Linux machine.

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _simulator: .. _simulator:
=========
Simulator Simulator
========= =========
@ -16,7 +17,7 @@ submit a PR to improve this guide!
.. todo:: Windows instructions .. todo:: Windows instructions
Prerequisites For macOS Prerequisites For macOS
----------------------- =======================
We need ``genromfs`` to build simulators(NON GUI). We need ``genromfs`` to build simulators(NON GUI).
@ -37,7 +38,7 @@ For GUI Applications we need X11 Libraries, libx11 can also be built using Homeb
$ sudo port install xorg-server $ sudo port install xorg-server
Compiling Compiling
--------- =========
#. Configure the Simulator #. Configure the Simulator
@ -94,7 +95,7 @@ Compiling
.. _simulator_accessing_the_network: .. _simulator_accessing_the_network:
Accessing the Network Accessing the Network
--------------------- =====================
#. Here we'll use the ``sim:tcpblaster`` configuration because it comes with networking #. Here we'll use the ``sim:tcpblaster`` configuration because it comes with networking
that is ready to use. that is ready to use.
@ -202,7 +203,7 @@ Accessing the Network
Success! Success!
Testing / capturing TCP network traffic Testing / capturing TCP network traffic
--------------------------------------- =======================================
#. Start Wireshark (or tcpdump) on Linux and capture the appeared tap0 interface. #. Start Wireshark (or tcpdump) on Linux and capture the appeared tap0 interface.
@ -228,7 +229,7 @@ Testing / capturing TCP network traffic
#. Observe TCP network traffic in Wireshark / tcpdump on Linux. #. Observe TCP network traffic in Wireshark / tcpdump on Linux.
Stopping Stopping
-------- ========
#. The normal way to stop: #. The normal way to stop:
@ -257,6 +258,6 @@ Stopping
$ sudo ./tools/simhostroute.sh wlan0 off $ sudo ./tools/simhostroute.sh wlan0 off
Debugging Debugging
--------- =========
You can debug the simulator like any regular Linux program. You can debug the simulator like any regular Linux program.

View File

@ -1,3 +1,4 @@
============
Introduction Introduction
============ ============

View File

@ -22,4 +22,5 @@ Here's a list of Apache NuttX resources that you might find helpful:
Legacy README Legacy README
============= =============
.. mdinclude:: ../legacy_README.md .. mdinclude:: ../legacy_README.md

View File

@ -1,6 +1,7 @@
.. include:: /substitutions.rst .. include:: /substitutions.rst
.. _configuring: .. _configuring:
===========
Configuring Configuring
=========== ===========
@ -93,7 +94,7 @@ computer.
configured in :menuselection:`Application Configuration --> NSH Library --> Message of the Day (MOTD)`. configured in :menuselection:`Application Configuration --> NSH Library --> Message of the Day (MOTD)`.
Fast configuration changes Fast configuration changes
-------------------------- ==========================
If you know exactly which configuration symbol you want to change, you can use the ``kconfig-tweak`` tool (comes with the ``kconfig-frontends`` package) to quickly change a setting without going into the configuration frontend. This is useful to change settings such as debug options: If you know exactly which configuration symbol you want to change, you can use the ``kconfig-tweak`` tool (comes with the ``kconfig-frontends`` package) to quickly change a setting without going into the configuration frontend. This is useful to change settings such as debug options:
@ -126,7 +127,7 @@ This is also useful to script configuration changes that you perform often:
make oldconfig make oldconfig
Reference configuration Reference configuration
-------------------------- =======================
Defconfig supports the use of ``#include`` statements to reference other configuration files: Defconfig supports the use of ``#include`` statements to reference other configuration files:
@ -144,7 +145,7 @@ The default header file search path includes:
* ``${boards}/common/configs``; * ``${boards}/common/configs``;
Merge configuration Merge configuration
-------------------------- ===================
Multiple config fragments can be merged manually using the tools/merge_config.py script. Multiple config fragments can be merged manually using the tools/merge_config.py script.

View File

@ -13,7 +13,6 @@ NewReno congestion control algorithm is used to solve the problem of network con
Workflow Workflow
======== ========
The NewReno on the tcp sender adjusts the cwnd and ssthresh based on received ack and Retransmitted Timeout (RTO) events. The NewReno on the tcp sender adjusts the cwnd and ssthresh based on received ack and Retransmitted Timeout (RTO) events.
Using the cwnd, together with snd_wnd, controls the number of bytes sent to the network. Here's how newreno works, as following: Using the cwnd, together with snd_wnd, controls the number of bytes sent to the network. Here's how newreno works, as following:

View File

@ -1,5 +1,6 @@
==========================
Task Scheduling Interfaces Task Scheduling Interfaces
************************** ==========================
By default, NuttX performs strict priority scheduling: Tasks of higher By default, NuttX performs strict priority scheduling: Tasks of higher
priority have exclusive access to the CPU until they become blocked. At priority have exclusive access to the CPU until they become blocked. At
@ -29,7 +30,7 @@ compliant interface to the NuttX scheduler:
- :c:func:`sched_get_rr_interval` - :c:func:`sched_get_rr_interval`
Functions Functions
--------- =========
.. c:function:: int sched_setparam(pid_t pid, FAR const struct sched_param *param) .. c:function:: int sched_setparam(pid_t pid, FAR const struct sched_param *param)

View File

@ -1,5 +1,6 @@
=================
Clocks and Timers Clocks and Timers
***************** =================
- :c:func:`clock_settime` - :c:func:`clock_settime`
- :c:func:`clock_gettime` - :c:func:`clock_gettime`

View File

@ -1,5 +1,6 @@
=================
Signal Interfaces Signal Interfaces
***************** =================
**Tasks and Signals**. NuttX provides signal interfaces for tasks and **Tasks and Signals**. NuttX provides signal interfaces for tasks and
pthreads. Signals are used to alter the flow control of tasks by pthreads. Signals are used to alter the flow control of tasks by

View File

@ -1,5 +1,6 @@
========================
Shared Memory Interfaces Shared Memory Interfaces
************************ ========================
Shared memory interfaces are only available with the NuttX kernel build Shared memory interfaces are only available with the NuttX kernel build
(``CONFIG_BUILD_KERNEL=y``). These interfaces support user memory (``CONFIG_BUILD_KERNEL=y``). These interfaces support user memory
@ -12,7 +13,7 @@ memory interfaces:
- :c:func:`shmdt` - :c:func:`shmdt`
Functions Functions
--------- =========
.. c:function:: int shmget(key_t key, size_t size, int shmflg) .. c:function:: int shmget(key_t key, size_t size, int shmflg)

View File

@ -1,8 +1,9 @@
==================
OS Data Structures OS Data Structures
================== ==================
Scalar Types Scalar Types
************ ============
Many of the types used to communicate with NuttX are simple scalar Many of the types used to communicate with NuttX are simple scalar
types. These types are used to provide architecture independence of the types. These types are used to provide architecture independence of the
@ -15,7 +16,7 @@ include:
.. c:type:: time_t .. c:type:: time_t
Hidden Interface Structures Hidden Interface Structures
*************************** ===========================
Several of the types used to interface with NuttX are structures that Several of the types used to interface with NuttX are structures that
are intended to be hidden from the application. From the standpoint of are intended to be hidden from the application. From the standpoint of
@ -33,7 +34,7 @@ specific elements within these hidden structures. These hidden
structures will not be described further in this user's manual. structures will not be described further in this user's manual.
Access to the ``errno`` Variable Access to the ``errno`` Variable
******************************** ================================
A pointer to the thread-specific ``errno`` value is available through a A pointer to the thread-specific ``errno`` value is available through a
function call: function call:
@ -61,7 +62,7 @@ function call:
:return: A pointer to the thread-specific ``errno`` value. :return: A pointer to the thread-specific ``errno`` value.
User Interface Structures User Interface Structures
************************* =========================
.. c:type:: int (*main_t)(int argc, char *argv[]) .. c:type:: int (*main_t)(int argc, char *argv[])