Pathfinder 0 28 мая, 2007 Опубликовано 28 мая, 2007 · Жалоба С удивлением обнаружил, что ровно каждый второй раз при инициировании перезагрузки 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: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pathfinder 0 7 июня, 2007 Опубликовано 7 июня, 2007 · Жалоба На всякий случай, если кому пригодится, выяснил следующее. После установки сброса периферии надо вызывать ДВА 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; // Инициируем сброс ядра Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Itch 0 7 июня, 2007 Опубликовано 7 июня, 2007 · Жалоба А в Errate этого нету? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pathfinder 0 8 июня, 2007 Опубликовано 8 июня, 2007 · Жалоба в Errataх нету Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться