платформа разработки прикладного ПО встраиваемых (embedded) систем
TOIC - инструмент для
-1-
Гибких устройств
Предоставляет вашим пользователям возможность изменять (в заданных вами пределах) логику работы вашего устройства без риска его сломать.
-2-
Обучающих проектов
Предоставить юным программистам "песочницу", и не переживать, что они своими действиями испортят контроллер или создать необходимый уровень абстракции.
-3-
Команд разработчиков
Сильно ускоряет прототипирование и разработку новых проектов, что позволяет небольшим командам конкурировать с крупными производителями.
Платформа для разработчиков устройств на базе микроконтроллеров
Основные преимущества платформы проявляются при разработке IoT устройств, но TOIC подходит для любых контроллеров, где актуальны следующие задачи:
1
Маленький размер
TOIC изначально рассчитан на очень маленькие МК, поэтому размер VM менее 6КБ.
2
Быстрая интеграция
TOIC распространяется в виде библиотеки, которую очень легко встроить в свой проект.
3
Лёгкое изменение кода устройства
TOIC предоставляет упрощённый интерфейс программирования, который подходит для быстрой модификации поведения устройства. Конечный пользователь или интегратор может "подогнать" логику под конкретную задачу.
4
Безопасное "приложение" внутри контроллера
Если прошивка контроллера - это "операционная система", то TOIC - его "приложение". Разработчик может создать "песочницу", которая позволит пользователем программировать устройство без риска его "положить".
5
Независимость кода от архитектуры устройства
Платформа предоставляет универсальный интерфейс общения с аппаратным обеспечением устройства, поэтому можно создавать универсальные программы под разные архитектуры.
6
Независимость от источника программы
Платформе неважно, где хранится код программы: она может загружаться из статического массива, flash, eeprom или даже подгружаться "на лету" по какому-либо интерфейсу, например WiFi.
7
На сообщениях
Платформа разработана специально для работы IoT устройств, поэтому язык работает с "сообщениями". Вся работа с периферией, другими устройствами и своим ядром унифицирована приёмом и передачей сообщений.
8
Исходные коды прямо в устройстве
Сохранение исходного кода вместе с прошивкой для лёгкого изменения/исправления. Вам не нужно искать текущую версию проекта устройства устройства, которое было запрограммировано много лет назад.
9
Встроенный отладчик и симулятор
Среда ToicIDE имеет инструменты отладки (компилятор/дизассемблер/отладчик), встроенный симулятор и возможность реализовывать собственные устройства-симуляторы для ещё более быстрой отладки.
TOIC - это
-1-
Язык программирования
Лаконичный и лёгкий, может работать в "песочнице" МК.
Унифицированный подход к работе со всей периферией.
-2-
Компилятор и IDE
Кроссплатформенная бесплатная среда со встроенным компилятором, отладчиком и эмулятором.
-3-
Среда исполнения
Небольшая библиотека, которую легко встроить в ваш проект.
Является "отдельной задачей" и не влияет на остальной код.
Как работает TOIC
Платформа TOIC аппаратно-независима и не опирается на работу с конкретным железом.
Системный программист создаёт доступ к необходимой периферии через слой HAL
Пользовательская программа TOIC (App)
Пользователь/программист пишет программу в среде ToicIDE на языке программирования TOIC, отлаживает на симуляторе и загружает в устройство.
Среда исполнения TOIC VM (Runtime)
Виртуальная машина TOIC исполняет пользовательскую программу, обеспечивая взаимодействие с HAL.
Прошивка устройства
Системный программист на своём обычном языке программирования разрабатывает прошивку МК. Для включения в своей проект платформы TOIC, ему необходимо подключить библиотеку libtoic.a и реализовать работу с доступной платформе TOIC периферией.
Действительно маленький
Си-подобный Лаконичный
Требования runtime: 6 КБ ROM, 1 КБ RAM
Очень гибкий
Распространяется в виде библиотеки, легко встраивается в существующее ПО.
Разработан специально для IoT
Основан на обмене сообщениями. Обмен информацией с периферией и другими устройствами одинаково прост.
TOIC в "продакшене"
Чем применение платформы TOIC помогает оптимизировать работу в реальных проектах
Разделение кода
TOIC реализует логику работы и не имеет доступа к системному коду, поэтому легко разделить работу системных и прикладных программистов, работающих с одним и тем же проектом.
Скорость обучения
Язык лаконичен, а платформа позволяет защитить пользователя от "выстрела в ногу". Это сильно упрощает процесс интеграции и пуско-наладки на местах, а также снижает требования к квалификации интеграторов.
Для маленьких МК
Другие подобные платформы, как правило, требуют гораздо более мощных и дорогих контроллеров. TOIC позволяет работать с очень дешёвыми решениями.
Модификация пользователем
Инструмент можно использовать, как расширенный конфигуратор для пользователей, которым нужно изменять алгоритм работы в широких пределах.