- 论坛徽章:
- 0
|
最近换行转向做终端类型的产品,我之前没有这方面的经验啊。前些时候,买了一块S3C6410开发板,只可惜到手后发现只有WINCE的,没有linux, 所以我决定用JTAG 烧写一个试试。 首先wiggler并口JTAG连上开发板,这种ICE价格很低,到处有的买。然后安装一个并口的IO驱动,叫giveio.sys. 安装的方法,首先将GIVEIO目录下的GIVEIO.SYS文件复制到C:\WINDOWS\system32\drivers目录下面,然后打开控制面板里的添加硬件,选择“是,我已经连接了此硬件”,下一步,选择添加新的硬件设备,下一步,选择“安装我手动从列表选择的硬件”,下一步,选择“端口(COM和LPT)”,下一步,选择从磁盘安装,在路径中选择 GIVEIO目录下的giveio.inf文件,然后一直下去就OK了。在设备管理器的端口里能看到GIVEIO端口,就表示安装正常了。 接着是烧写程序,我从网上下载了一个SJF6410代码,只可惜不能用。不能测试到我的CPU。我下载网上有名的H-JTAG 程序试了一下,能测到这个CPU的ID,由于H—JTAG还不支持6410,所以不能烧写。这样证明硬件和IO驱动都好的,下载的JSF6410有问题,我开始从代码上找问题。 简单的说说JTAG,JTAG 有20个PINS,主要的用到的也就TMS,TCK,TDI, TDO 这几个。 所以应该在这几个PIN的定义上有问题,所在也不看其它的代码,找到JTAG。H 这个文件, 因为Wiggler ICE的定义如下:
// Pin Connections (PIN)// TCK :DATA[1] (3)
// TDI :DATA[2] (4) // TMS :DATA[3] (5) // TDO :STATUS[7] (11)
所以,在JTAG。H改下面这样:
#define TDI_H 0x08 #define TCK_H 0x04 #define TMS_H 0x02
#define TCK_L 0x00#define TDI_L 0x00 #define TMS_L 0x00
#define JTAG_SET(value) OutputPpt(value)#define JTAG_GET_TDO() ( (InputPpt()&(1
编译后,能成功的测到 CPUID : 0x00eb509d.
中间有个小插曲: 因为网上下载的代码是VC6.0的,我的IDE是VS2005,会出现兼容问题。Linker时,会不找不到LIBCD。LIB。 只要这样,在properties -->Linker-->command line : 加入 /nodefaultlib:LIBCD.lib 这样就可以了。
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u3/94443/showart_1922375.html |
|