交叉编译环境
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
10.1.4 交叉调试
嵌入式系统的特点:
调试器和被调试进程运行在不同的机器上 调试器通过某种通信方式与被调试进程建立联系,如串口、并口、 网络、DBM、JTAG或者专用的通信方式。 在目标机上一般会具备某种形式的调试代理,它负责与调试器共同 配合完成对目标机上运行着的进程的调试。 目标机可能是某种形式的系统仿真器
交叉开发简介
交叉开发环境的组成要素 交叉编译与链接
交叉调试
交叉编译环境建立
开源GNU交叉开发环境
arm-linux-gcc是交叉 编译器 arm-linux-ld是 交叉链接器。
交叉工具链展开 常用工具介绍 主要工具使用
GNU交叉工具链
实验
任务1:交叉开发环境的建立
任务2:交叉开发工具的使用
任务1 注意事项
10.1.1 为什么需要交叉开发
交叉开发环境
10.1.2 交叉开发环境的组成要素
宿主机 目标机 交叉工具
一个编译器,它是编译器工具链前端的一部分。 一个 汇编器,它是编译器工具链后端的一部分。 一个 链接器,它是编译器工具链后端的另一部分。 用于处理可执行程序和库的一些基本工具,比如strings。
第十章
交叉编译环境
本章目标
嵌入式系统的开发环境是什么; 能够熟练使用掌握交叉编译环境建立的方法; 如何进行交叉编译。
本章结构
为什么需要交叉开发 交叉开发简介
交叉开发环境的组成要素 交叉编译与链接
交叉调试
交叉编译环境建立
开源GNU交叉开发环境 交叉工具链展开 常用工具介绍 主要工具使用
GNU交叉工具链
10.1.3 交叉编译与链接
交叉编译器和交叉链接器是能够在宿主机上运行,并 且能够生成在目标机上直接运行的二进制代码的编译 器和链接器 例如在基于ARM体系结构的gcc交叉开发环境中
arm-linux-gcc是交叉编译器 arm-linux-ld是交叉链接器。
10.1.4 交叉调试
交叉调试(Cross Debug)又常常被称为远程调试( Remote Debug),是一种允许调试器以某种方式控制 目标机上被调试进程的运行方式,并具有查看和修改 目标机上内存单元、寄存器以及被调试进程中变量值 等各种调试功能的调试方式。
10.2 开源GNU交叉开发环境
GNU目前已经推出的软件主要由Emacs──功能强大 的编辑环境,GCC──性能优异的多平台的C,C++, Fortran编译器和其他40多种软件。 其中GCC的成功为GNU带来了前所未有的影响。 GCC是一种可以在11种硬件平台上编译出可执行程序 的超级编译器,而且其执行效率更是惊人,与一般的 编译器相比平均效率要高20%-30%。
执行命令, 将把arm-linux-gcc( 版本2.95.3 和3.4.1) 分别安装 到/usr/loca/arm/2.95.3 和/usr/loca/arm/3.4.1 目录
10.3.2 常用工具介绍
名称 arm-linux-as arm-linux-ar arm-linuxran-lib arm-linux-ld arm-linuxobjdump inux-readelf arm-linux-gcc arm-linux-g++ 归属 binutils binutils binutils binutils binutils binutils binutils binutils gcc gcc 作用 编译ARM汇编程序 把多个.o合并成一个.o或静态库(.a) 为库文件建立索引,相当于arm-linux-ar-s 连接器(Linker), 把多个.o或库文件连接成一个可执行 文件 查看目标文件(.o)和库(.a)的信息 转换可执行文件的格式 去掉elf可执行文件的信息. 使可执行文件变小 读elf可执行文件的信息 编译.c或.S开头的C程序或汇编程序 编译c++程序
10.3.1 交叉工具链展开
arm-linux-gcc-2.95.3.tgz 2.95.3版本的arm gcc交叉编译工具,一般我们使用它编译 linux2.4.x版本的内核源码; 安装 #tar xvfz arm-linux-gcc-2.95.3.tgz –C / arm-linux-gcc-3.4.1.tgz 3.4.1版本的arm gcc交叉编译工具,一般我们使用它编译 linux2.6.x版本的内核源码; #tar xvfz arm-linux-gcc-3.4.1.tgz –C /
10.3.3 主要工具使用
arm-linux-gcc
arm-linux-ar
arm-linux-ranlib
arm-linux-objdump
arm-linux-readelf arm-linux-strip arm-linux-copydump
本章总结
交叉编译环境中包括 宿主,目标机的角色
为什么需要交叉开发
提示1:
注意交叉工具链建立在哪个目录
任务2 注意事项
提示1:
注意交叉工具使用的命令参数
任务1 注意事项
提示1:
注意配置文件加载 确定交叉编译工具已经建立
任务2 注意事项
提示1:
NFS服务设置中防火墙是否关闭。
任务3 注意事项
提示1:
文件系统内容的获取方式。
10.3 GNU交叉工具链
构建交叉编译工具链方法
方法一 分步编译和安装交叉编译工具链所需要的库和源代码 ,最终生成交叉编译工具链。 方法二 通过Crosstool脚本工具来实现一次编译生成交叉编译 工具链 方法三 直接通过网上()下载已经制作 好的交叉编译工具链。
10.1.1 为什么需要交叉开发
台式软件从“源码程序”到“机器码文件”的过程:
10.1.1 为什么需要交叉开发
嵌入式软件从“源码程序”到“机器码文件”的过程 :
10.1.1 为什么需要交叉开发
需要交叉开发环境(Cross Development Environment)的支持是嵌入式应用软件开发时的一个 显著特点 交叉开发环境是指编译、链接和调试嵌入式应用软件 的环境 它与运行嵌入式应用软件的环境有所不同,通常采用 宿主机/目标机模式。