Как стать автором
Обновить

Комментарии 8

Спасибо, за статью!

И тут приходит мысль… А если в разрыв между GDB-client и GDB-server вставить посредника, осуществить, так сказать, MitM «атаку»? То есть, по сути, перехватить запросы, которые относятся к получению состояния потока, получить недостающую информацию от сервера и сформировать ответ клиенту?

Это все нужно что бы поддерживать threading для связки FreeRTOS и MicroBlaze?
Кто в этом случае будет GDB-client и GDB-server? Сервер вроде бы hw_server а вот кто клиент я так и не понял
Это все нужно что бы поддерживать threading для связки FreeRTOS и MicroBlaze?

Да. В общем случае — можно и другие связки, там заложен потенциал на расширение.


Кто в этом случае будет GDB-client и GDB-server? Сервер вроде бы hw_server а вот кто клиент я так и не понял

Сервер, как правильно предположили, — hw_server.


Клиент — mb-gdb, который запускается из Eclipse при отладке и выбранном типе отладчика "GDB", а не "System Debugger".

Клиент — mb-gdb, который запускается из Eclipse при отладке и выбранном типе отладчика «GDB», а не «System Debugger».

Это который идет в XSDK?
Получается что в нем нету поддержки потоков и xilinx предоставляет отладку только в режиме bare metal?

Именно так

Первой задачей стояла реализовать просто прокси, который будет всё принимать от клиента и пересылать на сервер и так же — в обратном направлении. Снова погрузиться в дебри асинхронщины.


А клиент с сервером общаются по Remote Protocol? Там вроде бы нет асинхронщины.
Пока client не получит ответ на команду, он следующую не посылает, если только это не Remote Non-Stop режим. Клиент всегда один.
Вроде бы Asio здесь будет чересчур.
Или есть нюансы?
А клиент с сервером общаются по Remote Protocol?

Да.


Remote Non-Stop

Который, ЕМНИП, у меня сейчас не обрабатывается.


Вроде бы Asio здесь будет чересчур.
Или есть нюансы?

Asio может и чересчур, но уж очень хотелось потренироваться. Это, пожалуй, основное. С другой стороны, Asio просто абстракция, и её можно было бы использовать чисто в синхронном виде (ровно как и в режиме Reactor). Ещё было желание поиграться с корутинами.


Ещё, я уже мог подзабыть, но что-то было с обработкой подключений и дисконнектов. Если слушать "одновременно" проще реагировать на отвал одной из частей подключения: или клиента или сервера. Аналогично упрощается жизнь при вклинивании, особенно, когда требуется унификация: после завершения чтения с одной стороны канала я могу спокойно сразу же запланировать следующее чтение, которое завершится как только данные пройдут.

Там был задействован Cypress FX3,

Дилетантский вопрос: почему задействовали такой специфический контроллер?


И еще интересует с каким отладчиком работает GDB-сервер hw_server ?

Потому как устройство UVC с несжатыми фреймами (не блаж, многим клиентам нужна минимальные потери на сжатии), работа по USB 3.0. В начале я перечислил устройства — это линейка AV.io. А места в FPGA мало, что бы там ещё софтовый процессор размещать и USB 3.0 IP.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории