当前位置: 技术问答>linux和unix
困扰两周了,一直解决不了
来源: 互联网 发布时间:2016-02-04
本文导语: 程序是在红帽9下写的网络通信程序,开始时用malloc分几次动态分配了2M左右的内存,后来我改成数组形式,还是这样,在红帽下用gcc -o alarm alarm.c编译后运行正常,用uclinux的arm-elf-gcc -O2 -elf2flt -o alarm alarm.c -lpthr...
程序是在红帽9下写的网络通信程序,开始时用malloc分几次动态分配了2M左右的内存,后来我改成数组形式,还是这样,在红帽下用gcc -o alarm alarm.c编译后运行正常,用uclinux的arm-elf-gcc -O2 -elf2flt -o alarm alarm.c -lpthread编译后在44b0目标板上执行就出下面的信息:
Allocation of length 2657971 from process 24 failed
Buffer memory: 476KB
Cache memory: 484kB
Free pages: 2788kB ( 0KB HighMem)
Zone:DMA freepages: 0KB
Zone:Normal freepages: 2788KB
( Active: 201, inactive : 39 , free : 697 )
= 0KB )
1*4KB 0*8KB 0*16KB 1*32KB 1*64KB 1*128KB 0*256KB 1*512KB 0*1024KB 1*2048KB = 2788KB)
= 0KB )
Unable to allocate RAM for process text/data , errno 12
Allocation of length 2657971 from process 24 failed
Buffer memory: 476KB
Cache memory: 484kB
Free pages: 2788kB ( 0KB HighMem)
Zone:DMA freepages: 0KB
Zone:Normal freepages: 2788KB
( Active: 201, inactive : 39 , free : 697 )
= 0KB )
1*4KB 0*8KB 0*16KB 1*32KB 1*64KB 1*128KB 0*256KB 1*512KB 0*1024KB 1*2048KB = 2788KB)
= 0KB )
Unable to allocate RAM for process text/data , errno 12
|
不太懂uClinux,不过google到的一些东西,楼主试试吧:
uClinux默認能夠分配的最大內存是1M
你可以在linux-xxx/mmnommu/slab.c里面修改cache_sizes數組
来自http://edu.stuccess.com/knowcenter/Embedded/questions/3.2/2/00000000.htm
uClinux默認能夠分配的最大內存是1M
你可以在linux-xxx/mmnommu/slab.c里面修改cache_sizes數組
来自http://edu.stuccess.com/knowcenter/Embedded/questions/3.2/2/00000000.htm