分类:
2009-05-25 20:29:24
可能原因:
1. 并口的端口地址出错。请核对ppt.h中的定义;
2. 虚拟机中未连接并口。请按4.3节来安装虚拟机下的并口,并在 Vmware的VM->Removable Devices中连接并口;
3. 若为转并口设备,可能是驱动没有装好。另外,我的PCI转并口曾经出现这么个问题:
装好PCI转并口的驱动后,默认生成LPT3,为了在虚拟机中使用该并口,我将其换成LPT1,当时在虚拟机中或在独立操作系统底下都使用正常;第二天打开虚拟机后发现不能使用了,但在外部的Windows下只要将并口号改回LPT3就可以正常使用。这种情况只需要关闭虚拟机,重启机器,而后在Windows下将端口号改为LPT1并确定正常后再开启虚拟机就ok了
可能原因:
1. JTAG信号实际定义与源码中不一致。因为JTAG与并口的连接并没有一个所谓的标准,所以有可能出现实际连接与源码中定义不一致的情况。这种情况请核对jtag.h中的定义;
2. 在有些接法下TDO读入的数值需要方向,而程序中未作反向。请核对jtag.h中定义,具体原因请查看4.5.1节;
3. BSDL文件出错。该文件出错意味着管脚在扫锚链中的索引出错,也就可能出现:本来要对RnB的操作却作用到GPA1了,这当然会导致检测不到CPU等错误。这种情况请核对s3c.h中的定义。
网上有朋友碰到过这种情况的,我开发时倒没有,其解决思路如下:
出错情况:
STATUS:Ep[PROGRAM_ERROR:block#=0] [Program error is occurred but ignored][block #0 is marked as a bad block] [ERASE_ERROR:block#=1] [Program error is occurred but ignored] [block #1 is marked as a bad block] [ERASE_ERROR:block#=2]
解析:
可能是TCK频率的问题,TCK 的频率越低, 编程速度越慢; TCK 频率越高, 编程速度越快。但是每一个BS 器件都有一个TCK 频率的上限, 超过此频率, 信号就不稳定了,而且在对flash进行读写的时候也有延迟。故在程序中都要使用延迟。
现象:读flash时,不管读哪一页,都全部返回0x80,擦除时卡住。
原因:我的PDA上的应用程序具有长时间不使用则让CPU进入休眠模式的功能。出现这种情况正是CPU进入了休眠模式。
在开发中发现一个问题:同样的源码在虚拟机内的Linux平台与独立的Windows平台下编译出来的程序在并口传输速度上不一致,前者比后者慢了大概有3倍。举例来说:我们通过并口去控制TCK产生一个JTAG周期,但同样的源码产生的两个程序运行时,在示波器下测量到的周期,一个为1.8us左右,一个为8us左右。
另外,并口的传输速度并非由程序控制,而是存在一个上限值。如以下源码中,在TCK电平发生转换间并没有时间延迟。那按照CPU的主频,这个时间间隔应该很短,但示波器测量的结果是几微秒,而且在上述两种平台下结果还不一致。
关于这个问题,目前我还没有比较好的解释。
#define JTAG_DELAY() //delay=0
JTAG_SET(TDI_H | TMS_H | TCK_L);
JTAG_DELAY();
JTAG_SET(TDI_H | TMS_H | TCK_H);
JTAG_DELAY();
JTAG_SET(TDI_H | TMS_H | TCK_L);
[1] ARM JTAG 调试原理
[2] JTAG原理及sjf2410源码分析
[3] ARM920T Technical Reference Manual
本文档的尽善尽美需要您的参与,若您发现任何问题或有任何更好的建议,欢迎与我联系!
施金前:
MSN: sikinzen@hotmail.com
Mail: sikinzen @yahoo.com.cn
QQ: 526679213