我一直在关注atmel的j lynch教程,为at91sam7s256(微控制器)开发小程序。我做了一点修补,并使用了arm-none-eabi而不是arm-elf(旧的)。默认情况下,我发现gcc编译假设-march = armv4t,即使没有提到芯片的任何内容。如果我使用-mcpu = arm7tdmi会有多大的不同?
即使在google上搜索很多我也找不到详细的教程,它可以解释所有可能的命令,例如选项,包括单独的链接器选项,汇编器和objcopy选项,如-MAP等。
在解释所有可能性的情况下,您能提供任何此类材料吗?
答案 0 :(得分:1)
提供有关特定处理器的信息,为编译器提供了选择最有效的指令组合的附加信息,以及调度这些指令的最有效方法。它在很大程度上取决于特定处理器明确指定-mcpu所产生的性能差异。没有什么区别 - 唯一知道的方法就是衡量。
但总的来说 - 如果您要为特定设备构建特定图像,那么您应该为编译器提供尽可能多的信息。
注意: 你当前的gcc实例编译假设-march = armv4t - 这肯定不是所有arm gcc工具链的通用保证。