|
дивайс нв STM32F407, по разному работает под отладчиком и без него |
|
|
|
May 20 2016, 19:00
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Дивайс под отладчиком (STLink V2) работает "неправильно" без него "правильно". Один образец lbdfqcf отдан работодателю на тестирование. Он рассказывает, что изредка случается некая хрень, которая, по его описанию, похожа на ту, что имееи место под отладчиком. Разобраться почему не работает под отладчиком не могу нескюлько дней. Суть "хрени" изложить затруднительно, очень привязана к специфике дивайса. Известны ли уважаемым коллегам некие общие принципы различия работы камня под отладчиком, и без него, м.б. что то с времянками?
внутри "хрень" можно описать так volatile переменная может модифицироваться в разных местах, и под отладчиком она получает значение, которое не должна иметь по логике работы
Сообщение отредактировал nanorobot - May 20 2016, 19:03
|
|
|
|
|
May 21 2016, 07:57
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(nanorobot @ May 20 2016, 22:00)  Известны ли уважаемым коллегам некие общие принципы различия работы камня под отладчиком, и без него, м.б. что то с времянками? К примеру, под отладчиком можно просматривать регистры периферии, не останавливая программу. Некоторая периферия меняет своё состояние при чтении её регистров отладчиком. Другой вариант: алгоритм работает в связке "периферия - прерывания". Если программу остановить отладчиком, периферия может продолжать работать (таймеры, АЦП, ПДП), а прерывания не обрабатываются. Алгоритм ломается. В общем, бывают нюансы.
|
|
|
|
|
May 21 2016, 09:56
|
Местный
  
Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503

|
Цитата(scifi @ May 21 2016, 13:57)  К примеру, под отладчиком можно просматривать регистры периферии, не останавливая программу. Некоторая периферия меняет своё состояние при чтении её регистров отладчиком. Другой вариант: алгоритм работает в связке "периферия - прерывания". Если программу остановить отладчиком, периферия может продолжать работать (таймеры, АЦП, ПДП), а прерывания не обрабатываются. Алгоритм ломается. В общем, бывают нюансы. "хрень" возникает без какой либо остановки. Live watch тоже не использется по причине его отсутствия (Ubunru | Eclipse | arm-none-eabi-gcc 5.3)
|
|
|
|
|
May 24 2016, 12:15
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

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

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

|
Что у вас на ноге NRST висит (подтяжки, емкость)?
UPD: отбой - не внимательно прочитал первый пост. извините.
Сообщение отредактировал johnshadow - May 25 2016, 08:32
|
|
|
|
|
May 25 2016, 17:21
|
Местный
  
Группа: Участник
Сообщений: 328
Регистрация: 1-06-06
Из: USA
Пользователь №: 17 672

|
Цитата(SasaVitebsk @ May 25 2016, 02:14)  Перемычка бута не установлена ... )) Под jtag по любому будет работать... )) А вообще бывали такие случаи, но в каждом конкретном случае свои проблемы были ... Не запомнилось ни разу ... )) Железо в попрядке - это отладочная плата от Кайла. Я ее использую для работы с OV7691/OV5640
--------------------
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|