Перейти к содержанию
    

BlueNRG-1, 2. Выключается сторожевой таймер.

Есть МК BlueNRG-2. Использую загрузчик и прошивку. В загрузчике настраиваю сторожевой таймер, далее всё работает нормально, если имеется прошивка в нужной области памяти. Если вместо прошивки FFFFFFFFFF, то после попытки загрузчика запустить пустое место сторожевой таймер свою функцию не выполняет. Поможет только передёргивание питания. Почему такое может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 часов назад, ДЕЙЛ сказал:

после попытки загрузчика запустить пустое место сторожевой таймер свою функцию не выполняет. Поможет только передёргивание питания. Почему такое может быть?

Скорее вопрос нужно ставить по-другому: "Почему ваш загрузчик запускает пустое место?"

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 1/20/2023 at 10:47 PM, jcxz said:

Скорее вопрос нужно ставить по-другому: "Почему ваш загрузчик запускает пустое место?"

Это искусственная ситуация. В LPC1768 в аналогичной ситуации сторожевой не выключался и перезапускал загрузчик.  Загрузчик должен понять при необходимости, что прошивки нет. Тут можно сделать проверку первых 8 байт прошивки и не париться, но всё же хочу понять, почему сторожевой таймер не выполняет свою функцию. 

Изменено пользователем ДЕЙЛ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А есть уверенность, что именно "не перезапускает" и виноват именно WDT? Может просто ваш загрузчик виснет при сбросе, произошедшем от WDT?

Если есть эмулятор, можно полностью стереть МК, подключиться к нему эмулятором, отшагнуть чуток от начала памяти программ, поставить бряк на начало памяти программ, вручную (через регистры) активировать WDT и запустить МК. И проконтролировать, что управление попало на бряк (был нормальный сброс) или не попало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 minutes ago, jcxz said:

А есть уверенность, что именно "не перезапускает" и виноват именно WDT? Может просто ваш загрузчик виснет при сбросе, произошедшем от WDT?

Да. При старте загрузчика моргаю светодиодом. Если вместо прошивки пустое место в виде FFFFF, то при подаче питания однократное моргание и уход в глухое зависание. Если прошивка какая-то имеется, но при этом не сбрасывает WDT, то всё нормально работает. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 минут назад, ДЕЙЛ сказал:

Да. При старте загрузчика моргаю светодиодом. Если вместо прошивки пустое место в виде FFFFF, то при подаче питания однократное моргание и уход в глухое зависание.

Сомнительный вывод. Зависнуть может сразу после сброса, до начала манипуляции со светодиодом. Или сразу после начала, во время выдержки длительности импульса, с последующим его выключением. И ещё 100500 вариантов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, jcxz said:

Сомнительный вывод. Зависнуть может сразу после сброса, до начала манипуляции со светодиодом. Или сразу после начала, во время выдержки длительности импульса, с последующим его выключением. И ещё 100500 вариантов.

Сторожевой таймер включается перед светодиодом. Если светодиод включился, то момент включения WDT пройден. Далее должен циклически перезапускаться и моргать. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 минуты назад, ДЕЙЛ сказал:

Сторожевой таймер включается перед светодиодом. Если светодиод включился, то момент включения WDT пройден. Далее должен циклически перезапускаться и моргать. 

И что? А виснет - ДО включения светодиода и инита WDT.

Похоже вы не прочитали мой первый пост. Ещё раз:

3 часа назад, jcxz сказал:

Может просто ваш загрузчик виснет при сбросе, произошедшем от WDT?

Ещё раз перечитайте, особенно выделенное.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 hour ago, jcxz said:

И что? А виснет - ДО включения светодиода и инита WDT.

Похоже вы не прочитали мой первый пост. Ещё раз:

Ещё раз перечитайте, особенно выделенное.

В пошаговой отладке в железе ничего не виснет. При наличии прошивки отладка возвращается в точку останова в начало кода загрузчика. При отсутствии прошивки отладчик куда-то убегает и никогда не возвращается в начало загрузчика. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А контекст проца сбрасывается? Что происходит со счетчиком команд и указателем стека?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...