You are absolutely correct.
There are a number of reasons for this...
1. during decompression, the program is executing out of flash,
and flash r/w is relatively lothargic.
2. during decompression, the cache is disabled. the
mmu needs to be minimally setup to enable it.
possible solutions:
1. have the decompressor stub copy itself out to ram before decompressing
2. setup the mmu and enable the cache for ram and flash areas that are used
during decompression.
3. skip decompression entirely and store the full uncompressed image in flash,
adding a minimal stub to have it copy itself out to ram when executed.
regards,
mt
|