我正在将 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 位数据类型。