-
- Т.к. озу не хватает, то пришлось сломать привычки и перейти на
динамическое выделение памяти. Т.е. пришел на порт сервера запрос -
выдать жирную json. Я пытаюсь выделить средствами freertos
динамическую память под буфер, если свободного озу нет, то
отправляю отлуп. Если есть - то выделяю буфер, формирую json,
отправляю, освобождаю память. так крутится дофига сервисов и ничего
насмерть не падает. - Cтyк(Сегодня, 05:37,
)
- В CH32F207 с CycloneTCP сильно помогает возможность менять размер
ОЗУ фьюзами. Сделали несколько проектов и пока удавалось обойтись
без внешнего ОЗУ, но в одном случае всё вошло едва-едва. AlexG(88 знак., Сегодня, 09:29)
- Когда делал подход с комплектным TCP/IP FreeRTOS, было ощущение,
что всё под контролем - не было буферов или чего-то такого,
требующего ОЗУ, что не конфигурировалось бы пользователем в явном
виде. - Nikolay_Po(Сегодня, 09:32)
- да. в этом вся прелесть. делашь ручками как нужно. для FreeRTOS TCP определяем статически массив дескрипторов DMA, к ним добавляем схема 1) выделение и освобождение адреса буфера из кучи( в качестве кучи использую перепиленный o1heap). схема 2) определение статического массива буферов числом дескрипторов и функции их выдергивания и освобождения. я обе проверил. обе работают. стек только просит и возвращает буфера. - klen(Сегодня, 10:01)
- Когда делал подход с комплектным TCP/IP FreeRTOS, было ощущение,
что всё под контролем - не было буферов или чего-то такого,
требующего ОЗУ, что не конфигурировалось бы пользователем в явном
виде. - Nikolay_Po(Сегодня, 09:32)
- Спасибо. План примерно такой же, только сначала попробую поднять родной IP FreeRTOS'а. - Nikolay_Po(Сегодня, 09:06)
- В CH32F207 с CycloneTCP сильно помогает возможность менять размер
ОЗУ фьюзами. Сделали несколько проектов и пока удавалось обойтись
без внешнего ОЗУ, но в одном случае всё вошло едва-едва. AlexG(88 знак., Сегодня, 09:29)
- Несколько пожирнее будет чем lwip. Но циклон на каждый чих создает
задачу freertos что сильно жрет озу, но зато честная неблокирующая
многозадачность. Cтyк(2330 знак., Сегодня, 05:28,
)
- Кстати, подрезкой стеков для этих задач занимались? Примерно так: дали системе поработать в самых жёстких режимах а потом смотрим, до какого места затёрт паттерн чистого буфера стека. И уже по обнаруженным границам, с запасом на размер контекста задачи, уменьшать размер стека. - Nikolay_Po(Сегодня, 09:13)
- Спасибо. - Nikolay_Po(Сегодня, 09:05)
- Т.к. озу не хватает, то пришлось сломать привычки и перейти на
динамическое выделение памяти. Т.е. пришел на порт сервера запрос -
выдать жирную json. Я пытаюсь выделить средствами freertos
динамическую память под буфер, если свободного озу нет, то
отправляю отлуп. Если есть - то выделяю буфер, формирую json,
отправляю, освобождаю память. так крутится дофига сервисов и ничего
насмерть не падает. - Cтyк(Сегодня, 05:37,