2012-08-17 126 views
0

我将omap3-board的驱动程序移植到3.5内核。当我开始我看到它:虚拟内核内存布局:负值

Memory: 256MB = 256MB total 
Memory: 253564k/253564k available, 8580k reserved, 3226106074K highmem 
Virtual kernel memory layout: 
    vector : 0xffff0000 - 0xffff1000 ( 4 kB) 
    fixmap : 0xc04a78ea - 0xc0573f24 ( 0 kB) 
    vmalloc : 0xc0573f24 - 0xc0573f2c (5276 MB) 
    lowmem : 0xc0573fbc - 0xc0573f30 (-1068285412 MB) 
    modules : 0xc03d93e4 - 0xc04a7927 (-65536 MB) 
     .text : 0xffff1000 - 0x00000004 (-1048576 kB) 
     .init : 0xfffe0000 - 0x00000380 (-796917760 kB) 
     .data : 0xff000000 - 0x000002e8 (-1073741824 kB) 
     .bss : 0xd0000000 - 0x00000100 (-1090519040 kB) 
SLUB: Genslabs=11, HWalign=64, Order=0--1068023944, MinObjects=-1068023968, CPUs=-1071855052, Nodes=-1071855184 

为什么记忆的价值如此之大和负面?我该如何解决它?

回答

1

您可能正在使用带符号的32位数据类型操作无符号的32位值。使用无符号的32位数据类型或64位数据类型。

实际上,你甚至可能在32位数据类型中操纵64位值,很难说。我建议使用64位数据类型。