PDF версия

Том Эркинен, MathWorks


В примере внедрения, доступном для просмотра и скачивания, используется интегрированная среда разработки GreenHillsMULTI, операционная среда реального времени (RTOS) Integrity на базе процессора FreescaleMPC8620.


Автоматическое создание кода на базе имитационных моделей занимает основное место в процессе модельно-ориентированного проектирования и отнимает намного меньше времени и усилий, чем процедуры кодировки вручную. Для успешного развертывания высокопроизводительных встроенных систем необходим эффективный код. Достижение необходимой эффективности невозможно без сокращения использования ресурсов памяти и значительного повышения скорости исполнения. Успешное внедрение систем военного и оборонного назначения тоже невозможно без строгой проверки кода, что подразумевает соответствие определенным требованиям и стандартам.


В данной статье описаны методы определения эффективности кода и выполнения его проверки с помощью семейства продуктов MATLAB и Simulink версии 2011b с поддержкой инструмента Embedded Coder, позволяющего создавать коды полета. Процедуры разработки и проверки соответствуют действующему стандарту DO-178B и планируемому к выходу DO-178C, а также отвечают требованиям ожидаемого дополнения к стандарту DO-178C по разработке и проверке кода с применением моделей. Основное внимание в статье уделяется не описанию каждого инструмента и не обсуждению стандарта DO-178, а применяемым инновационным технологиям. Для описываемых инструментов проверки доступны комплекты документов и руководств.


Оценка исходного кода


Эффективность кода

Эффективность кода можно оценить по двум основным показателям: использованию памяти в отношении ОЗУ, ПЗУ и размера стека; а также по количеству рабочих циклов или скорости исполнения. После генерации кода инструмент Embedded Coder создает отчет оценки кода, что помогает разработчикам программного обеспечения проанализировать работу и оптимизировать объем памяти, занимаемой созданным кодом. В отчете содержатся строки кода, определен размер глобальной ОЗУ и стека на основе статического анализа исходного кода и знания характеристик целевого оборудования (например, размеры целочисленного разряда). Анализ является статическим, поскольку в нем не учитывается кросс-компиляция и выполнение кода. Все это позволяет разработчикам быстро внести необходимые изменения в исходный код для оптимизации использования памяти. Для этого, например, можно применить другие типы данных или изменить логику модели. Однако на следующем этапе анализа и оптимизации потребуется полный набор встроенных инструментов для оценки использования встроенной памяти и времени выполнения (см. далее в разделе «Исполняемый объектный код»).

Рис. 1. Статический отчет с показателями кода


Проверка кода

Проверка исходного кода во многом зависит от инспекции кода и анализа выполнения требований. Новое средство Simulink Code Inspector от компании MathWorks автоматически выполняет структурный анализ созданного исходного кода и оценивает его соответствие модели требований низкого уровня. В ходе проверки определяются соответствия между каждой строкой кода и аналогичным элементом или блоком модели. И наоборот, указанный инструмент проверяет структурное соответствие элементов модели операциям, операторам и данным в созданном коде. После этого Simulink Code Inspector создает подробный анализ возможности трассировки между моделью и кодом и в обратном направлении.


898

${message}

${message}