-
- Еще как имеет. МК в 2-4 раза больше нужен. Код написанный под RTOS
потом не перенести на обычный камень. и т.п. - Nikolaev_Aleksey(18.04.2023 17:54)
- Хорошие RTOS имеют минималистичные варианты сборки, буквально пару
К кода и 128 байт ОЗУ (в варианте Cortex-M), например. С минимом
сервисов, конечно же. Так что MCU точно не в 4 раза больше нужен. - Evgeny_CD(18.04.2023 19:37)
- The RTOS kernel itself required about 5 to 10 KBytes of ROM space when using the same configuration as stated for the FAQ "How much RAM does FreeRTOS use?". Costic(230 знак., 20.04.2023 12:36, ссылка, картинка)
- Ну да, только каждой задаче свой стек нужен. если их всего 2-3, то
вроде как нормально. А если 20 и более? - Nikolaev_Aleksey(19.04.2023 07:05)
- "Хороший код" не требует большого стека для каждой задачи. - Nikolay_Po(19.04.2023 12:11)
- Для устройств, работающих годами (от состояния включил и заменил на
новое по регламенту) рано или поздно будет переполнение, т.к.
критерий испытания данного ПО не может все усмотреть. - Nikolaev_Aleksey(20.04.2023 08:54)
- откуда вдруг переполнение стека? Ну если ошибок нет. Набор задач
стандартен и известен. - Лaгyнoв(20.04.2023 09:33)
- Ошибки есть всегда. Вы просто их не нашли))) - Nikolaev_Aleksey(20.04.2023 10:54)
- Ну хотя бы ЭМС. Вы такое не рассматриваете? - Nikolaev_Aleksey(20.04.2023 10:31)
- Вы имели ввиду ЭМП (EMI)? От этого код и без ОСРВ ничего не спасёт.
Вообще, в ответственных проектах, в свободное от исполнения
приложений время, у меня крутится сторожевая собака, которая
проверяет наборы текущих параметров на корректность и периодичность
поступления данных - не пора ли перезагрузиться,
переинициализироваться? - Nikolay_Po(20.04.2023 10:48)
- А если перезагрузка не возможна по ТТ. Что делать? - Nikolaev_Aleksey(20.04.2023 10:50)
- Вынуть руки из жопы и пристроить их на штатное место? - =AlexD=(20.04.2023 10:53)
- Давайте начнем вместе? Nikolaev_Aleksey(1 знак., 20.04.2023 10:56, ссылка)
- Вынуть руки из жопы и пристроить их на штатное место? - =AlexD=(20.04.2023 10:53)
- А если перезагрузка не возможна по ТТ. Что делать? - Nikolaev_Aleksey(20.04.2023 10:50)
- Вы имели ввиду ЭМП (EMI)? От этого код и без ОСРВ ничего не спасёт.
Вообще, в ответственных проектах, в свободное от исполнения
приложений время, у меня крутится сторожевая собака, которая
проверяет наборы текущих параметров на корректность и периодичность
поступления данных - не пора ли перезагрузиться,
переинициализироваться? - Nikolay_Po(20.04.2023 10:48)
- Уровень использования стека в каждой задаче фиксирован после
компиляции и может быть посчитан с точностью до байта. Даже если
прерывания работают в стеке задач. - =AlexD=(20.04.2023 09:28)
- каким образом? системные библиотеки многое запрещают (хотя зачем
они нужны) - Nikolaev_Aleksey(20.04.2023 11:19)
- почему мне нравится asm - за прямолинейность - Nikolaev_Aleksey(20.04.2023 11:21)
- Как автоматически определить размер задействованного стека для
функции Х(), с учетом всех вложенных, что бы можно было скриптом
посчитать/проверить выделенный под стек размер, применительно к gcc
и его производным? А при использовании вызовов по указателю задача
вообще решаема? Рекурсию не рассматриваю, там однозначно темный
лес. - AlexBi(20.04.2023 09:38)
- -fstack-usage -fcallgraph-info + скрипт + конфиг указывающий
косвенные вызовы для каждой функции и глубину рекурсии , готового
решения у меня для вас нет , но это не значит что оно не возможно.
Гуглите, может найдётся. - =AlexD=(20.04.2023 09:53)
- Очевидно, коллега не искал решение, а указывал на тот факт, что
возможны ситуации, когда полный статический анализ стека просто
невозможен. Впрочем, если задача будет стоять, можно будет искать и
варианты решения. - SciFi(20.04.2023 09:56)
- Статистический анализ для наихудшего (возможно нереализуемого)
случая возможен. - =AlexD=(20.04.2023 09:58)
- Допустим вы правы. Откуда возникают ситуации в Windows
"переполнение стека"? - Nikolaev_Aleksey(20.04.2023 10:37)
- Кто-то под венду щетает стэк? И вообще, на долго ли дураку стеклянный половой орган. При таком подходе стек закончится вне связи с РТОС, просто немного позже. - =AlexD=(20.04.2023 10:51)
- И кстати зачем нужно перезагружать роутер раз в 1 год? Это обычная
рекомендация со стороны технической поддержки. - Nikolaev_Aleksey(20.04.2023 10:40)
- Шуточка от финского комика. "- Они доставили человека на Луну, но
не могут <сделать_нормальный_роутер>! - Если бы люди,
которые занимались доставкой человека на Луну, занялись роутером,
думаю, у них получилось бы. Вероятно, этот роутер отлично работал
бы и на Луне." - SciFi(20.04.2023 10:44)
- ну да, смешно. но когда выставляют претензии к ПО, все должно работать как часы. Nikolaev_Aleksey(45 знак., 20.04.2023 10:49)
- Должэн-жэ быть и у жэлезки праздник. - mse homjak(20.04.2023 10:40)
- Шуточка от финского комика. "- Они доставили человека на Луну, но
не могут <сделать_нормальный_роутер>! - Если бы люди,
которые занимались доставкой человека на Луну, занялись роутером,
думаю, у них получилось бы. Вероятно, этот роутер отлично работал
бы и на Луне." - SciFi(20.04.2023 10:44)
- Ну ок, этот анализ скажет "у вас кончилась вся память". Зачем нужен
такой анализ? - SciFi(20.04.2023 10:00)
- Для сложного случая всегда можно провести ручное расследование и задать размер стека для функции вручную. Или убедиться, что потребление стека зависит от внешних факторов и ваше устройство повиснет из-за неудачного стечения обстоятельств, ошибок или злонамеренных действий. После чего принять меры к пресечению бардака. - =AlexD=(20.04.2023 10:06)
- Допустим вы правы. Откуда возникают ситуации в Windows
"переполнение стека"? - Nikolaev_Aleksey(20.04.2023 10:37)
- Статистический анализ для наихудшего (возможно нереализуемого)
случая возможен. - =AlexD=(20.04.2023 09:58)
- Очевидно, коллега не искал решение, а указывал на тот факт, что
возможны ситуации, когда полный статический анализ стека просто
невозможен. Впрочем, если задача будет стоять, можно будет искать и
варианты решения. - SciFi(20.04.2023 09:56)
- -fstack-usage -fcallgraph-info + скрипт + конфиг указывающий
косвенные вызовы для каждой функции и глубину рекурсии , готового
решения у меня для вас нет , но это не значит что оно не возможно.
Гуглите, может найдётся. - =AlexD=(20.04.2023 09:53)
- зачем человека пугаешь? интригу сломал... - RED_DRAGON(20.04.2023 09:31)
- каким образом? системные библиотеки многое запрещают (хотя зачем
они нужны) - Nikolaev_Aleksey(20.04.2023 11:19)
- как так? можно подробности? - RED_DRAGON(20.04.2023 09:16)
- Это следствие аксиомы программирования: symbions(52 знак., 20.04.2023 09:45)
- откуда вдруг переполнение стека? Ну если ошибок нет. Набор задач
стандартен и известен. - Лaгyнoв(20.04.2023 09:33)
- Для устройств, работающих годами (от состояния включил и заменил на
новое по регламенту) рано или поздно будет переполнение, т.к.
критерий испытания данного ПО не может все усмотреть. - Nikolaev_Aleksey(20.04.2023 08:54)
- 20 задач в МК с 128 байт ОЗУ? Да вы батенька знаете толк в
извращениях. Не, ну если на каждый светодиод по задаче вешать - ОЗУ
не напасёшься. Но обычно так не делают. - =AlexD=(19.04.2023 08:16)
- Заметьте, я нигде не говорил про 128 байт ОЗУ. - Nikolaev_Aleksey(20.04.2023 08:45)
- "Хороший код" не требует большого стека для каждой задачи. - Nikolay_Po(19.04.2023 12:11)
- А есть ли кортексы, для которых имело бы смысл так сильно экономить ОЗУ? - AlexG(19.04.2023 06:32)
- 128 байт ОЗУ? Если не считать PROTOTHREAD Дункелса - это какие? - Dingo(19.04.2023 05:25)
- сборник сомнительных утверждений. 1 - нет. 2-значит кривой код - RED_DRAGON(18.04.2023 18:05)
- 2. Постоянно слышу утверждение "кривой код". Но нигде нет его
определения. Где искать критерии? - Nikolaev_Aleksey(18.04.2023 18:10)
- Хороший код легко поддерживать, легко переносить. Он лучше структурирован, у него логика легко отделима от управления аппаратурой. Так, что для новой платформы, достаточно поправить набор аппаратных функций в одном месте. То же относится к переносимости на ОСРВ. - Nikolay_Po(18.04.2023 19:28)
- где искать критерии: изучать существующий хороший код: переносимый,
много лет поддерживаемый, такого добра хватает хотя и далеко не
факт что там все зашибись. участие в больших софт проектах,
(публичное) ревью кода более опытными товарищами. - RED_DRAGON(18.04.2023 19:13)
- Так и делаю. Изучаю код на основе ОСРВ. Обычно это роутеры. - Nikolaev_Aleksey(19.04.2023 14:48)
- переносимость кода один из критериев качества. - RED_DRAGON(18.04.2023 18:46)
- 2. Постоянно слышу утверждение "кривой код". Но нигде нет его
определения. Где искать критерии? - Nikolaev_Aleksey(18.04.2023 18:10)
- Хорошие RTOS имеют минималистичные варианты сборки, буквально пару
К кода и 128 байт ОЗУ (в варианте Cortex-M), например. С минимом
сервисов, конечно же. Так что MCU точно не в 4 раза больше нужен. - Evgeny_CD(18.04.2023 19:37)
- Еще как имеет. МК в 2-4 раза больше нужен. Код написанный под RTOS
потом не перенести на обычный камень. и т.п. - Nikolaev_Aleksey(18.04.2023 17:54)