MATLAB/Simulink/Stateflow

    • Михаил
      19.08.2013
      11:34
      В предыдущих записях в блоге я рассказывал о некоторых целевых платформах и средах разработки, поддерживаемых Embedded Coder:
      Запуск моделей Simulink на Arduino
      Поддержка TI MSP430 LaunchPad в Embedded Coder
      Embedded Coder встречает Green Hills Software MULTI

      В документации к Embedded Coder можно увидеть полный список поддерживаемого оборудования, сред разработки и операционных систем.

      В этом посте я расскажу о поддержке (Target Support Package) ОС реального времени QNX в Embedder Coder. Embedded Coder является расширяемой и настраиваемой системой, и, хотя QNX не обозначена в списке выше, поддержка этой RTOS была разрабатана инженерами MathWorks и предоставлена для общего использования. Это позволит всем инженерам, работающим в Simulink и разворачивающим свои системы на QNX, существенно упростить процесс разработки и тестирования, а также адаптировать эту поддержку для своих конкретных нужд.

      QNX - это Unix-подобная операционная система реального времени, в первую очередь предназначенная для встраиваемых систем.
      Simulink - это лидирующее окружение для симуляции мультидисциплинарных систем и модельно-ориентированного проектирования.
      Embedded Coder позволяет вам генерировать С код и разворачивать ваши алгоритмы на целевом аппаратном обеспечении.

      Вы можете скачать поддержку с ресурса пользователей File Exchange: http://www.mathworks.com/matlabcentral/fileexchange/42290-qnx-target-support-package-for-embedded-coder.
      Либо можете использовать последнюю версию из этого репозитория Github.

      Этот Target Support Package был протестирован на платформе Beagleboard xM, работающей под управлением QNX 6.5.1. В принципе, он также должен работать на других целевых платформах QNX, для которых есть BSP. Для этого потребуется внести минимальные изменения в Template Makefile, чтобы использовать другие флаги компилятора.

      Как я уже раньше писал, поддержка может заключаться в нескольких аспектах. В данном случае доступна автоматическая связь со средой разработки посредством Makefile (что подразумевает автоматическую компиляцию и линковку после генерации С кода), интеграция с QNX посредством POSIX таймеров (что позволяет запускать ваши многочастотные/многозадачные модели в реальном времени), а также поддержка симуляции в режиме External Mode. Такой режим симуляции позволяет осуществлять калибровку параметров, мониторинг и трассировку сигналов непосредственно из модели Simulink при работе вашего кода на встраиваемом процессоре в реальном времени.

      В небольшом видео вы можете увидеть эту поддержку в действии.

      Кстати, в Simulink также доступна встроенная поддержка BeagleBoard. Однако, это совсем другая возможность, не имеющая отношения к QNX и Embedded Coder. Больше информации об этом вы можете почерпнуть в предыдущем посте.
    • Михаил
      24.10.2012
      11:03
      Мы часто демонстрируем нашим пользователям возможности автоматической генерации кода из MATLAB/Simulink и исполнение этого кода на целевых процессорах. Но иногда, под рукой просто нет необходимого процессора. На помощь приходит симулятор встраиваемого процессора. Сегодня я бы хотел вам рассказать о совместной работе Embedded Coder и среды разработки Green Hills Sotfware 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.

      Если вы хотите получить больше информации по автоматической генерации кода и верификации в режиме PIL – обращайтесь к нам, мы всегда сможем помочь.
  • RSS подписка
    Архив материалов
    Май 2019
    Пн Вт Ср Чт Пт Сб Вс
        1 2 3 4 5
    6 7 8 9 10 11 12
    13 14 15 16 17 18 19
    20 21 22 23 24 25 26
    27 28 29 30 31    
    Поиск