您的位置 首页 ADAS

ARM的I/O口操作

我对IO端口的指令和IO内存的指令都写了相应的驱动程序,都通过了测试。在这里值得注意的有4点:(1)所有的读写指令所赋的地址必须都是虚

我对I/O端口的指令和I/O内存的指令都写了相应的驱动程序,都经过了测验。在这里值得注意的有4点:

(1)一切的读写指令所赋的地址有必要都是虚拟地址,你有两种挑选:运用内核现已定
义好的地址,如
S3C2440_GPJCON等等,这些都是内核界说好的虚拟地址,有爱好的能够看源码。还有一种办法便是运用自己用ioremap映射的虚拟地址。肯定
不能运用实践的物理地址,否则会由于内核无法处理地址而呈现oops。
(2)在运用I/O指令时,能够不运用request_region和request_mem_region,而直接运用outb、ioread等指令。由于request的功用仅仅告知内核端口被谁占用了,如再次request,内核会阻止。
(3)在运用I/O指令时,所赋的地址数据有时有必要经过强制类型转换为 unsigned long ,否则会有正告(详细原因请看
Linux设备驱动程序学习(7)-内核的数据类型
) 。尽管你的程序或许也能够运用,可是最好仍是不要有正告为妙。
(4)在includeasm-armarch-s3c2410hardware.h中界说了许多io口的操作函数,有需求能够在驱动中直接运用,很便利。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/259203.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部