第 3 章 程序设计基础ppt课件.ppt

第 3 章 程序设计基础ppt课件.ppt

ID:58717005

大小:655.50 KB

页数:201页

时间:2020-10-04

第 3 章 程序设计基础ppt课件.ppt_第1页
第 3 章 程序设计基础ppt课件.ppt_第2页
第 3 章 程序设计基础ppt课件.ppt_第3页
第 3 章 程序设计基础ppt课件.ppt_第4页
第 3 章 程序设计基础ppt课件.ppt_第5页
资源描述:

《第 3 章 程序设计基础ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章程序设计基础GNU集成编译环境GCC(GNUCompilerCollection)是一种面向嵌入式领域、支持多种编程语言、支持多种CPU的交叉编译工具。本章主要介绍:GCC编译过程C/C++交叉编译器arm-elf-gcc交叉汇编器arm-elf-as交叉连接器arm-elf-ld工程管理器make汇编语言编程混合编程3.1GNUGCC简介GNUGCC是一套面向嵌入式领域的交叉编译工具,支持多种编程语言、多种优化选项并且能够支持分步编译、支持多种反汇编方式、支持多种调试信息格式,目前支持X86、ARM7、StrongARM、PPC4XX

2、、MPC8XX、MIPSR3000等多种CPU。GNUGCC的基本功能包括:输出预处理后的C/C++源程序(展开头文件和替换宏)输出C/C++源程序的汇编代码输出二进制目标文件生成静态库生成可执行程序转换文件格式3.1.1GCC组成1.C/C++交叉编译器arm-elf-gccarm-elf-gcc是编译的前端程序,它通过调用其他程序来实现将程序源文件编译成目标文件的功能。编译时,它首先调用预处理程序(cpp)对输入的源程序进行处理,然后调用cc1将预处理后的程序编译成汇编代码,最后由arm-elf-as将汇编代码编译成目标代码。arm-el

3、f-gcc具有丰富的命令选项,可以控制编译的各个阶段,满足用户的各种编译需求。2.汇编器arm-elf-asarm-elf-as将汇编语言程序转换为ELF(ExecutableandLinkingFormat,执行时链接文件格式)格式的可重定位目标代码,这些目标代码同其它目标模块或函数库易于定位和链接。arm-elf-as产生一个交叉参考表和一个标准的符号表,产生的代码和数据能够放在多个区(Section)中。3.连接器arm-elf-ldarm-elf-ld根据链接定位文件Linkcmds中的代码区、数据区、BSS区和栈区等定位信息,将可重

4、定位的目标模块链接成一个单一的、绝对定位的目标程序。该目标程序是ELF格式,并且可以包含调试信息。arm-elf-ld会产生一个内存映象文件Map.txt,该文件显示所有目标模块、区和符号的绝对定位地址。它也产生交叉参考列表,显示参考每个全局符号的目标模块。arm-elf-ld支持将多个目标模块链接成一个单一的、绝对定位的目标程序,也能够依此对目标模块进行链接,这个特性称为增量链接(IncrementalLinking)。假如输入文件是一个函数库,arm-elf-ld会自动从函数库装载被其它目标模块参考的函数模块。arm-elf-ld与其它链

5、接程序相比,能提供更有帮助的诊断信息。许多链接器遇到第一个错误即放弃链接,而arm-elf-ld只要有可能都继续执行,帮助用户识别其它错误,有时甚至能获得输出代码。4.库管理器arm-elf-ararm-elf-ar将多个可重定位的目标模块归档为一个函数库文件。采用函数库文件,应用程序能够从该文件中自动装载要参考的函数模块,同时将应用程序中频繁调用的函数放入函数库文件中,易于应用程序的开发管理。arm-elf-ar支持ELF格式的函数库文件.5.工程管理器MAKEMake是用于自动编译、链接程序的实用工具,使用make后就不需要手工的编译每个

6、程序文件。要使用make,首先要编写makefile。Makefile描述程序文件之间的依赖关系,并提供更新文件的命令。在一个程序中,可执行文件依赖于目标文件,而目标文件依赖于源文件。如果makefile文件存在,每次修改完源程序后,用户通常所需要做的事情就是在命令行敲入“make”,然后所有的事情都由make来完成。6.其他实用程序目标文件格式转换工具arm-elf-objcopy支持的文件格式有H-record、S-record、ABS、BIN、COFF、ELF。例如,它能够将ELF格式文件转换为其它格式的文件,如intelH-recor

7、d格式、MotorolaS-record等。arm-elf-nm程序用于显示文件中的符号信息。3.1.2GCC编译程序的基本过程GCC编译程序的基本过程如下:arm-elf-gcc根据输入文件的后缀来确定文件的类型,然后根据用户的编译选项(包括优化选项、调试信息选项等)将其编译成相应的汇编临时文件(后缀为.s);arm-elf-as将该汇编文件编译成目标文件(后缀为.o);arm-elf-ld根据用户的链接选项(包括指定链接命令文件等)将目标文件和各种库链接起来生成可执行文件。图3-1展示了该编译过程:3.2C/C++交叉编译器arm-elf

8、-gcc3.2.1概述arm-elf-gcc是编译的前端程序,它通过调用其他程序来实现将程序源文件编译成目标文件。编译时它首先调用预处理程序(cpp)对输入的源程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。