最近的技术发展导致了系统调试和优化复杂性的飞跃。系统变得越来越小,越来越复杂,许多不同的功能被集成在一个芯片上。在嵌入式开发中,多个芯片之间有更多的通信。甚至什么构成了一个bug也变得更加难以定义。
更大、更复杂的系统意味着调试、故障排除或微调设备的过程更长、更艰巨。如果一个组织需要几个月的时间来调试,那就相当于几个月的收入损失。
很少有人愿意为调试支付额外费用。这是一种必要的邪恶。任何可以最小化调试影响的事情都是有价值的。MIPI联盟广泛的标准化调试和跟踪规范组合旨在简化物联网(IoT)、汽车、5G和其他应用领域的移动系统开发。
分层、系统化方法
MIPI采取了分层的方法进行调试和跟踪,从最底层的硬件一直到软件层。这个想法是让一个组织能够挑选它需要的规范,有策略地将它们加入到它的嵌入式开发环境中,然后围绕标准分层的接口和协议集添加它自己的价值。九个MIPI调试和跟踪规范的组合最近公开提供下载:
l 用于IP套接字的MIPI千兆调试(MIPI GbD IPS)v1.0-MPI GbD IPS是一种适配器,用于促进从智能手机到物联网端点的所有类型连接设备的远程调试。
l MIPI Gigabit Debug for USB(MIPI GbD USB)v1.1-MIPI GbD USB最大限度地减少了调试对系统功能的影响,并使工程师能够在连接承载其他流量时使用USB连接调试设备。
l MIPI高速跟踪接口(MIPI HTI)v1.0-MPI HTI是数据端口的串行实现,通过在裸机环境中重用这些接口的低级别物理高速部分,利用了可用的高速串行接口技术。通过这种方式,与并行实现相比,MIPI HTI以更少的I/O引脚提供更高的传输带宽。
l 用于调试和测试的MIPI窄接口(MIPI NIDnT)v1.2-MIPI NIDnT标准化了设备上用于调试和试验程序的功能端口的使用。该规范旨在使嵌入式开发人员更容易识别复杂设计中的问题,并通过最小化对昂贵的专有测试工具的依赖来降低开发成本。设计师喜欢在移动和受移动影响的设计中广泛使用的其他接口上执行调试和测试的多功能性。
l MIPI并行跟踪接口(MIPI PTI)v2.0-MPI PTI是一个具有多个数据信号和时钟的并行接口,用于将有关系统功能和行为的跟踪数据导出到主机系统以进行分析和显示。
l MIPI SneakPeek协议(MIPI SPP)v2.0-MIPI SPP允许调试测试系统(DTS)和移动终端目标系统(TS)之间的通信,有助于DTS内的软件调试TS操作。用户减少了对专用调试通信接口的依赖,并利用熟悉的地址映射读写事务机制来观察、查询和调整TS。
l MIPI系统跟踪协议(MIPI STP)v2.2作为一种通用的基本协议开发,可由多个特定于应用程序的跟踪协议共享,MIPI STP允许其数据流与高度优化的协议共存,该协议用于传输处理器程序流、定时或低层总线事务的数据。
l MIPI系统软件跟踪(MIPI SyS-T)v1.0-MPI SyS-T是用于在测试系统和设备(例如片上系统(SoC)或平台)之间传输软件跟踪和调试信息的通用数据格式。在嵌入式开发中,它提供了一种与供应商或操作系统(OS)无关的便捷方法,可以跨软件、固件或硬件实现交换调试信息。
MIPI跟踪包装协议(MIPI TWP)v1.1-MIPI TWP允许将多个源跟踪流折叠为单个跟踪流。源字节流被分配了系统唯一标识,包装协议封装了系统中的所有流。
此外,MIPI Debug for I3C是一种用于在DTS和TS之间传输调试控制和数据的规范,正在开发中,计划于2020年公开。
MIPI调试工作组遵循了许多不同的策略,以尽量减少调试和跟踪过程的影响。例如,减少专用接口对于物联网和其他移动应用领域尤其重要,因为用户无法负担将主要的房地产用于额外的引脚和额外的尺寸。具有重用接口和利用功能接口的能力解决了高效使用不动产的需求,因此这一需求为工作组开发和完善MIPI调试和跟踪规范提供了信息。
此外,在嵌入式开发中,在开发调试和跟踪规范时,MIPI力求:
l 最小化引脚成本并提高基本调试接口的性能
l 提高高性能接口的带宽、功能和可靠性,以便将高带宽、单向处理器跟踪数据导出到调试工具
l 部署具有高带宽需求所需性能的物理健壮调试连接器
l 开发通用跟踪协议,允许将许多不同的片上跟踪源封装到单个跟踪数据流中
l 最大化现场系统的调试可见性
l 利用移动系统新的高带宽功能接口进行调试传输
专注于增值
通过专注于限制移动数据的框架和协议的影响,并为调试和跟踪过程提供控制,MIPI释放了硅供应商和原始设备制造商(OEM),以最大限度地利用这些标准化管道,然后投资于有助于提高吞吐量的高价值活动。
例如,跟踪周围的规范;MIPI PTI、MIPI HTI、MIPI-STP、MIPI TWP和MIPI SyS-T对于为系统设计者和嵌入式开发人员提供嵌入式系统行为的可见性尤其重要。
嵌入式SoC上的流式接口可用于将有关系统功能和行为的数据导出到主机系统以进行分析和显示。监控处理器指令和数据流的组件、在处理器上运行的软件中的仪表或监控处理器外活动的组件可以提供数据,使开发人员能够重建或“跟踪”系统活动的某些方面。一个或多个嵌入式处理器的指令执行序列、嵌入式处理器内核进行的数据总线事务、系统互连上的事务快照或仪表化应用程序代码的流式输出都是这种跟踪数据的示例。随着物联网、汽车、5G和其他应用领域移动系统中嵌入式系统的复杂性,这种可见性的重要性也在不断增加。
通过公开规范,MIPI使开发人员、工具供应商和其他人能够围绕调试通信和跟踪数据建立价值。通过这种方式,它允许一个强大的生态系统扎根,进一步扩大规范的互操作性,并丰富规范周围的嵌入式开发环境。