Платформа
Как вы можете видеть, плата отправляет некоторые сообщения при загрузке и печатает наше сообщение hello world.
Вы также можете использовать эмулятор терминала, входящий в состав Freedom Studio. Он расположен в правом нижнем углу в просеивающей перспективе. Это вкладка под названием Терминал.
Прежде чем попробовать это, убедитесь, что вы не используете последовательный порт в другом месте (закройте PuTTY, если вы им пользовались). Нажмите на кнопку со значком монитора, чтобы настроить его.
Вот выходные данные платы в терминале Freedom Studio после нажатия кнопки:
Hello world Демо (Видео)
[Эдуардо Корпеньо] Итак, давайте посмотрим, как мы можем загружать наши приложения на плату, используя фиктивный USB-накопитель. Итак, здесь у нас есть hello.hex. Обратите внимание, что плата Red-V сообщила Windows о себе как о USB-накопителе под названием HiFive. Теперь позвольте мне перетащить hello.hex файл на диск. И пока Windows думает, что копирует этот файл на USB-накопитель, Red-V Thing Plus копирует только что созданную нами прошивку во флэш-память QSPI. Теперь позвольте мне настроить терминал в Freedom Studio и теперь я нажму кнопку сброса на плате. И вот оно. Это сообщение о загрузке. И внизу у нас есть наша строка.
Привет всем! Привет от процессора RISC-V! Позвольте мне снова нажать кнопку сброса. И вот еще одно послание. Теперь обратите внимание, что это необычное приложение для встроенной системы, потому что оно завершает основную функцию. Это не обычный случай для встроенного приложения, потому что предполагается, что все эти приложения имеют бесконечный цикл внутри функции main. Итак, если вам это интересно, вы можете запустить отладчик и выполнять пошагово, включая момент, когда выполнение завершает основную функцию. Вы увидите, что в конечном итоге это приводит к бесконечному циклу на языке ассемблера.
Отладка
Теперь перейдем к варианту B: вы также можете отлаживать свой код, используя интерфейс J-Link и хорошо известный отладчик GDB в качестве серверной части. Внешний интерфейс - это отладчик Eclipse.
Это самый простой вариант быстрого размещения вашего приложения на плате, которым вы, вероятно, будете пользоваться чаще всего.
Поскольку наша программа имеет только вызов функции printf, отладка была бы не такой заметной. По этой причине давайте изменим код:
Теперь мы ожидаем увидеть 3 целых числа без знака с двумя непосредственными присвоениями и дополнением. Обратите внимание, что строки include и printf в исходном коде теперь закомментированы.
Перед началом процесса отладки убедитесь, что плата подключена к порту USB.
Предупреждение: Возможно, вам придется повторить эту процедуру позже, поэтому будьте внимательны!
Поскольку мы не запускали процесс отладки при создании проекта, кнопка Debug не будет работать. Сначала нам нужно указать конфигурацию отладки. Это просто: это та конфигурация, которую мы создали несколько шагов назад. Просто выберите его, нажав на стрелку раскрывающегося списка кнопки Debug, а затем Отладочные конфигурации ...:
Вы найдете нужную конфигурацию в разделе "Debug J-LinkSiFive GDB SEGGER". Она называется как ваш проект (HeyThere). Просто нажмите на Debug:
В следующий раз, когда вы захотите выполнить отладку, вы можете просто нажать кнопку Debug на панели инструментов, которая будет использовать последнюю конфигурацию. Здесь мы можем увидеть всплывающую подсказку, подтверждающую это:
![Кнопка Отладки со всплывающей подсказкой, указывающей, что будет использоваться конфигурация HeyThere](/EDI/13_02_25_2/1739398847-5454/tutorial/1372/objects/2/files/01-29.jpg)
Рис. 1.29. Кнопка Отладки со всплывающей подсказкой, указывающей, что будет использоваться конфигурация HeyThere
Это то, что было отображено после запуска отладчика:
Выполнение вашего кода в отладчике
Перспектива SiFive содержит все, что вам нужно для отладки вашего кода. Еще раз, это рекомендуемый подход ко всему в этом курсе.
Во-первых, у нас есть кнопки выполнения кода:
![Возобновление, Приостановка, Завершение, Разъединение, Переход В режим, Перешагивание, Возврат к шагу, Пошаговый режим выполнения инструкций](/EDI/13_02_25_2/1739398847-5454/tutorial/1372/objects/2/files/01-31.jpg)
Рис. 1.31. Возобновление, Приостановка, Завершение, Разъединение, Переход В режим, Перешагивание, Возврат к шагу, Пошаговый режим выполнения инструкций
В окне Источник вы можете увидеть следующую строку кода для выполнения, выделенную зеленым цветом и отмеченную крошечной синей стрелкой в желобе слева:
В любой момент времени вы можете переключить точки остановок, чтобы приостановить выполнение при достижении строки кода. Чтобы переключить точку остановки в строке кода, дважды щелкните по номеру строки в желобе, вертикальной черте слева от кода.
Обратите внимание, что не все строки помечены синим цветом в желобе. Эти синие метки указывают на строки кода, которые попали в машинный код. Некоторые строки исходного кода C оптимизированы компилятором и, следовательно, не имеют места для выполнения.
Если вы хотите выполнять пошагово код на ассемблере, показанный в окне дизассемблирования, вы можете сделать это, переключив Режим пошагового выполнения инструкций справа от кнопок выполнения кода. Когда этот режим включен, кнопки выполнения шагов будут работать с уровнем детализации инструкции по сборке: