FreeRTOS Static для обеспечения безопасности
Hy,
Меня интересует безопасная архитектура SW, основанная на FreeRTOS на TMS570 для приложения безопасности,
с моей точки зрения, для приложения безопасности лучше использовать статическую версию задачи, очереди,..
xQueueCreateStatic xTaskCreateStatic xTimerCreateStatic.. и т. д.
Вы согласны с этим или думаете, что я мог бы использовать и нестатическую версию? Спасибо Антонио
1 ответ
Как вы подразумеваете, FreeRTOS предоставляет вам оба варианта. Некоторые плюсы и минусы обоих перечислены на следующей странице, поэтому я не буду повторять их здесь: http://www.freertos.org/Static_Vs_Dynamic_Memory_Allocation.html
Только вы можете ответить на ваш вопрос, поскольку это зависит от того, что делает ваше приложение. Ответ будет очень разным в зависимости от того, создает ли ваше приложение все свои ресурсы во время загрузки и затем никогда не удаляет их, или если оно непрерывно создает и удаляет множество блоков памяти разных размеров во время выполнения. Поскольку это приложение безопасности, я был бы удивлен, если бы он выполнял много выделения и освобождения памяти во время выполнения - но если бы это было так, вам пришлось бы задуматься о фрагментации памяти, работе с исчерпанием кучи и недетерминированном поведении памяти. распределитель (не всегда выделение занимает одно и то же время). Использование heap_4.c во FreeRTOS должно предотвратить фрагментацию в большинстве случаев, но "следует", вероятно, недостаточно хорошо для приложения безопасности.
Если все ресурсы распределяются динамически, но только во время загрузки (что на самом деле имеет место для большинства приложений), то ни одна из этих потенциальных ловушек не применима, и на самом деле нет причин не использовать динамическую память.