2017-01-04 21 views
1

엄청난 수의 데이터를 저장하기 위해 보드에 플래시 메모리가 장착 된 임베디드 시스템이 있습니다. 메인 컨트롤러는 ARM Cortex-M3 프로세서이며 플래시의 일부에 배치 된 데이터를 압축하고 압축 된 데이터를 플래시의 다른 부분에 저장해야합니다.ARM Cortex-M3 프로세서에서 LZ4HC 알고리즘 사용

이제 SRAM의 양은 이러한 종류의 시스템에서 제한적이므로 LZ4HC 알고리즘을 얼마나 정확하게 사용할 수 있습니까? PC에서하는 것처럼 전체 데이터를 한 번에 압축 할 수는 없으며 약간의 데이터 덩어리 또는 블록 단위로 (예를 들어 512 또는 4096 바이트의 데이터마다)이 작업을 수행해야합니다. 어떻게 잘 모르겠다. 나는 그 기능을 완전히 이해할 수 없었다.
블록별로이 작업을 수행 할 수 있습니까?
예제를 찾을 수 없습니다. 오픈 소스 코드에는 좋은 문서가 없습니다. 실제로 저는 문서가 없다고 생각합니다.

답변

1

임베디드 시스템 전용 라이브러리를 사용하는 것이 좋습니다. 이러한 라이브러리는 대개 적은 양의 메모리를 사용하며 사이클 당 작은 데이터 덩어리를 압축하도록 설계되었습니다.

LZ4HC를 사용하지 않거나 자체 라이브러리를 구현하려는 경우에는 임베디드 시스템 용 LZSS 기반 라이브러리 인 heatshrink이 적합합니다.

ARM 프로세서 용 어셈블리에 LZ4 압축 해제 구현도 있습니다 (here).

+0

감사하지만 LZ4 여야합니다. 그렇지 않으면 그들은 그것을 가지 않을 것입니다. 나는 계속 도움을 찾고 있었다. 분명히 그것은 임베디드 시스템에는별로 적합하지 않지만 작동하도록 만드는 기회가 있습니다. 유용한 정보를 찾으면이 게시물을 업데이트 할 것입니다. – mostafanfs