# 二进制大小剖析
臃肿的比较大师
构建目标可让您更好地了解变更对代码大小的影响。使用它时,工具链会下载特定固件的最新成功主构建版,并将其与本地构建版进行比较(使用 臃肿 (打开新窗口) 二进制文件大小剖析器)。
TIP
这有助于分析(可能)导致以下情况的变化 px4_fmu-v2_default
以达到 1MB 闪存限制。
臃肿 必须在您的路径中,并在 cmake 配置时间PX4 docker 文件 (打开新窗口) 安装 臃肿 如图所示:
git clone --recursive https://github.com/google/bloaty.git /tmp/bloaty \ && cd /tmp/bloaty \ && cmake -GNinja . \ && ninja bloaty \ && cp bloaty /usr/local/bin/ \ && rm -rf /tmp/*
下面的示例显示了移除 mpu9250 驱动程序 px4_fmu-v2_default
.首先,它会在本地设置一个不含驱动程序的版本:
% Git 扩散
扩散 --git a/boards/px4/fmu-v2/default.px4board b/boards/px4/fmu-v2/default.px4board 索引 40d7778..2ce7972 100644
--- a/boards/px4/fmu-v2/default.px4board +++ b/boards/px4/fmu-v2/default.px4board @@ -36,7 +36,7 @@ --- a/boards/px4/fmu-v2/default.px4board config_drivers_imu_invensense_mpu9250=y + config_drivers_imu_invensense_mpu9250=n
然后使用 make target,指定要比较的目标编译 (px4_fmu-v2_default
在这种情况下):
% 生产 px4_fmu-v2_default bloaty_compare_master
...
...
...vm 大小 文件大小 -------------- --------------
[DEL] -52 MPU9250::check_null_data(无符号 int*、无符号 char) -52 [DEL]
[DEL] -52 MPU9250::test_error() -52 [DEL]
[DEL] -52 MPU9250_gyro::MPU9250_gyro(MPU9250*, char const*) -52 [DEL]
[DEL] -56 mpu9250::info(MPU9250_BUS) -56 [DEL]
[DEL] -56 mpu9250::regdump(MPU9250_BUS) -56 [DEL]
...-336 [DEL]
[DEL] -344 MPU9250_mag::_measure(ak8963_regs) -344 [DEL]
[DEL] -684 mpu9250::mpu9250(device::Device*, device::Device*, char const*, char const*, cha -684 [DEL]
[DEL] -684 MPU9250::init() -684 [DEL]
[DEL] -1000 MPU9250::measure() -1000 [DEL]
-41.3% -1011 [43 其他] -1011 -41.3% -1.0% -1.05Ki [未绘制] +24.2Ki +0.2% -1.0% -10.3Ki 共计 +14.9Ki +0.1%
这表明 mpu9250 从 px4_fmu-v2_default
将节省 10.3 kB 闪存。它还显示了不同的 mpu9250 司机