IAR RISC-V GD32V Evaluation Board

Недавно узнал, что IAR раздаёт отладочные комплекты с GD32VF103RBT6, отладчиком I-Jet Lite и лицензией IAR Embedded Workbench на 30 дней. Всё бесплатно, но отправка только на юридическое лицо (стоит учитывать, если хотите заказать), т. к. доставка только посредством Fedex. А попутно ещё и у Миландра вышел новый МК на архитектуре RISC-V — К1986ВК025, также раздают бесплатные образцы на пощупать. В общем, самое время попробовать новую архитектуру самому и оценить применяемость в своих проектах! А то всё ARM да ARM, ну иногда NIOS…

Сразу скажу, что в данной заметке НЕ будет подробного разбора этой архитектуры, её плюсов и минусов и даже примера применения, это будут первые впечатления от отладочного комплекта IAR. Если же вас заинтересовала данная архитектура, то в разделе ссылок я привел материалы, которые помогут вам углублённо изучить RISC-V.

Реклама

Содержание посылки

Посылка пришла в небольшой картонной коробке, в которой лежит свёрток картона и блистер в нём:

Внутри блистера набор из самой отладочной платы, отладчика и пары USB-A — microUSB кабелей (добротных, к слову):

Отладочная плата поближе:

Отладчик поближе:

И тут мне стало интересно, а на чём он собран-то. Снял термоусадку и наклейку, потом опять закатал в термоусадку для безопасности:

USB High-Speed интерфейс лежит на CY7C68013A-56PVXC (аналогичный, к слову, в Altera Blaster на отладочных Cyclone 10 LP), за ним идёт ПЛИС — XC6SLX9-2TQG144C и горсть согласователей уровней.

Далее же, когда пристально осмотрел схему и саму отладочную плату, оказалось, что не всё так радужно и хорошо…

Реклама

Косяки

Во-первых, разводка. Не, ну честно, качество проектирования от официальных отладочных плат ожидаешь всегда достойного уровня, ведь это первый продукт, с которым столкнётся потребитель (разработчик\инженер) продукции компании-разработчика, а тут ощущение, что проектированием занимался студент первых курсов… вид доработанной (об этом ниже) платы с двух сторон, чтобы оценить в целом:

Если же по конкретным моментам, то парочку приведу. Разводка USB — дифференциальные пары ? Декаплинг конденсаторы по питанию ? Пфф… и так будет работать!

Flash память вообще странно подключена, а рядом стоящий C2 стоит для фильтрации общего, а не питания:

Во-вторых, схемотехника. Если же посмотреть на схему, то странностей только добавляется. Куча GPIO не подключена вообще никуда и немного GPIO выведено на TP:

Зато светодиоды подключены через перемычки и кучу MOSFET:

Это они, удобненько:

Сначала я обрадовался наличию разъёма JTAG 20-pin, а потом пригляделся к его распиновке:

И это мало похоже на привычную:

Мда.

В-третьих. Если приглядеться к этому куску схемы, то можно заметить один прикол:

System Reset (общий сброс МК) и TRST (Test Access Port Reset, который отвечает за сброс стейт-машины JTAG интерфейса) соединены вместе (вот эта огибающая поверху)! Не, ну а чё, и то сброс, и то тоже сброс, пофиг, соединяем вместе…

И если во время отладки сбросить МК, то и сам отладчик отвалится, отрапортуя о том, что отвалился отладочный интерфейс у целевого МК:

Надо это поправить! Изучая плату, я пришёл к выводу, что соединение RST и TRST находится аккурат под МК, сдуваем его и видим:

Красота. Режем дорожку, паяем МК обратно. Теперь другое дело при сбросе:

И, собственно, кроме этой доработки, я добавил ещё более привычный для меня JTAG разъём на плату с помощью супер-клея, немного лакированных медных проволочек и цапон-лака поверх для надёжности:

Получилось не совсем красиво, но зато теперь я могу спокойно подключать привычный J-Link.

Реклама

Общие впечатления IAR EW и I-Jet Lite

Могу сразу сказать, без особых распинательств — не понравилось. :)

Сама IDE прям веет устаревшим дизайном (ака Keil uVision, два брата-акробата), не могу сказать, что она не юзерфрендли, нет, в целом всё по окнам логично расположено, но работать в ней неприятно (как в том же блокноте фактически, Visual Studio Code):

А, и да! Без лицензии у вас не распакуются исходники SDK, залочен полностью компилятор будет и всё такое… но это мелочи для проприетарного софта.

Потом приколы отладки как таковой, мало того, что тебе не особо доступны какие-либо действия с отладчиком (типа утилит вспомогательных или отдельного окна с командами, как у Segger, я не нашел, может быть, по незнанию софта, подскажите в комментариях, если знаете), тактовая частота залочена на 8 МГц (хотя железо вполне позволяет значительно больше) и вишенка на торте, вот в режиме отладки хотите вы поставить точку останова на строке mma8652_getxyz(&x, &y, &z):

Тыкаем привычным движением слева от строки и получаем ошибку:

Так…

Оказывается, надо нажать сначала на «паузу» отладки:

Потом поставить точку останова, где вы хотите:

И после снятия паузы оно будет работать, как и ожидалось…

А вот снять точку останова можно НЕ нажимая на паузу. Г — лоГика.

В общем, наигравшись с этим всем, я начал делать свой пример проекта на Visual Studio Code, с опенсорсным тулчейном и отладкой. Пока не всё ещё готово, но вроде бы осталось немного:

Сборку проекта ещё не полностью доделал, в основном вопросы со startup файлом. Прошивание, стирание и чтение МК посредством J-Link уже работают, отладка вроде бы тоже, но проверить последнюю не могу, пока не соберу рабочий проект. Если у кого есть опыт сборки Makefile проекта на GCC для RISC-V, буду благодарен за помощь.

А на этом всё, спасибо, что прочитали! ;)

Реклама

Ссылки

Добавить комментарий

Please log in using one of these methods to post your comment:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google photo

Для комментария используется ваша учётная запись Google. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s