论文部分内容阅读
伴随计算机软硬件技术的飞速发展,嵌入式产品也已经充分融入人们的生活和社会的生产之中,可以说嵌入式系统已经无所不在。嵌入式系统是为特定应用环境而设计并嵌入在受控器件内部的专用计算机系统。源于受控器件对空间、成本、健壮性、稳定性和实时性等因素的要求,嵌入式系统通常具有以下特点:CPU频率较低、内存和外存有限、外设少和功耗要求低等。这些特点导致在嵌入式系统上无法运行大型开发工具,如编译器和调试器等。因此嵌入式软件开发采用交叉开发方法,其中交叉调试器是交叉开发的核心工具之一。一款优秀的交叉调试工具将有助于提高嵌入式软件开发效率和降低开发成本。嵌入式软件调试过程涉及宿主机和目标机系统中多层次软硬件模块,包括CPU异常处理、操作系统内核线程管理、目标机调试代理、远程通信协议和宿主机调试器等。而且通常不同的嵌入式操作系统需要实现不同的交叉调试器。本文将对嵌入式多线程远程调试器的原理和关键技术进行研究,基于一款新型嵌入式操作系统aCoral设计并实现远程调试代理系统。本文研究了远程调试的原理;分析了GDB的RSP Server(调试代理)的内部机制和实现;分析了Linux内核的ptrace()系统调用和断点异常等机制实现;研究了aCoral内核框架和基本机制,及其应用编程方法;研究了ARM体系结构中异常处理相关技术。在此基础上,为aCoral设计实现了远程调试代理系统,系统包含两大部分:aCoral内核调试机制和RSP调试代理。其中内核调试机制部分提供:SWI异常处理机制、调试事件处理、绑定和线程控制访问等功能。调试代理部分基于gdbserver实现,完成功能包括:与宿主机GDB数据通信、管理被调线程和解析执行调试命令等。最后对系统进行了详细的功能测试,验证了设计的有效性。本文对嵌入式软件调试中各软硬件模块的交互原理进行了综合分析和总结,具有较好的理论价值,对于理解软件调试有很大帮助。同时,论文对调试系统的设计和实现细节有较强的实用价值,为将来在其他新型嵌入式操作系统中实现调试子系统提供了有效参考。该调试系统实现成本低,可实现aCoral任务级调试,提高了aCoral应用开发效率。