1 / 201
文档名称:

程序设计基础.ppt

格式:ppt   大小:900KB   页数:201页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

程序设计基础.ppt

上传人:endfrs 2017/4/1 文件大小:900 KB

下载得到文件列表

程序设计基础.ppt

相关文档

文档介绍

文档介绍:程序设计基础程序设计基础 GNU GNU 集成编译环境集成编译环境 GCC(piler GCC(piler Collection) Collection) 是一种面向嵌入式领域、支持多种是一种面向嵌入式领域、支持多种编程语言、支持多种编程语言、支持多种 CPU CPU 的交叉编译工具。的交叉编译工具。本章主要介绍: 本章主要介绍: ?? GCC GCC 编译过程编译过程?? C/C++ C/C++ 交叉编译器交叉编译器 arm-elf-gcc arm-elf-gcc ??交叉汇编器交叉汇编器 arm-elf-as arm-elf-as ??交叉连接器交叉连接器 arm-elf-l d arm-elf-l d ??工程管理器工程管理器 make make ??汇编语言编程汇编语言编程??混合编程混合编程 GNU GCC GNU GCC 简介简介 GNU GCC GNU GCC 是一套面向嵌入式领是一套面向嵌入式领域的交叉编译工具,支持多种编程语域的交叉编译工具,支持多种编程语言、多种优化选项并且能够支持分步言、多种优化选项并且能够支持分步编译、支持多种反汇编方式、支持多编译、支持多种反汇编方式、支持多种调试信息格式种调试信息格式, ,目前支持目前支持 X86 X86 、、 ARM7 ARM7 、、 StrongARM StrongARM 、、 PPC4XX PPC4XX 、、 MPC8XX MPC8XX 、、 MIPS R3000 MIPS R3000 等多种等多种 CPU CPU 。。 GNU GCC GNU GCC 的基本功能包括: 的基本功能包括: ??输出预处理后的输出预处理后的 C/C++ C/C++ 源程序(展开头源程序(展开头文件和替换宏) 文件和替换宏) ??输出输出 C/C++ C/C++ 源程序的汇编代码源程序的汇编代码??输出二进制目标文件输出二进制目标文件??生成静态库生成静态库??生成可执行程序生成可执行程序??转换文件格式转换文件格式 GCC GCC 组成组成 1. C/C++ 1. C/C++ 交叉编译器交叉编译器 arm-elf-gcc arm-elf-gcc arm-elf-gcc arm-elf-gcc 是编译的前端程序,它通过调是编译的前端程序,它通过调用其他程序来实现将程序源文件编译成目标文件用其他程序来实现将程序源文件编译成目标文件的功能。的功能。编译时,它首先调用预处理程序编译时,它首先调用预处理程序( ( cpp cpp ) )对输对输入的源程序进行处理,然后调用入的源程序进行处理,1 cc1 将预处理后将预处理后的程序编译成汇编代码,最后由的程序编译成汇编代码,最后由 arm-elf-as arm-elf-as 将汇将汇编代码编译成目标代码。编代码编译成目标代码。 arm-elf-gcc arm-elf-gcc 具有丰富的命令选项,可以控具有丰富的命令选项,可以控制编译的各个阶段,满足用户的各种编译需求。制编译的各个阶段,满足用户的各种编译需求。 2 2. .汇编器汇编器 arm-elf-as arm-elf-as arm-elf-as arm-elf-as 将汇编语言程序转换为将汇编语言程序转换为 ELF (Executable and Linking Format ELF (Executable and Linking Format , , 执行时链接文件格式执行时链接文件格式) )格式的可重定位目标格式的可重定位目标代码,这些目标代码同其它目标模块或函代码,这些目标代码同其它目标模块或函数库易于定位和链接。数库易于定位和链接。 arm-elf-as arm-elf-as 产生一个交叉参考表和一产生一个交叉参考表和一个标准的符号表,产生的代码和数据能够个标准的符号表,产生的代码和数据能够放在多个区放在多个区(Section) (Section) 中。中。 3. 3. 连接器连接器 arm-elf-ld arm-elf-ld arm-elf-ld arm-elf-ld 根据链接定位文件根据链接定位文件 Linkcmds Linkcmds 中的代码区、数据区、中的代码区、数据区、 BSS BSS 区和栈区等定位区和栈区等定位信息,将可重定位的目标模块链接成一个单信息,将可重定位的目标模块链接成一个单一的、绝对定位的目标程序。一的、绝对定位的目标程序。该目标程序是该目标程序是 ELF ELF 格式,并且可以包含格式,并且可以包含调试信息。调试信息。 arm-elf-ld arm-elf-ld 会产生一个内存映象文件会产生一个内存映象文件 , ,该文件显示所有目标模块、区和符该文件显示所有目标模