Document number
205065
Version
Rev. N
Issue date
2019-02-04
Sirius OBC and TCM User Manual
Page
121
of
174
In
Continuous mode
, all write accesses are sequential and can be of any size, but will
return with an error when the partition is full. The MM handler internally implements free and
write pointers to keep track of the data in the partition. The write pointer is used as the
address for storing the data and is updated after each successful write. The free pointer is
used as the address when freeing data and is updated after each successful free. Read
access and download of data is available on any arbitrary address within the partition
(between the free and write pointer addresses). Obsoleted data need to be freed to enable
further writes when the partition is full.
Continuous Auto-padded mode
operates in the same way as Continuous mode, with
additional automatic segment padding, see 7.9.1.4.
Circular mode
operates much in the same way as Continuous mode except that writes will
never fail when the partition is full. Instead, it will automatically free one or more blocks used
for the oldest written data and update the free pointer accordingly. Thus data never needs to
be freed manually, but the operation is available.
Circular Auto-padded mode
operates in the same way as Circular mode, with additional
automatic segment padding, see 7.9.1.4.
For both Continuous and Circular mode (with or without automatic padding), an internal
cache of one page is used to hold any data that does not fit a page. As soon as the cache is
filled, the data is written to physical memory. Any restarts or power cycling will result in loss
of any data only written into this cache. If loss of cache data is an issue, ensure that all
writes end on a page boundary as this will make sure all data is always written to flash.
In
Direct mode
, a write access can be to any arbitrary address in the address space
provided that writing starts at a block boundary and is continuously written within this block.
Each access must also be a multiple of the page size and thus keeps no cache of data not
stored in physical memory. Read access and download of data is available from any
arbitrary address within a partition, given that it has valid data (previously written). Obsoleted
data or data to overwrite need to be freed here as well, but can be freed on any valid
address in the address space.
Please Note
: Due to considerably increased initialisation times when using direct partitions,
it is recommended to only allocate a maximum of 200 blocks (400 Mbytes) in total to direct
partitions. Increasing the amount of direct partition blocks significantly above this limit will
cause initialisation failure due to the watchdog timeout being triggered.
The direct partition mode does not utilise free and write pointers.