Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/46: Рейтинг темы: голосов - 46, средняя оценка - 4.54
rubym
1

Особенности работы с Keil uVision4 LogicAnalyzer

12.02.2013, 18:19. Показов 9014. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Возникла необходимость посмотреть состояния на ногах микроконтроллера (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)));

Keil, её принимает вполне нормально, не ругается - в анализатор тоже без проблем добавляет, но увы никакого обмена на графике не видно. Не могу сообразить где ошибка.
Или может для этой цели надо действовать как-то иначе, или же не хватает скорости захвата данных. У АРМа/Кайла в хелпе эта тема освещается довольно скудно. Отладчик МТ-Линк, клон 8-й версии J-Link, по идее все должно работать, трассировка настроена в соответствии с рекомендациями к среде. Может кто имел дело с этим, может подсказать в чем загвоздка???
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2013, 18:19
Ответы с готовыми решениями:

Чего-то случилось с Keil uVision4.
Работал нормально, а теперь на домашнем компе при попытке компиляции выкидывает: Build target...

Ограничение объема кода Keil uVision4 LPC1768
Всем доброго времени суток! Установил Keil uVision4 вылечил его все хорошо вобщем, пишет что до...

Keil uVision4. Деление массивов
Ребят помогите, пожалуйста! Выполнить деление элементов 2х массивов {Xi}, {Yi} попарно. Запись...

Определение минимального элемента в массиве (Intel 8051, ASM, Keil uVision4)
Задача: Составьте программу на языке ассемблера, которая реализует алгоритм решения Определение...

6
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
13.02.2013, 14:11 2
если бы Вы привели примеры ввиде скриншотов, то, думаю, интерес у остальных проснулся бы.
0
rubym
13.02.2013, 15:48 3
Можно и скриншоты привести, отчего же нет... только чуть позже, у меня отладчик и плата подключены к другой машине. А пока для затравки подброшу ссылочку - у мужика такая же проблема, и я так понял, что обсуждение зашло в тупик - по сути вопроса ему так никто и не посоветовал. Я все больше убеждаюсь, виртуальный логический анализатор в uVision больше рассчитан на работу с симулятором, чем для аппаратной отладки. Там есть даже какой-то скриптовый С-образный язык на котором можно прописать внешние воздействия, вроде тестбенчей в САПРах для ПЛИС. Что еще в Кайловской документации напрягает (ну в части ЛА), что в тех примерах которые у них приведены на скриншотах и по тексту не совсем ясно в каком окружении выполняется программа - симулируемом или аппаратном, и для каких процессорных ядер это вообще работает. Может у них допустим для 8051 или ARM7 скажем какие-то функции реализованы, а для Sortix-M3 их еще нет...

http://www.keil.com/forum/16821/
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
13.02.2013, 16:15 4
Цитата Сообщение от rubym
Отладчик МТ-Линк, клон 8-й версии J-Link, по идее все должно работать
у всех там (подтверждённые) проблемы с J-Link.
0
rubym
13.02.2013, 17:47 5
Например, такая ещё вещь - они в своей документации любят приводить примеры добавляя в ЛА Виртуальные Регистры Трассировки (VTREGs), они по идее должны уже быть предопределены в среде. Хочу я, допустим, посмотреть сигнал на каком-нибудь пине порта ВВ, я должен добавить что-то вроде PORT0.1 или PORT1.7, что по-видимому должно соответствовать GPIOA bit 1 и GPIOB bit 7, но анализатор такие переменные не принимает, говорит что таких сигналов нету - и он прав, их скорее всего действительно нет, т.к. есть подозрение, что конкретно эти примеры относятся к 51-му ядру, а не к Кортексам. Да и структура порта вывода стмки посложнее будет, две отдельные защелки - входная и выходная, не помню как было в 8051. И это не считая других регистров. У меня опять же есть всего несколько VTREG и они никакого отношения к портам не имеют, так же как и SFR, и содержимое вкладки Peripherals - это все или ядро или периферия ядра, но никак не периферия самого MCU. И опять же - во многих местах по тексту не известно точно, что из написанного будет справедливо именно в режиме аппаратной отладки, именно с Sortix-M3, именно с реализацией в младших STM32, именно с J-Linkом определенной версии (v.8x), именно с версией IDE 4.60, а не с 4.23, или 4.11, или 3.хх или ещё какой-нибудь. Они то упоминают, что есть определенные общие ограничения, плюс с некоторым железом еще и дополнительные, но с каким и в чем они состоят, и при каких условиях проявятся х.з. А по ихним скриншотам заметно, что странички файлов помощи писались в разное время, соответственно немножко (а где и множко) разные версии программы - окошки вроде и похожие, но все-таки местами заметно различные.))

http://www.keil.com/support/man/docs/uv ... _setup.htm
http://www.keil.com/support/man/docs/uv ... etupex.htm
http://www.keil.com/support/man/docs/uv ... phlvar.htm
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
14.02.2013, 12:00 6
тему охотно с Вами поковыряю
Кстати, STM-Studyo как вариант рассматривали?
Вроде, тоже позволяет следить за динамикой
0
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 1,110
11.03.2013, 19:28 7
http://www.keil.com/appnotes/files/apnt_230.pdf
0
11.03.2013, 19:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2013, 19:28
Помогаю со студенческими работами здесь

Библиотека для работы с WG12864 в Keil
Доброго времени суток! Совсем недавно начал работать с контроллерами STM32. Написав несколько...

особенности работы ViewState
недавно начал изучать ASP. немного почитал про жизненный цикл и особенности работы ViewState....

особенности работы @namelookup
как известно Syntax @NameLookup( ; username; itemtoreturn ) .... username Text or text...

Особенности работы деструктора
Есть вот такой код. Все работает.#include <iostream> #include <iomanip> using namespace std; ...

Особенности работы с QTableWidgetItem
Всем доброго времени суток. Недавно стал изучать QT, перешёл с MFC. Вопрос заключается в следующем:...

Особенности работы с обобщениями
Здравствуйте! Разбираюсь с обобщениями. Набросала такой код: public class Test { public static...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru