咨询热线:0362-513582008

14|万博游戏平台

本文摘要:本章首先介绍ARM编译器及其优化中C编译器优化代码时遇到的一些问题。为了编写高效的C语言源代码,C编译器必须了解更改了哪些格式的代码,与编译器相关的处理器结构的允许,以及类似C编译器的允许等。处理器类型可以自由选择-cpuname编译器选项。

选项

本章帮助读者为ARM处理器编写有效的C代码。本章介绍的一些技术不仅适用于ARM处理器,还适用于其他RISC处理器。本章首先介绍ARM编译器及其优化中C编译器优化代码时遇到的一些问题。

解释这些问题有助于提高持续执行速度和增加代码大小,从而更新更有效的C源代码。本章假定读者熟悉C语言,对汇编语言编程有科学知识。有关ARM编程的详细信息,请参阅本书的相关章节。

14.1C编译器和优化本章介绍了C编译器在代码优化时遇到的一些问题。为了编写高效的C语言源代码,C编译器必须了解更改了哪些格式的代码,与编译器相关的处理器结构的允许,以及类似C编译器的允许等。14.1.1自由选择编译器的处理器结构在创建编译器C源文件时,必须登录到编译器的正确处理器类型。

这使编译器代码能够充分利用处理器的硬件结构,包括半角读取(HalfwordLoad)、保存命令(StoreInstructions)和命令调度(InstructionScheduling)的相反情况。因此,编译程序时,必须尽可能准确地告诉编译器在什么类型的处理器上运行。

一些处理器类型编译器(如SA-1100)可用于与该类型处理器相同的指令集:基本处理器(例如,SA-100可用于StrongARM)。登录到目标处理器后,代码可能与其他ARM处理器不兼容。例如,如果编译器登录到ARMv6体系结构的代码,则可能无法在ARM920T的处理器上工作(如果用于ARMv6体系结构的特定说明)。处理器类型可以自由选择- cpuname编译器选项。

此选项可分解用作特定ARM处理器或体系结构的代码。如果Name是处理器名称输出名称,则必须与ARM数据表右侧的图片完全匹配(例如ARM7TDMI)。

此选项不拒绝允许通配符。有效值为所有ARM6或更高版本的ARM处理器。

处理器操作员的自由选择不会自由选择所需的体系结构、浮点单元(FPU)和存储结构。部分- cpu自由选择隐式- fpu自由选择。例如,如果用于- arm选项编译器,则为- cpuARM1136JF-S-S隐式- fpuvfpv2。

隐式FPU是- cpu选项之前的显式FPU选项,这种选项只在区域命令行中常见。用于- fpu选项和- cpu选项未登录时的- fpusoftvfp。

选项

14.1.2调试选项编译C源代码程序时,设置调试选项会对最终代码的大小和持续执行效率产生很大影响。由于具有调试信息的代码光盘,调试程序时需要正确显示变量或设置断点,因此包含许多验证码和数据。因此,为了最大限度地提高程序执行效率和增加代码大小,必须在编写编译器源文件时删除编译器的调试选项。以下选项登录到调试表单分解方法。

处理器

-g (-debug):此选项创建一个调试表单,用于分解当前编译器。编译器分解的代码是相同的,与-g选项无关。唯一的区别是调试表是否存在。编译器否代码部署优化将注册为-O选项。

在配置文件中,-g的选项与-g-dwarf2 - debug_macros相同。注意编译器时,只能用在-g选项上,不能用在优化选项上,编译器不会发出警告。- no_debug:此选项禁止当前编译器分解调试表单。这是设定档选项。

-no _ debug _ macros:与-g一起使用时,该选项禁止分解预处理程序宏定义调试表条目(Entry)。这不会增加调试磁盘的大小。-gt-p是-gtp的同义词。- debug_macros与-g一起使用时,该选项将成为分解预处理程序宏定义的调试表单项目。

这是一个配置文件选项,不会减少调试磁盘的大小。一些调试器将忽略预处理程序项目。

14.1.3优化选项用于-Onum自由选择编译器的优化级别。优化级别如下: -O0:重新启动所有优化,但非常简单的代码编号除外。使用此编译器选项可以获得最需要的优化信息。

-O1:重新启动严重影响调试效果的优化功能。对于此编译器选项,编译器不会删除程序中未使用的内嵌函数和静态函数。此选项与- debug一起使用时,代码密度会提高,从而获得最佳调试视图。


本文关键词:优化,用于,调试,代码,万博游戏平台

本文来源:万博游戏官网-www.chinazuyun.com