二进制大小剖析
臃肿的比较大师
构建目标可让您更好地了解变更对代码大小的影响。使用它时,工具链会下载特定固件的最新成功主构建版,并将其与本地构建版进行比较(使用 臃肿 二进制文件大小剖析器)。
TIP
这有助于分析(可能)导致以下情况的变化 px4_fmu-v2_default
以达到 1MB 闪存限制。
臃肿 必须在您的路径中,并在 cmake 配置时间PX4 docker 文件 安装 臃肿 如图所示:
吁
Git 复制 --递归 https://github.com/google/bloaty.git /tmp/bloaty \
&&; CD /tmp/bloaty &&; cmake -忍者 . &&; 忍者 臃肿 &&; cp 臃肿 /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 @@
- CONFIG_DRIVERS_IMU_INVENSENSE_MPU9250=y
+ CONFIG_DRIVERS_IMU_INVENSENSE_MPU9250=n
然后使用 make target,指定要比较的目标编译 (px4_fmu-v2_default
在这种情况下):
吁
% 生产 px4_fmu-v2_default 臃肿的比较大师
...
...
...
虚拟机 尺寸 文件 尺寸
-------------- --------------
[删除] -52 MPU9250::check_null_data(无符号 int*, 无符号 烧焦) -52 [删除]
[删除] -52 MPU9250::test_error() -52 [删除]
[删除] -52 MPU9250_gyro::MPU9250_gyro(MPU9250*、 烧焦 缢*) -52 [删除]
[删除] -56 mpu9250::info(MPU9250_BUS) -56 [删除]
[删除] -56 mpu9250::regdump(MPU9250_BUS) -56 [删除]
... -336 [删除]
[删除] -344 MPU9250_mag::_measure(ak8963_regs) -344 [删除]
[删除] -684 mpu9250::mpu9250(device::Device*、 device::Device*, 烧焦 缢*, 烧焦 缢*, 混乱 -684 [删除]
[删除] -684 MPU9250::init() -684 [删除]
[删除] -1000 MPU9250::measure() -1000 [删除]
-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 司机