реклама на сайте
подробности

 
 
> STM32 зависание при добавлении любой функции
Neo_Matrix
сообщение Feb 17 2016, 21:33
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 27
Регистрация: 11-04-06
Пользователь №: 16 029



Имеется плата на stm32f407 камне. Пытаюсь написать функцию парсинга ответов от модема, но при добавлении любой строки в функцию - получаю полное зависание проца. Как отлаживать не могу понять, так как присутствует FreeRTOS.
Собственно сама функция выглядит так:
Код
uint8_t modemresponse(char * data, uint16_t leng)
{
    if(iblanks(Uart3RXBuf, leng))
    {
        return 0;
    }
    else if(memchr(data, '+', leng) && memchr(data, ':', leng))
    {
        return 1;
    }
    else if(strstr(data,"ERROR") != NULL)
    {
        return 2;
    }
    else
    {
        return 3;
    }
}

Если сделать как ниже, то все работает. Тоесть достаточно закоментировать любой из else if или даже else. Если закоментировать один вариант выбора и вместо него в конец функции подставить хотя бы
Код
HAL_UART_Transmit(&huart6,(uint8_t *)"Zavislo\r",8,100);
или все что угодно - опять висяк.
Код
uint8_t modemresponse(char * data, uint16_t leng)
{
    if(iblanks(Uart3RXBuf, leng))
    {
        return 0;
    }
    else if(memchr(data, '+', leng) && memchr(data, ':', leng))
    {
        return 1;
    }
    //else if(strstr(data,"ERROR") != NULL)
    //{
    //    return 2;
    //}
    else
    {
        return 3;
    }
}

Когда то с таким сталкивался и проблема была в размере СТОК\ХЕАП. В данном случае пробовал менять их размер и в FreeRTOS и в Стартап файле, но как узнать какой размер куда прописывать?

Похоже разобрался. Поставил во FreeRTOS вместо heap4 тип heap1.

Сообщение отредактировал Neo_Matrix - Feb 17 2016, 21:34
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Feb 18 2016, 07:56
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата(Neo_Matrix @ Feb 18 2016, 00:33) *
Когда то с таким сталкивался и проблема была в размере СТОК\ХЕАП. В данном случае пробовал менять их размер и в FreeRTOS и в Стартап файле, но как узнать какой размер куда прописывать?

Для этого надо вдумчиво прочитать документацию и провести эксперименты.



Цитата(Neo_Matrix @ Feb 18 2016, 00:33) *
Похоже разобрался. Поставил во FreeRTOS вместо heap4 тип heap1.

Маловероятно. Скорее всего, проблема где-то глубже.
Кроме того, heap1 очень ущербный - там в принципе нет free(). С ним можно работать, если у Вас задачи-массивы-проч создаются один раз, статически. Если же пользоваться malloc()/free() при работе, операционка довольно быстро повиснет.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Neo_Matrix   STM32 зависание при добавлении любой функции   Feb 17 2016, 21:33
- - gazpar   Странно, что работает: Кодconst void * memchr ...   Feb 18 2016, 01:08
|- - Сергей Борщ   Цитата(gazpar @ Feb 18 2016, 03:08) Стран...   Feb 18 2016, 07:03
- - Neo_Matrix   gazpar Странно, что работает: void *memchr(cons...   Feb 18 2016, 08:30
|- - esaulenka   Цитата(Neo_Matrix @ Feb 18 2016, 11:30) Г...   Feb 18 2016, 09:13
- - gazpar   Ок. Neo_Matrix, Вы используете прерывания? Если д...   Feb 18 2016, 08:48
- - Neo_Matrix   gazpar Настройка прерываний следущая HAL_NVIC_SetP...   Feb 18 2016, 10:37
- - gazpar   В этой РТОС есть специальные службы для определени...   Feb 18 2016, 10:56
- - Neo_Matrix   Немного добавлю по отладке. Есть задача, которая в...   Feb 18 2016, 11:41
|- - esaulenka   Цитата(Neo_Matrix @ Feb 18 2016, 14:41) Н...   Feb 18 2016, 13:09
|- - turnon   Цитата(esaulenka @ Feb 18 2016, 17:09) 2)...   Mar 17 2016, 21:36
- - Neo_Matrix   Цитата(esaulenka @ Feb 18 2016, 15:09) 1)...   Feb 18 2016, 14:45
|- - esaulenka   Цитата(Neo_Matrix @ Feb 18 2016, 17:45) e...   Feb 18 2016, 15:52
- - Neo_Matrix   esaulenka,gazpar Спасибо за помощь. Уже немного ра...   Feb 18 2016, 21:56
- - esaulenka   Слово "HAL" я пропустил. Вас ждёт масса...   Feb 19 2016, 07:17
- - Neo_Matrix   К сожалению не изменилось нечего Кроме: Код * @fi...   Feb 19 2016, 09:15


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 22:58
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016