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

 
 
> "Правильный" софт ресет, который почти как хард ресет
UniBomb
сообщение Nov 12 2008, 13:57
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 148
Регистрация: 26-05-05
Пользователь №: 5 416



Добрый день. Подскажите пожалуйста, как правильно сделать софтресет, а то возникла такая проблема:

Есть прибор, который по усарту может получить команду сброса, после которой должен соответсвенно сбросится. Программа написана на асме, и когда я получаю эту команду, то просто jmpом прыгаю в самый первый байт кода. После этого у меня опять происходит инициализация устройства и программа как бы начинается заново. Всё было хорошо года два, пока сегодня не заметили странную штуку - после такого сброса показания прибора зашкаливают, а потом всё опять приходит в норму. Это в принципе недопустимо.

Я так подозреваю, что дело в стеке, т.к. там на этот момент могут храниться несколько точек возврата ну и какие-то левые значения, из-за которых начальные значения являются некорректныи. Посему хочу спросить - как сбросить стек? Как поведёт себя перифирия после повторной инициализации?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Nov 14 2008, 19:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Ну, добавьте RC и будет хоть 1.5мкс, хоть 15мс. Только зачем такие извращения, если можно просто задействовать WatchDog?
Go to the top of the page
 
+Quote Post
zombi
сообщение Nov 14 2008, 19:27
Сообщение #3


Гуру
******

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



Цитата(aaarrr @ Nov 14 2008, 23:23) *
Ну, добавьте RC и будет хоть 1.5мкс, хоть 15мс. Только зачем такие извращения, если можно просто задействовать WatchDog?

Опять двадцатьпять. А прочитать тему с начала слабо?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Nov 14 2008, 19:31
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zombi @ Nov 14 2008, 22:27) *
Опять двадцатьпять. А прочитать тему с начала слабо?

Поясните свою реплику, будьте любезны.
Go to the top of the page
 
+Quote Post
zombi
сообщение Nov 14 2008, 19:39
Сообщение #5


Гуру
******

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



Цитата(aaarrr @ Nov 14 2008, 23:31) *
Поясните свою реплику, будьте любезны.

Обсуждалса WDT уже

Цитата(ARV @ Nov 14 2008, 23:34) *
конечно нет. но случайно кто-то может своими домыслами попасть в точку.

если всюду рекомендуют использовать WDT для софт-сброса и не рекомендуют заводить сигнал с другого пина - этому долно быть какое-то обяснение? вы пытаетесь домыслить, что сброс пройдет (и приводите какие-то домыслы-доказательства этого), я наоборот - и тоже вещаю благую чушь smile.gif опыт - критерий истины - заведите порт на RST и попробуйте вообще программу запустить... ну а потом - пересбросить... и тогда, возможно, забрезжит свет истины...

Честно говоря мне абсолютно по-уй будет оно работать или нет
Go to the top of the page
 
+Quote Post
ARV
сообщение Nov 14 2008, 19:43
Сообщение #6


Профессионал
*****

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



Цитата(zombi @ Nov 14 2008, 22:39) *
Честно говоря мне абсолютно по-уй будет оно работать или нет
а ваши посты - это просто ради красного словца? разговор поддержать, так сказать? wink.gif
P.S. вообще-то, мне тоже безразлично все это...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Nov 14 2008, 20:12
Сообщение #7


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Atmel пишет про WDT. Не помню, было ли где про то, что нельзя использовать один из портов, заведенный на ресет. Вроде бы было, что можно. Иначе действительно получается потенциальный баг. Сброс должен быть полный или не быть вообще, скажем в зависимости от длительности импулься, а не какой-то там наполовину. А с jmp 0 давно понятно - jmp - это как бы и не ресет совсем. Вообще, не понятно, почему Atmel не предусмотрели еще один источник сброса - программный. Хотя это не единственное, что не понятно.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 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
- - ARV   конечно, читая даташит, становится понятно лишь то...   Nov 14 2008, 17:46
|- - zombi   Цитата(ARV @ Nov 14 2008, 21:46) конечно,...   Nov 14 2008, 18:49
|- - ARV   Цитата(zombi @ Nov 14 2008, 21:49) Полный...   Nov 14 2008, 19:34
|||- - 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


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

 


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


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