当前位置: 技术问答>linux和unix
linux 驱动程序 虚拟地址 物理地址 问题
来源: 互联网 发布时间:2017-04-08
本文导语: 嵌入式开发板tq2440,使用Linux操作系统 请问应该怎么配一个GPIO口,应该使用物理地址还是虚拟地址?查硬件手册得到的寄存器地址可以吗?Linux内核里定义的S3C2410_GPBDAT 之类的宏又是什么地址呢? | ...
嵌入式开发板tq2440,使用Linux操作系统
请问应该怎么配一个GPIO口,应该使用物理地址还是虚拟地址?查硬件手册得到的寄存器地址可以吗?Linux内核里定义的S3C2410_GPBDAT 之类的宏又是什么地址呢?
请问应该怎么配一个GPIO口,应该使用物理地址还是虚拟地址?查硬件手册得到的寄存器地址可以吗?Linux内核里定义的S3C2410_GPBDAT 之类的宏又是什么地址呢?
|
外部端口使用ioremap映射
gpio_virt = ioremap(0x7f008000, SZ_4K) 使用时将物理地址映射到虚拟地址,以4K为大小映射(即32位系统的一页)物理地址 0x7f008000 到 0x7f009000 在映射之后都可以通过虚拟地址 gpio_virt+增量 访问。
S3C2410_GPBDAT 这个应该是定义在头文件中的物理地址,和手册上是一样的
gpio_virt = ioremap(0x7f008000, SZ_4K) 使用时将物理地址映射到虚拟地址,以4K为大小映射(即32位系统的一页)物理地址 0x7f008000 到 0x7f009000 在映射之后都可以通过虚拟地址 gpio_virt+增量 访问。
S3C2410_GPBDAT 这个应该是定义在头文件中的物理地址,和手册上是一样的