ZHCUCO7B December   2024  – November 2025 F29H850TU , F29H859TU-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1引言
  5. 2性能优化
    1. 2.1 编译器设置
      1. 2.1.1 启用调试和源代码交叉列
      2. 2.1.2 优化控制
      3. 2.1.3 浮点数学
      4. 2.1.4 定点除法
      5. 2.1.5 单精度与双精度浮点
      6. 2.1.6 链接时优化 (LTO)
    2. 2.2 存储器设置
      1. 2.2.1 从 RAM 执行代码
      2. 2.2.2 从闪存执行代码
      3. 2.2.3 数据放置
    3. 2.3 代码结构和配置
      1. 2.3.1 内联
      2. 2.3.2 内联函数
      3. 2.3.3 易失性变量
      4. 2.3.4 函数参数
      5. 2.3.5 启用更广泛的数据访问
      6. 2.3.6 自动代码生成工具
      7. 2.3.7 准确剖析代码
    4. 2.4 应用代码优化
      1. 2.4.1 SDK 优化库
      2. 2.4.2 使用库优化代码尺寸
      3. 2.4.3 C29 特别指令
      4. 2.4.4 C29 并行性
      5. 2.4.5 首选 32 位变量和写入
      6. 2.4.6 编码风格及其对性能的影响
  6. 3参考资料
  7. 4修订历史记录

使用库优化代码尺寸

应用可能包含预编译库,但可能不会使用这些库中的所有函数。要确保链接器排除各库和应用代码中未使用的函数,请确保两者均使用以下编译器选项构建:

-ffunction-sections

然后将每个函数放置在特定代码段中,如 .text.<function_name>,否则将每个函数放置在 .text 中。

注: 使用 __attribute__((section)) 将代码放入相应段中。-ffunction-sections 不会影响具有 section 属性的对象。在这种情况下,如果用户将多个函数分组到同一个代码段中,即使只使用其中一个函数,也会将映射到该部分的所有函数都链接到最终的可执行文件中。