-
- Навскидку, не оценивали, сколько занимает Ethernet+TCP в прошивке?
Сколько выделили ОЗУ для пакетов? - Nikolay_Po(Вчера, 19:41)
- Т.к. озу не хватает, то пришлось сломать привычки и перейти на
динамическое выделение памяти. Т.е. пришел на порт сервера запрос -
выдать жирную json. Я пытаюсь выделить средствами freertos
динамическую память под буфер, если свободного озу нет, то
отправляю отлуп. Если есть - то выделяю буфер, формирую json,
отправляю, освобождаю память. так крутится дофига сервисов и ничего
насмерть не падает. - Cтyк(Сегодня, 05:37,
)
- В CH32F207 с CycloneTCP сильно помогает возможность менять размер
ОЗУ фьюзами. Сделали несколько проектов и пока удавалось обойтись
без внешнего ОЗУ, но в одном случае всё вошло едва-едва. AlexG(88 знак., Сегодня, 09:29)
- Когда делал подход с комплектным TCP/IP FreeRTOS, было ощущение,
что всё под контролем - не было буферов или чего-то такого,
требующего ОЗУ, что не конфигурировалось бы пользователем в явном
виде. - Nikolay_Po(Сегодня, 09:32)
- Так что - приятнее чем LwIP? Как-то смущает, что не использует
народ комплектный. - vesago(Сегодня, 10:25)
- Да я, честное слово, никакого ещё не использовал. Как мне показалось, LwIP - это минималистичный стек, в основном для проектов без ОС и интегрировать его в ОС - отдельная забота. Nikolay_Po(592 знак., Сегодня, 10:56)
- да. в этом вся прелесть. делашь ручками как нужно. для FreeRTOS TCP определяем статически массив дескрипторов DMA, к ним добавляем схема 1) выделение и освобождение адреса буфера из кучи( в качестве кучи использую перепиленный o1heap). схема 2) определение статического массива буферов числом дескрипторов и функции их выдергивания и освобождения. я обе проверил. обе работают. стек только просит и возвращает буфера. - klen(Сегодня, 10:01)
- Так что - приятнее чем LwIP? Как-то смущает, что не использует
народ комплектный. - vesago(Сегодня, 10:25)
- Когда делал подход с комплектным 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)
- Использую Циклон с scmRTOS и занимаюсь именно этим. В scmRTOS такая проверка использования стеков встроена. - AlexG(Сегодня, 09:59, +1)
- Спасибо. - Nikolay_Po(Сегодня, 09:05)
- Кстати, подрезкой стеков для этих задач занимались? Примерно так:
дали системе поработать в самых жёстких режимах а потом смотрим, до
какого места затёрт паттерн чистого буфера стека. И уже по
обнаруженным границам, с запасом на размер контекста задачи,
уменьшать размер стека. - Nikolay_Po(Сегодня, 09:13)
- Т.к. озу не хватает, то пришлось сломать привычки и перейти на
динамическое выделение памяти. Т.е. пришел на порт сервера запрос -
выдать жирную json. Я пытаюсь выделить средствами freertos
динамическую память под буфер, если свободного озу нет, то
отправляю отлуп. Если есть - то выделяю буфер, формирую json,
отправляю, освобождаю память. так крутится дофига сервисов и ничего
насмерть не падает. - Cтyк(Сегодня, 05:37,
- Навскидку, не оценивали, сколько занимает Ethernet+TCP в прошивке?
Сколько выделили ОЗУ для пакетов? - Nikolay_Po(Вчера, 19:41)