You can override the compression algorithm used by the linker by either:
To specify a compression algorithm, use the number of the required compressor on the linker
command line, for example:
armlink --datacompressor 2 …
Use the command-line option --datacompressor list
to get a list of
compression algorithms available in the linker:
armlink --datacompressor list
…
Num Compression algorithm
========================================================
0 Run-length encoding
1 Run-length encoding, with LZ77 on small-repeats
2 Complex LZ77 compression
When choosing a compression algorithm be aware that:
Compressor 0 performs well on data with large areas of zero-bytes but few nonzero
bytes.
Compressor 1 performs well on data where the nonzero bytes are repeating.
Compressor 2 performs well on data that contains repeated values.
The linker prefers compressor 0 or 1 where the data contains mostly
zero-bytes (>75%). Compressor 2 is chosen where the data contains few zero-bytes
(<10%). If the image is made up only of A32 code, then A32 decompressors are used
automatically. If the image contains any T32 code, T32 decompressors are used. If there is
no clear preference, all compressors are tested to produce the best overall size.
Note:
It is not possible to add your own compressors into the linker. The algorithms that are
available, and how the linker chooses to use them, might change in the future.