zephyr/samples
Maureen Helm fd204f31d4 samples: rtio: Add sensor batch processing sample application
Adds a new sample application that demonstrates using the RTIO subsystem
to read periodic sensor data directly into buffers allocated by the
application, asynchronously process batches of data with an algorithm,
and recycle buffers back for reading additional sensor data.

The sensor iodev in this application is an timer-driven device that
executes one read request per timer period. It doesn't actually send any
transactions to a real I2C/SPI bus or read any real data into the
application-provided buffers. This timer-driven behavior mimics how a
real sensor periodically triggers a GPIO interrupt when new data is
ready.

The sensor iodev currently uses an internal message queue to store
pending requests from the time they are submitted until the next timer
expiration. At least one pending request needs to be stored by the iodev
to ensure that it has a buffer available to read data into. However,
any more than that should probably be handled by the application, since
it's the application that determines how often it can submit new
requests and therefore how deep the queue needs to be.

The sensor iodev is implemented to support multiple instances with
devicetree, but additional work remains to enable and use more than one
in the application.

Tested on native_posix and frdm_k64f.

Signed-off-by: Maureen Helm <maureen.helm@intel.com>
2022-06-28 13:53:13 -04:00
..
application_development samples: code_relocation_nocopy: Update documentation 2022-06-24 20:29:00 +02:00
arch samples: arch: mpu_test: Update Readme. 2022-06-21 20:29:15 -04:00
basic samples: basic: minimal: remove pinmux 2022-06-06 15:39:50 -07:00
bluetooth all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
boards all: logging: Remove log_strdup function 2022-06-23 13:42:23 +02:00
compression samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
drivers samples: drivers: led_ws2812: use compatible based filter 2022-06-28 16:50:26 +02:00
hello_world samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
kernel samples: kernel: condition_variables: Remove unneeded tstack extern 2022-06-20 10:25:52 +02:00
modules samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
net lib: posix: semaphore: use consistent timebase in sem_timedwait 2022-06-24 20:12:05 +02:00
philosophers samples/philosophers: use stack_data_t type 2022-05-18 10:53:50 +02:00
posix include: Prefix includes to use a scope 2022-04-08 19:03:32 +02:00
sensor boards: Exclude boards from shield samples 2022-06-28 15:51:55 +02:00
shields boards: Exclude boards from shield samples 2022-06-28 15:51:55 +02:00
subsys samples: rtio: Add sensor batch processing sample application 2022-06-28 13:53:13 -04:00
synchronization samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
tfm_integration samples: tfm: Enumerate more test variants 2022-06-27 15:41:57 -05:00
userspace samples: migrate includes to contain <zephyr/...> prefix 2022-05-06 11:29:59 +02:00
classic.rst
index.rst