Bug using pvPortMalloc

nobody wrote on Wednesday, March 22, 2006:

Hello,
we have ported FreeRTOS on the ADUC7026 Microcontroller and have sucessfully  used pvPortMalloc from Heap_2.c for many purpose.
But since we try to allocate memory for a certain Datastructure, it works correctly with the Keil simulator but abort when testing on the Ucontroller.

Here is the datastructure.

/*********************************************/
typedef struct txmsg {
        struct txmsg    *next;  /* Next in linked list. */
        ABCSP_TXMSG     *m;     /* The message (reference) itself. */
        unsigned        chan:4; /* BCSP channel. */
        unsigned        seq:3;  /* Sequence number. */
        } TXMSG;

/*******************
And here the code using that datastructure * ********************/

void testCalloc(void){

TXMSG * m;
m = ( TXMSG * ) malloc ( sizeof ( TXMSG ) );
if ( m ==(( TXMSG * ) NULL ) ) /*Panic*/ ;
else {
     m->chan=0;
     }
}
/********** End of the code ******************/

We stepped with the Keil Debugger on the Heap_2.c
pvPortMalloc code and found that the System allways abort when trying to call:

/* Insert the new block into the list of free blocks. */
                    prvInsertBlockIntoFreeList( ( pxNewBlockLink ) );

Please have even had a such problem ? Or do you have any solution for this?

Thank you in advance.

Emeric

nobody wrote on Wednesday, March 22, 2006:

Do you have portBYTE_ALLIGNMENT set correctly?

nobody wrote on Wednesday, March 22, 2006:

portBYTE_ALIGNMENT  is set to 4.

Emeric