先从Flash读取压缩文件到内存， 申请一块足够大的目标Buffer， 将两块内存交给解压硬件逻辑，有低概率解失败；
以下摘自《ARM Cortex-A Series Programmer’s Guide》
8.8 Invalidating and cleaning cache memory
Cleaning and invalidation can be required when the contents of external
memory have been changed and you want to remove stale data from the cache. It
can also be required after MMU related activity such as changing access
permissions, cache policies, or virtual to physical address mappings.
The word flush is often used in descriptions of clean and invalidate
operations. ARM generally
uses only the terms clean and invalidate.
• Invalidation of a cache or cache line means to clear it of data. This is
done by clearing the valid bit of one or more cache lines. The cache must
always be invalidated after reset as its contents will be undefined. If the
cache contains dirty data, it is generally incorrect to invalidate it. Any
updated data in the cache from writes to write-back cacheable regions would be
lost by simple invalidation.
• Cleaning a cache or cache line means writing the contents of dirty cache
lines out to main memory and clearing the dirty bit(s) in the cache line. This
makes the contents of the cache line and main memory coherent with each other.
This is only applicable for data caches in which a write-back policy is used.
Cache invalidate, and cache clean operations can be performed by cache set, or
way, or by virtual address.