前言

随着嵌入式的不断发展,在各个领域的应用越来越广泛,由于嵌入式系统的专用性很强,所以针对不同的应用的嵌入式软件的开发在嵌入式系统开发中所占的比重越来越大。嵌入式系统的开发主要包括两个部分硬件设计和软件设计。软件设计的步骤主要有源码编辑、源码编译、嵌入式操作系统的配置、程序下载和调试。由于嵌入式系统的资源有限不可能在嵌入式系统的硬件平台上集成自身的软件开发环境,所以嵌入式的软件开发的通常采用交叉编译和调试的方式。调试是保证程序质量的重要手段之一,可以验证程序是否满足预期的要求和检查程序存在的bug。交叉的开发方式采用宿主机和目标机的结构。宿主机一般采用PC机,将嵌入式系统的软件开发环境配置在PC机上。宿主机和目标机之间通过串口、并口和网线等建立连接,不仅仅是物理连接还有逻辑连接。在交叉开发过程中宿主机和目标机通过这种连接进行交互,完成目标程序的编译下载和调试。

嵌入式系统的开发主要针对硬件系统中的微处理器的嵌入式软件的开发,嵌入式系统的软件调试也是针对微处理器的调试。现在微电子技术飞速发展,处理器生产工艺也不断提高,微处理器芯片的集成度更高、运行频率更高,所以对调试的要求更高。单单采用PC机上的软件调试器和软件调试代理已经很难适应这些新的变化,将调试功能转移到硬件部分为嵌入式软件的开发提供更好的保障和支持,实现成本也比较低。微处理器芯片中集成支持调试的硬件逻辑已经逐渐成为趋势。

在板级的测试和调试领域,为了更好的支持对电路物理节点的访问,JTAG标准已经被很多芯片生产厂商所采用。JTAG标准最早的提出是为了检测印刷电路板的元件焊接问题,通过在电路中引入边界扫描单元所组成的边界扫描链来完成对电路节点的访问。现在JTAG标准也被应用于嵌入式软件的调试过程中,用于与硬件调试逻辑交互提供通用的调试接口。

总体方案设计

图1 系统结构框图

图1 系统结构框图

整个调试系统分为四部分PC机上层控制台,USB-JTAG协议转换器,片上调试器OCD(On Chip Debugger)以及调试的目标处理器CPU。