• Регистрация
Sancho
Sancho +69.25
н/д

Поддержка TI MSP430 LaunchPad в Embedded Coder

30.04.2019

Часто нам задают вопрос - поддерживает ли Embedded Coder определенный процессор или отладочную плату? Быстрый ответ на этот вопрос - ДА, поддерживает. Ведь Embedded Coder по умолчанию генерирует ANSI C код, который мы можем получить из модели Simulink и вручную (или полуавтоматически) интегрировать в наш проект.  Мы называем это "Экспорт алгоритма".


Например, в случае Texas Instruments MSP430 LaunchPad, мы можем при помощи Embedded Coder сгенерировать Си-функцию (или несколько функций) из нашего алгоритма (настроив прототип функции, т.е. интерфейсы) и интегрировать её в существующий проект Code Composer Studio - среды разработки для процессоров Texas Instruments. Во многих случаях этого вполне достаточно, но зачастую хочется большей "поддержки". Но, отвечая на самый первый вопрос, давайте сначала разберемся, что означает "поддерживать".

Поддержка можем состоять из нескольких аспектов:

  1. Автоматическая связь со средой разработки для процессора . Компания MathWorks не разрабатывает компиляторы и среды разработки для встраиваемых процессоров.  При помощи Embedded Coder мы можем автоматизировать создание makefile или целиком проектов для автоматической компиляции кода, линковки и загрузки в процессор. Все это – с использованием среды разработки, которая предоставляется производителем процессора.
  2. Оптимизация кода под конкретный процессор. Code replacement – это часть технологии Embedded Coder, которая позволяет генерировать код, оптимизированный под конкретный процессор. Осуществляется это при помощи специальных таблиц подстановок. Предоставлением оптимизированных под конкретный процессор функций (библиотек) часто занимается фирма-производитель процессора. Например, у Texas Instruments есть оптимизированные библиотеки для тригонометрических функций и т.п. Конечно, можно и свои собственные функции таким образом подставлять.
  3. Специфические интерфейсные драйвера в виде блоков Simulink. Например, для определенных процессоров есть блоки Simulink для ШИМ, ЦАП, АЦП и т.п. При генерации кода из этих блоков генерируется специфичный для интерфейсов этих процессоров код. К этим блокам также относятся низкоуровневые операции с памятью, которые также могут быть реализованы в виде блоков Simulink.
  4. Интеграция с ОС реального времени, планировщиком, прерываниями  обеспечивается также при помощи специальных блоков Simulink и настроек в модели.
  5. Поддержка PIL симуляции
  6. External ModeТакой режим симуляции позволяет осуществлять калибровку параметров, мониторинг и трассировку сигналов непосредственно из модели Simulink при работе нашего кода на встраиваемом процессоре.

Разные процессоры и разные среды разработки могут поддерживаться Embedded Coder в разной степени. С каждым релизом добавляется поддержка новых платформ, при этом устаревшие платформы отпадают. С актуальным списком поддерживаемого оборудования и сред разработки вы можете ознакомиться на странице Embedded Coder на сайте MathWorks. Конечно, невозможно организовать поддержку из коробки для всех возможных процессоров и отладок, поскольку многие инженеры используют собственные отладки, а количество различных микропроцессоров и DSP на рынке зашкаливает. Именно поэтому для каждого из перечисленных пунктов Embedded Coder предоставляет API, который позволяет реализовать поддержку своего железа.

При реализации своего Target Support мы имеем возможность создавать полный проект «под ключ» из модели Simulink – вместе с драйверами устройств, планировщиком и т.п. Мы называем это "Target Support":




Конечно, не обязательно реализовывать поддержку всех пунктов, упомянутых выше. Во многих случаях достаточно автоматизировать создание makefile для автоматической компиляции, линковки и заливки прошивки на плату. А также реализовать режим PIL для выполнения верификации скомпилированного кода относительно симуляции модели.

В Центре компетенций MathWorks в России есть практика проведения небольших пилотных проектов вместе с клиентами, которые интересуются автоматической генерацией кода. Такой пилотный проект позволяет им оценить возможности Embedded Coder и понять необходимость использования автоматической генерации кода в их компании. В списке поддерживаемого оборудования Embedded Coder содержится большое количество актуальных процессоров и отладочных плат.
Мы решили создать собственный Target Support для TI MSP430 LaunchPad, поскольку для этой платформы существует только возможность "экспорта алгоритмов" (см. выше). Мы рассматриваем эту отладку как доступную платформу для оценки автоматической генерации кода и верификации.

Алгоритмы, которые мы можем реализовать на MSP430 – достаточно простые, но это только к лучшему. Это позволяет нам больше сконцентрироваться на возможностях по генерации кода, нежели чем на создании алгоритма как такового. Кроме того, наши клиенты могут использовать этот Target Support как базу для создания реализации для своего процессора или отладочной платы. Если вас интересует такая возможность, вы можете получить отладочный комплект (включающий железо и софт).

Texas Instruments MSP430 LaunchPad это простое в использовании, недорогое, и масштабируемое введение в мир микроконтроллеров и семейства MSP430. Эта отладочная плата включает: два светодиода, две кнопки, одна из которых является пользовательской, внутрисхемный JTAG, DIP разъем для MSP430 (что позволяет устанавливать на плату другой процессор семейства MSP430), пины ввода-вывода и встроенный датчик температуры (в процессоре g2553).

Типичные применения MSP430 – это бюджетные системы с ультранизким потреблением энергии. Также системы захвата аналоговых сигналов и датчиков, обработка данных для передачи на хост или отображения на LCD. Есть много интересных пользовательских проектов – например, связанных с робототехникой (шагающий паук, рука робота), цветной LCD, Bluetooth, велосипедный компьютер, и даже реализация FAT16. Многим членам сообщества не откажешь в чувстве юмора – если вы не слышали, как LaunchPad и пьезо-спикер играют Имперский Марш – вам это надо послушать!

Итак, что включает в себя Target Support для MSP430 LaunchPad?

  • Поддерживаемые среды разработки – это Code Composer Studio 5 на Windows и Linux. Кроме того, на Linux поддерживаются mspgcc и mspdebug, которые являются открытыми аналогами Code Composer Studio для MSP430.
  • Библиотека блоков Simulink для периферийных устройств MSP430 LaunchPad поддерживает светодиоды, датчик температуры, пользовательскую кнопку и блоки для передачи/приема данных по последовательному интерфейсу.
  • Поддерживается симуляция в режиме PIL, а также профилирование времени выполнения в режиме PIL.


Разработка происходит на Github, а релизы можно скачать с File Exchange – официального ресурса MathWorks для обмена пользовательским контентом.

В этом видео вы можете посмотреть, как осуществляется совместная работа Embedded Coder и TI MSP430 LaunchPad.

Теги

    30.04.2019

    Комментарии