论文部分内容阅读
随着多核技术的不断发展,因其具备高性能低功耗的特点,多核处理器已逐渐取代传统的单核处理器,成为市场的主流。多核处理器在被广泛应用的同时,也面临着一些新的问题。多核架构不仅需要新的程序设计方法,还需要新的软件调试方法,才能保证应用软件在多核环境中的调试工作顺利进行,才能充分利用多核系统的潜能。目前大多数嵌入式厂商都是开发基于硬件的专用仿真器,使用硬件仿真器来调试多核系统。硬件仿真器不仅价格昂贵,而且通用性以及扩展性不好。因此,在多处理器架构下,采用软件调试方法已成为当下研究热点。本文详细分析了嵌入式操作系统Linux对对称多处理器的支持策略,并根据多核调试的实际功能需求,深入研究嵌入式多核调试技术,最终实现了一款易用、低成本、移植性强的纯软件多核调试器。为了满足嵌入式多核架构下的调试需求,本文在原有GDB调试器的基础上进行功能改进,全面地反映了相关多核信息。本调试器是从处理器的角度来进行程序调试,全方位地反映进程与处理器间的交互信息,有助于了解程序在系统中的运行情况。本系统基于PB11MPCore四核嵌入式平台,在Linux(支持SMP)操作系统下设计并实现了多核调试器。该多核调试器是在GDB调试功能的基础上进行了多核调试方面的扩充,包括信息查询类命令、核控制类命令以及多线程类命令。在GDB中添加具体的调试命令:一是信息查询类命令,能够获取多核系统中CPU的相关信息、进程在多核上的运行时间分布以及指定核上运行进程的上下文信息;二是核控制类命令,能够将进程动态核绑定、让指定核执行调试命令以及对特定核设置断点;三是多线程调试类命令,通过对调试命令的重新设计,让满足条件的线程均执行该调试命令,极大地提高了调试效率。最后,本文对新增加的多核调试命令进行功能测试,在一定程度上达到多核调试的目标,满足多核调试的功能需求。