
hi there
after modifing some codes(forget what's the codes:() arm-elf-gcc also get malloc failure,I have to think about my program has something wrong
actually malloc have got failure in the lib_arm/board.c:
a malloc will trigger *sbrk twice(why?) test code in start_armboot() ... void *testptr; testptr=malloc(10); ...
in the void *sbrk (ptrdiff_t increment) { ulong old = mem_malloc_brk; ulong new = old + increment;
if ((new < mem_malloc_start) || (new > mem_malloc_end)) { return (NULL); } mem_malloc_brk = new;
return ((void *) old); }
I print out the debug information:
1st trigger:
increment: a2e2e4e?(so big?) old: c6dfc00 new: 169c2a4e mem_malloc_start: c6dfc00 mem_malloc_end: c700000
2nd:
increment: 1b2 old: c6dfc00 new: c6dfdb2 mem_malloc_start: c6dfc00 mem_malloc_end: c700000
seems the 2nd is ok but testptr still =0
***************** in the cpu/s3c44b0/start.S I create stack like that:
stack_setup:
ldr r0,=0xc700000 /* upper 128 KiB: relocated uboot */ sub r0, r0, #CFG_MALLOC_LEN /* malloc area 1024+128*1024 =1227204bytes */ sub r0, r0, #CFG_GBL_DATA_SIZE /* bdinfo 128 */ sub sp, r0, #12 /* leave 3 words for abort-stack */
i think it should be ok ******************
regards, rui
________________________________
From: u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] Sent: Saturday, January 27, 2007 12:11 PM To: u-boot-users@lists.sourceforge.net Subject: [U-Boot-Users] Arm-linux-gcc malloc get failure while arm-elf-gcc ok
hi there
I wonder if I am the first one to get this problem
In common\lists.c
Handle NewHandle (unsigned int numBytes) { void *memPtr; HandleRecord *hanPtr;
memPtr = calloc (numBytes, 1); hanPtr = (HandleRecord *) calloc (sizeof (HandleRecord), 1);
Debug("memPtr:%d hanPtr:%d\n",memPtr ,hanPtr ); //arm-linux-gcc get 0 for both of the Ptr while arm-elf-gcc can malloc successfully
if (hanPtr && (memPtr || numBytes == 0)) { hanPtr->ptr = memPtr; hanPtr->size = numBytes; return (Handle) hanPtr; } else { free (memPtr); free (hanPtr); return NULL; }
}
Arm-elf-gcc is 3.4.0 Arm-linux-gcc is 3.3.2 (heard there are most problems in this version??)
Regards Zhou rui