|
"Правильный" софт ресет, который почти как хард ресет |
|
|
|
Nov 12 2008, 13:57
|
Частый гость
 
Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416

|
Добрый день. Подскажите пожалуйста, как правильно сделать софтресет, а то возникла такая проблема:
Есть прибор, который по усарту может получить команду сброса, после которой должен соответсвенно сбросится. Программа написана на асме, и когда я получаю эту команду, то просто jmpом прыгаю в самый первый байт кода. После этого у меня опять происходит инициализация устройства и программа как бы начинается заново. Всё было хорошо года два, пока сегодня не заметили странную штуку - после такого сброса показания прибора зашкаливают, а потом всё опять приходит в норму. Это в принципе недопустимо.
Я так подозреваю, что дело в стеке, т.к. там на этот момент могут храниться несколько точек возврата ну и какие-то левые значения, из-за которых начальные значения являются некорректныи. Посему хочу спросить - как сбросить стек? Как поведёт себя перифирия после повторной инициализации?
|
|
|
|
|
 |
Ответов
|
Nov 14 2008, 17:46
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
конечно, читая даташит, становится понятно лишь то, что там написано. а что не написано - можно домыслить. я не утверждаю, что сброс у атмела многоэтапный, но если это так, то кто даст гарантию, что сигнал RST не играет роль сигнала CS для микросхем памяти? т.е. наличие должного уровня RST лишь разрешает работу многокаскадной схемы сброса? значит, если его убрать раньше, чем процесс дойдет до финала - разрешение исчезнет, и схема останется в каком-то промежуточном состоянии. простая аналогия: сдвиговый регистр с третьим состоянием выходов: пока есть OE (читай RST), инфа в регистре движется, убрали ОЕ - и на выходах неизвестно что... повторяю: это лишь мои домыслы, но разве они не логичны?
Сообщение отредактировал ARV - Nov 14 2008, 17:48
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
|
Nov 14 2008, 18:49
|

Гуру
     
Группа: Свой
Сообщений: 2 076
Регистрация: 10-09-08
Пользователь №: 40 106

|
Цитата(ARV @ Nov 14 2008, 21:46)  конечно, читая даташит, становится понятно лишь то, что там написано. а что не написано - можно домыслить. я не утверждаю, что сброс у атмела многоэтапный, но если это так, то кто даст гарантию, что сигнал RST не играет роль сигнала CS для микросхем памяти? т.е. наличие должного уровня RST лишь разрешает работу многокаскадной схемы сброса? значит, если его убрать раньше, чем процесс дойдет до финала - разрешение исчезнет, и схема останется в каком-то промежуточном состоянии. простая аналогия: сдвиговый регистр с третьим состоянием выходов: пока есть OE (читай RST), инфа в регистре движется, убрали ОЕ - и на выходах неизвестно что... повторяю: это лишь мои домыслы, но разве они не логичны?  Ваши мысли кажутся мне вполне логичными. Но Цитата конечно, читая даташит, становится понятно лишь то, что там написано. а что не написано - можно домыслить. Полный пипец! И самое главное что проц будет работать именно так как домыслит каждый из читающих? Я всегда предполагал что даташит для того и существует чтобы домысливать ничего не нужно было! Вообщето речь шла о том что если у ATMEGA8 любую ногу порта соединить с ресет и перевести эту ногу в 0. Произойдет ли сброс. Причем тут CS,OE и сдвиговый регистр с третьим состоянием выходов???
|
|
|
|
|
Nov 14 2008, 19:34
|

Профессионал
    
Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581

|
Цитата(zombi @ Nov 14 2008, 21:49)  Полный пипец! И самое главное что проц будет работать именно так как домыслит каждый из читающих? Я всегда предполагал что даташит для того и существует чтобы домысливать ничего не нужно было! конечно нет. но случайно кто-то может своими домыслами попасть в точку. если всюду рекомендуют использовать WDT для софт-сброса и не рекомендуют заводить сигнал с другого пина - этому долно быть какое-то обяснение? вы пытаетесь домыслить, что сброс пройдет (и приводите какие-то домыслы-доказательства этого), я наоборот - и тоже вещаю благую чушь  опыт - критерий истины - заведите порт на RST и попробуйте вообще программу запустить... ну а потом - пересбросить... и тогда, возможно, забрезжит свет истины...
--------------------
Я бы взял частями... но мне надо сразу.
|
|
|
|
Сообщений в этой теме
UniBomb "Правильный" софт ресет Nov 12 2008, 13:57 Igor26 А почему бы сделать сброс по WDT? Получив команду ... Nov 12 2008, 14:02 UniBomb Цитата(Igor26 @ Nov 12 2008, 17:02) А поч... Nov 12 2008, 14:09 МП41 Или соединить один из выводов через диод с выводом... Nov 12 2008, 14:15 Сергей Борщ Цитата(МП41 @ Nov 12 2008, 17:15) Или сое... Nov 12 2008, 14:32 UniBomb МП41, аппаратно к сожалению уже ничего не сделать,... Nov 12 2008, 14:20 МП41 Организовать цикл N-раз (по размеру SRAM-$60)... Nov 12 2008, 14:28 МП41 Естественно процедурой очистку оформлять не надо и... Nov 12 2008, 14:37 Сергей Борщ Цитата(МП41 @ Nov 12 2008, 17:37) Речь ид... Nov 12 2008, 17:34  zombi Цитата(Сергей Борщ @ Nov 12 2008, 21:34) ... Nov 12 2008, 17:55   Сергей Борщ Цитата(zombi @ Nov 12 2008, 20:55) ну и к... Nov 12 2008, 19:42    zombi Цитата(Сергей Борщ @ Nov 12 2008, 23:42) ... Nov 13 2008, 00:53     ARV Цитата(zombi @ Nov 13 2008, 03:53) Полной... Nov 13 2008, 07:52      zombi Цитата(ARV @ Nov 13 2008, 11:52) убрать R... Nov 14 2008, 15:23       Сергей Борщ Цитата(zombi @ Nov 14 2008, 17:23) А дат... Nov 14 2008, 15:56        zombi Цитата(Сергей Борщ @ Nov 14 2008, 19:56) ... Nov 14 2008, 16:14         muravei Цитата(zombi @ Nov 14 2008, 19:14) Там на... Nov 14 2008, 18:46   aesok Цитата(zombi @ Nov 12 2008, 21:55) Должно... Nov 12 2008, 22:20    VladimirYU Цитата(aesok @ Nov 13 2008, 01:20) Вот чт... Nov 13 2008, 08:46 ARV стек в данном случае ни при чем. переход на начало... Nov 12 2008, 14:51 МП41 Так перед переходом в начало программы следует пре... Nov 12 2008, 14:59 Vlad219i Цитата(UniBomb @ Nov 12 2008, 17:57) jmpо... Nov 12 2008, 15:00 МП41 Цитата(Vlad219i @ Nov 12 2008, 18:00) ... Nov 12 2008, 15:04  Vlad219i Цитата(МП41 @ Nov 12 2008, 19:04) Так обы... Nov 12 2008, 15:37 UniBomb Всем спасибо, сделал через WDT - вроде пока работа... Nov 12 2008, 15:03 domowoj Цитата(UniBomb @ Nov 12 2008, 20:57) посл... Nov 12 2008, 15:32 singlskv Обсуждалось уже очень много раз.
ИМХО:
- если нуже... Nov 12 2008, 20:46 Artem_Petrik С остановом периферии могут быть сюрпризы. Както р... Nov 12 2008, 21:39 singlskv Цитата(Artem_Petrik @ Nov 13 2008, 00:39)... Nov 12 2008, 21:50  Artem_Petrik Цитата(singlskv @ Nov 13 2008, 01:50) А В... Nov 12 2008, 22:52 МП41 Многоэтапный сброс будет необратим, если он вообще... Nov 14 2008, 16:21 zombi Цитата(МП41 @ Nov 14 2008, 20:21) Многоэт... Nov 14 2008, 17:13 aaarrr Ну, добавьте RC и будет хоть 1.5мкс, хоть 15мс. То... Nov 14 2008, 19:23 zombi Цитата(aaarrr @ Nov 14 2008, 23:23) Ну, д... Nov 14 2008, 19:27  aaarrr Цитата(zombi @ Nov 14 2008, 22:27) Опять ... Nov 14 2008, 19:31   zombi Цитата(aaarrr @ Nov 14 2008, 23:31) Поясн... Nov 14 2008, 19:39    ARV Цитата(zombi @ Nov 14 2008, 22:39) Честно... Nov 14 2008, 19:43     Огурцов Atmel пишет про WDT. Не помню, было ли где про то,... Nov 14 2008, 20:12      singlskv Цитата(Огурцов @ Nov 14 2008, 23:12) Atme... Nov 14 2008, 20:30    zltigo Цитата(zombi @ Nov 14 2008, 22:39) Честно... Nov 14 2008, 20:09     zombi Цитата(zltigo @ Nov 15 2008, 00:09) Moder... Nov 14 2008, 20:18 singlskv Цитата(aaarrr @ Nov 14 2008, 22:23) Ну, д... Nov 14 2008, 20:06 IgorKossak Предлагаю пользователям вернуться в рамки культурн... Nov 14 2008, 20:13
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|