文档详情

第5章交叉开发环境祥解.ppt

发布:2016-11-02约6.49千字共41页下载文档
文本预览下载声明
* Linux内核的源代码结构 * 第5章 交叉开发环境及内核编译 5.1 交叉开发环境介绍 5.2 交叉开发工具链 5.3 主机开发环境配置 5.4 启动目标板 5.5 应用程序的远程交叉调试 5.6 Bootloader介绍 5.7 内核的编译 * 5.1 交叉开发环境介绍 5.1.1 交叉开发概念模型 绝大多数的应用软件开发都是以本地方式进行的,即本机(HOST)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板子系统)运行开发工具和调试工具。 * 下载内核镜像 HOST 内核映像 根文件系统 TARGET 内核映像 在主机上,可以安装开发工具,编辑、编译目标板的Linux引导程序、内核和文件系统,然后在目标板上运行。 通常这种在主机环境下开发,在目标板上运行的开发模式叫做交叉开发。一方面开发者可以在熟悉的主机环境下进行程序开发;另一方面又可以在目标板上运行调试程序,可以避免受到目标板硬件的限制。 挂接NFS文件系统 图5-1 交叉开发模型 各种连接方式 * 5.1.2 目标板与主机之间的连接 串口连接 优点:使用简单 缺点:通讯速率慢,不适合大数据量传输 以太网接口 优点:高度灵活,相对简单,易于实现 缺点:驱动程序实现较麻烦 USB接口 优点:即插即用,通讯速度快 缺点:USB设备区分主从端,分别要有不同的驱动程序 JTAG接口 用于芯片内部的测试及对系统进行仿真测试 * 5.1.3 文件传输 串口传输方式 通过minicom或windows超级终端等工具都可以通过串口发送文件。通常波特率设置为:115200bit/s,8bit数据位,不带校验位。 网络传输方式 一般是基于TFTP协议,它是基于UDP协议传输。 USB接口传输方式 分为主从设备,主机端为主设备端,目标板为从设备端。 JTAG接口传输方式 JTAG仿真器与主机之间的连接通常通过串口、并口、以太网或USB接口。 移动存储设备 软盘、CDROM、USB等存储介质。 * 5.1.4 网络文件系统 网络文件系统(NFS,Net File System)允许一个系统在网络上共享目录和文件。Linux支持NFS,并且可以配置启动NFS网络服务。 NFS具有以下优点: 本地工作站可以使用更少的磁盘空间; 用户可以通过网络访问共享目录; 软驱、CDROM等存储设备可以在网络上共享使用; NFS至少有一台服务器和一台客户端两部分。 NFS的这些优点正好适合于嵌入式系统的开发。目标板没有足够的存储空间,Linux内核挂接网络根文件系统可以避免使用本地存储介质,快速建立Linux系统。 * 5.2 交叉开发工具链 掌握嵌入式开发工具链的使用是进行嵌入式开发的前提条件之一 与主流开发工具类似,嵌入式交叉开发工具也包括 交叉编译器,编译器能够把一个源程序编译生成一个由机器语言构成的可执行程序。虽然交叉编译器本身也在主机上运行,但编译生成的不是主机认识的机器语言,而是目标机能够识别的机器语言。 调试工具,即能够对执行程序进行源码或汇编级调试的软件 软件工程工具,用于协助多人开发或大型软件项目的管理的软件 * 5.2.1 相关工具链软件 GCC是编译器,不但支持C/C++语言,而且支持FORTRAN、JAVA等语言,对于C/C++语言的完整支持,需要支持glibc库; * BINUTILS是二进制程序处理工具,包括链接器、汇编器等目标程序处理的工具; GLIBC是应用程序编程的函数库软件包,可以编译生成静态库和共享库; GDB是调试工具,对程序进行源码调试; Crosstool软件实际上是一套脚本,用于编译和测试大多数体系结构的各种GCC和glibc的版本组合。 * 5.2.2 嵌入式系统开发的全过程 * 对于ARM体系结构的编译器,不少网站提供下载。免费提供的工具链是包括Binutils和GCC,但都不提供gdb调试器。下面介绍几个ARM Linux免费网站。 (1) .uk/(ARM Linux官方网站) ARM Linux工具链下载的HTTP和FTP地址: http:// .uk/pub/armlinux/toolchain ftp:// .uk/pub/linux/arm/toolchain (2) (Montavista公司主页网站) Montavista Linux能够支持各种体系结构的开发板,只对部分硬件平台提供预览版。 5.2.3 获取交叉开发工具链 * 以ARM Linux站点提供的cross-3.3.2.tar.bz2包为例: tar –jxvf cross-3.3.2.tar.bz2 这个工具链应该
显示全部
相似文档