标签: linux-kernel
我的理解是内核页面大小为4K。我想为我的驱动程序分配16K连续内存作为我的缓冲区。我使用kmalloc()并返回一个指针(我假设分配成功)。
这是否意味着16K是连续的?
我从kmalloc()获得的地址是虚拟地址吗?如果我需要将该地址传递给HW寄存器,我是使用虚拟地址还是物理地址?
答案 0 :(得分:2)
是 - 使用kmalloc分配的内存是物理连续的,地址是虚拟地址。尝试使用virt_to_phys()宏来获取物理地址。