35 lines
1.5 KiB
ReStructuredText
35 lines
1.5 KiB
ReStructuredText
.. _stream_flash:
|
|
|
|
Stream Flash
|
|
############
|
|
The Stream Flash module takes contiguous fragments of a stream of data (e.g.
|
|
from radio packets), aggregates them into a user-provided buffer, then when the
|
|
buffer fills (or stream ends) writes it to a raw flash partition. It supports
|
|
providing the read-back buffer to the client to use in validating the persisted
|
|
stream content.
|
|
|
|
One typical use of a stream write operation is when receiving a new firmware
|
|
image to be used in a DFU operation.
|
|
|
|
There are several reasons why one might want to use buffered writes instead of
|
|
writing the data directly as it is made available. Some devices have hardware
|
|
limitations which does not allow flash writes to be performed in parallell with
|
|
other operations, such as radio RX and TX. Also, fewer write operations result
|
|
in faster response times seen from the application.
|
|
|
|
Persistent stream write progress
|
|
********************************
|
|
Some stream write operations, such as DFU operations, may run for a long time.
|
|
When performing such long running operations it can be useful to be able to save
|
|
the stream write progress to persistent storage so that the operation can resume
|
|
at the same point after an unexpected interruption.
|
|
|
|
The Stream Flash module offers an API for loading, saving and clearing stream
|
|
write progress to persistent storage using the :ref:`Settings <settings_api>`
|
|
module. The API can be enabled using :kconfig:`CONFIG_STREAM_FLASH_PROGRESS`.
|
|
|
|
API Reference
|
|
*************
|
|
|
|
.. doxygengroup:: stream_flash
|