
GPFCON 0X56000050
GPFDAT 0x56000054
GPFUP 0x56000058
Reserved 0x5600005c
这是四个连续的物理地址,每个长度为4字节,所以是16
2. 在 32位系统上, sizeof(指针) 是4,所以 sizeof(xxxx xxxx *) 总是等于4,由于gpfcon 指向的是被映射后的 0X56000050, gpfdata 就指向 0x56000054
你不是已经说了区别ioremap是将物理地址转换为虚拟地址mmap是将设备内存线性地址映射到用户地址空间linux的线程只能访问虚拟地址,不管是不是内核,ioremap应用,比如有个寄存器地址是0xe8000000你要用ioremap映射后,才能访问地址0xe8000000。这两个地址是不同的,mmu会帮你搞定,对你是透明的mmap在内核我用过ops中的mmap方法我写过一个例程,见附件。里面还有用户态的测试程序。欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)