Программное обеспечение Внешний монитор RISC-V

Краткое описание программного обеспечения
Программное обеспечение Внешний монитор RISC-V предназначено для отладки и тестирования СФ-блока процессорного ядра RISC-V в составе отладочного комплекта, включающего в себя отладочную плату и программное обеспечение Встроенный монитор. Внешний монитор RISC-V загружается в оперативную память персонального компьютера под управлением операционной системы Windows 10 и запускается на исполнение. Обмен данными между персональным компьютером и отладочным комплектом, предназначенным для отладки процессорного ядра RISC-V, осуществляется посредством последовательного асинхронного порта UART.
С помощью элементов управления программного обеспечения Внешний монитор RISC-V осуществляется загрузка тестовых программ во встроенную память процессорного ядра RISC-V, запуск загруженных программ на исполнение, просмотр и редактирование содержимого встроенной памяти процессорного ядра RISC-V, отображение отладочной информации и ввод произвольной информации в тестовую программу.

Функциональные характеристики программного обеспечения
С помощью элементов управления программного обеспечения Внешний монитор RISC-V осуществляется загрузка тестовых программ во встроенную память процессорного ядра RISC-V, запуск загруженных программ на исполнение, просмотр и редактирование содержимого встроенной памяти процессорного ядра RISC-V, отображение отладочной информации и ввод произвольной информации в тестовую программу.
Управление процессом отладки и тестирования процессорного ядра RISC-V со стороны внешнего монитора RISC-V осуществляется с помощью команд управления, подаваемых на исполнение посредством панелей «Загрузка», «Память» и «Консоль». Команды управления через интерфейс UART передаются из внешнего монитора RISC-V во встроенный монитор и запускаются на исполнение. Результат исполнения команд отображается в активных окнах панелей внешнего монитора RISC-V.
Функциональные возможности программного обеспечение Внешний монитор RISC-V более подробно рассмотрены в разделе посвященном эксплуатации программы.

Инструкция по установке программы Внешний монитор RISC V
Программное обеспечение Внешний монитор RISC-V не требует установки. Запуск программы осуществляется открытием файла MonRV.exe. После запуска программного обеспечения открывается два окна программы Внешний монитор RISC-V: окно Загрузка и Память (рисунок 1) и окно Консоль (рисунок 2).

Рисунок 1 – окно Загрузка и Память программы Внешний монитор RISC-V

Рисунок 2 – окно Консоль программы Внешний монитор RISC-V

Инструкция по эксплуатации программы Внешний монитор RISC V

1. Введение
С целью создания удобного инструмента для тестирования и отладки ядра процессора RISC-V была разработана программа Внешний монитор RISC-V.
Использование программы Внешний монитор RISC-V имеет смысл только в составе полного программно-аппаратного комплекса, включающего в себя отладочную плату с установленной на ней ПЛИС, в которую загружена соответствующая прошивка.
В прошивке должен быть реализован стандартный интерфейс UART, сигналы которого должны быть выведены на разъём, обеспечивающим возможность подключения к COM-порту для связи с компьютером.
Прошивка должна содержать СФ-блок процессорного ядра RISC-V и ПЗУ с начальным загрузчиком, поддерживающим команды определенного формата. Описание команд встроенного монитора начального загрузчика, с которым взаимодействует программа Внешний монитор RISC-V, приведено в разделе 2.

2. Начальный загрузчик RISC-V
Список команд встроенного монитора RISC-V.
1. FFh 00h – перезапуск начального загрузчика
2. FFh 01h <адрес> – старт программы по заданному адресу
3. FFh 02h <адрес> <длина> <массив> – записать байтовый массив в ОЗУ
4. FFh 03h <адрес> <длина> – прочитать байтовый массив из ОЗУ/ПЗУ
5. FFh 04h <адрес> <длина> – посчитать контрольную сумму в ОЗУ/ПЗУ

Примечания.
1. Параметр <адрес> задаёт 64-разрядное значение, которое определяет физический адрес в адресном пространстве RISC-V. Передаётся, начиная с младшего байта.
2. Параметр <длина> задаёт 32-разрядную длину массива в байтах. Передаётся, начиная с младшего байта.
3. Параметр <массив> представляет собой последовательность байтов. Передаётся, начиная с младшего байта. Количество передаваемых байтов задаётся параметром <длина>.
4. Параметр <константа> представляет собой 64-разрядную константу. Передаётся, начиная с младшего байта.
5. При выполнении команды чтения массива запрашиваемая информация поступает немедленно в ответ на переданную команду. Массив поступает в виде последовательности байтов, начиная с младшего байта.
6. При выполнении команды подсчёта контрольной суммы массива в ответ на команду поступает посчитанная 64-разрядная контрольная сумма. Принимается, начиная с младшего байта. Контрольная сумма массива подсчитывается путём суммирования всех байтов массива в 64-разрядное слово. Переполнения в данном случае не возникает.

3. Начало работы с программой Внешний монитор RISC-V
В данном разделе приведена инструкция для сборки отладочного стенда и первого запуска программы Внешний монитор RISC-V.
1) Подключите блок питания к отладочной плате
2) Соедините кабелем отладочную плату и компьютер, обеспечив связь по COM-порту
3) Включите компьютер и загрузите операционную систему Windows10
4) Включите блок питания отладочной платы
5) Загрузите прошивку (с ядром RISC-V и начальным загрузчиком) в микросхему ПЛИС на отладочной плате (обычно это делается с помощью программы Quartus Prime Programmer)
6) Убедитесь, что на вашем компьютере установлена программа Внешний монитор RISC-V
7) Если программа не установлена, скопируйте в любую папку содержимое архива MonRV.zip
8) Запустите программу MonRV.exe. На экране должно появиться две панели: панель управления и панель отладочных сообщений (консоли). Вид панелей при запуске показан на рисунках 1, 2.
Примечание: Размер и расположение панелей могут изменяться пользователем и будут сохранены при закрытии программы в файле settings/app_params.json, поэтому при очередном запуске программы они будут такими, какими их задал пользователь.
9) Если при запуске будет выдано сообщение об ошибке соединения с COM-портом, то проверьте настройки и номер COM-порта, кликнув по кнопке COMx (x-номер выбранного в системе COM-порта). При этом на экране появится диалоговое окно для настроек COM-порта. Убедитесь, что они установлены так, как показано на рисунке 3 (номер COM-порта должен быть указан тот, который виден именно в вашей системе). Сообщение о возможной ошибке при запуске программы показано на рисунке 4. Все настройки, подтвержденные кнопкой OK, будут сохранены в файле settings/com_settings.json

Рисунок 3 – диалоговое окно для настроек COM-порта

Рисунок 4 – сообщение об ошибке соединения

10) Кликните по кнопке Restart (F5), либо нажмите F5. В консоли должен появиться символ ‘#’. Это означает, что связь со встроенным монитором в прошивке ПЛИС нормально установлена. Отсутствие отклика от платы означает, что дальнейшая работа с платой невозможна. В этом случае проверьте свои действия согласно этой инструкции, а также работоспособность модулей отладочного стенда.

4. Загрузка и старт программы Внешний монитор RISC-V
Загрузка и старт программы в ОЗУ процессора RISC-V производится с помощью элементов управления на вкладке Загрузка программы Внешний монитор RISC-V.
Адрес загрузки и адрес старта задаётся в соответствующих окнах и может редактироваться вручную. Имя файла для загрузки отображается в окне Файл для загрузки. Для выбора другого файла кликните по иконке "открыть" , после чего откроется соответствующее диалоговое окно. Все установленные значения сохраняются в файле settings/app_params.json.
Чтобы произвести загрузку выбранного файла по указанному адресу, кликните по кнопке Load.
Чтобы произвести старт программы с указанного адреса, кликните по кнопке Start.
Для объединения двух предыдущих действий используйте кнопку Load→Start.

5. Команды пользователя
Программа Внешний монитор RISC-V предоставляет возможность посылать в COM-порт любой набор символов (например, в качестве команд для загруженной в процессор программы). Для этого предусмотрено окно Command. Введите нужный набор символов в строку. Каждый символ будет сразу отправляться в COM-порт. По кнопке Enter или Esc строка стирается. При установленном флажке Echo в консоли будут отображаться вводимые пользователем символы.

6. Работа с памятью процессора
С помощью вкладки Память пользователь может просматривать содержимое участков памяти процессора, начиная с любого адреса. Считывание информации при перелистывании страниц (клавиши PgDn, PgUp) происходит автоматически.
Пользователь может установить удобный режим просмотра (побайтно, пословно и т.п.) с помощью выпадающего списка (Bytes, Short Words, Words, DWords). В зависимости от выбранного режима в каждой ячейке таблицы будет отображаться соответствующая информация в HEX-формате. Пример приведён на рисунке 5.

Рисунок 5 ؘ– вид вкладки Память

Пользователь может при необходимости редактировать память вручную, выбрав нужную ячейку двойным кликом. Редактирование ячейки завершается клавишами Enter, Tab, Esc, после чего новое значение записывается в память, затем считывается и отображается в той же ячейке. Передвигать курсор по таблице можно стрелками, клавишей Tab, либо просто выбрать кликом мышки.

С помощью кнопки Сохранить (F2) или по кнопке F2 можно прочитать и сохранить в файл на компьютере массив указанной длины, начиная с указанного начального адреса. Имя файла при сохранении всегда dump.bin и записывается он в ту же папку, на которую указывает файл для загрузки на вкладке Загрузка. В файл MonRV.log в той же папке автоматически сохраняется вся информация, поступающая от процессора в консоль.