碧波液压网 欢迎你,游客。 登录 注册

基于龙芯一号IP核的EJTAG调试

版权信息:站内文章仅供学习与参考,如触及到您的版权信息,请与本站联系。

  引 言

  目前,随着嵌入式系统在各个领域中的广泛应用,人们对嵌入式开发工具的需求也变得非常迫切。嵌入式系统的开发需要特殊的开发环境,一般包括交叉编译器、交叉调试器等。交叉调试器有两种实现方式:一种是片上调试,另一种是在目标机端运行监控程序来完成调试。前者是处理器的硬件调试模块支持的,如MIPS架构的EJTAG,国芯CPU的OnCE等,由于接近硬件底层,可以在裸机状态下提供调试手段,不仅可以调试监控程序、系统软件,也可以利用边界扫描单元来测试硬件电路及故障定位;而后者一般是在处理器正常工作后,才可以使用的一种调试手段。

  EJTAG(Enhanced Joint Test Action Group)是MIPS公司根据IEEE 1149.1协议的基本构造和功能扩展而制定的规范,是一个硬件/软件子系统,在处理器内部实现了一套基于硬件的调试特性,用于支持片上调试。

  龙芯一号处理器IP核是在龙芯一号处理器基础上,对功耗、面积和性能等各方面进行改进而得到的高度灵活、适用于更广泛领域的处理器内核。它采用RISC架构,可运行MIPS III指令集,支持EJTAG调试功能,采用可配置架构,可在满足用户性能要求的前提下,实现最低成本的产品集成。

  1 EJTAG工作机制及实现

  1.1 EJTAG组成

  所有MIPS的微处理器或是包含MIPS核的SoC芯片组件均提供对EJTAG调试的支持。EJTAG接口利用JTAG的TAP(Test Access Port)访问方式,将测试数据传入或者传出处理器核。EJTAG可实现的功能包括:访问处理器的寄存器、访问系统内存空间、设置软件/硬件断点、单步/多步执行等。如图1所示,EJTAG调试功能模块由4部分组成:CPU核内部的组件扩展,硬件断点单

  元,调试控制寄存器(DCR)以及TAP接口。

  1.2 EJTAG工作机制

  处理器在某个调试例外(debug exception,如单步运行、断点等)产生以后,进入到调试模式(debug mode),直到DERET指令执行以后从调试模式退出来。在这段时间里,处理器执行调试例外处理过程。在调试例外处理过程中,调试软件通过对TAP处理器的访问操作,实现了对普通寄存器的访问、协处理器的访问、系统内存空间的访问等功能。系统退出调试模式以后允许应用程序或是系统代码继续执行,直到遇到下一个调试例外。重复以上过程,EJTAG实现了单步运行或者多步运行等调试功能。

  1.2.1 调试例外

  在体系结构的设计上,EJTAG并不需要与CPU紧密结合,但CPU必须提供调试寄存器、进入调试模式和在调试模式下执行指令的能力,更重要的是调试例外的优先级必须高于其他处理器的例外(exception)。EJTAG调试是通过处理器的调试例外来实现的,调试例外将CPU从非调试模式(non-debug mode)转到调试模式。在调试模式下也可以再发生调试例外,这种例外就叫做“调试模式例外(debuIg mode exception)”。

你没有登陆,无法阅读全文内容

您需要 登录 才可以查看,没有帐号? 立即注册

标签:
点赞   收藏

相关文章

发表评论

请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。

用户名: 验证码:

最新评论