PIC32 c32 1.12, Malloc зависает приложение - PullRequest
1 голос
/ 10 ноября 2011

Я компилирую следующий код для PIC32 с C32 v1.12, используя MPLabX IDE. Компиляция кода находит, но висит на malloc(), кажется, не имеет значения, какой размер я пытаюсь переместить в malloc, он всегда зависает.

Под зависанием я подразумеваю, что отладчик перестает отвечать на запросы, и приложение должно быть перезапущено вручную перед продолжением.

#define SAFE_DELETE( x ) { if(x != NULL ) { free(x); x=NULL ; } } 

BOOL Test_Malloc() {

    int *ptr = NULL ;
    ptr = (int*)malloc(10 * sizeof (int)); // With a cast
    if( ptr != NULL ) {
        SAFE_DELETE( ptr );
        return TRUE ;
    }
    return FALSE ; 
}

Мой вопрос:

  • Как мне распределить память на PIC32 с C32 v1.12?

1 Ответ

2 голосов
/ 10 ноября 2011

Убедитесь, что размер кучи вашего проекта установлен как минимум на 4 КБ больше, чем максимальный объем динамической памяти, который вам может понадобиться.Вы должны угадать, что может понадобиться библиотеке C, если вы вызываете функции, которые сами вызывают malloc.Это не совсем точная наука.

См. Эту ветку форума по микрочипам для получения более подробной информации.

...