реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> дивайс нв STM32F407, по разному работает под отладчиком и без него
nanorobot
сообщение May 20 2016, 19:00
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Дивайс под отладчиком (STLink V2) работает "неправильно" без него "правильно". Один образец lbdfqcf отдан работодателю на тестирование. Он рассказывает, что изредка случается некая хрень, которая, по его описанию, похожа на ту, что имееи место под отладчиком. Разобраться почему не работает под отладчиком не могу нескюлько дней. Суть "хрени" изложить затруднительно, очень привязана к специфике дивайса. Известны ли уважаемым коллегам некие общие принципы различия работы камня под отладчиком, и без него, м.б. что то с времянками?



внутри "хрень" можно описать так volatile переменная может модифицироваться в разных местах, и под отладчиком она получает значение, которое не должна иметь по логике работы

Сообщение отредактировал nanorobot - May 20 2016, 19:03
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 21 2016, 05:47
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Предлагаю не зацикливатся на работе под отладчиком / не под отладчиком, а искать ошибку. У Кейла, к примеру, есть возможность ставить точки останова с условиями. Например, при записи в переменную.
Go to the top of the page
 
+Quote Post
scifi
сообщение May 21 2016, 07:57
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(nanorobot @ May 20 2016, 22:00) *
Известны ли уважаемым коллегам некие общие принципы различия работы камня под отладчиком, и без него, м.б. что то с времянками?

К примеру, под отладчиком можно просматривать регистры периферии, не останавливая программу. Некоторая периферия меняет своё состояние при чтении её регистров отладчиком.
Другой вариант: алгоритм работает в связке "периферия - прерывания". Если программу остановить отладчиком, периферия может продолжать работать (таймеры, АЦП, ПДП), а прерывания не обрабатываются. Алгоритм ломается.
В общем, бывают нюансы.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение May 21 2016, 09:56
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(scifi @ May 21 2016, 13:57) *
К примеру, под отладчиком можно просматривать регистры периферии, не останавливая программу. Некоторая периферия меняет своё состояние при чтении её регистров отладчиком.
Другой вариант: алгоритм работает в связке "периферия - прерывания". Если программу остановить отладчиком, периферия может продолжать работать (таймеры, АЦП, ПДП), а прерывания не обрабатываются. Алгоритм ломается.
В общем, бывают нюансы.


"хрень" возникает без какой либо остановки. Live watch тоже не использется по причине его отсутствия (Ubunru | Eclipse | arm-none-eabi-gcc 5.3)
Go to the top of the page
 
+Quote Post
RadiatoR
сообщение May 21 2016, 11:11
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 270
Регистрация: 8-08-15
Из: Москва
Пользователь №: 87 901



Цитата(ViKo @ May 21 2016, 08:47) *
У Кейла, к примеру, есть возможность ставить точки останова с условиями. Например, при записи в переменную.


Уважаемый! Подскажите как включить такую фичу?

Сообщение отредактировал ЯadiatoR - May 21 2016, 11:11
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 21 2016, 11:52
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ЯadiatoR @ May 21 2016, 14:11) *
Уважаемый! Подскажите как включить такую фичу?

Я сейчас не при Кейле. Там у него в помощи расписано. Типа, brakepoint with condition.
Go to the top of the page
 
+Quote Post
misyachniy
сообщение May 22 2016, 05:33
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 716
Регистрация: 27-05-05
Из: Kyiv
Пользователь №: 5 454



Я такое встречал.
Нужно при работе с отладчиком включить аппаратный сброс перед загрузкой программы.
Если дефект пропадет - значит проблема в инициализации.
Где то не сброса настроек регистров периферии или тактирования перед инициализацией.

Если в программе есть ватчдог, то он и может приводить к редким проявлениям дефекта.
Go to the top of the page
 
+Quote Post
pitt
сообщение May 23 2016, 18:15
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Может это и другая проблема и я пока отложил ее в сторону...
Плата работает под дебаггером и по power reset, но не работает по сбросу. Идеи?


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
ViKo
сообщение May 23 2016, 18:41
Сообщение #9


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(ViKo @ May 21 2016, 14:52) *
Я сейчас не при Кейле. Там у него в помощи расписано. Типа, brakepoint with condition.

http://www.keil.com/support/man/docs/uv4/u...g_breakpnts.htm
Go to the top of the page
 
+Quote Post
jcxz
сообщение May 24 2016, 05:13
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 5 228
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(pitt @ May 24 2016, 00:15) *
Плата работает под дебаггером и по power reset, но не работает по сбросу. Идеи?

Например: неправильно инициализируется какая-то периферия (вне МК), которая сбрасывается power reset-ом, но не сбрасывается сбросом.
Например - внешняя SPI-FLASH. В процессе работы даёте ей команду SLEEP, после вкл. питания она не находится в SLEEP и отвечает на команды и Ваш стартовый код её нормально обнаруживает и инициализирует, а после сброса МК, чип FLASH не сбрасывается и может быть в SLEEP, тогда он не будет отвечать ни на какие команды кода инициализации.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 24 2016, 05:52
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(ЯadiatoR @ May 21 2016, 14:11) *
Уважаемый! Подскажите как включить такую фичу?

Такое есть и в IAR и в QT встречал.и даже на крупных контроллерах AVR.
Go to the top of the page
 
+Quote Post
pitt
сообщение May 24 2016, 12:15
Сообщение #12


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(jcxz @ May 24 2016, 01:13) *
Например: неправильно инициализируется какая-то периферия (вне МК), которая сбрасывается power reset-ом, но не сбрасывается сбросом.
Например - внешняя SPI-FLASH. В процессе работы даёте ей команду SLEEP, после вкл. питания она не находится в SLEEP и отвечает на команды и Ваш стартовый код её нормально обнаруживает и инициализирует, а после сброса МК, чип FLASH не сбрасывается и может быть в SLEEP, тогда он не будет отвечать ни на какие команды кода инициализации.

Спасибо за совет. А чем тогда jtag помогает? Всего "внешнего" ethernet phy, никаких слипов.


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение May 25 2016, 06:14
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(pitt @ May 23 2016, 21:15) *
Плата работает под дебаггером и по power reset, но не работает по сбросу. Идеи?

Перемычка бута не установлена ... )) Под jtag по любому будет работать... ))
А вообще бывали такие случаи, но в каждом конкретном случае свои проблемы были ... Не запомнилось ни разу ... ))
Go to the top of the page
 
+Quote Post
johnshadow
сообщение May 25 2016, 08:14
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 31
Регистрация: 25-09-08
Пользователь №: 40 477



Что у вас на ноге NRST висит (подтяжки, емкость)?

UPD: отбой - не внимательно прочитал первый пост. извините.

Сообщение отредактировал johnshadow - May 25 2016, 08:32
Go to the top of the page
 
+Quote Post
pitt
сообщение May 25 2016, 17:21
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672



Цитата(SasaVitebsk @ May 25 2016, 02:14) *
Перемычка бута не установлена ... )) Под jtag по любому будет работать... ))
А вообще бывали такие случаи, но в каждом конкретном случае свои проблемы были ... Не запомнилось ни разу ... ))

Железо в попрядке - это отладочная плата от Кайла. Я ее использую для работы с OV7691/OV5640


--------------------
Прокричал немой глухому:"...Спасибо за внимание!"
http://www.youtube.com/watch?v=3Nnj4ky4Z_g
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 20:06
Рейтинг@Mail.ru


Страница сгенерированна за 0.01477 секунд с 7
ELECTRONIX ©2004-2016