Автор Тема: Особенности работы с Keil uVision4 LogicAnalyzer  (Прочитано 3994 раз)

0 Пользователей и 1 Гость просматривают эту тему.

rubin

  • Сообщений: 507
  • GTLab - forever!
    • ICQ клиент - 289599507
    • Просмотр профиля
Особенности работы с Keil uVision4 LogicAnalyzer
« : Февраля 13, 2013, 10:19:29 am »
Возникла необходимость посмотреть состояния на ногах микроконтроллера (STM32), причем в динамике - нужно видеть ход обмена по интерфейсу I2C. Внешнего логического анализатора нет, запоминающий осциллограф постоянно у кого-то на руках и нужен в другом месте. Но в MDK-ARM есть встроенный виртуальный логический анализатор, причем можно смотреть переменные не только в симуляции, но и через SWJ в реальной железке (правда с некоторыми ограничениями). Есть, общее требование - переменная должна быть определена как глобальная или статическая, временные переменные со стэка, например, он смотреть не может. Есть также ограничения на некоторые периферийные устройства и их регистры. Но конкретно к GPIO это вроде не относится. Переменную с принятыми по SPI значениями АЦП он отрисовывает, а вот регистр IDR (входная защелка порта ВВ) ни в какую. Причем эта же переменная ссылающаяся на входной регистр также добавлена в watch, там она изменяется, в SystemViewer/GPIOB/IDR разумеется тоже, физически обмен какой-то есть, судя по тому что мелькает на обычном осцилле, но на графике все глухо как в танке. Как я даю доступ к порту - создаю псевдопеременную, по сути это указатель:
#define DATA_IN (*((volatile uint32_t *)0x40010C08))
или
uint32_t DATA_IN __attribute__((at(0x40010C08)));
Кайл, её принимает вполне нормально, не ругается - в анализатор тоже без проблем добавляет, но увы никакого обмена на графике не видно. Не могу сообразить где ошибка.
Или может для этой цели надо действовать как-то иначе. У АРМа/Кайла в хелпе эта тема освещается довольно скудно. Отладчик МТ-Линк, клон 8-й версии сеггеровского, по идее все должно работать, трассировка настроена в соответствии с рекомендациями к среде. Может кто имел дело с этим, может подсказать в чем загвоздка???
« Последнее редактирование: Февраля 14, 2013, 04:53:34 pm от rubin »

Антон

  • Сообщений: 590
  • GTLab - forever!
    • ICQ клиент - 485140718
    • Просмотр профиля
    • E-mail
Re: Особенности работы с Keil uVision4 LogicAnalyzer
« Ответ #1 : Февраля 14, 2013, 01:59:43 pm »
Пользовался аализатором кейла когда-то.. глюков хватало у него с отображением. Ищи осциллограф со ждущей развёрткой.

rubin

  • Сообщений: 507
  • GTLab - forever!
    • ICQ клиент - 289599507
    • Просмотр профиля
Re: Особенности работы с Keil uVision4 LogicAnalyzer
« Ответ #2 : Февраля 14, 2013, 05:12:43 pm »
Да тут не просто ждущая развертка нужна, а запоминающий осцилл, который увы сейчас занят. Хотя, с другой стороны, я тут вот что сейчас подумал: можно с началом каждого акта обмена выдавать запускающий сигнал на одну из ног контроллера, а её прицепить на вход синхронизации развертки С1-96. Не хотелось бы лишний огород городить, но что поделаешь... Наверное, может что-то с этого получится, завтра попробую. Тем более с логическим анализатором все еще глухо. Запостил такую же тему еще и на easyelectronics, но пока результа не видно. Тем не менее изучение форумов помогло выявить еще одного "подозреваемого" - JLink, возможно, он не вполне корректно работает с некоторыми функциями оболочки отладчика, как раз в части ЛА. Не родной он ему все-таки, да и в своем семействе среди других продуктов Segger далеко не самый навороченный...
« Последнее редактирование: Февраля 14, 2013, 05:13:32 pm от rubin »

Антон

  • Сообщений: 590
  • GTLab - forever!
    • ICQ клиент - 485140718
    • Просмотр профиля
    • E-mail
Re: Особенности работы с Keil uVision4 LogicAnalyzer
« Ответ #3 : Февраля 17, 2013, 07:02:08 am »
Правильная мысль с дополнительным запуском на синхронизацию. Что-то не вспомнил про неё. А вобще вопрос этот лучше адресовать на http://electronix.ru/forum/ - там ребята с этими вещами как раз работают.

rubin

  • Сообщений: 507
  • GTLab - forever!
    • ICQ клиент - 289599507
    • Просмотр профиля
Re: Особенности работы с Keil uVision4 LogicAnalyzer
« Ответ #4 : Февраля 19, 2013, 05:24:55 am »
Сделал как собирался - идея оказалась рабочая... Теперь, работается довольно удобно, жаль конечно, что столько времени на софтину убил - не сообразил раньше синхровход осциллографа задействовать. Впрочем, все равно полезно - узнал много нового... ;)

А отладчику скорее всего банально не хватает скорости работы по SWO, для того чтоб захватывать сигналы со входов в реальном времени. Для полноценной трассировки нужны либо другие модели, либо более низкая скорость работы портов ВВ и ядра.

На будущее, просто буду иметь ввиду, что для работы с цифровым железом аппаратный логический анализатор - вещь не лишняя в хозяйстве. Тем более, что всякие китайские USB осциллы/анализаторы вроде MDSO-LA, клонов девайсов от USBee, и т.п. стоят в пределах 2500-3000 р.