$REVOLUTION_SDK_ROOT/build/demos/rsodemo/LinkListFixed0
An example program showing a partial memory release of relocatable module and its reuse as bss area.
The area to be allocated is determined based on the released area and the size necessary for bss, and is resized to the needed value.
When the area size is increasing, resize before RSOLinkListFixed, and if decreasing, resize afterwards.
When the area is not used as a bss area, resize after RSOLinkListFixed process.
When a module area is partially released, the module memory copy cannot be reused even after link is removed.
In this example, the release stage uses RSO_FL_INTERNAL, but depending on the dynamic module, extra memory space can be conserved by specifying RSO_FL_EXTERNAL in its place.
However, when RSO_FL_EXTERNAL is specified, the module functions linked afterwards cannot be referenced.
While module B can be specified RSO_FL_EXTERNAL without any problems, if RSO_FL_EXTERNAL is specified for module A, the module B function called from module A will be shown to be unresolved (_unresolved).
Use RSO_FL_EXTERNAL only when absolutely sure that the module will not be referenced after being linked.
Sample List
RSOListInit,
RSOLinkListFixed,
RSOUnLinkList,
RSOFindExportSymbolAddr,
RSOIsImportSymbolResolvedAll,
2006/06/14 Initial version.
CONFIDENTIAL