我正在将omap3板的驱动程序移植到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

为什么记忆的价值如此巨大和消极?我怎样才能修好它?

最佳答案

您可能正在使用有符号32位数据类型操作无符号32位值。使用无符号的32位数据类型或64位数据类型。
实际上,您甚至可能在32位数据类型中操作64位值,这很难说。我建议使用64位数据类型。

关于linux - 虚拟内核内存布局:负值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12003076/

10-13 09:09