第3章嵌入式编程基础知识导论.ppt

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章 嵌入式编程基础知识;3.1 交叉编译工具选项说明;1、 GCC介绍; GCC将源代码程序转变为可执行程序的过程分为四个相互关联的步骤:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和链接(Linking)。;2、gcc的执行过程; $ gcc file.c (针对C语言源程序) 执行完成后,生成默认的可执行文件a.out。 若想指定所生成可执行文件的名称可用–o选项 $ gcc file.c -o myfile; gcc hello.c -o hello 分步执行: gcc -E hello.c -o hello.i (预处理) gcc -S hello.i -o hello.a (编译) gcc -c hello.a -o hello.o (汇编) gcc hello.o -o hello (链接) ;3.1.1 arm-linux-gcc选项 ; 4、优化选项 -O、-O1:对编译、链接过程进行优化,产生的可执行代码的执行效率可以提高,但是速度会慢一些。 -O2:比-O更好的优化,但过程会更慢。 -O0:不优化。;5、连接器选项 -llibrary:ld链接程序链接函数库中名为library的文件。 库文件的真正名字是“libname.a”。ld链接程序会自动链接常用的函数库文件,对于一些特殊的函数库文件,例如“libm.a”,和用户自定义的函数库文件需要使用该参数。;5、连接器选项;静态库和动态库的区别: 静态库:程序在编译链接时把库的代码链接到可执 行文件中。此时,库的内容是可执行文件 的一部分。缺点:占用磁盘空间。 动态库:链接时不把库的代码写入可执行文件,只 写入整个库函数的入口地址。程序在执行 时凭入口地址找到代码运行。 注意:既有静态库又有动态库时优先使用动态库。 ;5、目录选项;3.1.2 arm-linux-ld选项;2、使用连接脚本设置地址 arm-linux-ld -Ttimer.lds –o timer_elf head.o init.o interrupt.o main.o 连接脚本的基本命令是SECTIONS命令,它描述了输出文件中各段、各文件怎么放置。段(Section)是连接脚本的基本单元。 SECTIONS{ . = 0 .text : {*(.text)} .rodata ALIGN(4) : {*(.rodata)} .data ALIGN(4) : {*(.data)} .bss ALIGN(4) : {*(.bss)} } ;命令格式 secname start ALIGN(align) (NOLOAD) : AT(ldadr) { contents } region : phdr =fill 1、secname和contents是必须的,前者用来命名这个段,后者用来确定代码中的什么部分放在这个段中。 2、start是这个段重定位的地址,也称为运行地址。如果代码中有位置相关的指令,程序在运行时,这个段必须放在这个地址上。 3、ALIGN(align):指定段的对齐要求 ;3.1.3 arm-linux-objcopy 该选项用来复制一个目标文件到另一个目标文件中,可以使用不同于源文件的格式来输出目的文件,即可以进行格式转换。 arm-linux-objcopy -O binary -S elf_file bin_file 3.1.4 arm-linux-objdump 该选项用于显示二进制文件信息,本书中常用来查看反汇编代码。 arm-linux-objdump -D elf_file dis_file arm_linux-objdump -D -b binary -m arm bin_file dis_file ;3.2 Makefile介绍; 在Linux中使用make命令来编译程序。 make在执行时, 需要一个命名为Makefile的文件。M

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档