Регистрация | Вход

Объявление

Свернуть
Пока нет объявлений.

Гамма СПб: Отладка микроконтроллеров PIC продвинутые возможности симулятора

Свернуть
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

    Гамма СПб: Отладка микроконтроллеров PIC продвинутые возможности симулятора

    История

    Много-много лет назад, в Microchip в команде разработчиков симулятора MPLAB был разработан VHDL-подобный язык SCL – Stimulus Control Language, с помощью которого можно создавать тестовые модули (testbench) для отладки и тестирования кода. Однако, в связи с уходом из команды автора реализации SCL и «сложности» языка, было решено создать GUI, которая освобождает embedded-программиста от вникания в тонкости VHDL-подобного SCL и помогает создать последовательности тестовых сигналов и инжекций данных в регистры симулируемого микроконтроллера. Такая GUI-обертка в MPLAB IDE называется Stimulus.

    Microchip особо не продвигал SCL и не предоставлял описание языка. В 2006 году даже было объявлено, что в следующей версии MPLAB IDE v8.xx вообще уберут поддержку SCL, но участники www.forum.microchip.com высказались против этого и SCL оставили в следующих релизах.

    Некоторые энтузиасты даже начали «реверсить» SCL (благо Stimulus может генерировать SCL-файлы) и создавать учебник по SCL и репозиторий примеров. Особо стоит отметить русскоязычный труд с описанием SCL, сопровождающийся несколькими примерами (от простого генератора, до эмуляции UART и генерации DTMF сигналов). http://pic24.ru/doku.php/osa/articles/scl

    В связи с тем, что новое поколение MPLAB X IDE полностью переписано и получило кроссплатформенность (MPLAB X основан на NetBeans), то реализация SCL так же переписана и нынешние разработчики в документацию к MPLAB X IDE уже включили «неофициальный» SCL User’s Guide.

    Возможности GUI Stimulus

    Сейчас Stimulus позволяет:

    А) создавать синхронные последовательности изменений состояний выводов или значений регистров, что удобно для формирования повторяющихся последовательностей: Во время Тn состояние (pin, регистр) = ХХ Во время Тm состояние (pin, регистр) = YY Процесс можно повторять начиная с шага i; между повторами задать задержку ii.

    Б) создавать комплексные воздействия: Если выполняется условие, что (pin, bit или регистр) становится (=, !=, <=, <, >= или >), то через N (тактов, нс, мкс, мс или ч.м.с) выполнить (однократно или с периодом M) воздействие (одно или несколько): записать в регистр значение, изменить состояние pin или bit, установить напряжение на аналоговом входе.

    В) генерировать сигналы: На выводе (pin_уу) с начальным значением (ВЫСОКОЕ или НИЗКОЕ) выдать последовательность (задается длительность ВЫСОКОГО и НИЗКОГО состояния). Задается условия запуска и останова (старт программы или по значению программного счетчика или в заданное время или когда значение на pin_хх == ВЫСОКОЕ или НИЗКОЕ).

    Г) инжекция данных в регистры: Из указанного файла взять значение и записать его в заданный регистр. Действие произвести когда: происходит чтение из регистра (т.е. в отлаживаемой программе читаем регистр) или программный счетчик примет зафиксированное значение или выполнится указанное в файле условие. Например, можно инжектировать в UART данные из файла вида:

    wait 1 sec // ждать 1 секунду
    01 54 106 // инжектируемые данные
    02 55
    wait 200 ms // ждать 200 мс
    “hello” // инжектируемые данные
    rand 1 15 sec // случайная пауза от 1 до 15с
    32 33 34

    Stimulus, помимо описанного, позволяет созданные воздействия сохранить в виде SCL файла и (!) загружать собственные SCL сценарии.

    Язык SCL

    Stimulus является достаточно мощным инструментом, но имеет существенные ограничения – служит в основном для задания простых и детерминированных воздействий, не всякую модель поведения «внешней среды» можно описать с помощью предлагаемой в среде разработки GUI.

    SCL, являясь языком программирования, дает больше гибкости: доступны условные выражения (конструкции if-elsif-else), циклы, инструкции работы с файлами и др.

    Некоторые возможности SCL:
    • Инжектирование значения в pin или в память данных микроконтроллера.
    • Чтение значения pin или из памяти данных
    • Чтение и обработка файлов
    • Выполнение действий на основании времени симуляции, командных циклов и на основании значения программного счетчика
    • Выдача информационных сообщений в окно симулятора


    То есть SCL может все, что доступно через GUI Stimulus в MPLAB IDE, но при этом предоставляет больше возможностей и позволяет формировать сложные зависимости между значениями на выводах и значениями регистров микроконтроллера; моделировать взаимодействие с внешней периферией; моделировать воздействия, которые сложно воспроизвести в «железе» и выявлять ситуации, приводящие к ошибкам. Кроме того, среда разработки позволяет подключать несколько SCL файлов, для их параллельного выполнения. Это может пригодиться, например, для подключения к проекту типовых testbench-ев.

    Примеры

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



    Другое дело с использованием SCL: пишем testbench, который берет входной битовый поток (не кодированный), кодирует его и отправляет на вход симулируемого микроконтроллера. Для удобства изменения данных, входной битовый поток можно брать из внешнего файла. Попутно наш testbench может выводить информационные сообщения в окно симулятора.

    Читать далее


    Прочитать в оригинале…
    Взято автоматически из интернета.

Похожие темы

Тема Автор Раздел Последнее сообщение
2002—2021 «ЭтЛайт»
Наши контакты: +7 (812) 309-50-30, client@efind.ru
Реклама · Участие в поиске · Инструменты · Блог · Аналитика · English version

  ExpoElectronica RADEL
Обработка...
X