嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境

上传人:E**** 文档编号:89557091 上传时间:2019-05-27 格式:PPT 页数:28 大小:201.50KB
返回 下载 相关 举报
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境_第1页
第1页 / 共28页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境_第2页
第2页 / 共28页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境_第3页
第3页 / 共28页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境_第4页
第4页 / 共28页
嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境》由会员分享,可在线阅读,更多相关《嵌入式系统原理及应用开发 教学课件 ppt 作者 陈渝 第7章 嵌入式Linux开发环境(28页珍藏版)》请在金锄头文库上搜索。

1、第7章 嵌入式Linux开发环境,第7章 嵌入式Linux开发环境,7.1 GNU Tools 7.2 项目管理 7.3 调试器,7.1 GNU Tools,GNU Tools综述 GCC 编译与链接 GCC 工具介绍 C语言库 ELF文件格式,GNU Tools综述,GNU Tools是Linux环境下的开发工具,用于代码的生成。GNU Tools的重要组成部分是GCC。GCC 是GNU Compiler Collection 的缩写,是一个非常优秀的跨平台编译器集合,支持x86、ARM、MIPS 和PowerPC 等多种目标平台,支持C、C+、Java、ADA、Fortran 和Pasca

2、l 等多种高级语言。,GNU Tools综述,GNU Tools综述,GNU Tools综述,GNU Tools是Linux环境下的开发工具,用于代码的生成。GNU Tools的重要组成部分是GCC。GCC 是GNU Compiler Collection 的缩写,是一个非常优秀的跨平台编译器集合,支持x86、ARM、MIPS 和PowerPC 等多种目标平台,支持C、C+、Java、ADA、Fortran 和Pascal 等多种高级语言。,GNU Tools综述,预处理 编译 汇编 链接,GCC 编译与链接,# gcc hello.c -o hello # ./hello Hello wor

3、ld!,预处理 # gcc -E hello.c -o hello.i 编译和汇编 # gcc -c hello.i -o hello.o 链接 # gcc hello.o -o hello,一步完成:,分布完成:,/* hello.c */ #include int main(void) printf (“Hello world!n“ ); return 0; ,GCC 编译与链接,一步完成: # gcc foo1.c foo2.c -o foo,源程序: foo1.c foo2.c,多步完成: # gcc -c foo1.c -o foo1.o # gcc -c foo2.c -o foo

4、2.o # gcc foo1.o foo2.o -o foo,归档工具ar,ar 工具用于建立、修改、提取归档文件(archive)。一个归档文件是包含多个文件的单个文件(也可以把它认为是一个库文件),其结构保证了可以从中检索并得到原始的被包含文件(称做此归档文件的成员)。被包含的原始文件的内容、模式(权限)、时间戳、所有者和组等属性都保存在归档文件中,并且可在提取后,恢复原始文件的相关属性。,ar - p mod relpos archive member .,移除符号工具strip,strip工具用于去除文件中的符号。使用strip既可以移除目标中文件中的某个符号,也可以移除整个节。使用s

5、trip,至少要有一个输入文件,也可以输入一个文件列表。,strip -F bfdname |-target=bfdname -I bfdname |-input-target=bfdname -O bfdname |-output-target=bfdname -s|-strip-all -S|-g|-d|-strip-debug -K symbolname |-keep-symbol=symbolname -N symbolname |-strip-symbol=symbolname -x|-discard-all -X |-discard-locals -R sectionname |-

6、remove-section=sectionname -o file -p|-preserve-dates -v |-verbose -V|-version -help objfile.,列出文件符号工具nm,nm工具的功能是列出目标文件中的符号,这样可以帮助程序员分析可执行程序,获得目标文件中的符号信息和它的属性。,nm -a | -debug-syms -g | -extern-only -B -C | -demangle -D | -dynamic -s | -print-armap -A | -o | -print-file-name -n | -v | -numeric-sort -

7、p | -no-sort -r | -reverse-sort -size-sort -u | -undefined-only -t radix | -radix= radix -P | -portability -target= bfdname -f format | -format= format -defined-only -l | -line-numbers -no-demangle -V | -version -help object-file .,目标文件复制工具objcopy,objcopy工具用来把某种格式的目标文件内容进行转换,并输出为另一种格式的目标文件。objcopy使用

8、GNU BFD库读写目标文件,通过这个BFD库,objcopy能够以一种不同于源目标文件的格式来生成目标文件。,objcopy -F bfdname | -target= bfdname -I bfdname | -input-target=bfdname -O bfdname | -output-target= bfdname -S | -strip-all -g | -strip-debug -K symbolname | -keep-symbol= symbolname -N symbolname | -strip-symbol= symbolname -L symbolname | -

9、localize-symbol= symbolname -W symbolname | -weaken-symbol= symbolname -x | -discard-all -X | -discard-locals -b byte | -byte= byte -i interleave | -interleave= interleave -R sectionname | -remove-section= sectionname -p | -preserve-dates -debugging -gap-fill= val -pad-to= address -set-start= val -a

10、djust-start= incr -change-address= incr -change-section-address= section=,+,- val -change-warnings -no-change-warnings -set-section-flags= section= flags -add-section= sectionname= filename -change-leading char -remove-leading-char -weaken -v | -verbose -V | -version -help input-file outfile,目标文件信息工

11、具objdump,objdump 工具用于显示一个或多个目标文件的信息。由其选项来控制显示哪些特定的信息。,objdump -a | -archive-headers -b bfdname | -target= bfdname -debugging -C | -demangle -d | -disassemble -D | -disassemble-all -disassemble-zeroes -EB | -EL | -endian=big | little -f | -file-headers -h | -section-headers | -headers -i | -info -j s

12、ection | -section= section -l | -line-numbers -S | -source -m machine | -architecture= machine -p | -private-headers -r | -reloc -R | -dynamic-reloc -s | -full-contents -stabs -t | -syms -T | -dynamic-syms -x | -all-headers -w | -wide -start-address= address -stop-address= address -prefix-addresses

13、-noshow-raw-insn -adjust-vma= offset -version -help object-file.,C语言库,在嵌入式程序的C语言程序的开发中,C语言库是应用程序所依赖的基础。在C语言库中,提供一些C语言中程序运行的基础,包括标准的库函数,如:printf、malloc、字符串处理等基本函数操作。,ELF文件格式,ELF(Executable and Linking Format,可执行链接格式)是UNIX系统实验室(USL)作为应用程序二进制接口(Application Binary Interface,ABI)而开发和发布的。工具接口标准委员会(TIS)选择了

14、正在发展中的ELF标准作为工作在32位INTEL体系上不同操作系统之间可移植的二进制文件格式。 ELF文件格式包括三种主要的类型: 可执行文件 可重定向文件(*.o) 共享库(*.so),ELF文件格式,ELF文件从链接器(linker)的角度看,是一些节(sections)的集合;从程序装载器(loader)的角度看,它是一些段(segments)的集合。 ELF格式的程序和共享库具有相同的结构,只是段的集合和节的集合上有些不同。,7.2项目管理,工程管理工具Make与Makefile 版本控制,工程管理工具Make与Makefile,/* main.c */ #include “hello.h“ int main (int argc,char* argv) hello(argc,argv); return 0; /* hello.c */ #include int hello(int argc,char* argv) int i; printf (“Hello world!n“); for(i = 0;i argc; i+) printf(“argv%d = %sn“,i,argvi); return 0; /* hello.h */ int hello(int argc,char* argv

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号