Skip to content

DOCS: Application documentation #16406

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 26, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 55 additions & 1 deletion Documentation/applications/examples/gps/index.rst
Original file line number Diff line number Diff line change
@@ -2,4 +2,58 @@
``gps`` GPS example
===================

GPS example.
This example can be used to interact with GPS devices in NuttX. It uses the
`MINMEA <https://github.com/kosma/minmea>`_ library to parse standard NMEA
messages and print out GPS data to the console.

To use the program, provide the character device path for the GPS serial
connection as the only argument. If no path is provided, the program will
default to ``/dev/ttyS1``.

If you want to be able to see the floating point output of this program, make
sure you remember to enable ``CONFIG_LIBC_FLOATINGPOINT``.

The program loops forever parsing NMEA values from the serial device.

Waiting for GPS Fix
-------------------

.. code:: console

nsh> gps /dev/ttyS3
Fixed-point Latitude...........: 0
Fixed-point Longitude..........: 0
Fixed-point Speed..............: 0
Floating point degree latitude.: nan
Floating point degree longitude: nan
Floating point speed...........: nan
Fix quality....................: 0
Altitude.......................: 0
Tracked satellites.............: 0

The output will show ``nan`` and ``0`` for values while waiting to obtain a fix,
at which point real values will begin to appear.

With GPS Fix
------------

.. code:: console

nsh> gps /dev/ttyS3
Altitude.......................: 73172
Tracked satellites.............: 5
Fixed-point Latitude...........: 4628356
Fixed-point Longitude..........: -8058408
Fixed-point Speed..............: 110
Floating point degree latitude.: 46.476547
Floating point degree longitude: -80.977995
Floating point speed...........: 0.001833
Fix quality....................: 1

You can now see the information is filled in with the data from the GPS.

.. note::

Fixed-point readings may have a different scale than the floating-point
readings. For instance, the altitude above is fixed-point, but is actually
73.172 meters in floating point.
33 changes: 30 additions & 3 deletions Documentation/applications/testing/getprime/index.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,30 @@
=============================
``getprime`` getprime example
=============================
======================
``getprime`` benchmark
======================

This application is used to benchmark processing time using multithreading. Each
thread that is spawned will find all prime numbers in the range of 1 to 10,000.

To use ``getprime``, pass the number of threads you'd like to run as the only
argument. After the threads finish processing, the duration of the test is
printed to the console.

.. code:: console

nsh> getprime 3
Set thread priority to 10
Set thread policy to SCHED_RR
Start thread #0
Start thread #1
Start thread #2
thread #0 started, looking for primes < 10000, doing 10 run(s)
thread #1 started, looking for primes < 10000, doing 10 run(s)
thread #2 started, looking for primes < 10000, doing 10 run(s)
thread #0 finished, found 1230 primes, last one was 9973
thread #1 finished, found 1230 primes, last one was 9973
thread #2 finished, found 1230 primes, last one was 9973
Done
getprime took 89040 msec

This program can be used to see performance differences between boards,
single-core vs SMP, thread scheduling settings, etc.