Sparrow196
Member
ВНИМАНИЕ!!! ПРОЕКТ ПЕРЕНЕСЁН НА ПЛАТФОРМУ ВК.
Подробности читайте здесь.Предисловие (крик души, ничего личного!)
К большому сожалению разработчик микроконтроллера MIK32 (он же Амур) не радует наличием современных IDE, предназначенных для разработки ПО. В настоящее время пользователям доступна возможность использования PlatformIO (на базе VS Code) и MikronIDE (Eclipse). Если последняя IDE и получает очень редкие обновления, то в отношении первой складывается ощущение о полной заброшенности поддержки. Если выразится точнее, то MikronIDE построен на базе Eclipse IDE for C/C++ Developers (даже не сборка для Embedded) версии 4.24.0 (выпуск июнь 2022). При этом сборка абсолютно не масштабируема, любая установка пакетов приводит к сбросу всех настроек. Библиотеки исходных кодов (LL и HAL), по непонятным мне причинам, дублируются в каждом проекте, и разбросаны по разным уровням папок проекта. Примеры программ и генератор периферии разработаны для PlatformIO, в состав MikronIDE включены всего два шаблона (причем, один из них похож на полигон мыслей) и пример загрузчика. Обновление среды штатными средствами невозможна. Но не смотря на все недостатки, она позволяет быстро начать работу с микроконтроллером, и что не мало важно, позволяет мониторить значения в регистрах при отладке кода.В тоже время, новым пользователям, для освоения перспективных горизонтов отечественной электроники (вывод сделан на основе личного опыта) необходима полноценная, современная, масштабируемая среда разработки с "джентльменским" набором примеров кода для решения различных задач использования микроконтроллера (а возможно и с обвязкой LL и HAL библиотек высокоуровневым API типа Wiring для быстрого прототипирования устройств и обучения).
По существу
Всё описанное выше натолкнуло меня на мысль, а не собрать ли IDE и пакет библиотек, которые позволили бы решить, если не все проблемы, то хотя бы большую часть из них. Изучение используемых различными разработчиками микроконтроллеров IDE привело к выводам, что большинство из них используют Eclipse Embedded сборку, на втором месте оказались плагины IDE VS Code. Если говорить о MIK32, то использование VS Code, как минимум требует написания кучи скриптов для CMake, что пока не видится мне осуществимым в краткосрочной перспективе (хотя Syntacore активно занимается этим вопросом, но основная их направленность на поддержку эмулятора qmenu). В итоге остался первый вариант - использовать Eclipse. В результате экспериментов и пары бессонных ночей удалось собрать IDE для MIK32 на базе Syntacore Development Toolkit for RISC-V (SC-DT, использовал версию 2023.11-win). Данная IDE разработывается Syntacore с учетом особенностей SCRx ядер (для справки, MIK32 построен на ядре SCR1).В сухом остатке...
В текущей, выставляемой на суд общественности, версии можно выделить следующие моменты:
- появилась возможность использовать компилятор LLVM/clang;
- по умолчанию используется кроссплатформенные компиляторы GCC (в т.ч. Assembler) и линковщик объектного кода для RISC-V архитектуры (от Syntacore для SCRx);
- настроена поддержка отладки кода с помощью GNU GDB в связке с OpenOCD и программаторами JTAG на основе чипов FT2232Hx;
- есть возможность настройки отладки с использованием нативных драйверов SEGGER для JLink (ядро SCR1 поддерживается J-link v11 и выше);
- добавлен и настроен скрипт загрузки бинарного кода посредством OpenOCD + JTAG - mik32-uploader;
- установлен плагин Embedded Systems Peripherals Register View, добавлена карта регистров MIK32 (из MikronIDE);
- переработаны шаблоны для создания новых проектов:
- исключено дублирование LL и HAL библиотек путем их выноса в отдельную папку (MIK32_SRC). Что позволяет упростить процесс обновления библиотек и повторно использовать их в новых проектах (линкуются к проекту в настройках и рассматриваются Eclipse, как source-папка проекта не нарушая работы построителя индексов);
- добавлен и переработан шаблон template (для создания программ использующих LL и HAL библиотеки);
- добавлен и откорректирован шаблон template_freertos (для создания программ на основе ОСРВ);
- библиотеки описания регистров ядра и периферии перенесены в папку LL (Low level);
- библиотеки уровня аппаратной абстракции сохранились в папке HAL;
- библиотеки (файлы) для работы с UART и xprint перемещены в папку SF (Service function);
- в шаблоны включены файлы readme.md с описанием их назначения и инструкцией для создания новых проектов на их основе.
Вместо заключения
Просьба к сообществу, по возможности провести тестирование данной сборки, обратная связь приветствуется!
В данной теме прошу оставлять ваши замечания и предложения по сборке IDE.
Так же хотелось бы узнать о целесообразности дальнейшей поддержки и развития данной сборки IDE.
Если у вас появилось желание помочь в этом нелегком деле, тоже пишите.
Последнее редактирование: