Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1822707
  • 博文数量: 317
  • 博客积分: 1557
  • 博客等级: 上尉
  • 技术积分: 1208
  • 用 户 组: 普通用户
  • 注册时间: 2008-02-26 23:38
个人简介

如果想出发,就不要等到明天!

文章分类

全部博文(317)

文章存档

2016年(1)

2015年(41)

2014年(152)

2013年(114)

2012年(4)

2011年(1)

2009年(4)

分类:

2009-03-23 02:11:08

    最近给我的笔记本买了一笔记本PCMCIA二代扩展接口转串并口一体卡,如下图所示:

在使用Jtag + sjf2410.exe烧写程序对arm 9 2410开发板的Nand flash进行程序烧写时出现了以下错误:

“ERROR:Unable to find a parallel port”系统提示找不到并口!!!如下图:

      但并口明明是驱动成功的,怎么会找不到并口呢?

      系统并口显示如下图:

 

      经过多番思考,觉得是sjf2410这个程序中对于并口的基地址定义有错误,于是上网找到了sjf的源代码,并使用VC6.0进行打开,找到并口地址的定义,如下图:

 

 

      ppt.h这里定义了三个并口LPT1LPT2LPT3三个并口,且系统认出了并口LPT3,但为什么程序说找不到并口呢?

      原来程序定义的并口地址是CPU里面给出的并口地址,是硬件决定的默认并口接线地址,但笔记本里面没有从这个接口中引出并口,所以这三个并口地址是无效的,当然也就认不出并口了。而扩展并口是通过总线形式扩展的,地址由操作系统加载驱动程序后分配得到的。所以sjf2410.exe这个程序在编写时无法知道系统分配了什么地址给这个扩展的并口,所以就没有在源代码里面定义出来了!!!

      现在只能够是找到系统分配给扩展并口的地址,然后对sjf的源代码进行重新编译出sjf2410.exe程序了。那么怎样找到并口的地址呢?如下图所示:

 

     这里面有4个地址,到底是哪个呢?其实系统对硬件的地址分配只是分配基地址,剩下的都是基于基地址的偏移,是由硬件决定的,所以我们只有第一个地址0x2CF8就行了。(注意:这个地址并不是固定不变的,在你下次插入并口卡的时候可能分配到的就不是这个地址了。)如下图所示本次分到的是0x3000

 

      改好地址后,把程序重新编译一遍就可以使用啦!!!

      呵呵!!!

 

 

阅读(5043) | 评论(3) | 转发(1) |
0

上一篇:没有了

下一篇:ARM汇编伪指令介绍

给主人留下些什么吧!~~

dmastery2010-06-21 11:39:05

我也遇到跟你同样的问题,但是我在修改完地址之后仍然没有效果,请帮我分析一下原因,谢谢,我在cu上发了一篇帖子http://linux.chinaunix.net/bbs/viewthread.php?tid=1166062&extra=page%3D1,如果有描述不清楚的地方请给我发邮件thomas.cjk@gmail.com

garfield_trump2009-06-20 15:01:32

这个地址是动态分配的,每次插入卡都可能不一样,回去属性哪里看下就知道了,不一定是0x3000或者0x2f8的,还可能是别的地址。

chinaunix网友2009-06-15 21:35:53

请问 0x3000 这个地址是怎么看到的啊,从 0x2cf8 得出的