资源预览内容
第1页 / 共90页
第2页 / 共90页
第3页 / 共90页
第4页 / 共90页
第5页 / 共90页
第6页 / 共90页
第7页 / 共90页
第8页 / 共90页
第9页 / 共90页
第10页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
3 嵌入式软件的开发环境嵌入式软件的开发环境本章主要内容:本章主要内容:(1) 嵌入式软件的开发过程嵌入式软件的开发过程(2) 嵌入式软件的建立及其工具嵌入式软件的建立及其工具(3) 嵌入式软件的下载及其工具嵌入式软件的下载及其工具(4) 嵌入式软件的调试及其工具嵌入式软件的调试及其工具(5) 典型的嵌入式软件开发环境典型的嵌入式软件开发环境13.1 嵌入式软件的开发过程嵌入式软件的开发过程为为嵌嵌入入式式系系统统开开发发应应用用程程序序的的过过程程与与为为PC机机开开发发应应用用软软件件过过程程有有一一定定的的不不同同,出出现现了了一一些些在在PC机机上上不不曾曾有有的的工工作作阶阶段段。在在同同样样的的一一个阶段,具体的工作也有很多的不同。个阶段,具体的工作也有很多的不同。2交叉开发模式交叉开发模式应应用用程程序序的的编编辑辑、编编译译、链链接接等等过过程都在宿主机上完成,程都在宿主机上完成,而而应应用用程程序序要要在在和和宿宿主主机机有有很很大大差别的目标机上实际运行。差别的目标机上实际运行。应用程序的调试主要是应用程序的调试主要是在宿主机上进行,但在在宿主机上进行,但在很多情况下要借助于目很多情况下要借助于目机。机。3嵌入式软件的开发过程嵌入式软件的开发过程43.2 嵌入式软件的建立及其工具嵌入式软件的建立及其工具嵌入式软件的建立步骤:嵌入式软件的建立步骤:q源代码编写源代码编写q编译编译q链接链接q定址定址5嵌入式软件的建立步骤嵌入式软件的建立步骤63.2.1 源代码编写源代码编写源源代代码码编编写写阶阶段段的的工工作作任任务务是是使使用用适适当当的的程程序序设设计计语语言言编编写写程程序序的的源源代代码码。比比如如说说用用C语语言言、C+语语言言、汇汇编编语语言言等等。就就目目前前的的情情况况来来看看,使使用用最最多多的的是是C语语言言。这这其其中中的的原原因因可可能能有有以以下下三三个个:其其一一,受受通通用用计计算算机机的的影影响响,C语语言言的的使使用用非非常常广广泛泛,几几乎乎每每一一种种处处理理器器都都支支持持C语语言言的的编编译译器器,而而且且有有相相当当多多的的程程序序员员具具有有用用C语语言言进进行行程程序序开开发发的的丰丰富富经经验验。其其二二,在在嵌嵌入入式式系系统统领领域域中中,C语语言言是是一一种种最最具具统统一一标标准准的的程程序序设设计计语语言言。其其三三,C语语言言是是一一个个非非常常“低低级级”的的语语言言。它它赋赋于于程程序序员员很很多多直直接接控控制制计计算算机机硬硬件件的的能能力力,但但又又不不失失去去高高级级语语言言所所固固有有的的好处。它的这种特点对嵌入式系统更为重要。好处。它的这种特点对嵌入式系统更为重要。73.2.2 编译编译编编译译阶阶段段要要做做的的工工作作是是用用交交叉叉编编译译或或汇汇编编工工具具处处理理程程序序的的源源代代码码,产产生生目目标标文文件件。当当宿宿主主机机和和目目标标机机采采用用同同样样类类型型的的处处理理器器时时,没没有有“交交叉叉”的的问问题题,是是这这一一阶阶段段的的一个特例。这时编译工作往往简单些。一个特例。这时编译工作往往简单些。8宿主机宿主机目标机目标机DEC Alpha Digital UnixHP 9000/700 HP-UXIBM Power PC AIXIBM RS6000 AIXSGI Iris IRIXSun SPARC SolarisSun SPARC SunOSx86 Windows 95/NTx86 Red Hat LinuxAMD/Intel x86Fujitsu SPARCliteHitachi H8/300、H8/300H、H8/SHitachi SHIBM/Motorola PowerPCIntel i960MIPS R3xxx、R4xx0Mitsubishi D10v、M32R/DMotoroln 68kSun SPARC、MicroSPARCToshiba TX39GNU C/C+编译器支持的宿主机编译器支持的宿主机/目标机组目标机组合合93.2.3 链接链接交交叉叉编编译译器器所所产产生生的的目目标标文文件件是是不不完完整整的的,它它里里面面可可能能还还有有未未定定义义的的内内部部变变量量和和函函数数引引用用。链链接接阶阶段段的的工工作作就就是是用用链链接接工工具具把把这这些些目目标标文文件件组组合合到到一一起起,使使所所有有未未定定义义的的变变量量和和函函数数在在程程序序库库或或其它目标文件中找到它的定义。其它目标文件中找到它的定义。链链接接阶阶段段得得到到的的结结果果是是一一个个“可可重重定定位位”的的程程序序文文件件。其其中中包包含含了了来来自自输输入入文文件件的的所所有有代代码码和和数数据据。链链接接工工具具通通过过合合并并输输入入文文件件里里的的代代码码段段、数数据据段段来来完完成成这这一一工工作作。链链接接完完成成后后,所所有有输输入入文文件件里里的的机机器器语语言言代代码码将将出出现现在在输输出出文文件件的的代代码码段段里,所有变量将出现在输出文件的数据段里。里,所有变量将出现在输出文件的数据段里。103.2.4 定址定址要要使使链链接接工工具具输输出出的的文文件件变变成成可可执执行行的的程程序序文文件件还还必必须须做做一一件件事事,那那就就是是为为程程序序的的代代码码和和数数据据指指定定存存储储地地址址。指指定定存存储储地地址址这这项项工工作作是是需需要要在在定定址址阶阶段段通通过过定定址址工工具具来来完完成成的的任任务务。定定址址工工具具的的输输入入是是“可可重重定定位位”的的程程序序文文件件,输输出出是是可可执执行行的的二二进进制制文文件件。它它们们二二者者之之间间的的转转换换,由由定定址址工工具具自自动动完完成成,但但应应用用程程序序的的开开发发者者必必须须向向定定址址工工具具提提供供有有关关目目标标机机上上的的存存储储器器的的信信息息。定定址址工工具具将将用用这这些些信信息息来来为为“可可重重定定位位”程程序序里里的的每每一一个个代代码码段段和和数数据据段段指指定定物理存储地址。物理存储地址。113.3 嵌入式软件的下载及其工具嵌入式软件的下载及其工具程程序序的的下下载载就就是是把把在在宿宿主主机机上上生生成成的的目目标标机机内内存存映映像像文文件件放放到到目目标标机机的的RAM存存储储器器或或者者Flash ROM上上面面去去,以以便便进进行行调调试试和和运行。程序下载的方法主要有以下几种:运行。程序下载的方法主要有以下几种:(1) 使用使用ROM仿真器仿真器(2) 使用在线仿真器(使用在线仿真器(ICE)(3) 使用片上调试器(使用片上调试器(ICD)(4) 使用目标机上的驻留程序使用目标机上的驻留程序12使用目标机上的驻留程序使用目标机上的驻留程序生生成成了了目目标标机机的的内内存存映映象象文文件件之之后后,就就可可以以使使用用bootloader程程序序将将这这个个内内存存映映像像文文件件下下载载到到目目标标机机上上面面去去。宿宿主主机机端端软软件件和和bootloader程程序序一一般般是是通通过过串串口口相相互互连连接接。当当然然也也可可以以通通过过以以太太网网相相连连接接。在在使使用用串串口口相相连连接接时时,下下载载程程序序的的工工作作可可分为以下几步进行:分为以下几步进行:(1) 用串口线连接宿主机和开发评估板的串口。用串口线连接宿主机和开发评估板的串口。(2) 在在宿宿主主机机上上启启动动bootloader程程序序。当当使使用用以以Windows为为操操作作系系统统的的PC机机做做宿宿主主机机时时,通通常常以以超级终端程序做宿主机端软件。超级终端程序做宿主机端软件。13(3) 在在目目标标机机上上按按复复位位键键,重重新新启启动动目目标标机机。目目标标机机被被 重重 新新 启启 动动 后后 , 将将 自自 动动 执执 行行 驻驻 留留 在在 ROM中中 的的bootloader程程序序。(一一些些开开发发评评估估板板可可以以通通过过跳跳线线选选择系统重新启动后从不同的地址开始运行。)择系统重新启动后从不同的地址开始运行。)(4) 将将宿宿主主机机的的串串口口和和目目标标机机的的串串口口设设置置为为相相同同的的传传输输速速率率。在在设设置置时时应应选选择择尽尽可可能能高高的的速速率率,以以节节省省程程序序下下载载所所花花费费的的时时间间。设设置置目目标标机机串串口口传传输输速速率率的方法是同过超级终端程序输入相应的命令。的方法是同过超级终端程序输入相应的命令。(5) 在在宿宿主主机机上上通通过过超超级级终终端端程程序序输输入入bootloader程程序序的的命命令令,将将开开发发评评估估板板设设置置为为等等待待接接收收下下载载程程序序状态,并指定程序下载的位置。状态,并指定程序下载的位置。(6) 在宿主机上发出下载命令。开始进行程序下载。在宿主机上发出下载命令。开始进行程序下载。143.4 嵌入式软件的调试及其工具嵌入式软件的调试及其工具q直接测试法直接测试法q驻留程序法驻留程序法q插桩法插桩法qROM仿真器法仿真器法q在线仿真器法在线仿真器法q片上调试法片上调试法q模拟器法模拟器法153.4.1 直接测试法直接测试法直直接接测测试试法法是是嵌嵌人人式式系系统统发发展展的的早早期期经经常常采采用用的的一一种种调调试试方方法法。原原因因是是这这种种方方法法需需要要的的调调试试工工具具非非常常简简单单,比比较较适适应应当当时时的的实实际际情情况况。采采用用这这种种方方式式进进行软件开发的基本步骤如下:行软件开发的基本步骤如下:16(1) 在宿主机上编写程序的源代码;在宿主机上编写程序的源代码;(2) 在在宿宿主主机机上上用用交交叉叉编编译译工工具具对对程程序序的的源源代代码码进进行编译,生成可执行程序;行编译,生成可执行程序;(3) 将可执行程序固化到将可执行程序固化到EPROM中;中;(4) 将将EPROM插到目标机的插座上;插到目标机的插座上;(5) 在在目目标标机机上上启启动动程程序序运运行行,若若程程序序正正确确,则则转转到第到第(8)步;步;(6) 在在宿主机上修改程序的源代码,纠正错误;在在宿主机上修改程序的源代码,纠正错误;(7) 转到第转到第(2)步;步;(8) 程序开发完成。程序开发完成。173.4.2 驻留程序法驻留程序法驻驻留留程程序序常常被被称称为为bootloader程程序序。它它需需要要有有一一个个与与之之配配合合工工作作的的宿宿主主机机端端软软件件。宿宿主主机机端端软软件件和和bootloader可可建建立立起起连连接接。对对目目标标机机来来说说宿宿主主机机端端软软件件好好比比是是一一个个终终端端。通通过过它它可可以以输输入入针针对对目目标标机机的的控控制制命命令令。目目标标机机上上的的应应用用程程序序输输出出在在标标准准输输出出设设备备上上的的内内容容可可以以通通过过宿宿主主机机端端软软件件显显示示出出来来。因因此此,只只要要在在被被调调试试的的程程序序中中将将一一些些重重要要的的信信息息用用printf语句显示出来就可以帮助程序的调试。语句显示出来就可以帮助程序的调试。18在在利利用用驻驻留留程程序序法法作作为为调调试试手手段段时时,程程序序的的开发步骤如下:开发步骤如下:(1) 在在宿宿主主机机上上编编写写程程序序的的源源代代码码。在在编编写写源源代代码码时时应应根根据据需需要要加加入入若若干干printf语语句句,目目的的是是通通过过宿宿主主机机端端软软件件显显示示某某些些变变量量的的值值,以便帮助进行程序调试;以便帮助进行程序调试;(2) 在在宿宿主主机机上上编编译译程程序序的的源源代代码码,生生成成可可执行程序;执行程序;(3) 将将可可执执行行程程序序的的代代码码通通过过bootloader程程序序提供的功能下载到目标机的提供的功能下载到目标机的RAM上;上;19(4) 通通过过bootloader程程
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号