gpt4 book ai didi

c - ioremap 在物理地址上失败

转载 作者:太空宇宙 更新时间:2023-11-04 08:32:26 29 4
gpt4 key购买 nike

我有一个 ARM 目标。

我需要读出一个物理地址。该地址是并行 NOR 闪存中的一个位置。ROM直接在地址总线上。

如果我创建一个模块:

   if ((rmap = ioremap(ROM_BASE, ROM_SIZE)) == NULL)
{
printk(KERN_ERR "Mapping ROM failed\n");
return -1;
}

(使用基数 0x40000000 大小 0x100)如果失败:[1091.270686]映射ROM失败insmod:插入“rom.ko”时出错:-1 不允许操作

在这种情况下,目标没有/dev/mem...但是它具有不同的内核......并且读取相同的地址工作。因此该地址是正确且可读的。

谢谢

最佳答案

ARM 上的 ioremap 最终调用 __arm_ioremap_pfn_caller使用 mtype = MT_DEVICE,它可能会以多种方式失败:

  • 地址不得定义为 RAM 地址(检查 meminfo)
  • 进程可能超出 VM 空间(不太可能)
  • 可能没有空闲页表条目(取决于体系结构)

有关 ARM 内存分配检查的更多信息 this page

关于c - ioremap 在物理地址上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27723426/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com