1 / 22
文档名称:

嵌入式软件开发流程.docx

格式:docx   大小:100KB   页数:22页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

嵌入式软件开发流程.docx

上传人:2112770869 2022/6/29 文件大小:100 KB

下载得到文件列表

嵌入式软件开发流程.docx

相关文档

文档介绍

文档介绍:嵌入式软件开发流程
一、  嵌入式系统开发概述
     由嵌入式系统本身特性所影响,嵌入式系统开发与通用系统开发有很大区别。嵌入式系统开发主要分为系统总体开发、嵌入式硬件开发和嵌入式软件开发3大部分,其总体流程C机(宿主机),而被调试进程则运行在各种专业调试板上(目标板)。
      调试器通过某种通信方式(串口、并口、网络、JTAG等)控制被调试进程。
      在目标机上一般会具备某种形式调试代理,它负责与调试器共同配合完成对目标机上运行着进程调试。这种调试代理可能是某些支持调试功能硬件设备,也可能是某些专门调试软件(如gdbserver)。
     目标机可能是某种形式系统仿真器,通过在宿主机上运行目标机仿真软件,整个调试过程可以在一台计算机上运行。此时物理上虽然只有一台计算机,但逻辑上仍然存在着宿主机和目标机区别。
下面分别就软件调试桩方式和硬件片上调试两种方式进行详细介绍。
(1)软件方式。
     软件调试主要是通过插入调试桩方式来进行。调试桩方式进行调试是通过目标操作系统和调试器内分别加入某些功能模块,二者互通信息来进行调试。该方式典型调试器有gdb调试器。
     gdb交叉调试器分为GdbServer和GdbClient,其中GdbServer就作为调试桩在安装在目标板上,GdbClient就是驻于本地gdb调试器。。
  gdb远程调试原理图
     gdb调试工作流程。
     首先,建立调试器(本地gdb)与目标操作系统通信连接,可通过串口、网卡、并口等多种方式。
     然后,在目标机上开启GdbServer进程,并监听对应端口。
     在宿主机上运行调试器gdb,这时,gdb就会自动寻找远端通信进程,也就是GdbServer所在进程。
     在宿主机上gdb通过GdbServer请求对目标机上程序发出控制命令。这时,GdbServer将请求转化为程序地址空间或目标平台某些寄存器访问,这对于没有虚拟存储器简单嵌入式操作系统而言,是十分容易。
     GdbServer把目标操作系统所有异常处理转向通信模块,并告知宿主机上gdb当前有异常。
     宿主机上gdb向用户显示被调试程序产生了哪一类异常。
     这样就完成了调试整个过程。这个方案实质是用软件接管目标机全部异常处理及部分中断处理,并在其中插入调试端口通信模块,与主机调试器进行交互。但是它只能在目标机系统初始化完毕、调试通信端口初始化完成后才能起作用,因此,一般只能用于调试运行于目标操作系统之上应用程序,而不宜用来调试目标操作系统内核代码及启动代码。而且,它必须改变目标操作系统,因此,也就多了一个不用于正式发布调试版。
(2)硬件调试。
     相对于软件调试而言,使用硬件调试器可以获得更强大调试功能和更优秀调试性能。硬件调试器基本原理是通过仿真硬件执行过程,让开发者在调试时可以随时了解到系统当前执行情况。目前嵌入式系统开发中最常用到硬件调试器是ROMMonitor、ROMEmulator、In-CircuitEmulator和In-CircuitDebugger。
     采用ROMMonitor方式进行交叉调试需要在宿主机上运行调试器,在宿主机上运行ROM监视器(ROMMonitor)和被调试程序,宿主机通过调试器与目标机上ROM监视器遵循远程调试协议建立通信连接。ROM监视器可以是一段运行在目标机ROM上可执行程序,也可以是一个专门硬件调试设备,它负责监控目标机上被调试程序运行情况,能够与宿主机端调试器一同完成对应用程序调试。
     在使用这种调试方式时,被调试程序首先通过ROM监视器下载到目标机,然后在ROM监视器监控下完成调试。
     优点:ROM监视器功能强大,能够完成设置断点、单步执行、查看寄存器、修改内存空间等各项调试功能。
     确定:同软件调试一样,使用ROM监视器目标机和宿主机必须建立通信连接。
     。
  ROMMonitor调试方式
     采用ROMEmulator方式进行交叉调试时需要使用ROM仿真器,并且它通常被插入到目标机上ROM插槽中,专门用于仿真目标机上ROM芯片。
     在使用这种调试方式时,被调试程序首先下载到ROM仿真器中,因此等效于下载到目标机ROM芯片上,然后在ROM仿真器中完成对目标程序调试。
     优点:避免了每次修改程序后都必须重新烧写到目标机ROM中。
     缺点:ROM仿真器本身比较昂贵,功能相对来讲又比较单一,只适应于某些特定场合。