嵌入式系统的调试有4种基本方法:模拟调试、软件调试、BDM/JTAG调试、全仿真调试。
调试工具和待调试的嵌入式软件都在主机上运行,由主机提供一个模拟的目标机运行环境,可以进行语法和逻辑上的调试。MDK、ADS都提供该功能。
(1)优点:简单方便,不需要目标机,成本低。
(2)缺点:只能检查软件语法和逻辑上的问题,不能和真实的硬件环境交互。
PC机和目标机通过某种接口(通常是串口,早期为RS-232,现在基本上都是USB)连接,PC机上提供调试界面,待调试的软件下载到目标机上运行。这种方式的先决条件是要在PC机和目标机之间建立通信联系(目标机上有监控程序和待调试的软件)。
(1)优点:纯软件、价格低、简单、软件调试功能较强。
(2)缺点:这种调试方式是通过PC与目标机通信来实现的,因此目标机必须正常工作,同时要在目标机上事先烧制监控程序,由于监控程序的功能有限,因此调试能力有限,特别是硬件调试能力较差。
软件调试连接示意图如图1-4所示。
图1-4 软件调试连接示意图
这种方式有一个硬件调试器。该硬件调试器与目标机通过BDM/JTAG等调试连接端口相连,与主机通过串口、并口或网口相连。待调试的软件通过BDM/JTAG调试器下载到目标机上运行。
(1)优点:方便、简单、无须制作监控程序,软硬件均可调试。
(2)缺点:这种调试方式需要PC和BDM/JTAG调试器,且目标机工作基本正常(至少微处理器工作正常),仅适用于有调试接口的微处理器。
BDM/JTAG调试连接示意图如图1-5所示。
图1-5 BDM/JTAG调试连接示意图
这种方式用仿真器完全取代目标机上的微处理器,因而目标系统对开发者来说是完全透明的、可控的。仿真器与目标机通过仿真头连接,与主机有串口、并口、网口等连接方式。由于仿真器自成体系,调试时既可以连接目标机,也可以不连接目标机。
(1)优点:功能非常强大,软硬件均可做到完全实时在线调试。
(2)缺点:价格昂贵。