免费注册 查看新帖 |

Chinaunix

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

回事数据类型的问题吗? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-03-29 10:44 |只看该作者 |倒序浏览
5可用积分
最近写驱动遇到了i/o内存方面的麻烦,把外设寄存器映射为io内存,往外设写数的时候,用了一个内核中的函数writew向外写数,可是发现这一个写语句引起了系统两次写操作,第一次把我写入的16位数的低8位重复到高8位写入了,第二次把高8位重复到低8位写入了。
(要writew(0x1234,addr),可是它第一次写了个0x3434,第二次写入了0x1212,这样来看它最后写入的就是0x1212)
这个现象我是百思不得其解。主要就是对内核了解的不够。大家一块议议。

外设的寄存器是16位,程序中定义了unsigned short *来指向外设寄存器

论坛徽章:
0
2 [报告]
发表于 2009-03-29 14:01 |只看该作者
直接用write写实是,或者writel
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP