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

 
 
> Детектирование резета в 89S52, Что происходит с ОЗУ при резете?
paskal
сообщение Oct 14 2008, 16:57
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



В системе на AT89S52 требуется различать по какой причине прошел старт процессора - по включению питания, или же после подачи активного сигнала на резет. Для этого в определенный участок ОЗУ пишу определенную сигнатуру, при старте сравниваю её с образцом. Если совпадает - был резет. До сих пор это нормально работало. Но вот понадобилось модифицировать программу, и обнаружилась удивительная вещь - метод работает в зависимости от того в каком адресе ОЗУ располагаю сигнатуру.
Вопрос следующий: неужели при резете ОЗУ может меняться? Может какаято микропрограмма, скрытая от пользователя, скажем та что программирует по SPI процессор, работает во время резета и пользуется при этом ОЗУ?
А может в 89S52 есть другой метод обнаружения старта по резету?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
koyodza
сообщение Oct 14 2008, 18:26
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 213
Регистрация: 28-02-07
Из: Киев
Пользователь №: 25 744



Цитата(paskal @ Oct 14 2008, 19:57) *
В системе на AT89S52 требуется различать по какой причине прошел старт процессора - по включению питания, или же после подачи активного сигнала на резет. Для этого в определенный участок ОЗУ пишу определенную сигнатуру, при старте сравниваю её с образцом. Если совпадает - был резет. До сих пор это нормально работало. Но вот понадобилось модифицировать программу, и обнаружилась удивительная вещь - метод работает в зависимости от того в каком адресе ОЗУ располагаю сигнатуру.
Вопрос следующий: неужели при резете ОЗУ может меняться? Может какаято микропрограмма, скрытая от пользователя, скажем та что программирует по SPI процессор, работает во время резета и пользуется при этом ОЗУ?
А может в 89S52 есть другой метод обнаружения старта по резету?

Никто, кроме пользовательской программы, ОЗУ не модифицирует. Но пользовательская программа, кроме всего прочего, ещё и из стартапа состоит, так что внимательно его просмотрите. Ну и учтите, что в 51 регистры находятся в озу - может, вы сигнатуру неудачно расположили, и она с регистрами пересекается.
Вообще маловато исходных данных: программа на С? Стартап стандартный? Где сигнатура портится, а где нет?
А то больше на конкурс телепатов похоже.
Go to the top of the page
 
+Quote Post
paskal
сообщение Oct 14 2008, 19:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 352
Регистрация: 29-10-06
Из: Тула
Пользователь №: 21 769



Цитата(koyodza @ Oct 14 2008, 22:26) *
Никто, кроме пользовательской программы, ОЗУ не модифицирует. Но пользовательская программа, кроме всего прочего, ещё и из стартапа состоит, так что внимательно его просмотрите. Ну и учтите, что в 51 регистры находятся в озу - может, вы сигнатуру неудачно расположили, и она с регистрами пересекается.
Вообще маловато исходных данных: программа на С? Стартап стандартный? Где сигнатура портится, а где нет?
А то больше на конкурс телепатов похоже.

Я проверял все что мог, в том числе и то что вы указали.
Программа на асме. Тест идет практически сразу, уже после всякие инициализации, т.е. стартап помешать не может. Все переменные после 20-го адреса, регистры тоже отпадают. Сигнатура в 1-й половине ОЗУ. Сбоит если передвинуть адрес хоть на несколько байт. Кроме того моя программа сама попортить сигнатуру не может. Я отвел под неё нужный кусок памяти, и другие переменные залезть в неё не должны, а иначе и программа не работала бы.
Так что я сам сильно удивлён, ведь я такой приём с проверкой резета проводил несколько раз и раньше, но никаких глюков не наблюдал.
Могу ещё грешить на некий уникальный глюк процессора, т.к. для проверки имею в наличии один экземпляр платы.
Go to the top of the page
 
+Quote Post



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

 


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


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