Document number
205065
Version
Rev. N
Issue date
2019-02-04
Sirius OBC and TCM User Manual
Page
143
of
174
Continuous and circular mode - The free pointer position together with the length given in
the RMAP command defines which memory area should be freed and the address field is
ignored. This operation will also move the free pointer forward.
Trying to free more memory than is available is a valid use case and can for example. be
used to empty a partition by issuing an MMFree call with the maximum partition length.
If a free to a direct partition starts inside used data and not at a block boundary, the
operation will free nothing and an RMAP error status will be reported, since such a free
could create an illegal address gap. Freeing the whole partition is a special case and still
allowed from any starting address.
Frees which pass the end of the partition logical address space will automatically wrap.
Frees may start at unused addresses.
See also 7.9 for an illustration of how free affects the actual amount of memory free for
writes.
Note that MMFree on a partition where a download is in progress is not allowed.
The RMAP write command data format is described in Table 7-74.
Table 7-74: MMFree data
Byte
Type
Description
0-3
UINT32
Address of memory to free.
4-11
UINT64
Length of memory to free in bytes.
RMAP reply status (if a reply is requested):
Table 7-75: MMFree status codes
Status code
Description
0
Success.
EINVAL
Invalid partition number, or
address is not 0 for continuous/circular partition.
EEXIST
Operation could create illegal address gap inside
block.
EALREADY
A download is in progress on this partition.
7.12.4.25. MMDownloadStatus
Returns the amount of data downloaded for this partition during the last completed
download.
Table 7-76: MMDownloadStatus data
Byte
Type
Description
0-7
UINT64
Amount of data downloaded.
RMAP reply status:
Table 7-77: MMFree status codes