介绍下问题提出背景,我的程序中有个90多k的数组,70%以上都是连续的0,我打算用rle算法压缩,估计降低一半以上大小是可行的
初步思路是搞个上位机的命令行程序,读取这个数组c文件,压缩后生成一个bin文件,mdk支持在编译前运行命令,然后mdk装载这个bin文件生成最后的程序文件,整个过程都会自动完成
现在事情还没开始就遇上一个麻烦事,如何读取数组c文件,因为这个3维数组使用嵌套大括号表示数组层次,连续的0其实都是没标出的,编译器当然明白这些,但是如果自己来做的话就要自己解析这个数组c文件到内存里,这个也不是一会儿功夫可以搞定的啊
请问谁有这方面的经验,或者有开源的库可以干这个活呢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
我试了,1024字节数组。
- #define ARRAY_SIZE 1024U
- int8_t data_map[ARRAY_SIZE] = {[0] = 1, [1] = 1};
复制代码以下来自map:
- Code (inc. data) RO Data RW Data ZI Data Debug
- 35482 3922 25398 900 12204 725748 Grand Totals
- 35482 3922 25398 344 12204 725748 ELF Image Totals (compressed)
复制代码- Code (inc. data) RO Data RW Data ZI Data Debug
- 35482 3922 25398 1924 12204 725797 Grand Totals
- 35482 3922 25398 356 12204 725797 ELF Image Totals (compressed)
复制代码编辑说明:排版
一周热门 更多>