硬件寄存器内存映射
小弟新手,向前辈请教一点问题,先声道谢!
我在写驱动时,在程序中访问硬件中的寄存器,寄存器是怎样映射到内存中的?映射的这相地址如何知道是多少?在程序中直接访问这个地址就相当于访问这个硬件的寄存器。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
小弟新手,向前辈请教一点问题,先声道谢!
我在写驱动时,在程序中访问硬件中的寄存器,寄存器是怎样映射到内存中的?映射的这相地址如何知道是多少?在程序中直接访问这个地址就相当于访问这个硬件的寄存器。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
推荐LZ看一下LDD3中的IO读写的那一章
就是用mmap,随便找个mmap的例子一看就明白了
驱动里面用ioremap_nocache(),返回映射后的虚拟地址
只知道理论,还没有实践操作过
两步:
1, request_mem_region()
2, ioremap()
将硬件寄存器地址映射到内核内存空间用函数ioremap,如果想将硬件寄存器地址映射到用户空间可在驱动程序中构造一个mmap的方法。
同意6楼和8楼,以前在产品中做过这样的小驱动。