您当前的位置:五五电子网电子知识单片机-工控设备嵌入式系统-技术基于龙芯一号IP核的EJTAG调试 正文
基于龙芯一号IP核的EJTAG调试

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

点击数:7558 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   嵌入式系统-技术

  ⑧EJTAG Probe选择ECR寄存器,把PrAcc位置0,其他位保持不变,表示开始由处理器来执行数据寄存器中的指令。

  ⑨处理器测试PrAcc值为0,把数据寄存器中的指令取走执行。

  ⑩处理器把PC值加4,发出读下一条指令的命令,因为地址仍然在dmseg区域中,所以重复上面的过程,读入下一条指令。

  由于流水线的存在,发生在dmseg内的Load/Store操作分2步进行。第1步,取指译指;第2步,将指定地址的数据装入寄存器/将寄存器的数据装入指定地址。在指令执行过程中这2步之间会有间隙,为了获得正确的执行结果,需要检测Address寄存器里的内容是否为操作数地址。若不是则插入nop指令,继续检测Address寄存器里的内容。

  3.2 与标准的EJTAG的差异性及应对措施

  在实现GS32S EJTAG调试功能的过程中,发现GS32S处理器的EJTAG与标准EJTAG存在着差异性,因此需要调试软件针对这些差异性采取相应的应对措施。

  (1)TAP状态机进入复位状态后异常

  “Test-LogIC-Reset”是TAP有限状态机16个状态中的其中之一。一般来说,在处理器复位后,TAP状态机会处于不确定的状态。为了使TAP状态机正常工作,需要在5个时钟周期内,置高TDI输入,让TAP状态机进入“Test-Logic-Reset”的指定状态。GS32S处理器的TAP状态机在进入“Test-Logic-Reset”状态后,会改变3个寄存器的内容:清除DCR寄存器的ProbEn和ProbTrap位;置高协处理器Debug的DM位;修改协处理器DEPC的内容为0xBFC00500。然后处理器进入调试模式中,这样的结果会导致后继的调试过程被打断。

  应对措施:调试软件限制TAP状态机进入“Test-LogiC-Reset”状态的时机与次数,并在TAP状态机进入“Test-Logic-Reset”状态后,进行必要的清理工作。

  (2)进入调试模式后PC的输出值高8位全为零

  进入调试模式后,处理器会把PC值送到TAP模块中的Address寄存器中,而通过TAP模块输出的Address值高8位全为零。由于对发生在dmseg段内的Load/Store操作,调试软件会依据Address寄存器里的内容是否为操作数地址来判断Load/Store操作是否执行完毕,因此会发生比较总是失败的情况。

  应对措施:该情况仅仅影响Address寄存器输出值的高8位数据(0xFFXXXXXX~0x00XXXXX),因此可在判断Address寄存器数据是否等于操作数地址时,只比较低24位数据。

  (3)未被正确初始化的处理器会进入死机状态

  目标机上电后,处理器将从复位例外向量处取指令执行。如果复位向量处为随机数据或不完整的初始化代码,则处理器执行后将会进入死机状态,不再响应任何EJTAG的TAP处理器的访问。

  应对措施:首先让EJTAG TAP执行EJTAGBOOT的命令,处理器复位后将会进入调试模式,此后即可使用TAP处理器的访问机制进行正常的EJTAC调试操作。

  结 语

  EJTAG是一种不影响、不干扰系统运行的新型开发调试技术,它改变了硬件开发工具滞后、出现新体系结构且专用于特定处理器的落后局面,提供了一种容易实现的硬件调试标准,具备了实时调试特征,使用5针EJTAG接口实现了硬件断点、软件断点等调试功能。本文在实现了EJTAG调试功能的基础上,开发了以USB为快速通信接口、用CPLD硬件实现JTAG时序的MIPS仿真器产品,实现了对GS32S处理器EJTAG调试的支持,并在展讯、海尔等公司基于龙芯一号IP核的项目研究中得到了验证。



上一页  [1] [2] 


本文关键字:暂无联系方式嵌入式系统-技术单片机-工控设备 - 嵌入式系统-技术