Инструменты проектирования RICS-V
Архитектура RISC-V остаётся относительно новым элементом в области проектирования встроенных систем, однако уже активно используется для замены существующих специализированных архитектур и создания новых систем. Открытая структура RISC-V позволяет разработчикам адаптировать её функциональные возможности под конкретные потребности их проектов, одновременно пользуясь преимуществами стандартизированной экосистемы. Анализ инструментов проектирования и разработческих сред для RISC-V помогает отслеживать его развитие в конкурентной сфере встроенных вычислений.
Начало проекта
Несмотря на новизну RISC-V, его распространение не замедляется. Напротив, растущая популярность открытого исходного кода значительно ускоряет его внедрение. Уже наблюдается развитие в таких областях, как поддержка RTOS, библиотеки и промежуточное ПО для сетевых технологий, графики, искусственного интеллекта (AI), Интернета вещей (IoT), безопасности и цифровой обработки сигналов. Многие из этих компонентов доступны бесплатно для разработчиков и могут быть собраны в одном интерфейсе, что упрощает процесс разработки. Для создания приложений разработчики используют различные программные средства и механизмы. Среда разработки RISC-V предоставляет обширные инструменты для разработки микросхем и более сложных приложений с операционными системами (например, Linux).
Использование GNU
GNU — это крупный проект по совместной разработке свободного программного обеспечения, целью которого является обеспечение пользователей всем необходимым ПО для работы на компьютере. Это включает не только операционные системы (например, Linux), но и все необходимые компоненты для разработки и запуска приложений, такие как среды разработки, редакторы, компиляторы, библиотеки и приложения. Коллекция компиляторов GNU (GCC) — это система компиляторов, поддерживающая несколько языков программирования и разработанная проектом GNU и распространяемая Фондом свободного программного обеспечения. GCC является официальным компилятором для системы GNU и большинства дистрибутивов Linux, поэтому его используют в различных современных IDE.
Интегрированные среды разработки
Интегрированная среда разработки (IDE) — это универсальный инструмент для разработки программного обеспечения. IDE упрощает процесс разработки, предоставляя все необходимые компоненты и функции в одном интерфейсе, а не требуя от разработчика знаний множества отдельных инструментов. Eclipse IDE — популярная среда для создания встроенных систем, которая предлагает удобное рабочее пространство и основные функции разработки. Eclipse SDK бесплатна и с открытым исходным кодом, что делает её широко используемой для различных языков программирования и микроконтроллеров, таких как ARM и RISC-V. Проект Eclipse CDT (C/C++ Development Tooling) предоставляет полную IDE, основанную на платформе Eclipse, включая стандартные плагины и инструменты для многоплатформенной разработки на ARM и RISC-V.
Разработчик обычно создает проект с помощью менеджера проектов, который помогает определить ключевые характеристики, такие как целевой MCU, плата, библиотеки и промежуточное ПО. Затем создаются начальные папки, исходные файлы, настройки конфигурации и другие организационные элементы. Последний этап перед написанием кода — настройка и инициализация проекта.
Редакторы
После инициализации проекта разработчик может использовать редактор для написания необходимого кода. Современные редакторы упрощают этот процесс, предлагая автозавершение переменных, перечислений, вызовов функций API и добавление драйверов. Редакторы, которые выявляют потенциальные ошибки компилятора, помогают устранить простые ошибки в коде. Встроенная справка по API и функциональности может быть вызвана непосредственно в редакторе, что экономит время на поиске информации в дополнительных документах.
Библиотеки и промежуточное ПО
После добавления кода библиотеки и промежуточное ПО позволяют разработчику использовать уже готовые высокоуровневые API, что ускоряет разработку. Например, библиотеки и промежуточное ПО для графических интерфейсов, цифровой обработки сигналов, сетевых технологий и безопасности значительно сокращают время разработки.
Glibc — это библиотека C от GNU, которая предоставляет базовые библиотеки для операционных систем GNU и Linux. Она включает множество функций для работы с файловыми системами, криптографией, математикой и многими другими. Newlib, в свою очередь, представляет собой более легковесную стандартную библиотеку C, ориентированную на встраиваемые системы, и включает в себя функции для работы с файлами, памятью и арифметикой.
Операционная система реального времени (RTOS)
Поддержка RTOS играет важную роль для разработчиков, которым необходимо управлять потоками приложения с использованием таких механизмов, как семафоры, очереди, сообщения и мьютексы. RTOS помогает быстро и безопасно разрабатывать сложные приложения с требованиями реального времени, а также серийную связь, пользовательский интерфейс, графику и безопасность — важнейшие элементы большинства современных IoT-приложений.
Компиляторы и отладчики
Когда код готов, его необходимо скомпилировать. Компилятор является основным элементом IDE, преобразуя код, написанный разработчиком, в машинные инструкции для RISC-V. Современные компиляторы имеют настройки для оптимизации кода по производительности и размеру. Поскольку архитектура RISC-V имеет упрощённый набор инструкций, оптимизация кода не требует сложных алгоритмов, что упрощает этот процесс.
Время, затраченное на тестирование и отладку, увеличивается по мере развития проекта. Современные отладчики предоставляют подробный анализ выполнения программы, помогают отслеживать переменные и стэки. Некоторые отладчики могут измерять потребление энергии и проводить временной анализ, что полезно при тестировании требований к низкому энергопотреблению в приложениях IoT.
Поиск подходящих инструментов
Кроме основных инструментов, описанных выше, существует множество других сторонних решений, таких как IDE, RTOS, компиляторы, отладчики и библиотеки, каждый из которых имеет свои особенности. Традиционная цепочка инструментов от производителя устройства включает компиляторы, редакторы, отладчики, библиотеки и драйверы. При выборе инструментов важно учитывать, насколько полно и удобно поддерживаются драйверы периферийных устройств, поскольку стандартизация периферийных компонентов для RISC-V ещё не достигнута.
Заключение
