ZHCUA98E january   2018  – march 2023 TDA4VM , TDA4VM-Q1

 

  1.   摘要
  2. 1关于本文档
    1. 1.1 相关文档
    2. 1.2 商标
  3. 2将 C 源代码从 C6000 迁移到 C7000
    1. 2.1  编译器选项
    2. 2.2  原生矢量数据类型
    3. 2.3  类型限定符:near 和 far
    4. 2.4  64 位 long 类型
    5. 2.5  对控制寄存器的引用
    6. 2.6  存储器映射外设
    7. 2.7  运行时支持
    8. 2.8  迁移头文件 c6x_migration.h 的内容
      1. 2.8.1 支持的宏
      2. 2.8.2 不受支持的宏
      3. 2.8.3 传统数据类型
      4. 2.8.4 传统内在函数
    9. 2.9  伽罗瓦域乘法指令
    10. 2.10 有关迁移代码的性能注意事项
      1. 2.10.1 UNROLL Pragma
      2. 2.10.2 子矢量访问
      3. 2.10.3 16x16 和 16x32 位乘法
      4. 2.10.4 __x128_t 类型
      5. 2.10.5 无符号数组偏移
      6. 2.10.6 流引擎和流地址生成器
      7. 2.10.7 其他优化指南
  4. 3主机仿真
  5. 4修订历史记录
    1.     29
    2.     30

编译器选项

将 C6000 代码移植到 C7000 时更改以下编译器命令行选项:

  • 将 --silicon_version 选项设置为 --silicon_version=7100。(或将 -mv6600、-mv6740 或 -mv6400+ 选项替换为 -mv7100。)
  • --interrupt_threshold (-mi) 选项将被忽略。C7000 C 代码始终可中断。
  • --speculate_loads (-mh) 选项将被忽略。C7000 编译器对除 ioport 变量/地址之外的所有加载项使用推测加载指令。
  • 使用--opt_for_speed (-mf) 选项指定大小/速度权衡选项。使用表 2-1 将以前使用的 --opt_for_space (-ms) 选项更改为相应的 -mf 选项。C7000 不存在 --opt_for_space 选项。即使没有为 C6000 使用 --opt_for_space 选项,也必须使用 --opt_for_speed 选项。
表 2-1 相应的 -ms 和 -mf 选项
--opt_for_space (-ms) 级别(仅限 C6000)--opt_for_speed (-mf) 级别(C6000 和 C7000)说明
无 C6000 选项-mf5C7000 上性能最佳;代码大小可能非常大
未选择 -ms 选项-mf4C7000 上接近最佳性能;C6000 上性能最佳
-ms0-mf3优化性能
-ms1-mf2优化代码大小
-ms2-mf1代码大小接近最小
-ms3-mf0最小代码大小

考虑使用 --opt_level=3 (-O3) 编译器选项。此选项可让编译器进行高级别的优化。