Salamander
Jun 17 2014, 15:33
Гугление на эту тему выдало несколько статеек, советующх ввести в командную строку "la porta&0x01"
ВВожу как полагается, мне отладчик выдает "*** error 34: undefined identifier"
Что я делаю не так?
Контроллер - STM32F103RET6, включать пробовал и при работе через отладчик с железкой, и через симулятор.
Вот так я делал, а с портами - не помню... Нужны регистры, известные отладчику, а не porta, оставшиеся с прошлых времен...
LA DAC->DHR12L1
Можно и просто по указателю на известный адрес.
Salamander
Jun 17 2014, 16:37
ViKo спасибо, уже что-то, но в ответ пишет error 129: trace is disabled
Трассировку разрешить надо в свойствах проекта. Есть документы, расписывающие по-шагам, как это делается. Иногда они называются ...Labs.
Типа такого.
Salamander
Jun 17 2014, 17:04
вроде получилось. Но на ножке, на которой полюбому должен быть меандр ничего нет.
добавлял так
la GPIOB->BSRR&GPIO_Pin_0
Я лажу написал?
Цитата(Salamander @ Jun 17 2014, 20:04)

la GPIOB->BSRR&GPIO_Pin_0
BSRR - это регистр для установки и сброса выводов порта. Примерно, как R и S у триггера. Посмотрите регистр ODR.
Salamander
Jun 17 2014, 17:20
простите, а если я введу
la some_var, причем some_var в программе каждую секунду увеличивается на единицу и в окне watch я это вижу, то что должно быть в анализаторе? Анализатор такую команду проглатывает, но ничего не происходит.
Цитата(Salamander @ Jun 17 2014, 20:20)

простите, а если я введу
la some_var, причем some_var в программе каждую секунду увеличивается на единицу и в окне watch я это вижу, то что должно быть в анализаторе? Анализатор такую команду проглатывает, но ничего не происходит.
Там в окне ЛА нужно отредактировать свойства сигнала. Правой кнопкой мыши по названию сигнала...
Salamander
Jun 17 2014, 17:32
Ковыряю...
Настроил 10 пин порта С на мигание в 1 Гц
Дальше сделал так:
la GPIOC->ODR&GPIO_Pin_10
в Logik Analyzer ничего не происходит. Далее, непосредственно из анализатора по правой кнопке мыши перебросил это в окно watch. В окне watch с частотой 1 Гц происходит смена нуля и 0x0000400. То есть работает пин и отладчик это видит.
По правой кнопе мыши настраивал этот сигнал и на analog и на bit и на state - ноль реакции.
Перезапустите Кейл. А время в ЛА бежит?
Salamander
Jun 17 2014, 18:17
не бежит...
хм...
правильно ли я узнаю состояние 10-й ножки порта С?
la GPIOC->ODR&(1<<10)
Если я запихиваю в Watch GPIOC->ODR&(1<<10), то значение не меняется.
Цитата(Salamander @ Jun 17 2014, 21:17)

не бежит...
А у вас какой отладчик-железо? До вкладки Trace добрались? Галочки установили? Частоту?
Salamander
Jun 17 2014, 18:55
Отладчик - STLink на плате Stm32f4DIscovery. Контроллер - STM32F103RET6
Вкладка Trace в аттаче
Обратило на себя внимание - MInTime и MaxTime равны нулю. В чем причина?
Частоту Core Clock задайте правильную. 72 МГц?
Цепь SWO используется при трассировке. У вас она разведена на плате?
Частоту задавал правильную - фигвам.
Отключил ST-Link, подключил Китаёзу-линк - вкладка Trace видоизменилась.
А вот SWO - вы правы, не разведена.
Приду домой попробую.
Salamander
Jun 18 2014, 12:58
ээээ... а как отключить SWO?
Точнее, поменять Trace Port
Salamander
Jun 18 2014, 17:17
Удалил галку "Load Application at startup" и время затикало, но... дальше бред какой-то - в логический анализатор ничего не добавить, а уже добавленные в окно watch переменные не отбражаются - пишет <cannot evaluate>.
Время тикает только во время одного запуска. ДЛя того чтобы при последующем запуске тикало, нужно запустить в режиме сиулятора, а затем снова в режиме отладчика... ЧТо за бредятина?
Salamander
Jun 19 2014, 17:35
Вот... для чистоты эксперимента создал проект заново, добавил самое необоходимое.
Включил в режим симулятора. Время бежит, но переменные в окно логического анализатора не добавляются.
Может кто глянет, кому нетрудно?
В симуляторе выскакивают сообщения вида
*** error 65: access violation at 0x40021000 : no 'read' permission
*** error 65: access violation at 0x40021000 : no 'write' permission
Для устранения нужно разрешить командой map обращаться в нужные диапазоны памяти. Я задаю ее в ini файле, который подключаю в настройках симулятора, но можно и каждый раз при входе в симулятор с клавиатуры.
MAP 0x40000000, 0x4002FFFF read write
Чтобы переменная была видна в симуляторе, она должна быть глобальной.
Вроде, всё.
Salamander
Jun 20 2014, 02:43
Все хорошо, спасибо. Время бежит, переменная дает в анализаторе меандр.
Не получается с ножкой. Делаю так:
la GPIOC->ODR&GPIO_Pin_10
Потом, для верности, то что поглотил анализатор, отправляю в окно Watch.
Ни в Watch, ни в анализаторе ничего не происходит.
В железе ножка дергается, а в окне Watch состояние регистра меняется с 0x0000000 на 0x00000400
Salamander
Jun 25 2014, 06:27
Да... сформулирую вопрос по-другому - кто-нибудь когда-нибудь видел в окне этого логического анализатора дрыгающийся пин?
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.