图6:由软件发起的事件。
图7:由硬件发起的事件。
为演示综合调试系统中软件发起的断点功能,我们修改了Linux内核,在磁盘扇区0x00041d90上发生读取时打印消息“BLOCK”.然后,把目标对准调试设施中来自“sysace”ComPACt Flash控制器的轨迹。我们使用GDB,在xsysace.c文件第714行上设置了一个硬件断点(printk发生的行)。然后配置测试设施,使用综合事件管理监测软件调试设施。最后,“find/”命令强制内核读取整个磁盘。如图6所示,软件断点在希望的行上暂停了内核执行,另外还触发了硬件调试设施。结果,可以在软件断点时间上看到详细的硬件行为。
我们使用硬件适配器,演示综合调试系统中硬件发起的触发功能。我们设置成在Linux内核清除以太网适配器中的“RX Packet Ready Interrupt Bit”时发生硬件触发。我们把综合事件管理界面配置成把硬件事件映射到软件调试设施。到系统中路由器IP地址的PINg从SoC到路由器应答位置发起一个发送包。在应答发生时,这个包到达以太网物理层,由以太网适配器处理。然后处理器被中断,Linux内核服务中断。在中断服务结束时,中断被清除。这导致硬件触发和软件被暂停,如图7所示。得到的视图显示了从物理层直到操作系统的整个复杂系统中硬件和软件的同步行为或时间相关行为。
小结
通过在软件调试设施和硬件调试设施之间创建综合事件管理界面,可以围绕软件调试事件和硬件调试事件实现单事件同步。这种同步可以有意义地表示同时来自这两种基础设施的调试数据。这样一个完整的系统视图为观察涵盖软件和硬件的各种SoC功能之间的临时关系打开了一扇窗户,可以更快、更高效地调试日益复杂的SoC设计。
本文关键字:暂无联系方式嵌入式系统-技术,单片机-工控设备 - 嵌入式系统-技术