(转载)重新编译SJF2410以适应NM9805并口卡(PCMICIA接口)

H-Jtag软件自带的H-Flasher只提供了烧写Nor-Flash的功能,并不能烧写Nand等,很庆幸SJF2410提供了C++源代码,立马装了个VC对代码进行重编译以适应我的PCI转出来的并口卡,简单的来说就是将默认的378地址改成我的FFE8。

主要要改的是两个文件

1、ppt.h

源代码如下,可以看到默认的LPT1-3地址都在上面,将2和3删去,将LPT1地址改为0xFFE8
#ifndef __PPT_H__
#define __PPT_H__

int GetValidPpt(void);
int InstallGiveIo(void);
void SetPptCompMode(void);

extern int validPpt;

#define LPT1 0×378  // the search order is LPT1 then 2 then 3
#define LPT2 0×278  // first valid address found is used (re-order if needed for multiple ports)
#define LPT3 0×3bc  // hardware base address for parallel port

#define OutputPpt(value)    _outp((unsigned short)validPpt,value)
#define InputPpt()      _inp((unsigned short)(validPpt+0×1))

#endif //__PPT_H__

如下:

#ifndef __PPT_H__
#define __PPT_H__

int GetValidPpt(void);
int InstallGiveIo(void);
void SetPptCompMode(void);

extern int validPpt;

#define LPT1 0xFFE8
#define OutputPpt(value)    _outp((unsigned short)validPpt,value)
#define InputPpt()      _inp((unsigned short)(validPpt+0×1))

#endif //__PPT_H__

2、PPT.c
按道理来说改完上面的就可以用了,但是不知道为什么,编译后还是提示找不到并口,于是手动将LPT1返回。
涉及到的函数是int GetValidPpt(void)。
源代码:

int GetValidPpt(void)
{
// search for valid parallel port
_outp(LPT1, 0×55);
if((int)_inp(LPT1) == 0×55)
return LPT1;

_outp(LPT2, 0×55);
if((int)_inp(LPT2) == 0×55)
return LPT2;

_outp(LPT3, 0×55);
if((int)_inp(LPT3) == 0×55)
return LPT3;

return LPT1;
}

修改后:

int GetValidPpt(void)
{
// search for valid parallel port
return LPT1;
}

 

转载自:http://blog.jacobhere.com/2008/06/how_to_recompile_sjf2410_nm9805_pcmicia_pata_port/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值