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

 
 
6 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> Как заполнить свободную память?, программная защита
Petka
сообщение Sep 28 2007, 08:51
Сообщение #31


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Yuriy_AVR @ Sep 27 2007, 19:27) *
Если внешний сброс не применяешь , то через 1 килоом вывод сброса на питание проца , и его же через 0,1 микрофарата об землю.


В который раз повторяю: нежелательно вешать на ресет ёмкости! Почему? А обьясните мне что будет при пропадании питания?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Sep 28 2007, 08:56
Сообщение #32


Гуру
******

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



Цитата(ae_ @ Sep 28 2007, 06:47) *
"...эмулятором проверить для надежности." - это шутка?
Эмулятор даже документированные фичи не все отрабатывает.

Тогда без эмулятора, руками - делов то.
Старая студия (3.56) в дизассемблере выдает тоже SBRS R31, 7.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Sep 28 2007, 09:17
Сообщение #33


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(Petka @ Sep 28 2007, 12:51) *
В который раз повторяю: нежелательно вешать на ресет ёмкости! Почему? А обьясните мне что будет при пропадании питания?

Cработает BOD-если он включен и правильно настроен порог,т.е ничего страшного не будет.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Kuzmi4
сообщение Sep 28 2007, 09:41
Сообщение #34


Гуру
******

Группа: Свой
Сообщений: 3 304
Регистрация: 13-02-07
Из: 55°55′5″ 37°52′16″
Пользователь №: 25 329



2 WHALE - не совсем. я так подозверваю что Petka имел ввиду чт оесли уровень на ресете будет падать медленнее чем на питании МК , то мы потом поимеем геморрой...
Go to the top of the page
 
+Quote Post
Petka
сообщение Sep 28 2007, 09:51
Сообщение #35


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

Группа: Свой
Сообщений: 1 453
Регистрация: 23-08-05
Пользователь №: 7 886



Цитата(Kuzmi4 @ Sep 28 2007, 13:41) *
2 WHALE - не совсем. я так подозверваю что Petka имел ввиду чт оесли уровень на ресете будет падать медленнее чем на питании МК , то мы потом поимеем геморрой...

кроме того. ресет на защищён диодом на питание. т.к. ресет используется для высоковольтного программирования. итого, что будет проиходить с контроллером, когда у него уровень на ресете выше питания? потом. если питание пропадало на время, меньшее чем время разряда конденсатора, то на контроллер не придёт сигнал ресета =( хотя должен. на BOD надейся, а сам не плошай.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 28 2007, 10:18
Сообщение #36


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(Yuriy_AVR @ Sep 27 2007, 23:57) *
Дело в том , что у AVRов выборка команды производится за 1 такт генератора , но за 4 внутренних такта , которые формируются специальной внутренней аппаратной схемой


Это откуда же такое тайное знание? Вы видели исходник? wink.gif


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 28 2007, 10:35
Сообщение #37


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(aaarrr @ Sep 28 2007, 02:27) *
Вставлю-ка я свои 5 копеек:
Как уже упоминалось ранее, значение 0xFFFF - это код команды SBRS R31, 7. Но никто почему-то не обратил внимания на то, что при R31.7=1 процессор может и не выйти на нулевой адрес.

Вы имеете в виду, выход на адрес 0x0001 вместо 0x0000. Да действительно возможно, но не проще ли будет по адресу 0x0001 поставить JMP туда же куда делается в инструкции по адресу 0x0000. Тем более вы упускаете тот факт, что процессор может прыгнуть в несуществующую область памяти, при чтении которой возвращается тот же 0xFFFF, вероятность прыжка в несуществующую область памяти прямопропорциональна количеству оной, например для M16 вероятность прыжка в несуществующую область памяти = (128 - 16)/128 = 7/8 = 0.875

Цитата(zltigo @ Sep 28 2007, 10:59) *
В принципе до этого эффекта Watchdog в этом софте размером порядка 300K даже не активировался. Давить программные ошибки Watchdog-ом чистый моветон sad.gif

Позволю себе несогласиться с вашим выводом.
Про моветон можете говорить в форуме по АРМ, у которого имеется возможность обработать или "задампить" крашевую ситуацию (DABT/PABT/UNDF). У AVR'ра нет обработчиков исключений и в промышленных изделиях только WDT может подстраховать в случае серьезного программного сбоя. WDT в AVR можно рассматривать как обработчик исключений. Считаю, что конечный продукт на AVR с отключенным WDT - дилетанство, такое же как если в изделии оставить чип в отладочном режиме (фуз OCDEN).
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 28 2007, 10:49
Сообщение #38


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(defunct @ Sep 28 2007, 13:35) *
Считаю, что конечный продукт на AVR с отключенным WDT дилетанство...

Речь шла не о том использовать или нет Watchdog - использовать, а о том, что латать Watcdog-ом программные ошибки, а не фатальные сбои аппаратуры неправильно - софтово система должна быть живучей, обрабатывающей нештатные ситуации и самовыбирающейся из всевозможных положений. Естественно это стоит трудов, времени и кода....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 28 2007, 11:07
Сообщение #39


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zltigo @ Sep 28 2007, 13:49) *
Речь шла не о том использовать или нет Watchdog - использовать, а о том, что латать Watcdog-ом программные ошибки, а не фатальные сбои аппаратуры неправильно - софтово система должна быть живучей, обрабатывающей нештатные ситуации и самовыбирающейся из всевозможных положений. Естественно это стоит трудов, времени и кода....

Тогда вы возможно не так поняли мой первый пост.
Никто никогда не застрахован от программных ошибок, которые часто проявляются в полевых условиях, а не на стадии цикла тестирования. В ARM с отловом таких ошибок проще - по факту abort'a, сразу есть и место ошибки и стек (в AVR только по WDT). Отлаживать и устранять приходится по дампу памяти снятому в полевых условиях - такой процесс иногда затягивается на месяцы, и пока проблема устраняется, WDT скрывает проблему от потребителя (системе ж надо как-то работать), но он ни в коем случае не скрывает проблему от разработчика.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 28 2007, 11:18
Сообщение #40


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(defunct @ Sep 28 2007, 14:35) *
Вы имеете в виду, выход на адрес 0x0001 вместо 0x0000. Да действительно возможно, но не проще ли будет по адресу 0x0001 поставить JMP туда же куда делается в инструкции по адресу 0x0000. Тем более вы упускаете тот факт, что процессор может прыгнуть в несуществующую область памяти, при чтении которой возвращается тот же 0xFFFF, вероятность прыжка в несуществующую область памяти прямопропорциональна количеству оной, например для M16 вероятность прыжка в несуществующую область памяти = (128 - 16)/128 = 7/8 = 0.875


lol.gif Допустим, для MEGA16 PC "13-bit wide", как пишут на несравненном атмеле.
Я так понимаю: старшие биты уже в нулях. Далее, пусть глюк пошел по адресной шине.
Ну и что - будет не 0xFFFF, а выборка случайной команды по модулю 2^16 или 2^13, т.е. конкретный глюк.
Таким образом, в прямую пропорциональность вероятности прыжка... не верю
Go to the top of the page
 
+Quote Post
Yuriy_AVR
сообщение Sep 28 2007, 11:22
Сообщение #41


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 12-01-07
Из: Крым
Пользователь №: 24 378



Цитата(Petka @ Sep 28 2007, 12:51) *
В который раз повторяю: нежелательно вешать на ресет ёмкости! Почему? А обьясните мне что будет при пропадании питания?

sad.gif
Обьясняю :
Если вы рассмотрите структуру порта , то увидите что каждый порт защищён защитными диодами , причём один диод на землю анодом ( защита от отрицательных напряжений ) , другой диод катодом об питание процессора . Так вот при выключении питания верхний диод будет смещён в прямом направлении и разрядит ёмкость на питание . . . Непойму в чём проблема ? Неужели это надо обьяснять ?
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 28 2007, 11:38
Сообщение #42


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(_Pasha @ Sep 28 2007, 14:18) *
для MEGA16 PC "13-bit wide"

точно. упустил.

Цитата
Таким образом, в прямую пропорциональность вероятности прыжка... не верю
да ее нет. Но предложение добавить команду перехода по адресу 0x0001 остается в силе, тем более для МК с >=16k флеш, это можно сделать не жертвуя вектором INT0.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Sep 28 2007, 11:39
Сообщение #43


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(Yuriy_AVR @ Sep 28 2007, 14:22) *
sad.gif
Обьясняю :
Если вы рассмотрите структуру порта , то увидите что каждый порт защищён защитными диодами , причём один диод на землю анодом ( защита от отрицательных напряжений ) , другой диод катодом об питание процессора . Так вот при выключении питания верхний диод будет смещён в прямом направлении и разрядит ёмкость на питание . . . Непойму в чём проблема ? Неужели это надо обьяснять ?


Проблема в том, что на сбросе этого диода НЕТ.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Yuriy_AVR
сообщение Sep 28 2007, 11:45
Сообщение #44


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 12-01-07
Из: Крым
Пользователь №: 24 378



Цитата(Rst7 @ Sep 28 2007, 14:18) *
Это откуда же такое тайное знание? Вы видели исходник? wink.gif

Достаточно хотя бы посмотреть в документации на любой AVR тактирование ALU , и попытаться разобраться как вообще происходит работа за 1 такт . MSC-51 делили такты на 12 от нечего делать ? Сейчас MSC-51 как правило делят на 4 , или поступают аналогично AVR.
Если верите больше своим глазам , то можите поставить эксперимент :
берёте AVR , запускаете на 16 MHz например . Затем вместо 16 MHz запаивает например 27 MHz ( можно найти кристаллы , которые запустятся на этой частоте ) . Так вот работать они будут медленнее чем на 16 MHz . Почему надеюсь обьяснять ненадо ?

Цитата(Rst7 @ Sep 28 2007, 15:39) *
Проблема в том, что на сбросе этого диода НЕТ.

Да , ошибся , извиняюсь . Так а кто его мешает поставить ? ( желательно Шоттки )
Go to the top of the page
 
+Quote Post
defunct
сообщение Sep 28 2007, 11:47
Сообщение #45


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Yuriy_AVR @ Sep 28 2007, 14:45) *
Затем вместо 16 MHz запаивает например 27 MHz ( можно найти кристаллы , которые запустятся на этой частоте ) . Так вот работать они будут медленнее чем на 16 MHz . Почему надеюсь обьяснять ненадо ?

Думаю надо. Загадки это хорошо, но коль скоро вы подняли тактовую до 27Mhz и оно у вас как-то работает, (fully static логика) работать должно быстрее либо вообще никак.
Go to the top of the page
 
+Quote Post

6 страниц V  < 1 2 3 4 5 > » 
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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