【教学课件】第5课开发环境的建立和调试技术.ppt
《【教学课件】第5课开发环境的建立和调试技术.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第5课开发环境的建立和调试技术.ppt(52页珍藏版)》请在三一办公上搜索。
1、1,嵌入式系统An Introduction to Embedded System浙江大学计算机学院2012年4月,第5课 开发环境的建立和调试技术,提纲,1、宿主机-目标机开发模式 2、目标机环境3、宿主机环境 4、远程调试原理5、GDB调式6、内核调试,4,嵌入式系统的设计流程,5,1、宿主机-目标机开发模式,6,2、目标机环境,2.1 JTAG接口简介 边界扫描测试,主要用于芯片内部测试。Joint Test Action Group。接JTAG下载线或接其他JTAG仿真器。,其他调试工具:示波器:板级硬件设计及调试,最原始的工具。有两类:模拟示波器和数据示波器逻辑分析仪:对微处理器总线
2、的数据解码,观察总线发生的传输事务。有两类:状态分析仪和时序分析仪。ICE在线仿真器:是一种用于替代目标机上的CPU的设备。,7,2.2 BootLoader LILOGRUBU-BOOT,8,3、宿主机环境,3.1 BOOTP协议 3.2 TFTP协议 3.3 交叉编译,9,3.1 BOOTP协议,BOOTP服务的全称是BootStrap Protocol 使用TCP/IP网络协议中的UDP 67/68两个通讯端口常用到的DHCP服务就是从BOOTP服务扩展而来的,10,第一步,在目标板由BootLoader启动BOOTP,此时目标板还没有IP地址,它就用广播形式以IP地址向网络中发出IP地
3、址查询的请求,这个请求帧中包含了客户机的网卡MAC地址等信息。,11,第二步,主机平台运行BootP服务的服务器接收到的这个请求帧,根据这帧中的MAC地址在Bootptab启动数据库中查找这个MAC的记录,如果没有此MAC的记录则不响应这个请求;如果有就将FOUND帧发送回目标板。FOUND帧中包含的主要信息有目标板的IP地址、服务器的IP地址、硬件类型、网关IP地址、目标板MAC地址和启动映象文件名。,12,第三步,目标板就根据FOUND帧中的信息通过TFTP服务器下载启动映象文件。,13,3.2 TFTP协议,TFTP服务的全称是Trivial File Transfer Protocol
4、 TFTP可以看成一个简化了的FTP TFTP在安装时一定要设立一个单独的目录作为TFTP服务的根目录,以减少安全隐患,14,3.3 交叉编译,宿主机与交叉编译交叉编译器及交叉编译环境的组成交叉编译环境的搭建制作 ARM 交叉编译器建立开发环境编写 crosstool 脚本文件编译,宿主机与交叉编译,交叉编译是嵌入式开发过程中的一项重要技术,简单地说,就是在一个平 台上生成另一个平台上的可执行代码。,交叉编译的主要特征是某机器中执行的程序代码不是由本机编译生成,而是由另一台机器编译生成,一般把前者称为目标机,后者称为主机,CPU指令集不相同,引入,交叉编译,交叉编译器及交叉编译环境的组成,当提
5、到交叉编译器时,不仅仅是指将一种编程语言的代码转换成对象代 码的软件,还指其他必要的开发工具:,Linux下的交叉编译环境,汇编器,连接器,基本工具,交叉编译环境的搭建,建立交叉编译环境主要常规 6 个步骤:,下载源代码,编译Binutils,配置Linux内核头文件,第一次编译GCC,交叉编译Glibc,第二次编译GCC,建立开发环境,WORKDIR,为了便于介绍,现约定在Linux下的工作目录:,SOURCEDIR,BUILDIR,TMPDIR,RESULTDIR,=$PWD,工作目录,=$WORKDIR/downloads,源码包,=$WORKDIR/build,编译目录,=$WORKD
6、IR/tmp,缓存目录,=/usr/crosstool,生成的交叉编译工具目录,编写 crosstool 脚本文件,针对我们所下载的源码包,我们需要定制我们的 crosstool 脚本文件,这里我们需要建立的文件有:,arm.dat:KERNELCONFIG=pwd/arm.config TARGET=arm-linux TARGET_CFLAGS=-O,arm.dat,BINUTILS_DIR=binutils-2.16 GCC_DIR=gcc-3.4.5 GLIBC_DIR=glibc-2.3.6 LINUX_DIR=linux-2.6.12 LINUX_SANITIZED_HEADER_
7、DIR=linux-libc-headers-2.6.12.0 GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.6,demo-arm.sh,编译,解压,将上面编写的三个脚本文件拷贝到 crosstool-0.42 目录:,转到工作目录,解压文件,执行脚本文件,$cd$BUILDIR,$sh demo-arm.sh,转到工作目录,$cd crosstool-0.42,21,4.远程调试的工作原理,通用的桌面操作系统与嵌入式操作系统在调试环境上存在明显的差别远程调试,调试器运行于通用桌面操作系统的应用程序,被调试的程序则运行于基于特定硬件平台的嵌入式操作系
8、统(目标操作系统),22,远程调试带来以下问题:调试器与被调试程序如何通信 被调试程序产生异常如何及时通知调试器 调试器如何控制、访问被调试程序 调试器如何识别有关被调试程序的多任务信息并控制某一特定任务 调试器如何处理某些与目标硬件平台相关的信息,23,4.1 插桩(stub),Stub方案是在目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试这一方案需要目标操作系统提供支持远程调试协议的通信模块和多任务调试接口,并改写异常处理的有关部分 目标操作系统还需要定义一个设置断点的函数,24,远程调试示意图:,25,4.2 GDB介绍,GDB是GNU C自带的调试工具,使用GDB可
9、以完成下面这些任务:运行程序,可以给程序加上所需的调试任何条件在给定的条件下让程序停止检查程序停止时的运行状态通过改变一些数据,可以更快地改正程序的错误,26,4.3GDB远程调试功能介绍,如果需要调试的程序和GDB所运行的环境不同,或者说需要调试的环境上根本无法运行起GDB,就需要使用远程调试功能 指定需要调试的远程机器的方法是使用target remote命令 在远程机器上,需要实现一个stub文件,在这个文件里面提供串口连接的协议,和传送数据信息的方法,27,GDB远程调试环境原理图:,28,5.使用GDB,5.1 GDB命令补齐功能 键入gdb gdb_test命令来启动GDB并载入程
10、序 gdb_test,命令行进入了GDB模式。,29,GDB中的常用命令如下:,30,31,5.2 断点与条件断点,GDB中的断点有四种状态:有效(Enabled)禁止(Disabled)一次有效(Enabled once)有效后删除(Enabled for deletion)条件断点的设置语句:,6.Linux 内核调试,Linux内核调试Printk、KGDB、KDB Linux 内核调试PrintkLinux 内核调试KGDBLinux 内核调试KDB,6.1 Linux内核调试,GO!,当内核运行出现错误的时候,首先要明确 定义和可靠地重视这个错误现象。,Linux内核,不包括,内核调
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 开发 环境 建立 调试 技术
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5659098.html