论文部分内容阅读
在嵌入式SoC的设计开发过程中,调试测试环节占用了大部分开发测试时间。因此如何提高调试效率,缩短整个系统的开发时间,将直接关乎产品的TTM(time to market)以及后续相关产品的开发设计。在嵌入式系统中,操作系统和应用程序通常存储于以Flash、ROM、EPROM等为代表的非易失性存储器中,其中Flash以存储速度快、容量大、使用寿命长等优点在嵌入式SoC系统中有着广泛的应用。在大量的程序调试过程中,Flash下载编程占用很长的调试时间,所以如何快速、灵活地进行Flash编程,已经成为嵌入式系统开发的重要研究内容。本文在了解熟悉基于JTAG标准的片上调试技术原理的基础上,通过对不同类型Flash编程过程的差异性进行分析,总结出不同类型Flash编程过程的异同点,进而提出了一种基于JTAG标准的快速可重构Flash编程方法及其硬件架构。快速编程的核心思想是先通过JTAG接口将所需下载的目标数据下载到CPU通用寄存器中,并通过嵌入式CPU运行预先载入的Flash编程控制软件程序,再将目标数据写入到Flash中。这种方法将传统编程过程中复杂的Flash编程时序操作交由CPU完成,通过JTAG接口与CPU的数据的交互实现快速下载,由于JTAG串行总线仅下载目标数据,有效地增加了JTAG的带宽利用效率并提高了下载速度。在硬件上,主要采用程序断点控制和片上内存复用等技术,以国产CK510芯片的片上调试模块为原型,对其原有Flash编程过程进行改进,通过向片上内存加载不同的Flash编程汇编程序,利用状态机控制,使得硬件单元能够自动执行编程程序,很好的解决了由于JTAG串行端口反复传送指令而导致的编程过程中有效数据带宽占用率低下的问题,提高了调试效率。由于预先下载的Flash编程控制程序可以根据Flash的不同类型进行相应的替换,所以该方法可以实现对不同Flash编程的灵活支持。仿真测试结果表明,编程速度相比传统方法提高17倍,且具有硬件资源开销小、实行能力强等优点,具有一定的参考应用价值。