使用Python分析ELF文件优化Flash和Sram空间的案例

时间:2024-12-04 15:33:44

1. 背景

Zephyr项目Flash和Ram空间比较紧张,有着非常强烈的优化需求。

优化的前提是量化标的,那么如何量化Flash和Ram的使用量呢?

在量化之后,首先要对量化结果进行分析,然后采取措施进行空间优化。

2. 基于ELF信息和linker.cmd分析Flash/Ram使用量

linker.cmd文件中规定了不同section在Flash还是在Ram中,还是兼而有之。

这是一个很有用的信息,基于此我们只需要去罗列每个section的symbol,然后统计大小;就可以知道section的信息;进而知道都有那些symbol在(Flash, Ram)中,都与多大。

分析ELF文件可以获得Sections和Symbols的详细信息。

Sections信息可以将,Sections的Index和Name对应起来。

Symbols信息可以将Symbol的Name、Size、Index和Sections的Index对应起来。

这样子就可以对ELF文件形成ELF-->Sections-->Symbols的树形结构关系。

分析脚本在:elf_analyze_pro.ipynb

输出结果是每个sections中symbol大小降序排列的csv文件,和显示最高top_counts个大小列表。

使用Python分析ELF文件优化Flash和Sram空间的案例

3. 分析Flash/Ram使用情况

3.1 总体使用情况分析

从Flash/Ram总大小使用情况,可以看出Ram空间告急,Flash空间也不乐观。

由于每个Section按降序排列了所有符号表,所以从最大入手效果最明显。

aaarticlea/png;base64,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ZhmSmqhejN5EesRoL2CNbBOpjc0lLUDnAD+3AEmtYxmSWqRQqixPOn7RvqSTxa6TbSK1gRowG7iQtADVMs4j5ZJlSMpAoVSZBGxDep3Rm4HXAstlGkqt8BxwLfBr4DfAddVycV62kSRZhqQ2UChVVgf6Sa81egPest9N7mRh+bnC019S+7EMSW2oUKpsQFqOhh8bZZtIY/Bv0qkwfg38plou3p1xHklLYRmSOkChVNkE2AnYDtge2BqYnGkoQTr68+3ANSMeg9VycX6mqSSNiWVI6kCFUmU5YAsWlqPtgKk4qWyzPQBcX39cA1xbLRcfyzaSpImyDEldoj7w41YsLEfbA1OAnixzdaj5wD3AzcAN1AtQtVz8Z6apJDWFZUjqYvVxjjYBNqs/Xjbi+YuBkF26tvAwcAfpqa47Rjz+Vi0Xn8kymKTWsQxJOVUoVVYCXsrzS9ImwHrACtmla5i5wEPAP4G7+N/Cc4enuCSBZUjSYhRKlTVIS9GyPNaidUeZ5gD/qj8eGvF89OOharn4nxZlktTBLEOSJqw+iORkYMVFPBb3+oqkd2M9TToX19OjHot8rVou+o+WpIayDEmSpFyblHUASZKkLFmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElSrlmGJElS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4O+Y+HrbYUT8RGVIJFXG3R04A5iBTqFJfmgC/gXcCDyk2+NFeqYyJJIu4w4HjscrRvtYTiPSk7fwCtAtmPgXtsOI+J3KkMhgGLcMrxSdAky0nEaCbTUwD7gBE3/JdhiRfKIyJJIJxi0Gvg3MAg4BQnYDSUAkgGfwVoHuwsTrLecRyUsqQyKZZtzNgJOB44CvWk4jhelD4Fa8i6EX2Q4jku9UhkSyybhTgWOSv/bAm4AtMhC1wN3A3Zj4f22HESkkKkMiueKtGB2FV4z2RafSpH//pb0A1doOI1KoVIZEbDDuROA7eMWoAo0AEU8r8BxeAboHE//Qch6RQFAZErHNuGOAI4BvAQcB4+wGkhxbB8wH7gXuxcQ/t5xHJHBUhkT8xLghYBfgm8lfewFDrGaSTNsAvAA8mfz1oibEi9ilMiTiZ94Gj/sCByZ/7QKErWaSdLUAr+IVnyeA53QLvIi/qAyJ5BPjjqK9HO0L7ASUWM0kXSWAGO0rP89g4qvtRhKRvqgMieQzb7PHrwC7Absm//kVoNhmrIBZDLwEvJz89YrKj0h+URkSKTTGLQF2xCtGbSXpy+iOtcFKAB8ArwGvJ//5Cib+mdVUIjJoKkMiQWDcUmBnvFK0bYdf2wBDLSbzo2a8HZ4XAQuBd4D/Aa9rxUekMKkMiQSZcR1gUzoXpLZfW1O41yNtwFvlWZj8tajD4zpMvNliNhHJMZUhEemZd5v/5nhlaWLy16QOjzsej8X+qJEEsBL4Ivnr8w6P234tBd4HFmPirZZyiojPqAyJyOAZtwiYgFeMJgDDgdLkr5IOj0t7+foQvNNTG4DG5D97e9z2zwZgGe1FZ5lWdERkIFSGREREJNA0KFJEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAk1lSERERAJNZUhEREQCTWVIREREAu3/AyImmxaY60HKAAAAAElFTkSuQmCC" alt="" />

同时不同Section都有自己的特性,是A.仅在Ram中,还是B.仅在Flash中,还是C.两者都占用。

优化的首要目标是C情况,如果能将其从Ram中移出,仅在Flash中使用,那最好不过了。不过肯定会降低速度。

其次优化A情况,静态变量改成动态分配。针对变量分配浪费情况:不需要的结构体成员、变量类型紧凑等等。

最后是B情况,去掉冗余Log信息,将inline类型函数改成普通函数等等。

3.2 逐section、symbol分析

输出详细信息到Excel中,便于逐个排除。

使用Python分析ELF文件优化Flash和Sram空间的案例

3.3 查看symbol细节汇编和C混合

提供查看某一符号详细信息:

#################################### iface_cb ####################################
0ffc299c <iface_cb>:
{
ffc299c: b510 push {r4, lr}
router = net_if_ipv6_router_find_default(iface, NULL);
ffc299e: movs r1, #
ffc29a0: f7fa fb4e bl ffbd040 <net_if_ipv6_router_find_default>
}
ffc29a4: bd10 pop {r4, pc} 0ffc29a6 <net_shell_cmd_mem>:

4. 优化记录

4.1 通过const修饰变量,将变量从datas转移到rodata

由于Section datas既占用了Flash又占用了Sram,存在一些变量可以修改成const类型,即只读变量。

就可以将此Symbol转移到rodata区域,使用的时候从Flash读取。

4.2 通过k_malloc从mem pool中动态申请内存

申请静态大变量,简单省事不易错,但是浪费了有限的Ram空间。

如果可以通过k_malloc从Mem pool中申请,将有助于提高Sram的利用率。

4.3 删除冗余结构体成员

比如struct uart_driver_api中很多成员,没有实现,也不会使用到。将其中部分成员注释掉,有助于降低结构体实例大小。

4.4 使用尽量小的数据类型

一个标志位这种情况就没有必要使用int32这样的类型了。

4.5 inline类型函数的废弃

在CPU速度较慢但是ROM空间较大的系统中,使用inline有助于利用空间换时间。

但是在空间非常紧张的系统中,这就变成了缺点。将inline修饰符去掉,该成普通函数,将节省空间,虽然会增加函数调用开销。

4.6 控制Log使用量

Log存在分级,所以不需要的Log就不需要编译。

在量产的时候,关闭Log,节省的空间非常可观。

4.7 控制宏函数的使用

和inline类型函数相似,宏函数也是用空间换时间。这在空间紧张的系统反而是个劣势。

5. 结语

当然优化的路没有尽头,边走边记录吧。

6 补充

1.《C语言程序代码优化11种使用方法