我有一个ARM目标。
我需要读出一个物理地址。该地址是在并行NOR闪存中的位置。ROM直接在地址总线上。
如果我创建一个模块:
if ((rmap = ioremap(ROM_BASE, ROM_SIZE)) == NULL)
{
printk(KERN_ERR "Mapping ROM failed\n");
return -1;
}
(使用大小为0x100000000的基本0x40000000)如果失败:[1091.270686]映射ROM失败insmod:插入'rom.ko'时出错:-1操作不允许
在这种情况下,目标没有/ dev / mem ...但是具有不同的内核,并且读取相同的地址。因此,地址正确且可读。
谢谢
arm上的ioremap最终以mtype = MT_DEVICE调用__arm_ioremap_pfn_caller,这可能以多种方式失败:
有关ARM内存分配的更多信息,请查看此页面
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句