# 二进制大小剖析

臃肿的比较大师 构建目标可让您更好地了解变更对代码大小的影响。使用它时,工具链会下载特定固件的最新成功主构建版,并将其与本地构建版进行比较(使用 臃肿 (打开新窗口) 二进制文件大小剖析器)。

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%

这表明 mpu9250px4_fmu-v2_default 将节省 10.3 kB 闪存。它还显示了不同的 mpu9250 司机