_Heap_Allocate_aligned return the same address?

Sergei Organov osv at javad.com
Wed Sep 12 10:27:55 UTC 2007


"阎淼" <yanmiaobest at gmail.com> writes:
> Hi,
>
>    I am using rtems-4.7.1 on i386-qemu, I called
> _Heap_Allocate_aligned  twice, but the return address are the same.
> here is my code:
>
>    char buf[4096 * 10];
>    #define PAGE_SIZE 4096
>    void f()
>    {
>         Heap_Control the_heap;
>         _Heap_Initialize( &the_heap, (void *)buf,  4096 * 10,  CPU_ALIGNMENT);
>
>          void  *p = _Heap_Allocate_aligned( &the_heap, 4096, PAGE_SIZE);
>          void  *g = _Heap_Allocate_aligned( &the_heap, 4096, PAGE_SIZE);
>
>          printf("0x%x\n", p );
>          printf("0x%x\n", g );
> }
>
> and the output is:
>
>   0x125000
>   0x125000
>
>  is somthing wrong here?

Yes, it seems it is. I'm able to reproduce the problem here. I'm now
looking into the heap code to identify and fix the problem.

-- Sergei.



More information about the users mailing list