ubuntu 10.04 LTS(2.6.32-38-generic)i686 - 英特尔 i7 - 16GB
我收到一定数量的内存map failed
错误。memset
你有什么主意吗?附加信息是我可以malloc
同样大小。这是我的代码。
//Here I could malloc successfully
pdev->frame_buffer = (uint16_t *)malloc(3840000);
//Then, I got map_failed error here and message from compiler is "Invalid argument"
if((pdev->frame_buffer = (uint16_t *)mmap(0, 3840000, PROT_READ | PROT_WRITE, MAP_SHARED, fb, 0)) == MAP_FAILED){
perror("Error: cannot mmap frame buffer");
exit(1);
}
如果我mmap
小于我在上面尝试的大小mmap(0, 100,...)
,那么它会返回正确的地址。我不确定这个问题是否是因为尺寸。
你有任何猜测为什么会发生吗?