Embedded Coder встречает Green Hills Software MULTI
Мы часто демонстрируем нашим пользователям возможности автоматической генерации кода из MATLAB/Simulink и исполнение этого кода на целевых процессорах. Но иногда под рукой просто нет необходимого процессора. На помощь приходит симулятор встраиваемого процессора. Сегодня я бы хотел вам рассказать о совместной работе Embedded Coder и среды разработки Green Hills Software MULTI для верификации автоматически сгенерированного кода из моделей MATLAB/Simulink/Stateflow в режиме Процессор-в-Контуре (по-английски это называется Processor-in-the-Loop или PIL).
Прежде чем мы начнем, давайте введем основные определения.
Embedded Coder – это продукт компании MathWorks, разработчика MATLAB/Simulink. Embedded Coder предназначен для автоматической генерации С/С++ кода производственного качества. Два базовых продукта для генерации кода из функций MATLAB и из моделей Simulink/Stateflow называются MATLAB Coder и Simulink Coder. Embedded Coder расширяет возможности этих продуктов, добавляя опции по конфигурации и оптимизации кода. Сгенерированный код является портируемым, читаемым и компактным и подходит для использования во встраиваемых системах. Embedded Coder позволяет нам проводить верификацию скомпилированного кода в режимах SIL и PIL, поддерживая интеграцию с распространенными средами разработки и оптимизацию кода под конкретный процессор.
MULTI – это среда разработки от компании Green Hills Software. MULTI предназначена для инженеров-разработчиков встраиваемых систем. Среда интегрирована с компиляторами Green Hills Software и аппаратными модулями отладки для различных процессоров. MULTI поддерживает набор операционных систем реального времени, а также интерактивный отладчик и профилировщик. Green Hills Software MULTI также предоставляет симулятор процессора PowerPC, на котором мы будем проверять наш автоматически сгенерированный код.
Что такое PIL тестирование, которое я уже упоминал?
На уровне модели Simulink мы работаем с нашей системой, моделируя алгоритмы (например это могут быть алгоритмы управления с обратной связью, обработки сигналов, фильтрации или любые другие алгоритмы), передавая входные воздействия и анализируя выходные сигналы. В общем случае входные сигналы могут приходить с нашей модели окружения или модели объекта управления или могут быть просто заданы в виде тестовых векторов. Нас устраивает, как алгоритм работает в Simulink. Но каким образом убедиться, что он будет работать точно так же в реальном железе?
Мы используем автоматическую генерацию кода при помощи Embedded Coder, кросс-компиляцию этого кода при помощи среды разработки для нашего встраиваемого процессора и загружаем объектный код на целевой процессор. Но как протестировать, что полученный код работает так же, как оригинальная модель в MATLAB/Simulink?
Кроме самого алгоритма, в коде также появляется специальная обвязка, которая автоматически создается Embedded Coder и представляет собой реализацию PIL.
Это обвязка позволяет принимать и передавать данные с хост компьютера и общаться с оригинальной моделью Simulink. Интерфейс взаимодействия может быть любым, который поддерживается вашим процессором, – последовательный интерфейс, Ethernet, разделяемая память, JTAG.
Таким образом, при тестировании в режиме PIL происходит генерация, кросс-компиляция и исполнение объектного кода на целевом процессоре или симуляторе процессора. Входные сигналы поступают в наш алгоритм в Simulink и в целевой процессор, где они обрабатываются в соответствии с заложенным алгоритмом и возвращаются обратно в Simulink для анализа и верификации.
Я записал для вас небольшое видео с демонстрацией совместной работы Embedded Coder и Green Hills Software MULTI для запуска тестирования PIL на симуляторе процессора PowerPC.
Комментарии