2

我一直在关注 atmel 的 j lynch 教程,用于为 at91sam7s256(微控制器)开发小程序。我做了一些修改并使用 arm-none-eabi 而不是 arm-elf(旧的)。默认情况下,我发现 gcc 编译假设 -march=armv4t 即使没有提及任何有关芯片的内容。如果我使用 -mcpu=arm7tdmi 会有多大区别?

即使在谷歌上搜索了很多,我也找不到详细的教程来解释所有可能的命令,如选项,包括单独的链接器选项、汇编器和 objcopy 选项,如 -MAP 等。

你能提供任何解释所有可能性的材料吗?

4

1 回答 1

1

提供有关特定处理器的信息为编译器提供了额外的信息,用于选择最有效的指令组合以及调度这些指令的最有效方式。显式指定 -mcpu 会产生多少性能差异,这在很大程度上取决于特定处理器。可能没有任何区别——唯一知道的方法就是测量。

但总的来说 - 如果您正在为特定设备构建特定映像,那么您应该为编译器提供尽可能多的信息。

注意: 您当前的 gcc 实例编译假设 -march=armv4t - 这当然不是所有 arm gcc 工具链的通用保证。

于 2013-08-05T08:09:20.947 回答