GNU MCU ECLIPSE С ПЛАГИНОМ CLOUDBEAR - ИНСТРУКЦИЯ ВЕРСИЯ 1.0.0 CLOUDBEAR - АВТОР
←
→
Транскрипция содержимого страницы
Если ваш браузер не отображает страницу правильно, пожалуйста, читайте содержимое страницы ниже
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR Инструкция Версия 1.0.0 Автор: Евгений Линский Соавторы: Виталий Гайдук Дата: 15 сентября 2021 г.
Содержание Введение 3 1 Установка и настройка 4 1.1 ОС Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Установка пакетов в ОС Windows . . . . . . . . . . . . . . . . . . . . . 4 1.1.2 Настройка терминала . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.3 Настройка переменных окружения . . . . . . . . . . . . . . . . . . . . 4 1.2 ОС Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.1 Установка пакетов в CentOS . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Установка пакетов в Ubuntu . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.3 Настройка терминала . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2.4 Настройка переменных окружения . . . . . . . . . . . . . . . . . . . . 5 1.3 Установка плагина CloudBEAR . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.3.1 Установка плагина через пользовательский интерфейс . . . . . . . . . 5 1.3.2 Установка плагина через командную строку в ОС Windows . . . . . . 7 1.3.3 Установка плагина через командную строку в ОС Linux . . . . . . . . 7 2 Использование Eclipse 8 2.1 Начало работы с Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Создание и импорт проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.3 Редактирование и компиляция . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Настройка проекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.5 Отладка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.6 Удаленная отладка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Введение GNU MCU Eclipse (далее Eclipse) — это интегрированная среда разработки (ИСР), включающая дополнительный набор плагинов для разработки ПО для встраиваемых устройств, использующих микропроцессоры с системой команд RISC-V. Плагин CloudBEAR для Eclipse содержит исходные файлы окружений (исходные тексты на C, скрипты для компоновщика и т.д.), которые позволяют разрабатывать про- екты под разные процессорные комплексы CloudBEAR. Для сборки проектов, созданных с помощью плагина CloudBEAR, используется набор инструментов разработчика RISC-V GNU toolchain (компилятор, компоновщик, отладчик и т.д.), а для их отладки в процес- сорном комплексе CloudBEAR — утилита OpenOCD с поддержкой RISC-V. 15 сентября 2021 г. 3
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 1 Установка и настройка Дистрибутив Eclipse можно загрузить на официальном сайте Eclipse Foundation. Те- кущая версия плагина была протестирована с версией 2019-09. 1.1 ОС Windows Eclipse под ОС Windows представляет из себя zip архив, который не требует уста- новки и может быть распакован с помощью штатных средств Проводника Windows. В дальнейшем предполагается, что Eclipse распакован в директорию %USERPROFILE%\tools. 1.1.1 Установка пакетов в ОС Windows Для работы Eclipse необходимо установить дистрибутив Java SE Runtime Environment. После установки необходимо добавить в переменную среды PATH путь к директории с ис- полняемым файлом java.exe (например, C:\Program Files\Java\jre1.8.0_202\bin). Для сборки примеров ИСР Eclipse использует утилиты, которых нет по умолчанию в Windows. Архив с утилитами необходимо загрузить по ссылке, распаковать и добавить в переменную среды PATH путь к директории с исполняемыми файлами (например, %USERPROFILE%\GNU MCU Eclipse\Build Tools\2.12-20190422-1053\bin). RISC-V GNU toolchain и OpenOCD, которые поставляются в виде zip архивов, необ- ходимо распаковать в %USERPROFILE%\tools. 1.1.2 Настройка терминала Никакой специальной настройки терминала не требуется. 1.1.3 Настройка переменных окружения Необходимо настроить следующие переменные среды: TOOL_DIR=%USERPROFILE%\tools PATH=%PATH%;%TOOL_DIR%\bin;%TOOL_DIR%\eclipse TOOLCHAIN_PATH=%TOOL_DIR% 1.2 ОС Linux Eclipse под ОС Linux представляет из себя дистрибутив (tar архив), который не тре- бует установки и может быть распакован с помощью штатных средств Linux. Для распаковки Eclipse в Linux можно использовать команду: tar -xf eclipse-cpp-*-linux-gtk-x86_64.tar.gz В дальнейшем предполагается, что Eclipse распакован в директорию /opt/eclipse. 1.2.1 Установка пакетов в CentOS Перед использованием Eclipse необходимо установить RISC-V GNU toolchain, OpenOCD с поддержкой RISC-V и OpenJDK 8. Для этого требуется выполнить следующие команды. Для Centos: 15 сентября 2021 г. 4
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 sudo dnf install riscv-gnu-toolchain-elf-*.x86_64.rpm sudo dnf install riscv-openocd-*.x86_64.rpm sudo dnf -y install java-1.8.0-openjdk 1.2.2 Установка пакетов в Ubuntu Перед использованием необходимо установить RISC-V GNU toolchain, OpenOCD с поддержкой RISC-V и OpenJDK 8. Для этого требуется выполнить следующие команды. Для Ubuntu: sudo apt install riscv-gnu-toolchain-elf_*_amd64.deb sudo apt install riscv-openocd_*_amd64.deb sudo apt install install openjdk-8-jdk 1.2.3 Настройка терминала Для того, чтобы Eclipse мог подключиться к терминалу и перехватить стандартный вывод программы, печатаемый через UART, необходимо убедиться, что у группы dialout есть права на чтение и запись в устройства /dev/ttyUSBx, т.е. доступ к этим устройствам не требует специальных привилегий (sudo). В случае отсутствия прав на чтение/запись одно из возможных решений — скон- фигурировать права на этапе включения устройства. Для этого необходимо выполнить следующую последовательность команд: cp /lib/udev/rules.d/50-udev-default.rules /etc/udev/rules.d/50-udev-default.rules echo 'KERNEL=="ttyUSB*", MODE="0666"' >> /etc/udev/rules.d/50-udev-default.rules Для корректной работы терминала, через который процессорный комплекс выпол- няет вывод (например, /dev/ttyUSB1), необходимо выполнить его настройку следующей командой: stty -F /dev/ttyUSB1 115200 icanon -inlcr -igncr -icrnl -ocrnl -onlcr -onocr -onlret Параметры для терминала, задаваемые с помощью stty, позволяют редактировать вводи- мые строки, а также отключают модификацию терминалом символов CR и LF во вводимых и выводимых строках. 1.2.4 Настройка переменных окружения Затем необходимо инициализировать переменные окружения с помощью следующих команд: export PATH="$PATH:/opt/cloudbear/bin:/opt/eclipse" export TOOLCHAIN_PATH="/opt/cloudbear" 1.3 Установка плагина CloudBEAR 1.3.1 Установка плагина через пользовательский интерфейс Установка плагина возможна двумя способами: через пользовательский интерфейс Eclipse (одинаково на Windows и Linux) и через командную строку. Для установки через интерфейс нужно перейти в пункт меню Help - Install New Software. В появившемся окне нажать кнопку Add и далее вписать адрес репозито- рия в поле Location (рис. 1) - https://eclipse.cloudbear.ru/mcu. Затем нужно вы- брать сам плагин для установки, отметив пункт GNU ARM & RISC-V C/C++ Cross Development Tools или нажав кнопку Select All (рис. 2). После этого нажать Next. 15 сентября 2021 г. 5
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 В следующем окне можно увидеть список всех пакетов, которые будут установлены пла- гином (рис. 3). В следующем окне установки необходимо подтвердить пользовательское соглашение, выбрав пункт I accept the terms of the license agreement и завершив кноп- кой Finish. Затем требуется подтвердить установку неподписанного ПО, нажав кнопку Install anyway, и перезапустить Eclipse по требованию (кнопка Restart Now). Рис. 1: Добавление репозитория с плагином CloudBEAR Рис. 2: Установка плагина CloudBEAR 15 сентября 2021 г. 6
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 3: Список пакетов 1.3.2 Установка плагина через командную строку в ОС Windows При выборе этого способа предполагается, что произведена настройка переменных окружения. Вначале с сайта CloudBEAR по следующей ссылке необходимо загрузить тек- стовый файл со списком пакетов для плагина CloudBEAR. Затем в командной строке необходимо выполнить следующие команды: user> set /p MCU_LIST= eclipsec -application org.eclipse.equinox.p2.director -consoleLog -noSplash -repository https://eclipse.cloudbear.ru/mcu -installIU %MCU_LIST% 1.3.3 Установка плагина через командную строку в ОС Linux При выборе этого способа предполагается, что произведена настройка переменных окружения. Для установки через командную строку нужно выполнить следующие коман- ды: curl -sL https://eclipse.cloudbear.ru/mcu/mcu-bundles.txt | \ xargs eclipse -application org.eclipse.equinox.p2.director -consoleLog -noSplash \ -repository https://eclipse.cloudbear.ru/mcu -installIU 15 сентября 2021 г. 7
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 2 Использование Eclipse Этот раздел включает в себя описание наиболее частых действий в Eclipse. 2.1 Начало работы с Eclipse Запустить Eclipse можно командой: eclipse Далее необходимо выбрать рабочую директорию (workspace), куда будут сохранены все создаваемые проекты. Изменить рабочую директорию в дальнейшем можно через File - Switch Workspace. Eclipse будет помнить рабочую директорию при следующем запуске. В Eclipse для режимов редактирования и отладки используются различные наборы стандартных окон (perspectives): набор для редактирования (С/С++ perspective) и на- бор для отладки (Debug perspective). Переключиться между наборами можно с помощью пункта меню Window - Perspective - Open Perspective. Также возможна настройка собственного набора окон Window - Perspective - Customize Perspective. 2.2 Создание и импорт проекта Для создания нового проекта нужно нажать File - New - С/C++ Project. Далее выбрать С Managed Build/С++ Managed Build. После этого откроется окно (рис. 4), где необходимо задать имя проекта, выбрать его тип Executable - CloudBEAR RISC-V C/C++ Project и тип набора инструмен- тов разработчика RISC-V Cross GCC (кросс-компилятор для RISC-V), который будет использоваться для сборки и отладки проекта (конкретный компилятор можно будет вы- брать далее). 15 сентября 2021 г. 8
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 4: Создание проекта Далее необходимо указать (см. рис. 5) для какого процессорного комплекса (Platform) предназначен проект. Этот выбор определяет тип окружения, файлы которого будут до- бавлены в проект. – Окружение CloudBEAR BM-310S RV32IMC предназначено для разработки 32-х битных программ для процессорного комплекса BM-310S (система команд RV32IMC; поддержка machine и user режимов привилегированности; отсутствие поддержки вир- туальной памяти). – Окружение CloudBEAR BR-351S RV32IMAFC предназначено для разработки 32-х битных программ для процессорного комплекса BR-351S (система команд RV32IMAFC; поддержка machine и user режимов привилегированности; отсутствие поддержки вир- туальной памяти). – Окружение CloudBEAR BI-671D RV64IMAFDC позволяет разрабатывать 64-х бит- ные программы для процессорного комплекса BI-671D (система команд RV64IMAFDC; поддержка двух ядер; поддержка machine, supervisor и user режимов привилегирован- ности). Все окружения поддерживают выделение динамической памяти (malloc) и ввод- вывод по протоколу UART (scanf, printf). Опция Content позволяет указать, требуется ли помещать в проект заранее заготовленный main.c (пример программы, выводящей «Hello world») или просто создать пустой проект (Empty). Остальные опции задают до- 15 сентября 2021 г. 9
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 полнительные ключи компиляции. Далее требуется задать варианты сборки: Debug (опции -g3, -O0) и Release (опции -O2). После этого необходимо указать имя конкретного набора инструментов разработчи- ка RISC-V GCC/Newlib (riscv64-unknown-elf-gcc) (кросс-компилятор под RISC-V с библиотекой Newlib), а также путь к нему, если он не совпадает со стандартным (см. рис. 6). Для завершения создания проекта нужно нажать кнопку Finish. Рис. 5: Конфигурирование создаваемого проекта 15 сентября 2021 г. 10
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 6: Выбор набора инструментов разработчика Помимо создания нового проекта, Eclipse предоставляет возможность импорта уже существующих проектов. Для импорта проекта нужно выбрать File - Import - General - Existing Projects into Workspace. В появившемся окне необходимо выбрать дирек- торию с готовыми проектами (например, директорию examples). 2.3 Редактирование и компиляция Стандартный набор окон для редактирования и компиляции проектов на C/C++ показан на рис. 7. 15 сентября 2021 г. 11
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 7: Интерфейс Eclipse Можно выделить следующие наиболее часто используемые элементы интерфейса: 1. Панель инструментов (кнопки для сборки и отладки проекта); 2. Проводник проекта (добавление/удаление файлов); 3. Редактор кода; 4. Outline: навигация по коду; 5. Problems: вывод ошибок, предупреждений и уведомлений; Console: консоль для вы- вода сообщений от компилятора и отладчика; Terminal: окно вывода из терминала (используется для вывода сообщений по протоколу UART от запускаемых программ). 15 сентября 2021 г. 12
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 8: Проводник проекта Проводник проекта (см. рис. 8) позволяет управлять проектами в рабочей дирек- тории. По нажатию правой кнопки мыши открывается контекстное меню проекта, через которое можно добавить или удалить файлы, а также отредактировать (см. рис. 9) на- стройки проекта (ключи компилятора и компоновщика; используемый набор инструмен- тов; переменные окружения; аргументы командной строки и т.п.). Рис. 9: Свойства проекта 15 сентября 2021 г. 13
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Редактор используется для написания программ и навигации по коду. Редактор под- держивает показ контекстной информации и автодополнение. Окно Outline предназначено для быстрой навигации по коду, в нем отображают- ся основные синтаксические единицы программы (например, имена функций). Двойное нажатие на номер строки или комбинация Shift+Ctrl+B поставит или уберёт точку останова (breakpoint). Сборку проекта можно выполнить, нажав на кнопку на панели инструментов. Сообщения от компилятора и отладчика выводятся в окно Console. 2.4 Настройка проекта Настройку параметров проекта можно произвести, выбрав пункт Properties в кон- текстном меню Проводника проекта. Рассмотрим два типовых примера изменения настро- ек, заданных по умолчанию: изменение скриптов компоновщика и изменение подсистемы команд (ISA). Настроить скрипты компоновщика можно, выбрав следующие подпункты в диало- говом окне: Properties - C/C++ Build - Settings - Tool Settings - GNU RISC-V Cross C++ Linker - General (см. рис. 10). С помощью кнопок над списком скриптов можно редактировать содержимое этого списка: добавить, удалить, изменить, переместить выше или ниже по порядку . Этот список используется, если проект име- ет несколько скриптов, которые описывают соответствие между секциями исполняемого файла и регионами памяти (flash, flash-tcm, tcm). Настроить подсистему команд, которую будет использовать компилятор, можно, выбрав подпункт Properties - C/C++ Build - Settings - Tool Settings - Target Processor, и с помощью соответсвующих полей задать нужные расширения (см. рис. 11). 15 сентября 2021 г. 14
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 10: Изменение списка скриптов компоновщика Рис. 11: Редактирование ISA проекта 15 сентября 2021 г. 15
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 2.5 Отладка Перед запуском программы необходимо настроить терминал, который будет отобра- жать вывод программы, запущенной в процессорном комплексе CloudBEAR, через UART (см. рис. 12). Для этого в Eclipse существует Terminal плагин. Открыть его можно, нажав на кнопку на панели инструментов или воспользовавшись комбинацией Ctrl+Shift+Alt+T. Рис. 12: Пример вывода в Terminal По умолчанию в плагине для Serial Terminal выставлена скорость передачи дан- ных 115200. Если текст в Terminal выводится неправильно — убедитесь, что выставлено корректное значение скорости. Рис. 13: Окно настроек Terminal Обратите внимание, что в ОС Windows имя порта, которое используется терминалом, имеет формат COMX, где X — число (например, COM3). Отладка осуществляется через связку GDB – OpenOCD. Запуск программы вы- полняется нажатием на кнопку на панели инструментов. По умолчанию запускает- ся конфигурация отладки, запускавшаяся до этого. Если до этого запускалось несколько конфигураций, то необходимо указать нужную через выпадающее меню запуска отладки (рис. 14). Если до этого отладка не запускалась, то нужно развернуть выпадающее меню отладки и выбрать Debug Configurations (рис. 14), далее развернуть GDB OpenOCD Debugging, выбрать необходимую конфигурацию и нажать Debug (рис. 15). 15 сентября 2021 г. 16
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 14: Меню выбора конфигурации отладки Рис. 15: Старт отладки с OpenOCD После этого запустится сборка проекта. Если сборка прошла успешно, то Eclipse пере- ключится в режим отладки (см. рис. 16) и сменит набор стандартных окон. Окно Variables будет содержать текущие переменные, окно Breakpoints — список установленных точек останова, окно Registers — значения аппаратных регистров, окно Memory — область па- мяти, начиная с указанного адреса (см. рис. 17). Memory Monitor при необходимости нужно добавить самостоятельно (см. рис. 18). 15 сентября 2021 г. 17
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 16: Вид интерфейса в режиме отладки Рис. 17: Окно Memory Рис. 18: Кнопка добавления Memory Monitor Для переключения между режимами отладки и редактирования можно воспользо- ваться кнопкой , расположенной в правом верхнем углу. 15 сентября 2021 г. 18
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Отметим, что в окружениях CloudBEAR после выполнения функции main програм- ма переходит к исполнению вечного цикла. Для завершения отладки необходимо её ста- новить кнопкой на панели инструментов или комбинацией Ctrl+F2. 2.6 Удаленная отладка В этом подразделе будет описано использование Eclipse в сценарии удаленной от- ладки, когда RISC-V GNU toolchain и Eclipse установлены на один компьютер (далее host-eclipse), а OpenOCD и тестовый стенд с процессорным комплексом CloudBEAR — на другой компьютер (далее host-openocd). Предполагается, что на обоих компьютерах выполнена начальная настройка как опи- сано в разделе 1. В частности: 1. на компьютере host-eclipse установлены RISC-V GNU toolchain и Eclipse; 2. на компьютере host-openocd установлена утилита OpenOCD и настроен терминал; 3. на обоих компьютерах выполнена настройка переменных окружения. На компьютере host-openocd требуется выполнить следующие дополнительные дей- ствия: 1. открыть для входящих соединений порт 3333; 2. загрузить конфигурационный файл OpenOCD (например, для отладчика jlink файл bear-fpga-jlink-rtos.cfg можно найти в директории с примерами для Eclipse); 3. добавить в этот файл первой строкой команду bindto 0.0.0.0, которая разрешает OpenOCD принимать соединения с удаленных компьютеров; 4. запустить OpenOCD командой: openocd -f bear-fpga-jlink-rtos.cfg То, что настройка host-openocd прошла успешно, можно проверить по следующему выводу в консоль: Open On-Chip Debugger 0.10.0+dev-g90e6e4d (2019-02-26-01:08) Licensed under GNU GPL v2 For bug reports, read http://openocd.org/doc/doxygen/bugs.html adapter speed: 12000 kHz Info : J-Link V10 compiled Mar 2 2018 17:07:17 Info : Hardware version: 10.10 Info : VTarget = 3.322 V Info : clock speed 12000 kHz Info : JTAG tap: riscv.cpu tap/device found: 0x000006df (mfg: 0x36f (JSC ICC Milandr), part: 0x0000, ver: 0x0) Info : datacount=4 progbufsize=16 Info : Disabling abstract command reads from CSRs. Info : Exposing additional CSR 2288 Info : Exposing additional CSR 2288 Info : Disabling abstract command writes to CSRs. Info : Examined RISC-V core; found 2 harts Info : hart 0: XLEN=64, misa=0x800000000014112d Info : hart 1: XLEN=64, misa=0x800000000014112d Info : Listening on port 3333 for gdb connections Info : JTAG tap: riscv.cpu tap/device found: 0x000006df (mfg: 0x36f (JSC ICC Milandr), part: 0x0000, ver: 0x0) 15 сентября 2021 г. 19
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Ready for Rem ote Connections Info : Listening on port 6666 for tcl connections Info : Listening on port 4444 for telnet connections Info : accepting 'gdb' connection on tcp/3333 Info : JTAG tap: riscv.cpu tap/device found: 0x000006df (mfg: 0x36f (JSC ICC Milandr), part: 0x0000, ver: 0x0) На компьютере host-eclipse требуется выполнить следующие действия: 1. запустить Eclipse и открыть в нем проект (см. подраздел 2.2); 2. в настройке конфигурации отладки на вкладке Debugger отключить опцию Start OpenOCD locally (см. рис. 19) и вписать IP адрес компьютера host-openocd в поле Host name or IP address (см. рис. 20); 3. после этого можно начинать отладку. Рис. 19: Настройка удаленной отладки для OpenOCD Рис. 20: Настройка удаленной отладки для GDB Для того, чтобы увидеть вывод терминала c компьютера host-openocd в Eclipse, необходимо: 1. подсоединиться к нему с помощью SSH Terminal, указав Host (IP адрес компьютера host-opeoncd), User и Password (см. рис. 21); 2. в открывшейся консоли терминала выполнить команды (предполагается, что процес- сорный комплекс осуществляет вывод через /dev/ttyUSB1): stty -F /dev/ttyUSB1 115200 icanon -inlcr -igncr -icrnl -ocrnl -onlcr -onocr -onlret cat /dev/ttyUSB1 15 сентября 2021 г. 20
CloudBEAR GNU MCU Eclipse с плагином CloudBEAR. Инструкция Версия 1.0.0 Рис. 21: Настройка SSH Terminal Пример работы SSH Terminal показан на рис. 22. Рис. 22: Настройка терминала при удаленной отладке 15 сентября 2021 г. 21
Вы также можете почитать