随着当前系统设计复杂度的提升,调试过程中碰到问题的几率大大增加,在各种问题中我们需要分析问题的根源和实质以便去正确的解决。ARMSYS-ICE与目标板的连接xx于JTAG接口,两者之间的耦合度已降到最小不会对目标板的逻辑和电气性能产生影响,对于一些刚开始使用ARMSYS-ICE的客户我们总结了一些常见问题提供给用户希望能够有所帮助。
问题1:Multi-ICE Server程序启动失败
原因:计算机BIOS中的并口类型设置不正确,请修改后重试。一般推荐用户选择EPP类型。
问题2:Multi-ICE Server程序启动失败出现TCP/CP堆栈出错
原因:开发PC机没有连接网络,或没有安装网络服务程序如果不需要使用网络服务功能可以在Multi-ICE Server的Settings > Start-up Optinos菜单中关闭该功能。
问题3:Multi-ICE Server程序自动识别目标失败
原因1:目标内核不能识别,在本手册前面章节中详细列出了目前版本的ARMSYS-ICE所支持的内核种类,如果能够检测到正确的TAP控制器并建立起通信,但不能返回内核ID号,将在屏幕上显示“UNKNOWN”,这时调试程序不能正常工作,用户需要从厂家得知正确的ARM芯片内核类型,并新建一个配置文件来进行手动配置。配置方法参见使用手册。
原因2:信号问题,最常遇到的信号问题包括:
□ Reset信号没有上拉电阻,Reset包括nTRST和nSRST这两个信号应在目标板上用小于10K的电阻上拉; □ TCK信号的频率太高,该频率受制于TAP控制器、标板布线和连接电缆等因素。有些TAP控制器只支持到1MHz速率,这时候需要调整TCK频率设置。
问题4:同调试程序连接时提示“Can’t stop processor”
原因1:在当前环境下JTAG的时钟频率过高,请尝试降低TCK的频率;
原因2:如果Multi-ICE Server程序是手动配置的,则需要检查;□ 配置错误、处理器类型、连接次序等设置错误;□ JTAG问题,进行手动配置时因先确保在自动时能够检测到UNKNOWN,这样说明JTAG接口通信正确。
原因3:ARM芯片接口的DBGEN信号被不正确的拉低,如果该信号有片外接口请检查;
原因4:目标处理器的时钟不正确;
问题5:同调试程序连接时出现“Data Abort”提示
原因1:当调试程序启动时,处理器将停在当前PC值指向的地方,同时读取该PC值周围一部分地址的存储器值,如果这些地址正好没有被使用或指向空就会出现上述提示此情况,属于正常范围;
原因2:如果使用了存储器RAM或ROM出现这种问题,表明在存储器访问上可能存在数据错误,请检查存储器。
原因3:当用户下载程序到目标板时,下载的目标地址是在编译器中指定的,如果编译器里设置的目标地址与目标板上可写存储器的物理地址不能对应,也会出现上述提示。因为调试程序试图往错误的物理地址写入用户程序而出错。这时需要检查并重新设置编译器。
问题6:在调试过程中经常停止,有时候甚至进不了调试程序
原因:在排除了调试程序本身的问题后,这一类带有随机性的问题可以考虑是硬件时序或逻辑问题引起的。最主要的可能性是nTRST和系统Reset信号不可靠。Reset信号的不可靠包含两方面,正常工作时要求稳定的保持高电平,复位状态时要求有足够时间的低电平。Reset电路因为简单通常会被忽略,但事实表明很多貌似奇怪的问题{zh1}都归结在这里。无论是从调试的角度还是{zh1}稳定工作,我们都建议用户采用一个好的Reset电路或是专用IC来代替简单的RC电路。
问题7:调试程序出现“Hardware interface timeout”提示
原因1:目标板与ARMSYS-ICE的连接断开或ARMSYS-ICE与PC之间的连接中断;
原因2:ARMSYS-ICE供电中断或供电不足
原因3:ARMSYS-ICE与目标板的通信停顿,一般都是因为打开了RTCK选项但是检测不到合适的RTCK信号,此时用户可以不使用RTCK功能或检查该信号的布线。
问题8:调试程序提示“Unable to set breakpoints on exception vecors”
原因:映射表中的起始地址对应的存储器类型是ROM,ARMSYS-ICE不能在ROM上设置断点。
问题9:与ARM9内核处理器连接时识别出“UNKNOWN”内核
解决方法:将目录mice_2_2_5\mice_2_2_5\windows下的4个文件拷贝到Multi-ICE Server的安装目录下,例如拷贝到安装盘符:\Program Files\ARM\Multi-ICE目录下。将这4个文件的只读属性去掉。然后就可以正常使用Multi-ICE Server来自动检测ARM9以上系列ARM内核了。