Здесь, на работе, у нас есть большой опыт разработки приложений для обработки изображений для платформы TI DSP с использованием старой версии компоновщика кода (CC 3.3). Мы переходим на платформу ARM, используя Eclipse (приправленный и распространяемый Xilinx).
В старом компоновщике кода часто использовалась функция, которую нужно было искать, это виджет IDE, который мог отображать определенную область памяти в виде растрового изображения. Он имел сетку свойств, в которой вы могли бы определять такие вещи, как размер, формат пикселя и ориентацию шага, чтобы правильно интерпретировать каплю памяти как изображение. У инструмента также было несколько полезных функций, таких как масштабирование, счетчик градаций серого, профиль линии, гистограмма и т. Д.
Есть ли что-то подобное для затмения? Если нет, то насколько сложно будет его создать? Я имею в виду, насколько сложно создать базовый плагин для затмения, который извлекает информацию из области памяти в интерфейсе jtag?
Eclipse не имеет такой функции; лично я работаю в аналогичной среде (обработка изображений на архитектуре DaVinci + Eclipse IDE). Написание плагина Eclipse не является слишком сложной задачей — там множество учебников (например, этот). Но поддержание этого может стать одним. У нас есть ссылка Код в QT, поэтому нам не нужны такие функции. но если вы действительно хотите что-то подобное, я думаю, вы всегда можете сделать memdump в двоичном файле и интерпретировать шляпу как изображение. Пока формат не является чем-то особенным (например, вы выгружаете формат jpeg), все должно быть в порядке.
GDB может вызвать скрипт Python. Если для отладки используется GDB, используйте это. Вы можете использовать OpenCV или PIL или любую библиотеку изображений, чтобы показать изображение.
Обновлено 2 апреля 2014 года:
Пусть «data» будет указателем на изображение.
Внутри GDB запустите «python data = gdb.parse_and_eval (» data «)». Это даст доступ к памяти подчиненного, на которую указывают данные.
например, «python print (data [35])» покажет 35-й элемент «data».
Поскольку данные изображения могут быть прочитаны в Python, они могут быть отображены или проанализированы.
Следующие ссылки помогут в достижении цели:
Примечание. Пожалуйста, игнорируйте добавленный мной комментарий. Нажмите клавишу ввода, прежде чем писать фактическую информацию.
Надеюсь это поможет.
Это хорошая идея для статических объектов, но что, если ваша память временно создается в куче или в стеке? Не проще ли в динамических средах (использующих openCV) просто поместить три строки кода, когда вам нужно увидеть содержимое буфера в виде изображения и использовать Qt для масштабирования изображения и гистограммирования?
Mat I(h, w, CV_8U, buf);
imshow(“winname”, buf);
waitKey(-1);
Я слышал, что в последней версии модуля highCi openCV есть опции, о которых вы говорили, но я лично вижу только очень ограниченное использование его в среде динамического программирования. И все же я все время визуализирую данные. Более того, мне нравится взаимодействовать с моими изображениями, например, поворачивать их в 3D, щелкать и получать значения или отмечать определенный сегмент. Я думаю, это будет трудно сделать с помощью специальных плагинов.
Я только что нашел это; еще не пробовал:
https://github.com/cuekoo/GDB-ImageWatch
Если затмение вызывает GDB, может быть, есть способ …