免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2817 | 回复: 0
打印 上一主题 下一主题

Aki看过来~~~请指教! [复制链接]

论坛徽章:
0
1 [报告]
发表于 2004-01-06 14:51 |显示全部楼层

Aki看过来~~~请指教!

你的驱动程序可能不是用苹果的指导文档编写的。

有很多原因造成这种现象:
IOMemoryDescriptor的变更:
当驱动程序调用IOMemoryDescriptor::prepare时,一个内存地址映射自动地加入到DART中。当它调用IOMemoryDescriptor::release时,这个映射就会从DART中删除。如果没有成功进行这个高用,那么设备驱动程序就可能出现随机数据损坏,或者崩溃。

由于DART要求为读写操作进行不同的缓存,DMA的方向对于包含DART的硬件来说就非常重要。一般地说,如果DMA的方向发生错误,你可能收到随机错误(在任何系统上),而如果你尝试对DMA方向设置成读的内存区域进行WriteByess调用,则在64们的硬件上将导致核心崩溃。

如果你试图对没有连线(unwired)内存(也即用户内存)执行DMA事务,在先前的系统中,你可能只能得到随机崩溃,或者数据损坏。但是在具有DART的机器上,你很呆能是没有得到任何数据而已。

对内存子系统进行变更带来了副作用,Mac OS X因此非常倾向于在内存区返回物理上连续的页面范围。由于历史的原因,Mac OS X按照相反的顺序返回多页的内存区,以最后一页开始,顺序移动到第一页。这导致Mac OS X返回的多页内存区在本质上就不会是物理是连续的。

由于对内存区中物理上连续的内存块进行操作的可能性越来越大,以上的改变对于一些必须处理物理上连续的内存页面的驱动程序来说,可能会带来潜在的错误,可能会使这些驱动程序出现不正确的行为或者崩溃。

不过Panher已经为硬件重新设计做出了改变,希望你能极时更新软件版本。

核心依赖性的变更:
从Panther开始,声明依赖于版本7(就是Panhter版本)的I/O kit 的设备驱动程序将不再自动得到Mach和BSD中定义的符号。之所以做这个变更是为了使I/O kit的开发者不再依赖于那些没有在I/O kit中显式声明可以使用的符号。

已经存在的驱动程序不受这个变更的影响。如果你为了得到新版的I/O kit的新功能而修改驱动程序并显式声明对版本7的依赖性,则将会受到影响。

以上只是问题出现可能的一部分原因,还有如PCI地址和虚存系统等问题。一些驱动程序可能需要做一些小的修改,才能支持Panther和更高版本的操作系统。为了最大程序的扩展,苹果已经尽力兼容所有已经存在的设备驱动程序,但是一部分驱动可能还有问题,你可以关注Apple Developer.希望你的问题能早日解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP