如何printk void * ioremap_nocache()的返回值?

时间:2013-07-17 18:06:46

标签: c linux linux-kernel kernel linux-device-driver

我如何用printk打印函数ioremap_nocache返回的地址值?

void * ioremap_nocache (unsigned long phys_addr, unsigned long size);  

http://mirror.linux.org.au/linux-mandocs/2.6.4-cset-20040312_2111/ioremap_nocache.html

我需要知道存储的虚拟地址的值,以便调试函数的打开,读取和写入。

2 个答案:

答案 0 :(得分:2)

您可以同时使用%lu%p来打印指针。他们有不同的代表性

void *pointer = ioremap_nocache(phys_addr, size);
unsigned long cast = pointer;
printk("%lu - %p", cast, pointer);    // '15294563 - 0x499602d2'

这项工作也适用于printf()

答案 1 :(得分:1)

您可以使用以下

unsigned long x = ioremap_nocache (addr, size);  

printk(" %lu",x);