使用 STM32CubeIDE 创建的 STM32F091 项目,所有驱动都使用 LL 库。 最初我使用的是 Cube 生成的项目结构及其生成的 main.c 文件。 为了减小二进制文件大小,我将原本包含大量重复 GPIO 初始化代码的大型 GPIO 初始化函数,改为了使用一个紧凑的 const 结构体数组来存储 GPIO 和初始化信息,并通过一个小循环代码块来完成配置。 使用了一些自己的辅助库头文件,其中大量依赖 constexpr 关键字进行编译时计算和“打包”操作。 为此,我将 main.c 改为了 main.cpp,即用 C++ 编译它。 除了这个没有对项目做任何其他修改,也没有添加任何涉及浮点数等的计算。 但现在二进制文件不仅没有变小,反而大了约 10KB,其中 7KB 来自 .text 段中新增的内容: text
复制
下载
__aeabi_dsub__aeabi_dadd__aeabi_ddiv__aeabi_dmul__ieee754_log
无法解释为什么现在会出现这种情况。 查看 .map 文件,没看到是什么在使用它们。 这是啥情况呢
|