WinCE 6.0 KITL 不能使用DM900 网卡驱动修改记录

修改理由:

由于eboot 和KITL 同时调用 DM9000DBG_Init 这个函数,在eboot 掉用时使用的是没有经过映射的地址,当镜像加载完成后,时候的是映射过的地址。 而DM9000DBG_Init 任然时候的是没有经过映射的地址。这样做导致的直接后果是,KITL起来当访问没有这段地址(0x15000000)的时候立马死机。

但是有引出了另外的一个问题,就是这样修改在启动eboot的时候,用的是映射过的地址,在eboot中访问映射过的地址同样会死机(因为mmu还没有起来)。

最后找了一种比较折中的解决方案:

在编译eboot的时候用下面代码:

DM9000DBG_Init

{

......

//Add ed by peng
/OALPAtoVA((UINT32)0x15000000, FALSE);
//OALPAtoVA((UINT32)0x15000000+ 0x400, FALSE);

//Mask by peng
//Give the Index and Data port Address
dwIndexPortAddress = 0x15000000;
dwDataPortAddress = 0x15000000 + 0x400;

.......

}

编译内核的时候用下面代码:

DM9000DBG_Init

{

......

//Add ed by peng
dwIndexPortAddress = OALPAtoVA((UINT32)0x15000000, FALSE);
dwDataPortAddress = OALPAtoVA((UINT32)0x15000000+ 0x400, FALSE);

//Mask by peng
//Give the Index and Data port Address
//dwIndexPortAddress = 0x15000000;
//dwDataPortAddress = 0x15000000 + 0x400;

.......

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值