交叉开发环境-.ppt
《交叉开发环境-.ppt》由会员分享,可在线阅读,更多相关《交叉开发环境-.ppt(54页珍藏版)》请在咨信网上搜索。
1、第4章 交叉开发环境 第4章 交叉开发环境 4.1交叉编译 4.2交叉开发环境 4.3交叉开发工具组成 4.4宿主机与目标机之间的通信方式 4.5交叉开发环境建立 4.6基于UP-NETARM2410-S开发平台交叉开发环境建立 4.7交叉编译和交叉调试实例 本章小结 第4章 交叉开发环境 4.1交 叉 编 译交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。常用的计算机软件都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译成计算机可以识别和执行的二进制代码。比如在 Windows平台上,可使用Visual C+开发环境编写程序并编译成可执行程序。这种方式下,我们
2、使用PC平台上的Windows工具开发针对Windows本身的可执行程序,这种编译过程称为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力等,例如常见的ARM平台,其一般的静态存储空间大概是1632MB,而CPU的主频大概在100500MHz之间。这种情况下,在第4章 交叉开发环境 ARM平台上进行本机编译就不太可能了。这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储空间足够的主机平台上
3、(比如PC上)编译出针对其他目标平台的可执行程序,再下载到目标平台上的特定位置上运行。可见,以这种方式开发嵌入式系统软件的过程需要相应的开发环境。于是就有了交叉开发环境的模式,即宿主机/目标机模式。第4章 交叉开发环境 4.2交叉开发环境在开发单片机系统时,需要使用一台主机外加操作系统,如Windows 2000,再装上单片机厂商提供的开发软件,即开发环境,在开发环境里面编译程序,用鼠标单击“build”快捷键,即生成的可执行程序配合仿真器还可以进行单步调试、观察寄存器等。开发工具一般是IDE(集成开发环境),它集成了编译器(用于编译目标CPU识别的机器代码)、编辑器、仿真调试器等诸多工具,如
4、果用C语言编写程序,可能还包括相应的标准C库。第4章 交叉开发环境 宿主机/目标机开发模式就是在一个CPU上运行一个程序,另一个CPU编译和调试程序。和它对应的是宿主机开发模式,就是在自己的CPU上编译和运行自己的程序,比如在PC机上用VC编译程序直接运行。因此,宿主机/目标机开发模式并不是一个新名词。交叉编译环境说明的问题和上面的一样,只是针对编译环境而言,这里的环境包括目标CPU的编译器和库文件等,至于为什么叫交叉编译,同样是因为运行编译程序的CPU不是在为自己工作,而是在编译另一个CPU的程序。这样说来,以上例子中的编译环境同样属于一个交叉编译环境(在PC机上编译单片机程序),只不过都被
5、IDE集成好了。第4章 交叉开发环境 综上所述,编译、链接和调试嵌入式应用软件的环境,它与运行嵌入式应用软件的环境有所不同,这样的环境称为交叉开发环境(Cross Development Environment)。需要交叉开发环境的支持是嵌入式软件开发时的一个显著特点。交叉开发环境模式一般如图4-1所示。图4-1 交叉开发环境模式第4章 交叉开发环境 宿主机(Host)是一台通用计算机(如PC机或者工作站),功能较强,各种Linux 发行版本可以直接在PC机上安装,功能十分强大。它不仅能够支持各种处理器和外围设备接口,而且提供了图形化的用户交互界面和丰富的开发环境,更重要的是Linux 系统性
6、能稳定。它为开发者提供了以下功能:非常稳定的多任务操作系统;丰富的设备驱动程序支持和网络工具;强大的Shell;本地编译器;编辑器;图形化的用户界面。第4章 交叉开发环境 4.3交叉开发工具组成1.交叉编译器和交叉链接器在完成嵌入式软件的编码之后,需要进行编译和链接,以生成可执行代码。由于开发过程大多是在使用Intel公司x86系列CPU的通用计算机上进行的,而目标环境的处理器芯片却大多为ARM、MIPS、PowerPC、DragonBall等系列的微处理器,这就要求在建立好的交叉开发环境中进行交叉编译和链接。交叉编译器和交叉链接器是能够在宿主机上运行,并且能够生成在目标机上直接运行的二进制代
7、码的编译器和链接器。例如在基于ARM体系结构的交叉开发环境中,arm-linux-gcc是交叉编译器,arm-linux-ld是交叉链接器。第4章 交叉开发环境 2.交叉调试器和系统仿真器嵌入式软件经过编译和链接后即进入调试阶段,嵌入式软件开发过程中的交叉调试与通用软件开发过程中的调试方式有所差别。在通用软件开发中,调试器与被调试的程序往往运行在同一台计算机上,调试器是一个单独运行着的进程,它通过操作系统提供的调试接口来控制被调试的进程。在嵌入式软件开发中,调试时采用的是在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入
8、式操作系统中,调试器和被调试进程通过串口或者第4章 交叉开发环境 网络进行通信,调试器可以控制、访问被调试进程,读取被调试进程的当前状态,并能够改变被调试进程的运行状态。交叉调试(Cross Debug)又常常被称为远程调试(Remote Debug),是一种允许调试器以某种方式控制目标机上被调试进程的运行方式,并具有查看和修改目标机上内存单元、寄存器以及被调试进程中变量值等各种调试功能的调试方式。一般而言,远程调试过程的结构如图4-2所示。第4章 交叉开发环境 图4-2 远程调试结构图第4章 交叉开发环境 由上可知交叉调试典型特点如下:(1)调试器和被调试进程运行在不同的机器上,调试器运行在
9、PC或者工作站上(宿主机),而被调试的进程则运行在各种专业调试板上(目标机)。(2)调试器通过某种通信方式与被调试进程建立联系,如串口、并口、网络、DBM、JTAG或者专用的通信方式。(3)在目标机上一般会具备某种形式的调试代理,它负责与调试器共同配合完成对目标机上运行着的进程的调试。这种调试代理可能是某些支持调试功能的硬件设备(如DBI 2000),也可能是某些专门的调试软件(如gdbserver)。第4章 交叉开发环境(4)目标机可能是某种形式的系统仿真器,通过在宿主机上运行目标机的仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机
10、的区别。第4章 交叉开发环境 4.4宿主机与目标机之间的通信方式4.4.1互联通信方式1.串口通过串口可以作为控制台,向目标机发送命令,显示信息;也可以通过串口传送文件;还可以通过串口调试内核及程序。串口的设备驱动实现也比较简单。2.以太网口以太网以其高度灵活,相对简单,易于实现的特点,成为当今最重要的一种局域网建网技术,以太网IEEE 802.3通常使用专门的网络接口卡或通过系统主电路板上的电路实现。以太网使用收发器与网络媒体进行连接。收发器可以完成多第4章 交叉开发环境 种物理层功能,其中包括对网络碰撞进行检测。收发器可以作为独立的设备通过电缆与终端站连接,也可以直接被集成到终端站的网卡当
11、中。以太网可采用广播机制,所有与网络连接的工作站都可以看到网络上传递的数据。通过查看包含在帧中的目标地址,确定是否进行接收或放弃。如果证明数据确实是发给自己的,工作站将会接收数据并传递给高层协议进行处理。网络接口一般采用RJ-45 标准插头,PC机上一般都配置10M/100M以太网卡,实现局域网连接。通过以太网连接和网络协议,可以实现快速的数据通讯和文件传输。第4章 交叉开发环境 另外,目标机也可以利用远程组件来促进开发。比如内核可以通过TFTP协议下载到目标机,根文件系统(root fs)也可以通过NFS加载来代替存储在目标机上。利用NFS加载根文件系统实际上是一件非常好的事情。因为它避免了
12、频繁的复制程序修改。第4章 交叉开发环境 3.JTAG口JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路测试接口(TAP,Test Access Port),通过JTAG 测试工具对芯片的核进行测试。它是联合测试行动小组(JTAG,Joint Test Action Group)定义的一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。标准的JTAG接口是4线:TMS、TCK、TDI和TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。因为JTAG 接口的时钟一般在11
13、6 MHz之间,所以传输速率可以很快。但是实际的数据传输速度要取决于仿真器与主机端的通讯速度和传输软件。第4章 交叉开发环境 4.4.2可拔插通信方式在这种模式下,在宿主机和目标机之间没有实际的物理连接,而是主机写存储设备,如软盘、CDROM、USB盘等移动存储介质,然后再传给目标机,最后目标机启动它。在这种模式下,宿主机包括了交叉编译环境,而目标机只包括了一个小型的启动文件。其他的组件存储在一个可移动的,可以被宿主机编程的,同时又可以被目标机启动的存储介质上。比如CompactFlash IDE设备,或者其他类型的驱动。第4章 交叉开发环境 有可能目标机不包括任何一种可永久存储数据的设备。举
14、例来说,代替了固定存储设备到目标机上,目标机只包括了一个接口,闪存芯片可以很轻易的插入和移开。这个闪存芯片同时需满足可以很轻易的被一个宿主机上闪存烧写器编程,并且轻易的在目标机的接口上进行一般的实验。这种模式在嵌入式系统开发的最初阶段非常流行。当然,当最初阶段结束以后,也可能发现互连模型应用更好。因此,当修改了内核或者根文件系统以后,可以避免从宿主机和目标机之间传递存储设备。第4章 交叉开发环境 4.5交叉开发环境建立4.5.1创建交叉开发工具链交叉开发工具链包括交叉编译器、交叉连接器和交叉调试器,这些交叉开发工具链是嵌入式系统开发的必备工具,它是要安装在宿主机(PC)上的。对于它的创建有三种
15、途径:第一种是下载别人已做好的工具链,当然这是最省事的方法;第二种是到官方网站上下载crosstool;第三种是自己一步一步制作自己的交叉开发工具链,这是最有趣的,也是最能体现自己能力的方式。本章所使用的交叉开发工具链是前面两种,其中,第一种交叉开发工具链是UP-NETARM2410-S开发平台的北京博创公司所提供的。第4章 交叉开发环境 4.5.2宿主机开发环境配置1.宿主机安装发行版Linux操作系统宿主机安装发行版Linux操作系统有以下三个方案:(1)基于PC机Windows操作系统下的CYGWIN。(2)在Windows下安装虚拟机后,再在虚拟机中安装Linux操作系统。(3)直接安
16、装Linux操作系统。安装方案的选择不同,主要依据PC机的系统配置,对于当前的PC机配置,建议选择在虚拟机下安装Linux操作系统,这样便于系统任务的切换。对于它的安装方法可参见本教材2.1节。第4章 交叉开发环境 如果选择RedHat 9.0,它安装后占用空间约为2.45GB之间,还要安装ARMLinux开发软件,对开发计算机的硬盘空间要求较大。硬件要求如下:CPU:高于奔腾500 MB,推荐高于赛扬1.7 GB。内存:大于128 MB,推荐256 MB。硬盘:大于10 GB,推荐高于40 GB。2.开发工具链的安装开发工具链的第一种来源,安装较简单,一般运行安装光盘的可执行文件./inst
17、all即可,这相当于在Windows运行可执行文件setup。开发工具链的第二种来源,下载的工具链有不同的包装格式,RPM的格式就很常用,也有把工具链直接压缩成tar包的。第4章 交叉开发环境 对于RPM的格式,可以通过rpm命令把软件包安装到宿主机上。可是这些工具安装到哪里去了呢?RPM包安装的时候都会有缺省的安装目录,可以通过rpm命令来查询。这个命令是Redhat Linux上的常用命令,可以参考第2章的内容。对于tar包,可以使用tar命令解压。问题是解压出来的工具应该放在什么路径下?因为GCC编译器的运行是依赖于其他工具和库,通常不能把这些工具放在任意目录下。一般通过相关的READM
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 交叉 开发 环境
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。