最近自己写了一个LED的驱动,熟悉GPIO的操作,当时用writel()直接往GPMDAT寄存器物理地址里写数据,应用层调用的时候会内存泄漏报错,后来参照网上用了虚拟地址,
#define GPMCON 0xF4500820 //这里是虚拟地址,物理地址是0x7F008820
#define GPMDAT 0xF4500824 //物理地址0x7F008824
想知道这个虚拟地址和物理地址究竟有什么关系,是不是访问S3C6410的所有寄存器都必须用物理地址对应的虚拟地址?
求大虾指导下小弟,虽然说ioremap()可以通过物理地址找到对应的虚拟地址,不过我想知道更具体一点的
------解决方案--------------------
用户手册 里面有个MMU 算来算去很麻烦 不过别人都给你实现函数了 你用就是了
------解决方案--------------------
页管理内存,寄存器对应的地址是固定的