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

BF-533 перезагрузка

С удивлением обнаружил, что ровно каждый второй раз при инициировании перезагрузки BF-533 следующим способом:

 

P0.L  = LO(SWRST);
P0.H  = HI(SWRST);
R0.L  = 0x0007;
W[P0] = R0;
ssync;
P0.L  = LO(SWRST);
P0.H  = HI(SWRST);
R0.L  = 0x0000;
W[P0] = R0;
ssync;
raise 1;
ssync;

перезагрузка не выполняется! Гружусь из Atmel SPI DataFlash. Что интересно, активность на линиях флешки присутствует в обоих случаях, но во втором случае очень короткая. Кроме того, во втором случае софтина ведет себя так, как будто ее не перезагрузили, а только перезапустили.

Может кто сталкивался? :05:

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


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

На всякий случай, если кому пригодится, выяснил следующее.

После установки сброса периферии надо вызывать ДВА ssync-а, А НЕ ОДИН как написано в примере от AD. Тогда все работает.

Так что конечная версия:

P0.L  = LO(SWRST); // Устанавливаем сброс периферии
P0.H  = HI(SWRST);
R0.L  = 0x0007;
W[P0] = R0;
ssync;
ssync;
P0.L  = LO(SWRST); // Снимаем сброс периферии
P0.H  = HI(SWRST);
R0.L  = 0x0000;
W[P0] = R0;
ssync;
raise 1; // Инициируем сброс ядра

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


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

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

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

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

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

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

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

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

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

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