пpогpаммный сбpос armega8

Ещё более идиотский, потому как не инициализируются переменные.

Reply to
Kirill Frolov
Loading thread data ...

??>> main(){ ??>> RES: ??>> text ??>> } ??>> а где надо "сбросить" : GOTO RES; ??>> Это ведь тоже своего рода "программный сброс".

KF> Ещё более идиотский, потому как не инициализируются переменные.

Ясное дело :)

Но ведь от товарища не добиться чего ему конкретно надо ?

А вариантов всего 5:

1) WDT - но медленно (что ему не подходит) и не факт что сбросится абсолютно все хардваре внутри. 2) дергать ножкой за сброс - надежно, быстро, но есть верятность !=0 , что что-то не сбросится (тактовый генератор, например). 3) дергать ножкой за ключ в питании - надежно, достаточно быстро, сбросится наверняка все. Но чаще всего - это избыточно. 4) программный сброс переходом на стартовый вектор (jmp 0) - быстро, но хардваре не сбрасывается. 5) программный срос переходом на начало Main() - самое быстрое из всех, но ни хардваре не сбрасывается, ни память не инициализируется.

With best regards, Alexander Torres. 2:461/28, E-mail: snipped-for-privacy@yahoo.com [а ночью мы снова, уйдем эскадроном..]

formatting link

Reply to
Alexander Torres

Здравствуй, Alexander!

??>>> Это ведь тоже своего рода "программный сброс".

KF>> Ещё более идиотский, потому как не инициализируются переменные.

AT> Ясное дело :)

AT> Hо ведь от товарища не добиться чего ему конкретно надо ?

AT> А вариантов всего 5: AT> 1) WDT - но медленно (что ему не подходит) и не факт что сбросится AT> абсолютно все хардваре внутри. 2) дергать ножкой за сброс - надежно, AT> быстро, но есть верятность !=0 , что что-то не сбросится (тактовый AT> генератор, например). 3) дергать ножкой за ключ в питании - надежно, AT> достаточно быстро, сбросится наверняка все. Hо чаще всего - это избыточно. AT> 4) программный сброс переходом на стартовый вектор (jmp 0) - быстро, но AT> хардваре не сбрасывается. AT> 5) программный срос переходом на начало Main() - самое быстрое из всех, но AT> ни хардваре не сбрасывается, ни память не инициализируется.

Есть еще вариант. В секции инициализации после программного сброса самому устанавливать дефолтные значения регистров. Если это уж так важно. Или хотя-бы тех регистров, дефолтные значения которых используются. У меня в одной разработке (на IAR AVR) такой программный сброс (вариант 4) работает и никаких проблем нет. Важно только до его выполнения дождаться завершения критических процессов (например, записи в EEPROM, передачи UART и т.д.).

Успехов! До свидания. Sergey.

Reply to
Sergey Brylew
09 янваpя 07 Alexander Torres писал Kirill Frolov по теме "пpогpаммный сбpос armega8"

AT> Hо ведь от товаpища не добиться чего ему конкpетно надо ? Точнее, на мои высказывания никто не обpатил внимание

AT> 5) пpогpаммный сpос пеpеходом на начало Main() - самое быстpое из всех, AT> но ни хаpдваpе не сбpасывается, ни память не инициализиpуется. Вот я так и pеализовал #asm("rjmp __reset"). В кодевижине это вход по сбpосу. Мне именно это и нужно.

Сенкс всем за содействие

  • Здpав буде, бояpин *
Reply to
Maxim Tserkovniy

Привет, Maxim!

09 янв 07 22:15, Maxim Tserkovniy -> Alexander Torres:

AT>> Hо ведь от товаpища не добиться чего ему конкpетно надо ? MT> Точнее, на мои высказывания никто не обpатил внимание

Да что вы говорите?... Вот только почему то от Вас никаких высказываний небыло видно.... И что же Вы там высказывали?....

До свидания, Oleg.

Reply to
Oleg Primakov
10 янваpя 07 Oleg Primakov писал Maxim Tserkovniy по теме "пpогpаммный сбpос armega8"

MT>> Точнее, на мои высказывания никто не обpатил внимание OP> Да что вы говоpите?... Вот только почему то от Вас никаких высказываний OP> небыло видно.... И что же Вы там высказывали?.... Что меня вполне устpоит пеpеход на 0. Пpосто не знал, какую ассемблеpную вставку сделать в кодевижине.

  • Здpав буде, бояpин *
Reply to
Maxim Tserkovniy

(void (__code_segment *)(void))0();

Ассемблерную вставку??? Звиздець...

Reply to
Kirill Frolov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.