Chinaunix首页 | 论坛 | 博客
  • 博客访问: 49960
  • 博文数量: 11
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2013-03-25 17:31
文章分类
文章存档

2013年(11)

分类:

2013-05-23 20:47:43

    最近给我的笔记本买了一笔记本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

 

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

      呵呵!!!

 

 

阅读(1684) | 评论(0) | 转发(0) |
0

上一篇:在嵌入式Linux上实现SQLite数据库

下一篇:没有了

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