-
- Как мне кажется, SWO не относится к быстрым механизмам. По сути это
тот же UART, пусть высокочастотный, но без ДМА и прерываний, т.е.
побайтовый вывод с ожиданием готовности в бесконечном цикле. RTT -
это быстро, но требует JLINK, подходит только для м/к, чье
отладочное ядро умеет читать-писать память без остановки
процессора, выхлоп RTT идет на сеггеровский терминал, т.е. добавить
свой анализатор вывода не просто. В современных м/к достаточно
много UART и DMA, мне пока не AlexBi(286 знак., 12.08.2025 09:18)
- Rtt работает и на st-link и на openocd. И выхлоп идет в телнет так
что парси сколько унодно. Главное ограничение в том что младшие
кортексы идут лесом из за невозможности чтения памяти в фоне - 3m_в_мeтpo(12.08.2025 09:58,
)
- У моего целевого МК, CH32V317, SDI. И оно может передавать данные только в режиме опроса. - Nikolay_Po(12.08.2025 10:03)
- Rtt работает и на st-link и на openocd. И выхлоп идет в телнет так
что парси сколько унодно. Главное ограничение в том что младшие
кортексы идут лесом из за невозможности чтения памяти в фоне - 3m_в_мeтpo(12.08.2025 09:58,
- Спасибо за мнение. Отладка у меня останется и в релизе. Оставлю
гребёнку с Rx/Tx UARTa - типа порта консоли. Компортов в МК у меня
штук шесть. Из них для работы требуется два-три. Так что выделение
ресурса для отладки - дело осознанное и умышленное. Nikolay_Po(95 знак., 12.08.2025 08:07)
- при отсутствии сборщика мусора эффективность динамической аллокации
может сильно зависеть от реализации. по FreeRTOS вопросы аллокации
и "черных ящиков" немного-таки беспокоят --> Vit(197 знак., 12.08.2025 13:36, ссылка, ссылка)
- >10лет использую связку tlsf + freertos, к аллокации вопросов
нет, есть устройства с аптаймом больше года, выделяю не только в
статике, но и постоянно в динамике. - Oman(12.08.2025 17:13)
- Использую связку tlsf + scmRTOS. На столько больших известных мне
аптаймов таких нет, но полет нормальный. Необходимо было заменить
встроенные функции выделения памяти на свои, чтобы предотвратить
одновременное обращение к ним нескольких процессов. - AlexG(12.08.2025 18:08)
- постарались, не перегрузили. прекрасно. - Vit(13.08.2025 07:40)
- да, семафор там повесить надо, но там прямо без выдумок все - Oman(12.08.2025 20:57)
- Угу. Спасибо. - Nikolay_Po(12.08.2025 17:47)
- Использую связку tlsf + scmRTOS. На столько больших известных мне
аптаймов таких нет, но полет нормальный. Необходимо было заменить
встроенные функции выделения памяти на свои, чтобы предотвратить
одновременное обращение к ним нескольких процессов. - AlexG(12.08.2025 18:08)
- Не знаю, что там имеется в виду под недертерминированностью. Но думаю это не относится к thread save. Функции pvPortMalloc и pvPortFree выключают планировщик на время выделения и освобождения памяти и ничего плохого в смысле thread save не может произойти. Там прямо написано: The wrapper simply makes the malloc() and free() functions thread safe. - mmc(12.08.2025 14:34)
- Хм. Первые две ссылки браузер помечает как уже посещённые мной :).
Где возможно - использую статик. Что-то простое и уже готовое,
отлаженное - если динамическое - пусть будет как есть. - Nikolay_Po(12.08.2025 14:18)
- printf из newlib как бы предполагает использование malloc - Vit(12.08.2025 15:43)
- Ну и пусть. К самому newlib-овскому printf-у у меня претензий нет. - Nikolay_Po(12.08.2025 16:38)
- у меня к старому были. и к варианту из nano. - Vit(13.08.2025 07:46)
- Ну и пусть. К самому newlib-овскому printf-у у меня претензий нет. - Nikolay_Po(12.08.2025 16:38)
- printf из newlib как бы предполагает использование malloc - Vit(12.08.2025 15:43)
- >10лет использую связку tlsf + freertos, к аллокации вопросов
нет, есть устройства с аптаймом больше года, выделяю не только в
статике, но и постоянно в динамике. - Oman(12.08.2025 17:13)
- Кстати, если вывод диагностики - по сути часть нормального функционала устройства, то к проектированию этой функции так и следует подходить - с той же тщательностью, что и у других функций. Потому что обычно отладочный выхлоп - это что-то слепленное на скорую руку: "по-быстрому вставлю printf тут и там, всё равно в релизе этого не будет". - SciFi(12.08.2025 08:57)
- при отсутствии сборщика мусора эффективность динамической аллокации
может сильно зависеть от реализации. по FreeRTOS вопросы аллокации
и "черных ящиков" немного-таки беспокоят --> Vit(197 знак., 12.08.2025 13:36, ссылка, ссылка)
- Как мне кажется, SWO не относится к быстрым механизмам. По сути это
тот же UART, пусть высокочастотный, но без ДМА и прерываний, т.е.
побайтовый вывод с ожиданием готовности в бесконечном цикле. RTT -
это быстро, но требует JLINK, подходит только для м/к, чье
отладочное ядро умеет читать-писать память без остановки
процессора, выхлоп RTT идет на сеггеровский терминал, т.е. добавить
свой анализатор вывода не просто. В современных м/к достаточно
много UART и DMA, мне пока не AlexBi(286 знак., 12.08.2025 09:18)