Введение
После появления на рынке технологии ARM многие производители микроконтроллеров прекратили инвестировать в разработки собственных ядер и просто начали лицензировать технологию ARM. Постепенно ядро ARM превратилось в некий стандарт, и потребители все чаще стали выбирать для своих разработок именно его, а не проприетарные ядра, независимо от преимуществ, которые они могли бы предложить. К тому же новые ARM-системы начали предлагать достаточное количество памяти и периферийных опций, доступных на чипе. Именно в тот момент в компании Renesas поняли, что будущее не лежит исключительно в аппаратных средствах, и задумались о новой стратегии по развитию микроконтроллеров.
Расширение продуктовой линейки за счет контроллеров на базе ядер ARM было практически неизбежным из-за растущего спроса со стороны клиентов. В то же время на рынке уже присутствовали более десятка других поставщиков ARM-микроконтроллеров, поэтому необходимо было предложить что-то новаторское. Были проведены консультации с рядом ключевых заказчиков. Стало ясно, что микроконтроллер не должен быть единственным направлением дальнейшего развития. У разработчиков все больше появлялось задач в рамках усложнения программного обеспечения, тестирования и повышения интеграции устройства, его коммутационных возможностей и обеспечения сохранности информации. Кроме того, начала бурно развиваться технология «Интернета вещей» (IoT). Так начиналась история платформы Renesas Synergy.
Сегодня Renesas Synergy — это не только четыре совместимых семейства ARM-микроконтроллеров, но и обширная программная платформа, состоящая более чем из 1 млн строк кода и представляющая примерно 200 человеко-лет развития, а также по-настоящему удобный набор инструментов разработки и многие другие нововведения.
Три основные задачи, которые помогает решить Renesas Synergy:
- Уменьшение времени выхода на рынок. Использование пакета программного обеспечения Renesas Synergy Software Package (SSP) при разработке приложения позволяет обойти многие распространенные проблемы и ошибки во время написания, интеграции и тестирования кода программы (рис. 1). Базовая функциональность SSP и широкое применение интерфейса прикладного программирования позволяют больше времени уделить созданию собственного приложения, добавить больше функциональности и инноваций, быстрее закончить разработку.
- Снижение стоимости владения. Общая стоимость затрат при разработке нового проекта гораздо выше, чем просто стоимость материалов (рис. 2). Исследования, изучение новых технологий, интеграция, оптимизация, тестирование, поддержка, обслуживание и управление обновлениями требуют времени, денег и ресурсов. Renesas Synergy позволяет резко снизить общую стоимость владения, предоставляя бесплатную базовую платформу для разработки.
- Устранение барьеров «входа». Synergy нивелирует возможные риски при изучении и внедрении новых технологий (рис. 3) путем возможности работы в интерфейсе прикладного программирования (API-функции) и доступности большого набора хорошо проработанных руководств пользователя. Ресурс Synergy Gallery позволяет в полной мере применить весь предоставляемый пакетом SSP софт и воспользоваться технической поддержкой без ограничения по функционалу или каких-либо условий на размер проекта.

Рис. 1. Разные подходы к выходу на рынок

Рис. 2. Составляющие стоимости проекта

Рис. 3. Традиционный путь внедрения новых технологий
Основные элементы Renesas Synergy Platform
Основу Synergy Platform составляют пять элементов:
- Synergy Software — набор квалифицированного программного обеспечения с общими API.
- Synergy Microcontrollers — семейство масштабируемых ARM Cortex-M микроконтроллеров.
- Synergy Gallery — фокусный веб-ресурс к специальному программному обеспечению Synergy, инструментам разработки, техподдержке и т. п.
- Synergy Tools and Kits — средства разработки и отладочные наборы.
- Synergy Solutions — готовые технические и программные решения.
На рис. 4 представлены основные элементы экосистемы Synergy.

Рис. 4. Основные элементы системы Synergy
Главная особенность данной платформы — оптимизация ключевых компонентов для их совместной работы. Благодаря этому разработчику нет нужды подбирать, приобретать и состыковывать отдельные разрозненные компоненты, как, например, операционная система реального времени, стеки коммуникационных протоколов (TCP/IP, USB), файловые системы, графический интерфейс пользователя и соответствующие средства разработки. Это существенно снижает временные и трудовые затраты специалиста. Кроме того, сами микроконтроллеры Synergy созданы с учетом этого программного обеспечения и отлично масштабируются как внутри серии, так и между ними — благодаря тому, что регистры сохраняют свои адреса и битовые позиции в разных сериях.
Synergy Software Package
Synergy Software Package (SSP) — это сердце всей экосистемы Synergy, это пакет квалифицированного программного обеспечения, объединяющий фреймворки, функциональные библиотеки, драйверы уровня HAL для всей предлагаемой периферии, пакет поддержки (BSP), включающий начальный код для всех отладочных средств и контроллеров Synergy. В дополнение к этим компонентам SSP предлагает лицензированный пакет программ от известной компании Express Logic, такие как система реального времени ThreadX, и набор связующего программного обеспечения X‑Ware.
В состав Synergy Software входят:
- Пакет поддержки платформы (BSP) может быть настроен под все отладочные КИТы и микроконтроллеры Synergy и включает загрузочный код для всех поддерживаемых блоков периферии. Если разработчик использует «железо» другого производителя, то BSP может быть адаптирован с помощью утилиты пользовательского создания пакетов поддержки платформы (Custom Board Support Package Creator), загружаемой из галереи Synergy. Задача BSP состоит в том, чтобы настроить микроконтроллер: сконфигурировать стеки, тактирование, прерывания и т. п., — прежде чем начнет исполняться непосредственно код приложения пользователя. Он также конфигурирует и настраивает порты ввода/вывода и выполняет инициализацию конкретной платы. BSP уникален для каждого отладочного средства и микроконтроллера и выбирается при старте проекта в среде разработки e2studio с использованием различных конфигураторов интегрированной среды разработки Synergy (Integrated Synergy Development Environment — ISDE). Конфигураторы внутри e2studio будут извлекать необходимые файлы из SSP и настраивать их на основе установок, сделанных в пользовательском интерфейсе. BSP содержит в основном данные, а не исполняемый код, пакет состоит из файлов конфигурации, файлов заголовков и API.
BSP предоставляет публичные функции, которые обеспечивают доступ к функциональности, общей для всех микроконтроллеров и плат, поддерживаемых пакетом. К ним относятся функции блокировки/разблокировки аппаратного и программного обеспечения, обработчиков прерываний, регистрации подпрограмм обратного вызова, очистки флагов, генерации программной задержки и функции защиты регистров. Кроме того, BSP включает функцию, которая возвращает информацию внутри структуры (число и назначенные порты ввода/вывода) о светодиодах, используемых на плате.
По мере развития микроконтроллеров Synergy и выхода новых отладочных средств под них будут создаваться новые BSP, доступные в следующих версиях SSP.
- HAL-драйверы — независимые от операционной системы реального времени высокопроизводительные драйверы для всех предлагаемых в Synergy периферийных блоков и системных сервисов. Работая на уровне регистров специальных функций, HAL-драйверы реализуют простой (API) интерфейс между разработчиком и микроконтроллером, устраняя необходимость долгого и глубокого изучения встроенной периферии и настройки регистров микроконтроллера.
Это набор модулей, и каждый из них является драйвером для периферийных устройств, доступных в микроконтроллере Synergy, таких как SPI (Serial Peripheral Interface — последовательный периферийный интерфейс) или ADC (Analog-to-Digital Converter — аналого-цифровой преобразователь). Такие модули по своей сути независимы от операционной системы реального времени и состоят из двух компонентов: низкоуровневого драйвера (low-level driver — LLD), который напрямую управляет регистрами периферии и использует разные версии одного и того же периферийного устройства, и высокоуровневого драйвера (high-level driver — HLD), чей код специально предназначен для реализации уникальных режимов периферийного оборудования Renesas, но не имеет прямого доступа к регистрам. HLD предоставляет програм-мный интерфейс (API) для фреймворков или пользовательской программы и применяет LLD для взаимодействия с микроконтроллером. Таким образом, преимуществом данной архитектуры является то, что LLD обеспечивает очень быстрое написание кода, а HLD делает API масштабируемыми на разные серии микроконтроллеров Synergy.
- Фреймворки содержат службы системного уровня, связывающие RTOS с HAL для межпроцессного обмена сообщениями, работы служб безопасности, последовательной связи, воспроизведения аудио, сенсорного управления, Bluetooth low energy и многого другого. Разработчики, использующие фреймворки, выигрывают от более высокого уровня абстракции от аппаратного обеспечения, возможности масштабирования ранее написанного кода на разных контроллерах, то есть освобождаются от повторного написания одного и того же часто используемого кода.
- Функциональные библиотеки содержат специализированное программное обеспечение для обработки цифровых сигналов или функции безопасности и шифрования. Использование готовых, квалифицированных Renesas функциональных библиотек сокращает время разработки и повышает стабильность ПО.
- Операционная система реального времени (RTOS) ThreadX предоставляет многозадачное ядро реального времени с приоритетным планированием и небольшим объемом требуемой памяти (менее 2 кбайт на микроконтроллерах серии S3, S5 или S7), небольшим объемом ОЗУ (менее 1 кбайт для ОЗУ ядра) и малым временем переключения контекста (0,7 мкс на микроконтроллере Synergy R7FS7G2). ThreadX разработана специально для использования в высокопроизводительных системах с мощной графикой, а также для встроенных систем с ограниченной памятью и специальными требованиями с точки зрения детерминизма.
В качестве многозадачной ОСРВ ThreadX применяет несколько передовых алгоритмов планирования, обеспечивает трассировку событий в режиме реального времени, передачу сообщений и управление прерываниями, а также множество других сервисов и является полностью детерминированной.
Среди других функций можно выделить архитектуру picokernel, планирование Preemption-Threshold, Event-chaining и богатый набор системных сервисов. ThreadX также поддерживает промежуточное ПО X‑Ware с сервисами, которые требуются различным компонентам.
ThreadX позволяет не только использовать наборы блоков памяти с фиксированными размерами, но и создавать пулы из нескольких байт, которые ведут себя аналогично стандартной Куче C.
- Express Logic X‑Ware. В дополнение ко всему программному обеспечению, предоставляемому Renesas, Synergy Software Package также включает дополнительные промежуточные библиотеки, созданные компанией Express Logic и поддерживаемые Renesas для работы с файловой системой (FileX), создания графического интерфейса (GUIX), реализации USB-соединения в режимах хоста или устройства (USBX) и реализации сетевых подключений (NETX и NETX Duo).
FileX — это высокопроизводительная файловая система FAT (File Allocation Table) для SSP, разработанная специально для быстрого развертывания, реализации логики быстрого поиска и небольшого занимаемого размера.
GUIX — это высокопроизводительная платформа для создания изысканных графических интерфейсов, оптимизированная для архитектуры микроконтроллеров Synergy. Она полностью интегрирована с ОСРВ ThreadX реализована как чистая библиотека на языке C и добавляет только те функции, которые будут использованы приложением в окончательной сборке.
GUIX имеет специальное приложение для ПК под названием GUIX Studio, представляющее собой полноценную среду проектирования WYSIWYG, где разработчики могут создавать графические элементы методом перетаскивания (drag-and-drop). Далее созданные элементы дизайна могут быть запущены на ПК вместе с GUIX Studio, что позволяет быстро и легко продемонстрировать и оценить возможности пользовательского интерфейса.
UBSX — это компактный и высокопроизводительный USB-стек, позволяющий микроконтроллерам Synergy взаимодействовать с USB-устройствами или подключаться к рабочим станциям Windows, Apple и Linux через USB. Он полностью интегрирован с ThreadX и доступен для всех поддерживаемых микроконтроллеров Synergy.
NetX и NetX Duo — утилиты для реализации протокола TCP/IP для Synergy. NetX — оптимизированный стек TCP/IP с поддержкой IPv4, в свою очередь, NetX Duo обеспечивает поддержку IPv4 и IPv6.
NetX и NetX Duo включают такие протоколы конфигурации сети, как DHCP (клиент/сервер) и SNTP (протокол сетевого времени), а также службы доменных имен DNS, mDNS, DNS-SD и NAT и передачу электронной почты с помощью POP3 и SMTP. Также доступно HTTP сервер/сетевое управление и протоколы подключений PPP, Telnet, FTP и TFTP. NetX Duo получил сертификаты безопасности в соответствии с IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D и EN 50128 SW-SIL4.
Для NetX Duo доступны дополнительные компоненты, такие как HTTPv6, FTPv6, DNSv6, Telnetv6 и DHCPv6 (только клиент). Решения высокого уровня, SSL/SSH/TLC, доступны в качестве компонентов расширенного программного обеспечения (VSA — Synergy Verified Software Add-on) и доступны через ресурс Synergy Gallery.
На рис. 5 изображена архитектура различных уровней программного пакета Synergy. Доступ к каждому можно получить с помощью API-вызовов напрямую или в виде стеков.

Рис. 5. Архитектура SSP
Все модули SSP поддерживают приложения, написанные на C++. Кроме того, приложения C++ могут быть сконфигурированы и использованы в e2studio и IAR Embedded Workbench для Synergy.
Микроконтроллеры Synergy
Семейство Synergy составляют четыре серии микроконтроллеров: S1, S3, S5 и S7, которые могут применяться в различных устройствах — от небольших и простых, работающих от батарей датчиков, до высокопроизводительных встраиваемых систем.
Все микроконтроллеры Synergy разработаны на основе 32‑разрядных ядер ARM Cortex-M. В основе Synergy S1 лежит ядро Cortex-M0+, а S3, S5 и S7, в свою очередь, построены на базе Cortex-M4. Все они содержат стандартную периферию от ARM, например контроллер приоритетных векторных прерываний (Nested Vectored Interrupt Controller — NVIC) или модуль защиты памяти (Memory Protection Unit). Кроме этого, Renesas добавила собственный IP-блок, которого нет у ARM, для случаев, где требуется дополнительная производительность. Этот дополнительный IP-блок основан на проверенной технологии Renesas с учетом требований совместимости и масштабируемости платформы Synergy.
- Серия S1 — «сверхнизкое потребление»: частота ядра до 32 МГц, флэш-память до 256 кбит, сверхнизкое потребление тока в активном режиме — 70,7 мкА на 1 МГц, диапазон входного напряжения 1,6–5,5 В. Периферийные устройства включают АЦП и ЦАП, таймеры, блок работы с емкостными датчиками, набор последовательных интерфейсов и модули безопасности.
- Серия S3 — «высокая эффективность»»: блок операций с плавающей точкой (FPU), частота ядра 32–100 МГц, флэш-память объемом до 1 Мбайт, диапазон входного напряжения 1,6–5,5 В. Периферийные устройства включают ЦАП и АЦП, таймеры, контроллер сегментных ЖК-индикаторов, USB и набор последовательных интерфейсов, модули безопасности.
- Серия S5 — «высокая интеграция»: блок операций с плавающей точкой (FPU), частота ядра 100–200 МГц, до 2 Мбайт флэш-памяти, диапазон входного напряжения 2,7–3,6 В. Периферийные устройства включают ЦАП и АЦП, таймеры, контроллер графических ЖК-индикаторов, блок работы с емкостными датчиками, Ethernet MAC, USB, CAN, набор последовательных интерфейсов, модули безопасности.
- Серия S7 — «высокая производительность»: блок операций с плавающей точкой (FPU), частота ядра 200–300 МГц, до 4 Мбайт флэш-памяти, диапазон входного напряжения 2,7–3,6 В. Периферийные устройства содержат ЦАП и АЦП, таймеры, контроллер графических ЖК-индикаторов, 2D графический движок, два Ethernet MAC, USB, CAN, набор последовательных интерфейсов, модули безопасности.
Микроконтроллеры Synergy совместимы по характеристикам и контактам (в идентичных корпусах). Это позволяет легко масштабировать конечные решения и повторно использовать код с одного устройства на другом.
Инструменты разработки и отладочные средства Synergy
Доступные инструменты разработки программного обеспечения включают следующие компоненты:
- e2studio: интегрированная среда разработки (Integrated Solution Development Environment — ISDE) на базе Eclipse от Renesas, которая включает специальные конфигураторы для платформы Synergy и использует компилятор GCC. e2studio использует все преимущества Eclipse и содержит все инструменты, необходимые для создания, компиляции и отладки проектов любого размера и сложности, что позволяет разработчику покрыть все три этапа разработки программного обеспечения: подготовка, сборка и отладка.
- IAR Embedded Workbench для Renesas Synergy: интегрированная среда разработки от IAR Systems для платформы Synergy с использованием собственного компилятора ARM Cortex-M IAR. Работает с автономным конфигуратором Renesas Synergy (Synergy Standalone Configurator — SSC).
- TraceX: трассировщик, средство визуализации событий и состояний операционной системы реального времени ThreadX от Express Logic.
- GUIX Studio: программа для ПК от Express Logic для визуального проектирования графических пользовательских интерфейсов.
Готовые технические и программные решения Synergy
Для особых применений, таких как, например, HMI-устройства, интеллектуальные измерительные устройства и сети или промышленные сети, Synergy предлагает специализированные наборы разработчика, которые предоставляют больше возможностей, чем стандартные отладочные средства.
Есть два вида готовых решений:
- Synergy Product Example (PE) — представление о дизайне конечного продукта. Поставляется с необходимым аппаратным и программным обеспечением и полной документацией, включающей принципиальные электрические схемы, топологию платы, специ-фикации, гербер-файлы, а также документы, описывающие, как и почему был выбран тот или иной компонент и почему применен тот или иной дизайнерский подход.
- Synergy Application Example (AE) — примеры технологий, которые могут быть использованы при разработке конечных устройств. Как правило, включают несколько компонентов, демонстрирующих, как несколько технологий могут использоваться для создания конечного продукта. Например, AE-системы с облачным подключением продемонстрируют реализацию различных беспроводных сетей, человеко-машинного интерфейса (HMI), а также облачных соединений и сервисов.
Все готовые решения Synergy основываются на Synergy Software Package, а также на дополнительном ПО от третьих сторон: проверенном (VSA — Verified Software Add-Ons), квалифицированном (QSA — Qualified Software Add-Ons) и партнерских проектах (Partner Projects — PP). Они дополняют стандартные возможности SSP, обеспечивая еще больше удобства в разработке.
Synergy Gallery
Галерея Synergy — это точка входа во всю экосистему Synergy. Это доступ ко всему программному обеспечению Synergy, инструментам Synergy, лицензиям, а также к программному обеспечению и сервисам сторонних поставщиков.
Таким образом, программно-аппаратная платформа Synergy состоит из пяти элементов:
- ПО Synergy;
- микроконтроллеры Synergy;
- галерея Synergy;
- инструменты разработчика Synergy;
- готовые решения Synergy.
Совместное использование программных и аппаратных средств платформы Synergy для разработки и отладки
Рассмотрим подробней программные и аппаратные средства платформы Synergy и их совместное использование для разработки и отладки проектов.
Программный пакет Synergy Software Package построен в виде слоев, и ко всем из них можно получить доступ с помощью простых API-вызовов.
API инкапсулирует сложность SSP, но все же предоставляет программисту полный контроль над функциональностью. Приложения могут получить доступ ко всем функциям в SSP посредством интуитивно понятных и всеобъемлющих вызовов API, независимо от того, в каком из слоев находится нужная функциональность.
Архитектура различных слоев показана на рис. 6.

Рис. 6. Архитектура различных слоев
На нижнем уровне находится микроконтроллер Synergy. Над микроконтроллером размещен пакет поддержки платформы (BSP), который отвечает за то, чтобы микроконтроллер был сброшен в основное приложение и поддерживал другие сервисы для программного обеспечения на уровне выше. Следующий уровень — слой аппаратных абстракций (HAL), который изолирует разработчика от непосредственного взаимодействия с регистром микроконтроллера и делает программное обеспечение на уровне выше HAL более переносимым для всей платформы Synergy. Над HAL находятся фреймворки приложений, функциональные библиотеки и промежуточное программное обеспечение X‑Ware, а также ОСРВ. Фреймворки приложений выполняют часто используемые системные службы, такие как обмен данными, воспроизведение аудио или емкостное сенсорное считывание, функциональные библиотеки содержат специализированное программное обеспечение, например для обработки цифровых сигналов или функций, связанных с безопасностью. В самой верхней части находится пользовательская программа, которая вызывает слои ниже через API.
Доступ к каждому из уровней осуществляется через вызовы API напрямую или в виде стеков. Так, звуковое приложение может вызывать структуру воспроизведения аудио в приложениях, в которой используется драйвер I2S (Inter-IC Sound) и два контроллера Data Transfer Controller (DTC) для обеспечения доступа к внешнему аудиопреобразователю для чтения/записи, преобразователь подключен к микроконтроллеру через интерфейс I2S и общий таймер (general PWM). Безусловно, конечное приложение может также напрямую обращаться к драйверам HAL и BSP, но использование фреймворков приложений намного проще, поскольку в этом случае не требуется подробного знания вышеописанных блоков.
Введем некоторые определения:
- Модуль — периферийный драйвер, обычный исполняемый код или что-то другое, является строительным блоком SSP. Модули обычно предстают в виде независимых блоков, но они могут зависеть от других модулей. Приложения могут быть созданы путем объединения нескольких модулей, чтобы предоставить пользователю необходимые функции.
- Экземпляр модуля — одиночная и независимая конфигурация модуля.
- Интерфейсы — способ, при помощи которого модули предоставляют общие функции. Через них модули, которые придерживаются одного и того же интерфейса, могут использоваться взаимозаменяемо. Представьте интерфейс как контракт между двумя модулями, где модули «принимают решение» работать вместе, используя информацию, согласованную в контракте.
- Экземпляры SSP — в то время как интерфейсы определяют предоставляемые функции, экземпляры фактически реализуют их. Каждый экземпляр привязан к определенному интерфейсу при помощи перечисления, структуры данных и API-прототипов из интерфейса. Это позволяет приложению при необходимости заменять экземпляры.
- Драйверы — особый тип модуля, напрямую изменяющий регистры в микроконтроллере Synergy.
Модули могут быть наложены друг на друга, создавая стек SSP. Процесс наложения выполняется сопоставлением того, что один модуль предоставляет, с тем, что требуется другому модулю. Возможность наложения модулей дает много преимуществ, поскольку обеспечивает гибкость, необходимую для уровня приложения. Если бы они были зависимы напрямую от других модулей, переносимость различных пользовательских разработок была бы сложной задачей. Архитектура SSP в том виде, в котором она была разработана, обеспечивает гибкость для замены модулей входов и выходов (например, замена драйвера UART на драйвер SPI) с использованием интерфейсов SSP. Модули, поддерживающие один и тот же интерфейс, могут применяться взаимозаменяемо. Все модули «соглашаются» работать вместе, используя информацию, которая была согласована.
В микроконтроллерах Synergy иногда наблюдается перекрытие функций между различными периферийными устройствами. Например, связь I2C может быть достигнута за счет использования периферийного устройства I2C или периферийного устройства SCI в его простом режиме I2C, причем оба периферийных устройства предоставляют разный набор функций. Интерфейсы построены таким образом, что обеспечивают общие функции, которые ожидало бы большинство пользователей, опустив отдельные из более продвинутых функций, которые, однако, в большинстве случаев все еще доступны через расширения интерфейса.
По меньшей мере три структуры данных включены в каждый интерфейс SSP: структура управления, зависящая от модуля с именем <interface>_ctrl_t*, которая используется как уникальный идентификатор для модуля; структура конфигурации с именем *<interface>_cfg_t* в качестве входных данных для начальной конфигурации модуля во время вызова open(); и структура экземпляра, состоящая из указателя на структуру управления, указателя на структуру конфигурации и указателя на структуру API.
Все интерфейсы включают структуру API, содержащую указатели на функции всех поддерживаемых функций. Структура API — это инструмент, позволяющий заменять модули на другие модули, которые являются экземплярами того же интерфейса.
Как только событие произошло, то через функции обратного вызова модули подают об этом сигнал в пользовательское приложение. Примером такого события может быть байт, полученный по каналу UART (рис. 7). Обратные вызовы также необходимы, чтобы пользовательское приложение могло реагировать на прерывания. Они должны быть как можно короче, поскольку вызываются изнутри процедуры обслуживания прерываний. В противном случае они могут оказать негативное влияние на производительность системы в режиме реального времени.

Рис. 7. Пример сопоставления «один-ко-многим»
В то время как интерфейсы определяют предоставляемые функции, экземпляры фактически реализуют их. Каждый экземпляр привязан к определенному интерфейсу и использует перечисления, структуры данных и прототипы API из интерфейса. Это позволяет приложениям, которые используют интерфейс для замены экземпляра, когда это необходимо, сэкономить много времени после изменения кода или применяемых периферийных устройств. На микроконтроллерах Synergy некоторые периферийные устройства, например I2C, будут иметь взаимно однозначное сопоставление (сопоставляется только с интерфейсом I2C), в то время как другие, такие как SCI, будут иметь сопоставление «один-ко-многим» (реализует три интерфейса: I2C, UART, SPI).
Конфигураторы проекта в e2studio графически направляют разработчика программного обеспечения через определенные параметры устройства микроконтроллера Synergy и сообщают об их использовании. Примерами этого являются настройка контактов или предупреждение конфликтов. Конфигураторы также генерируют код запуска или размещают компоненты программного обеспечения SSP в проекте.
Существует несколько конфигураторов, предназначенных для помощи разработчику, и первый, с которым сталкивается большинство пользователей, — это Project Configurator, он ведет через процесс создания нового проекта Synergy с нуля или из шаблона, предоставленного конфигуратором. Он позволяет выбирать параметры для проекта — используемый набор инструментов, устройство или плата, и определяет, должен ли быть создан проект для примера.
Конфигуратор Synergy сначала отображает сводку текущего проекта и дает объяснение различных доступных вкладок и способов их применения. Следующая вкладка — вкладка BSP (пакет поддержки платформы), позволяющая просматривать и редактировать аспекты настройки платы, например выбор устройства или платы. Конфигуратор предоставляет необходимую информацию на абстрактном уровне и обеспечивает правильность и правдоподобие всех настроек.
Отладочная плата Starter Kit SK-S7G2 предоставляет легкий доступ к платформе Synergy, поскольку основана на серии микроконтроллеров Synergy, предлагающей самые большие объемы памяти и самый широкий выбор встроенных периферийных устройств. Компактная конструкция обеспечивает доступ более чем к 80% контактов устройства через разъемы Arduino и Pmod, что позволяет быстро создать прототип приложения.
Встроенный сенсорный дисплей QVGA обеспечивает взаимодействие с платой, особенно если используется вместе с промежуточным программным обеспечением GUIX из пакета программного обеспечения Synergy (SSP) и GUIX Studio — программы для Windows, которую можно загрузить из галереи Synergy и применить для создания графических интерфейсов пользователя (GUI). Подключение к внешней среде доступно через USB, Ethernet, RS‑232/485 и Bluetooth Low Energy (BLE).
Development Kit больше предназначены для полного прототипирования проектов, предоставления доступа ко всем контактам и характеризуются наличием дополнительного оборудования для конкретных приложений, таких как емкостный сенсорный дисплей.
Поскольку большинство контактов на микроконтроллерах Synergy поддерживают различные функции, они могут быть подключены к нескольким разъемам или устройствам на платах. DIP-переключатели на печатной плате обеспечивают легкую, безопасную и безошибочную маршрутизацию различных функций. Каждый DIP-переключатель управляет высокоскоростным буфером, который в зависимости от настройки переключателя либо подключает, либо изолирует контакты микроконтроллера от периферийного устройства или разъема. Кроме того, DIP-переключатели могут считываться программным обеспечением через IIC-порт расширителей ввода/вывода, и, если коммутатор открыт, программное обеспечение может активировать буферы. Светодиоды указывают, когда соответствующее устройство подключено под программным управлением.
Для разработки разных устройств могут использоваться разные макетные платы, при этом на печатной плате будут доступны дополнительные периферийные устройства (в зависимости от набора функций используемого микроконтроллера). Как и для отладочных плат, для всех макетных плат имеется полный комплект документации.
Отладочная плата для разработки Development Kit DK-S3A7 оснащена микроконтроллером S3A7 серии S3, энергоэффективным микроконтроллером в семействе микроконтроллеров Synergy. Плата создана для обеспечения поддержки в разработке конечных продуктов с жесткими требованиями к энергоэффективности. Комплект состоит из трех плат: одна основная плата с микроконтроллером и несколькими разъемами и интерфейсами, одна плата с несколькими периферийными устройствами, такими как датчики света и температуры, а также разъемами Pmod и одна ЖК-панель с 176‑сегментным дисплеем.
В отладочной плате для разработки Development Kit DK-S124 находится микроконтроллер S124 серии S1, малопотребляющий микроконтроллер с интеллектуальным сочетанием аналоговых и цифровых периферийных устройств. Конструкция платы позволяет точно измерять потребление тока микроконтроллера во всех режимах работы, а также выполнять детальную оценку производительности аналоговых периферийных устройств. Комплект состоит из двух плат: одна основная плата с микроконтроллером и одна плата дисплея.
Продолжение следует
Введение
После появления на рынке технологии ARM многие производители микроконтроллеров прекратили инвестировать в разработки собственных ядер и просто начали лицензировать технологию ARM. Постепенно ядро ARM превратилось в некий стандарт, и потребители все чаще стали выбирать для своих разработок именно его, а не проприетарные ядра, независимо от преимуществ, которые они могли бы предложить. К тому же новые ARM-системы начали предлагать достаточное количество памяти и периферийных опций, доступных на чипе. Именно в тот момент в компании Renesas поняли, что будущее не лежит исключительно в аппаратных средствах, и задумались о новой стратегии по развитию микроконтроллеров.
Расширение продуктовой линейки за счет контроллеров на базе ядер ARM было практически неизбежным из-за растущего спроса со стороны клиентов. В то же время на рынке уже присутствовали более десятка других поставщиков ARM-микроконтроллеров, поэтому необходимо было предложить что-то новаторское. Были проведены консультации с рядом ключевых заказчиков. Стало ясно, что микроконтроллер не должен быть единственным направлением дальнейшего развития. У разработчиков все больше появлялось задач в рамках усложнения программного обеспечения, тестирования и повышения интеграции устройства, его коммутационных возможностей и обеспечения сохранности информации. Кроме того, начала бурно развиваться технология «Интернета вещей» (IoT). Так начиналась история платформы Renesas Synergy.
Сегодня Renesas Synergy — это не только четыре совместимых семейства ARM-микроконтроллеров, но и обширная программная платформа, состоящая более чем из 1 млн строк кода и представляющая примерно 200 человеко-лет развития, а также по-настоящему удобный набор инструментов разработки и многие другие нововведения.
Три основные задачи, которые помогает решить Renesas Synergy:
- Уменьшение времени выхода на рынок. Использование пакета программного обеспечения Renesas Synergy Software Package (SSP) при разработке приложения позволяет обойти многие распространенные проблемы и ошибки во время написания, интеграции и тестирования кода программы (рис. 1). Базовая функциональность SSP и широкое применение интерфейса прикладного программирования позволяют больше времени уделить созданию собственного приложения, добавить больше функциональности и инноваций, быстрее закончить разработку.
- Снижение стоимости владения. Общая стоимость затрат при разработке нового проекта гораздо выше, чем просто стоимость материалов (рис. 2). Исследования, изучение новых технологий, интеграция, оптимизация, тестирование, поддержка, обслуживание и управление обновлениями требуют времени, денег и ресурсов. Renesas Synergy позволяет резко снизить общую стоимость владения, предоставляя бесплатную базовую платформу для разработки.
- Устранение барьеров «входа». Synergy нивелирует возможные риски при изучении и внедрении новых технологий (рис. 3) путем возможности работы в интерфейсе прикладного программирования (API-функции) и доступности большого набора хорошо проработанных руководств пользователя. Ресурс Synergy Gallery позволяет в полной мере применить весь предоставляемый пакетом SSP софт и воспользоваться технической поддержкой без ограничения по функционалу или каких-либо условий на размер проекта.
Основные элементы Renesas Synergy Platform
Основу Synergy Platform составляют пять элементов:
- Synergy Software — набор квалифицированного программного обеспечения с общими API.
- Synergy Microcontrollers — семейство масштабируемых ARM Cortex-M микроконтроллеров.
- Synergy Gallery — фокусный веб-ресурс к специальному программному обеспечению Synergy, инструментам разработки, техподдержке и т. п.
- Synergy Tools and Kits — средства разработки и отладочные наборы.
- Synergy Solutions — готовые технические и программные решения.
На рис. 4 представлены основные элементы экосистемы Synergy.
Главная особенность данной платформы — оптимизация ключевых компонентов для их совместной работы. Благодаря этому разработчику нет нужды подбирать, приобретать и состыковывать отдельные разрозненные компоненты, как, например, операционная система реального времени, стеки коммуникационных протоколов (TCP/IP, USB), файловые системы, графический интерфейс пользователя и соответствующие средства разработки. Это существенно снижает временные и трудовые затраты специалиста. Кроме того, сами микроконтроллеры Synergy созданы с учетом этого программного обеспечения и отлично масштабируются как внутри серии, так и между ними — благодаря тому, что регистры сохраняют свои адреса и битовые позиции в разных сериях.
Synergy Software Package
Synergy Software Package (SSP) — это сердце всей экосистемы Synergy, это пакет квалифицированного программного обеспечения, объединяющий фреймворки, функциональные библиотеки, драйверы уровня HAL для всей предлагаемой периферии, пакет поддержки (BSP), включающий начальный код для всех отладочных средств и контроллеров Synergy. В дополнение к этим компонентам SSP предлагает лицензированный пакет программ от известной компании Express Logic, такие как система реального времени ThreadX, и набор связующего программного обеспечения X‑Ware.
В состав Synergy Software входят:
- Пакет поддержки платформы (BSP) может быть настроен под все отладочные КИТы и микроконтроллеры Synergy и включает загрузочный код для всех поддерживаемых блоков периферии. Если разработчик использует «железо» другого производителя, то BSP может быть адаптирован с помощью утилиты пользовательского создания пакетов поддержки платформы (Custom Board Support Package Creator), загружаемой из галереи Synergy. Задача BSP состоит в том, чтобы настроить микроконтроллер: сконфигурировать стеки, тактирование, прерывания и т. п., — прежде чем начнет исполняться непосредственно код приложения пользователя. Он также конфигурирует и настраивает порты ввода/вывода и выполняет инициализацию конкретной платы. BSP уникален для каждого отладочного средства и микроконтроллера и выбирается при старте проекта в среде разработки e2studio с использованием различных конфигураторов интегрированной среды разработки Synergy (Integrated Synergy Development Environment — ISDE). Конфигураторы внутри e2studio будут извлекать необходимые файлы из SSP и настраивать их на основе установок, сделанных в пользовательском интерфейсе. BSP содержит в основном данные, а не исполняемый код, пакет состоит из файлов конфигурации, файлов заголовков и API.
BSP предоставляет публичные функции, которые обеспечивают доступ к функциональности, общей для всех микроконтроллеров и плат, поддерживаемых пакетом. К ним относятся функции блокировки/разблокировки аппаратного и программного обеспечения, обработчиков прерываний, регистрации подпрограмм обратного вызова, очистки флагов, генерации программной задержки и функции защиты регистров. Кроме того, BSP включает функцию, которая возвращает информацию внутри структуры (число и назначенные порты ввода/вывода) о светодиодах, используемых на плате.
По мере развития микроконтроллеров Synergy и выхода новых отладочных средств под них будут создаваться новые BSP, доступные в следующих версиях SSP.
- HAL-драйверы — независимые от операционной системы реального времени высокопроизводительные драйверы для всех предлагаемых в Synergy периферийных блоков и системных сервисов. Работая на уровне регистров специальных функций, HAL-драйверы реализуют простой (API) интерфейс между разработчиком и микроконтроллером, устраняя необходимость долгого и глубокого изучения встроенной периферии и настройки регистров микроконтроллера.
Это набор модулей, и каждый из них является драйвером для периферийных устройств, доступных в микроконтроллере Synergy, таких как SPI (Serial Peripheral Interface — последовательный периферийный интерфейс) или ADC (Analog-to-Digital Converter — аналого-цифровой преобразователь). Такие модули по своей сути независимы от операционной системы реального времени и состоят из двух компонентов: низкоуровневого драйвера (low-level driver — LLD), который напрямую управляет регистрами периферии и использует разные версии одного и того же периферийного устройства, и высокоуровневого драйвера (high-level driver — HLD), чей код специально предназначен для реализации уникальных режимов периферийного оборудования Renesas, но не имеет прямого доступа к регистрам. HLD предоставляет програм-мный интерфейс (API) для фреймворков или пользовательской программы и применяет LLD для взаимодействия с микроконтроллером. Таким образом, преимуществом данной архитектуры является то, что LLD обеспечивает очень быстрое написание кода, а HLD делает API масштабируемыми на разные серии микроконтроллеров Synergy.
- Фреймворки содержат службы системного уровня, связывающие RTOS с HAL для межпроцессного обмена сообщениями, работы служб безопасности, последовательной связи, воспроизведения аудио, сенсорного управления, Bluetooth low energy и многого другого. Разработчики, использующие фреймворки, выигрывают от более высокого уровня абстракции от аппаратного обеспечения, возможности масштабирования ранее написанного кода на разных контроллерах, то есть освобождаются от повторного написания одного и того же часто используемого кода.
- Функциональные библиотеки содержат специализированное программное обеспечение для обработки цифровых сигналов или функции безопасности и шифрования. Использование готовых, квалифицированных Renesas функциональных библиотек сокращает время разработки и повышает стабильность ПО.
- Операционная система реального времени (RTOS) ThreadX предоставляет многозадачное ядро реального времени с приоритетным планированием и небольшим объемом требуемой памяти (менее 2 кбайт на микроконтроллерах серии S3, S5 или S7), небольшим объемом ОЗУ (менее 1 кбайт для ОЗУ ядра) и малым временем переключения контекста (0,7 мкс на микроконтроллере Synergy R7FS7G2). ThreadX разработана специально для использования в высокопроизводительных системах с мощной графикой, а также для встроенных систем с ограниченной памятью и специальными требованиями с точки зрения детерминизма.
В качестве многозадачной ОСРВ ThreadX применяет несколько передовых алгоритмов планирования, обеспечивает трассировку событий в режиме реального времени, передачу сообщений и управление прерываниями, а также множество других сервисов и является полностью детерминированной.
Среди других функций можно выделить архитектуру picokernel, планирование Preemption-Threshold, Event-chaining и богатый набор системных сервисов. ThreadX также поддерживает промежуточное ПО X‑Ware с сервисами, которые требуются различным компонентам.
ThreadX позволяет не только использовать наборы блоков памяти с фиксированными размерами, но и создавать пулы из нескольких байт, которые ведут себя аналогично стандартной Куче C.
- Express Logic X‑Ware. В дополнение ко всему программному обеспечению, предоставляемому Renesas, Synergy Software Package также включает дополнительные промежуточные библиотеки, созданные компанией Express Logic и поддерживаемые Renesas для работы с файловой системой (FileX), создания графического интерфейса (GUIX), реализации USB-соединения в режимах хоста или устройства (USBX) и реализации сетевых подключений (NETX и NETX Duo).
FileX — это высокопроизводительная файловая система FAT (File Allocation Table) для SSP, разработанная специально для быстрого развертывания, реализации логики быстрого поиска и небольшого занимаемого размера.
GUIX — это высокопроизводительная платформа для создания изысканных графических интерфейсов, оптимизированная для архитектуры микроконтроллеров Synergy. Она полностью интегрирована с ОСРВ ThreadX реализована как чистая библиотека на языке C и добавляет только те функции, которые будут использованы приложением в окончательной сборке.
GUIX имеет специальное приложение для ПК под названием GUIX Studio, представляющее собой полноценную среду проектирования WYSIWYG, где разработчики могут создавать графические элементы методом перетаскивания (drag-and-drop). Далее созданные элементы дизайна могут быть запущены на ПК вместе с GUIX Studio, что позволяет быстро и легко продемонстрировать и оценить возможности пользовательского интерфейса.
UBSX — это компактный и высокопроизводительный USB-стек, позволяющий микроконтроллерам Synergy взаимодействовать с USB-устройствами или подключаться к рабочим станциям Windows, Apple и Linux через USB. Он полностью интегрирован с ThreadX и доступен для всех поддерживаемых микроконтроллеров Synergy.
NetX и NetX Duo — утилиты для реализации протокола TCP/IP для Synergy. NetX — оптимизированный стек TCP/IP с поддержкой IPv4, в свою очередь, NetX Duo обеспечивает поддержку IPv4 и IPv6.
NetX и NetX Duo включают такие протоколы конфигурации сети, как DHCP (клиент/сервер) и SNTP (протокол сетевого времени), а также службы доменных имен DNS, mDNS, DNS-SD и NAT и передачу электронной почты с помощью POP3 и SMTP. Также доступно HTTP сервер/сетевое управление и протоколы подключений PPP, Telnet, FTP и TFTP. NetX Duo получил сертификаты безопасности в соответствии с IEC 61508 SIL 4, IEC 62304 Class C, ISO 26262 ASIL D и EN 50128 SW-SIL4.
Для NetX Duo доступны дополнительные компоненты, такие как HTTPv6, FTPv6, DNSv6, Telnetv6 и DHCPv6 (только клиент). Решения высокого уровня, SSL/SSH/TLC, доступны в качестве компонентов расширенного программного обеспечения (VSA — Synergy Verified Software Add-on) и доступны через ресурс Synergy Gallery.
На рис. 5 изображена архитектура различных уровней програм-много пакета Synergy. Доступ к каждому можно получить с помощью API-вызовов напрямую или в виде стеков.
Все модули SSP поддерживают приложения, написанные на C++. Кроме того, приложения C++ могут быть сконфигурированы и использованы в e2studio и IAR Embedded Workbench для Synergy.
Микроконтроллеры Synergy
Семейство Synergy составляют четыре серии микроконтроллеров: S1, S3, S5 и S7, которые могут применяться в различных устройствах — от небольших и простых, работающих от батарей датчиков, до высокопроизводительных встраиваемых систем.
Все микроконтроллеры Synergy разработаны на основе 32‑разрядных ядер ARM Cortex-M. В основе Synergy S1 лежит ядро Cortex-M0+, а S3, S5 и S7, в свою очередь, построены на базе Cortex-M4. Все они содержат стандартную периферию от ARM, например контроллер приоритетных векторных прерываний (Nested Vectored Interrupt Controller — NVIC) или модуль защиты памяти (Memory Protection Unit). Кроме этого, Renesas добавила собственный IP-блок, которого нет у ARM, для случаев, где требуется дополнительная производительность. Этот дополнительный IP-блок основан на проверенной технологии Renesas с учетом требований совместимости и масштабируемости платформы Synergy.
- Серия S1 — «сверхнизкое потребление»: частота ядра до 32 МГц, флэш-память до 256 кбит, сверхнизкое потребление тока в активном режиме — 70,7 мкА на 1 МГц, диапазон входного напряжения 1,6–5,5 В. Периферийные устройства включают АЦП и ЦАП, таймеры, блок работы с емкостными датчиками, набор последовательных интерфейсов и модули безопасности.
- Серия S3 — «высокая эффективность»»: блок операций с плавающей точкой (FPU), частота ядра 32–100 МГц, флэш-память объемом до 1 Мбайт, диапазон входного напряжения 1,6–5,5 В. Периферийные устройства включают ЦАП и АЦП, таймеры, контроллер сегментных ЖК-индикаторов, USB и набор последовательных интерфейсов, модули безопасности.
- Серия S5 — «высокая интеграция»: блок операций с плавающей точкой (FPU), частота ядра 100–200 МГц, до 2 Мбайт флэш-памяти, диапазон входного напряжения 2,7–3,6 В. Периферийные устройства включают ЦАП и АЦП, таймеры, контроллер графических ЖК-индикаторов, блок работы с емкостными датчиками, Ethernet MAC, USB, CAN, набор последовательных интерфейсов, модули безопасности.
- Серия S7 — «высокая производительность»: блок операций с плавающей точкой (FPU), частота ядра 200–300 МГц, до 4 Мбайт флэш-памяти, диапазон входного напряжения 2,7–3,6 В. Периферийные устройства содержат ЦАП и АЦП, таймеры, контроллер графических ЖК-индикаторов, 2D графический движок, два Ethernet MAC, USB, CAN, набор последовательных интерфейсов, модули безопасности.
Микроконтроллеры Synergy совместимы по характеристикам и контактам (в идентичных корпусах). Это позволяет легко масштабировать конечные решения и повторно использовать код с одного устройства на другом.
Инструменты разработки и отладочные средства Synergy
Доступные инструменты разработки программного обеспечения включают следующие компоненты:
- e2studio: интегрированная среда разработки (Integrated Solution Development Environment — ISDE) на базе Eclipse от Renesas, которая включает специальные конфигураторы для платформы Synergy и использует компилятор GCC. e2studio использует все преимущества Eclipse и содержит все инструменты, необходимые для создания, компиляции и отладки проектов любого размера и сложности, что позволяет разработчику покрыть все три этапа разработки программного обеспечения: подготовка, сборка и отладка.
- IAR Embedded Workbench для Renesas Synergy: интегрированная среда разработки от IAR Systems для платформы Synergy с использованием собственного компилятора ARM Cortex-M IAR. Работает с автономным конфигуратором Renesas Synergy (Synergy Standalone Configurator — SSC).
- TraceX: трассировщик, средство визуализации событий и состояний операционной системы реального времени ThreadX от Express Logic.
- GUIX Studio: программа для ПК от Express Logic для визуального проектирования графических пользовательских интерфейсов.
Готовые технические и программные решения Synergy
Для особых применений, таких как, например, HMI-устройства, интеллектуальные измерительные устройства и сети или промышленные сети, Synergy предлагает специализированные наборы разработчика, которые предоставляют больше возможностей, чем стандартные отладочные средства.
Есть два вида готовых решений:
- Synergy Product Example (PE) — представление о дизайне конечного продукта. Поставляется с необходимым аппаратным и программным обеспечением и полной документацией, включающей принципиальные электрические схемы, топологию платы, специ-фикации, гербер-файлы, а также документы, описывающие, как и почему был выбран тот или иной компонент и почему применен тот или иной дизайнерский подход.
- Synergy Application Example (AE) — примеры технологий, которые могут быть использованы при разработке конечных устройств. Как правило, включают несколько компонентов, демонстрирующих, как несколько технологий могут использоваться для создания конечного продукта. Например, AE-системы с облачным подключением продемонстрируют реализацию различных беспроводных сетей, человеко-машинного интерфейса (HMI), а также облачных соединений и сервисов.
Все готовые решения Synergy основываются на Synergy Software Package, а также на дополнительном ПО от третьих сторон: проверенном (VSA — Verified Software Add-Ons), квалифицированном (QSA — Qualified Software Add-Ons) и партнерских проектах (Partner Projects — PP). Они дополняют стандартные возможности SSP, обеспечивая еще больше удобства в разработке.
Synergy Gallery
Галерея Synergy — это точка входа во всю экосистему Synergy. Это доступ ко всему программному обеспечению Synergy, инструментам Synergy, лицензиям, а также к программному обеспечению и сервисам сторонних поставщиков.
Таким образом, программно-аппаратная платформа Synergy состоит из пяти элементов:
- ПО Synergy;
- микроконтроллеры Synergy;
- галерея Synergy;
- инструменты разработчика Synergy;
- готовые решения Synergy.
Совместное использование программных и аппаратных средств платформы Synergy для разработки и отладки
Рассмотрим подробней программные и аппаратные средства платформы Synergy и их совместное использование для разработки и отладки проектов.
Программный пакет Synergy Software Package построен в виде слоев, и ко всем из них можно получить доступ с помощью простых API-вызовов.
API инкапсулирует сложность SSP, но все же предоставляет программисту полный контроль над функциональностью. Приложения могут получить доступ ко всем функциям в SSP посредством интуитивно понятных и всеобъемлющих вызовов API, независимо от того, в каком из слоев находится нужная функциональность.
Архитектура различных слоев показана на рис. 6.
На нижнем уровне находится микроконтроллер Synergy. Над микроконтроллером размещен пакет поддержки платформы (BSP), который отвечает за то, чтобы микроконтроллер был сброшен в основное приложение и поддерживал другие сервисы для программного обеспечения на уровне выше. Следующий уровень — слой аппаратных абстракций (HAL), который изолирует разработчика от непосредственного взаимодействия с регистром микроконтроллера и делает программное обеспечение на уровне выше HAL более переносимым для всей платформы Synergy. Над HAL находятся фреймворки приложений, функциональные библиотеки и промежуточное программное обеспечение X‑Ware, а также ОСРВ. Фреймворки приложений выполняют часто используемые системные службы, такие как обмен данными, воспроизведение аудио или емкостное сенсорное считывание, функциональные библиотеки содержат специализированное программное обеспечение, например для обработки цифровых сигналов или функций, связанных с безопасностью. В самой верхней части находится пользовательская программа, которая вызывает слои ниже через API.
Доступ к каждому из уровней осуществляется через вызовы API напрямую или в виде стеков. Так, звуковое приложение может вызывать структуру воспроизведения аудио в приложениях, в которой используется драйвер I2S (Inter-IC Sound) и два контроллера Data Transfer Controller (DTC) для обеспечения доступа к внешнему аудиопреобразователю для чтения/записи, преобразователь подключен к микроконтроллеру через интерфейс I2S и общий таймер (general PWM). Безусловно, конечное приложение может также напрямую обращаться к драйверам HAL и BSP, но использование фреймворков приложений намного проще, поскольку в этом случае не требуется подробного знания вышеописанных блоков.
Введем некоторые определения:
- Модуль — периферийный драйвер, обычный исполняемый код или что-то другое, является строительным блоком SSP. Модули обычно предстают в виде независимых блоков, но они могут зависеть от других модулей. Приложения могут быть созданы путем объединения нескольких модулей, чтобы предоставить пользователю необходимые функции.
- Экземпляр модуля — одиночная и независимая конфигурация модуля.
- Интерфейсы — способ, при помощи которого модули предоставляют общие функции. Через них модули, которые придерживаются одного и того же интерфейса, могут использоваться взаимозаменяемо. Представьте интерфейс как контракт между двумя модулями, где модули «принимают решение» работать вместе, используя информацию, согласованную в контракте.
- Экземпляры SSP — в то время как интерфейсы определяют предоставляемые функции, экземпляры фактически реализуют их. Каждый экземпляр привязан к определенному интерфейсу при помощи перечисления, структуры данных и API-прототипов из интерфейса. Это позволяет приложению при необходимости заменять экземпляры.
- Драйверы — особый тип модуля, напрямую изменяющий регистры в микроконтроллере Synergy.
Модули могут быть наложены друг на друга, создавая стек SSP. Процесс наложения выполняется сопоставлением того, что один модуль предоставляет, с тем, что требуется другому модулю. Возможность наложения модулей дает много преимуществ, поскольку обеспечивает гибкость, необходимую для уровня приложения. Если бы они были зависимы напрямую от других модулей, переносимость различных пользовательских разработок была бы сложной задачей. Архитектура SSP в том виде, в котором она была разработана, обеспечивает гибкость для замены модулей входов и выходов (например, замена драйвера UART на драйвер SPI) с использованием интерфейсов SSP. Модули, поддерживающие один и тот же интерфейс, могут применяться взаимозаменяемо. Все модули «соглашаются» работать вместе, используя информацию, которая была согласована.
В микроконтроллерах Synergy иногда наблюдается перекрытие функций между различными периферийными устройствами. Например, связь I2C может быть достигнута за счет использования периферийного устройства I2C или периферийного устройства SCI в его простом режиме I2C, причем оба периферийных устройства предоставляют разный набор функций. Интерфейсы построены таким образом, что обеспечивают общие функции, которые ожидало бы большинство пользователей, опустив отдельные из более продвинутых функций, которые, однако, в большинстве случаев все еще доступны через расширения интерфейса.
По меньшей мере три структуры данных включены в каждый интерфейс SSP: структура управления, зависящая от модуля с именем <interface>_ctrl_t*, которая используется как уникальный идентификатор для модуля; структура конфигурации с именем *<interface>_cfg_t* в качестве входных данных для начальной конфигурации модуля во время вызова open(); и структура экземпляра, состоящая из указателя на структуру управления, указателя на структуру конфигурации и указателя на структуру API.
Все интерфейсы включают структуру API, содержащую указатели на функции всех поддерживаемых функций. Структура API — это инструмент, позволяющий заменять модули на другие модули, которые являются экземплярами того же интерфейса.
Как только событие произошло, то через функции обратного вызова модули подают об этом сигнал в пользовательское приложение. Примером такого события может быть байт, полученный по каналу UART (рис. 7). Обратные вызовы также необходимы, чтобы пользовательское приложение могло реагировать на прерывания. Они должны быть как можно короче, поскольку вызываются изнутри процедуры обслуживания прерываний. В противном случае они могут оказать негативное влияние на производительность системы в режиме реального времени.
В то время как интерфейсы определяют предоставляемые функции, экземпляры фактически реализуют их. Каждый экземпляр привязан к определенному интерфейсу и использует перечисления, структуры данных и прототипы API из интерфейса. Это позволяет приложениям, которые используют интерфейс для замены экземпляра, когда это необходимо, сэкономить много времени после изменения кода или применяемых периферийных устройств. На микроконтроллерах Synergy некоторые периферийные устройства, например I2C, будут иметь взаимно однозначное сопоставление (сопоставляется только с интерфейсом I2C), в то время как другие, такие как SCI, будут иметь сопоставление «один-ко-многим» (реализует три интерфейса: I2C, UART, SPI).
Конфигураторы проекта в e2studio графически направляют разработчика программного обеспечения через определенные параметры устройства микроконтроллера Synergy и сообщают об их использовании. Примерами этого являются настройка контактов или предупреждение конфликтов. Конфигураторы также генерируют код запуска или размещают компоненты программного обеспечения SSP в проекте.
Существует несколько конфигураторов, предназначенных для помощи разработчику, и первый, с которым сталкивается большинство пользователей, — это Project Configurator, он ведет через процесс создания нового проекта Synergy с нуля или из шаблона, предоставленного конфигуратором. Он позволяет выбирать параметры для проекта — используемый набор инструментов, устройство или плата, и определяет, должен ли быть создан проект для примера.
Конфигуратор Synergy сначала отображает сводку текущего проекта и дает объяснение различных доступных вкладок и способов их применения. Следующая вкладка — вкладка BSP (пакет поддержки платформы), позволяющая просматривать и редактировать аспекты настройки платы, например выбор устройства или платы. Конфигуратор предоставляет необходимую информацию на абстрактном уровне и обеспечивает правильность и правдоподобие всех настроек.
Отладочная плата Starter Kit SK-S7G2 предоставляет легкий доступ к платформе Synergy, поскольку основана на серии микроконтроллеров Synergy, предлагающей самые большие объемы памяти и самый широкий выбор встроенных периферийных устройств. Компактная конструкция обеспечивает доступ более чем к 80% контактов устройства через разъемы Arduino и Pmod, что позволяет быстро создать прототип приложения.
Встроенный сенсорный дисплей QVGA обеспечивает взаимодействие с платой, особенно если используется вместе с промежуточным программным обеспечением GUIX из пакета программного обеспечения Synergy (SSP) и GUIX Studio — программы для Windows, которую можно загрузить из галереи Synergy и применить для создания графических интерфейсов пользователя (GUI). Подключение к внешней среде доступно через USB, Ethernet, RS‑232/485 и Bluetooth Low Energy (BLE).
Development Kit больше предназначены для полного прототипирования проектов, предоставления доступа ко всем контактам и характеризуются наличием дополнительного оборудования для конкретных приложений, таких как емкостный сенсорный дисплей.
Поскольку большинство контактов на микроконтроллерах Synergy поддерживают различные функции, они могут быть подключены к нескольким разъемам или устройствам на платах. DIP-переключатели на печатной плате обеспечивают легкую, безопасную и безошибочную маршрутизацию различных функций. Каждый DIP-переключатель управляет высокоскоростным буфером, который в зависимости от настройки переключателя либо подключает, либо изолирует контакты микроконтроллера от периферийного устройства или разъема. Кроме того, DIP-переключатели могут считываться программным обеспечением через IIC-порт расширителей ввода/вывода, и, если коммутатор открыт, программное обеспечение может активировать буферы. Светодиоды указывают, когда соответствующее устройство подключено под программным управлением.
Для разработки разных устройств могут использоваться разные макетные платы, при этом на печатной плате будут доступны дополнительные периферийные устройства (в зависимости от набора функций используемого микроконтроллера). Как и для отладочных плат, для всех макетных плат имеется полный комплект документации.
Отладочная плата для разработки Development Kit DK-S3A7 оснащена микроконтроллером S3A7 серии S3, энергоэффективным микроконтроллером в семействе микроконтроллеров Synergy. Плата создана для обеспечения поддержки в разработке конечных продуктов с жесткими требованиями к энергоэффективности. Комплект состоит из трех плат: одна основная плата с микроконтроллером и несколькими разъемами и интерфейсами, одна плата с несколькими периферийными устройствами, такими как датчики света и температуры, а также разъемами Pmod и одна ЖК-панель с 176‑сегментным дисплеем.
В отладочной плате для разработки Development Kit DK-S124 находится микроконтроллер S124 серии S1, малопотребляющий микроконтроллер с интеллектуальным сочетанием аналоговых и цифровых периферийных устройств. Конструкция платы позволяет точно измерять потребление тока микроконтроллера во всех режимах работы, а также выполнять детальную оценку производительности аналоговых периферийных устройств. Комплект состоит из двух плат: одна основная плата с микроконтроллером и одна плата дисплея.
Продолжение следует
xosotin chelseathông tin chuyển nhượngcâu lạc bộ bóng đá arsenalbóng đá atalantabundesligacầu thủ haalandUEFAevertonxosofutebol ao vivofutemaxmulticanaisonbetbóng đá world cupbóng đá inter milantin juventusbenzemala ligaclb leicester cityMUman citymessi lionelsalahnapolineymarpsgronaldoserie atottenhamvalenciaAS ROMALeverkusenac milanmbappenapolinewcastleaston villaliverpoolfa cupreal madridpremier leagueAjaxbao bong da247EPLbarcelonabournemouthaff cupasean footballbên lề sân cỏbáo bóng đá mớibóng đá cúp thế giớitin bóng đá ViệtUEFAbáo bóng đá việt namHuyền thoại bóng đágiải ngoại hạng anhSeagametap chi bong da the gioitin bong da lutrận đấu hôm nayviệt nam bóng đátin nong bong daBóng đá nữthể thao 7m24h bóng đábóng đá hôm naythe thao ngoai hang anhtin nhanh bóng đáphòng thay đồ bóng đábóng đá phủikèo nhà cái onbetbóng đá lu 2thông tin phòng thay đồthe thao vuaapp đánh lô đềdudoanxosoxổ số giải đặc biệthôm nay xổ sốkèo đẹp hôm nayketquaxosokq xskqxsmnsoi cầu ba miềnsoi cau thong kesxkt hôm naythế giới xổ sốxổ số 24hxo.soxoso3mienxo so ba mienxoso dac bietxosodientoanxổ số dự đoánvé số chiều xổxoso ket quaxosokienthietxoso kq hôm nayxoso ktxổ số megaxổ số mới nhất hôm nayxoso truc tiepxoso ViệtSX3MIENxs dự đoánxs mien bac hom nayxs miên namxsmientrungxsmn thu 7con số may mắn hôm nayKQXS 3 miền Bắc Trung Nam Nhanhdự đoán xổ số 3 miềndò vé sốdu doan xo so hom nayket qua xo xoket qua xo so.vntrúng thưởng xo sokq xoso trực tiếpket qua xskqxs 247số miền nams0x0 mienbacxosobamien hôm naysố đẹp hôm naysố đẹp trực tuyếnnuôi số đẹpxo so hom quaxoso ketquaxstruc tiep hom nayxổ số kiến thiết trực tiếpxổ số kq hôm nayso xo kq trực tuyenkết quả xổ số miền bắc trực tiếpxo so miền namxổ số miền nam trực tiếptrực tiếp xổ số hôm nayket wa xsKQ XOSOxoso onlinexo so truc tiep hom nayxsttso mien bac trong ngàyKQXS3Msố so mien bacdu doan xo so onlinedu doan cau loxổ số kenokqxs vnKQXOSOKQXS hôm naytrực tiếp kết quả xổ số ba miềncap lo dep nhat hom naysoi cầu chuẩn hôm nayso ket qua xo soXem kết quả xổ số nhanh nhấtSX3MIENXSMB chủ nhậtKQXSMNkết quả mở giải trực tuyếnGiờ vàng chốt số OnlineĐánh Đề Con Gìdò số miền namdò vé số hôm nayso mo so debach thủ lô đẹp nhất hôm naycầu đề hôm naykết quả xổ số kiến thiết toàn quốccau dep 88xsmb rong bach kimket qua xs 2023dự đoán xổ số hàng ngàyBạch thủ đề miền BắcSoi Cầu MB thần tàisoi cau vip 247soi cầu tốtsoi cầu miễn phísoi cau mb vipxsmb hom nayxs vietlottxsmn hôm naycầu lô đẹpthống kê lô kép xổ số miền Bắcquay thử xsmnxổ số thần tàiQuay thử XSMTxổ số chiều nayxo so mien nam hom nayweb đánh lô đề trực tuyến uy tínKQXS hôm nayxsmb ngày hôm nayXSMT chủ nhậtxổ số Power 6/55KQXS A trúng roycao thủ chốt sốbảng xổ số đặc biệtsoi cầu 247 vipsoi cầu wap 666Soi cầu miễn phí 888 VIPSoi Cau Chuan MBđộc thủ desố miền bắcthần tài cho sốKết quả xổ số thần tàiXem trực tiếp xổ sốXIN SỐ THẦN TÀI THỔ ĐỊACầu lô số đẹplô đẹp vip 24hsoi cầu miễn phí 888xổ số kiến thiết chiều nayXSMN thứ 7 hàng tuầnKết quả Xổ số Hồ Chí Minhnhà cái xổ số Việt NamXổ Số Đại PhátXổ số mới nhất Hôm Nayso xo mb hom nayxxmb88quay thu mbXo so Minh ChinhXS Minh Ngọc trực tiếp hôm nayXSMN 88XSTDxs than taixổ số UY TIN NHẤTxs vietlott 88SOI CẦU SIÊU CHUẨNSoiCauVietlô đẹp hôm nay vipket qua so xo hom naykqxsmb 30 ngàydự đoán xổ số 3 miềnSoi cầu 3 càng chuẩn xácbạch thủ lônuoi lo chuanbắt lô chuẩn theo ngàykq xo-solô 3 càngnuôi lô đề siêu vipcầu Lô Xiên XSMBđề về bao nhiêuSoi cầu x3xổ số kiến thiết ngày hôm nayquay thử xsmttruc tiep kết quả sxmntrực tiếp miền bắckết quả xổ số chấm vnbảng xs đặc biệt năm 2023soi cau xsmbxổ số hà nội hôm naysxmtxsmt hôm nayxs truc tiep mbketqua xo so onlinekqxs onlinexo số hôm nayXS3MTin xs hôm nayxsmn thu2XSMN hom nayxổ số miền bắc trực tiếp hôm naySO XOxsmbsxmn hôm nay188betlink188 xo sosoi cầu vip 88lô tô việtsoi lô việtXS247xs ba miềnchốt lô đẹp nhất hôm naychốt số xsmbCHƠI LÔ TÔsoi cau mn hom naychốt lô chuẩndu doan sxmtdự đoán xổ số onlinerồng bạch kim chốt 3 càng miễn phí hôm naythống kê lô gan miền bắcdàn đề lôCầu Kèo Đặc Biệtchốt cầu may mắnkết quả xổ số miền bắc hômSoi cầu vàng 777thẻ bài onlinedu doan mn 888soi cầu miền nam vipsoi cầu mt vipdàn de hôm nay7 cao thủ chốt sốsoi cau mien phi 7777 cao thủ chốt số nức tiếng3 càng miền bắcrồng bạch kim 777dàn de bất bạion newsddxsmn188betw88w88789bettf88sin88suvipsunwintf88five8812betsv88vn88Top 10 nhà cái uy tínsky88iwinlucky88nhacaisin88oxbetm88vn88w88789betiwinf8betrio66rio66lucky88oxbetvn88188bet789betMay-88five88one88sin88bk88xbetoxbetMU88188BETSV88RIO66ONBET88188betM88M88SV88Jun-68Jun-88one88iwinv9betw388OXBETw388w388onbetonbetonbetonbet88onbet88onbet88onbet88onbetonbetonbetonbetqh88mu88Nhà cái uy tínpog79vp777vp777vipbetvipbetuk88uk88typhu88typhu88tk88tk88sm66sm66me88me888live8live8livesm66me88win798livesm66me88win79pog79pog79vp777vp777uk88uk88tk88tk88luck8luck8kingbet86kingbet86k188k188hr99hr99123b8xbetvnvipbetsv66zbettaisunwin-vntyphu88vn138vwinvwinvi68ee881xbetrio66zbetvn138i9betvipfi88clubcf68onbet88ee88typhu88onbetonbetkhuyenmai12bet-moblie12betmoblietaimienphi247vi68clupcf68clupvipbeti9betqh88onb123onbefsoi cầunổ hũbắn cáđá gàđá gàgame bàicasinosoi cầuxóc đĩagame bàigiải mã giấc mơbầu cuaslot gamecasinonổ hủdàn đềBắn cácasinodàn đềnổ hũtài xỉuslot gamecasinobắn cáđá gàgame bàithể thaogame bàisoi cầukqsssoi cầucờ tướngbắn cágame bàixóc đĩaAG百家乐AG百家乐AG真人AG真人爱游戏华体会华体会im体育kok体育开云体育开云体育开云体育乐鱼体育乐鱼体育欧宝体育ob体育亚博体育亚博体育亚博体育亚博体育亚博体育亚博体育开云体育开云体育棋牌棋牌沙巴体育买球平台新葡京娱乐开云体育mu88qh88