|
Как программно сгенерить ресет? |
|
|
|
 |
Ответов
|
May 26 2008, 17:02
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(zltigo @ May 26 2008, 17:58)  Это называется возвратисть туда, незнаю куда, но может куда и попадешь. Нет, это к работающей собаке впридачу. Вот cli() только картину портит не-сишностью. Цитата(singlskv @ May 26 2008, 19:11)  Код __asm__ __volatile__("ldi r30,0\n\t"\ "ldi r31,0\n\t"\ "ijmp"); Другой вариант, если целый стек  Код __asm__ __volatile__("clr r1\n\t"\ "push r1\n\t"\ "push r1\n\t"\ "ret"); 2singlskv: А скажите пожалуйста, __bad_interrupt всегда был jmp 0 ?
|
|
|
|
|
May 26 2008, 17:20
|

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

|
Цитата(_Pasha @ May 26 2008, 19:02)  Нет, это к работающей собаке впридачу. Вот cli() только картину портит не-сишностью. Картину "портит" возврат фиг знает куда, где и прерывания,между прочим могут снова разрешены, вещи типа __disable_interrupt() уже вполне "сишные" для ембедеров  . Еще раз напоминаю, что переход по нулевому адресу не есть Reset - перефирия не в исходном состоянии. Особых альтернатив Watchdog-у в этом отношении нет, а тупое соединение ножки с ресетом (если без ресетчика), вообще делать нельзя ввиду непредсказуемой длительности импульса сброса.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
May 26 2008, 17:49
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(zltigo @ May 26 2008, 21:20)  Картину "портит" возврат фиг знает куда, где и прерывания,между прочим могут снова разрешены, Не верю WinAVR-20071221 Код 000002ac <.do_clear_bss_start>: 2ac: a9 30 cpi r26, 0x09; 9 2ae: b1 07 cpc r27, r17 2b0: e1 f7 brne .-8 ; 0x2aa <.do_clear_bss_loop> 2b2: 0e 94 9f 07 call 0xf3e; 0xf3e <main> 2b6: 0c 94 28 23 jmp 0x4650; 0x4650 <_exit>
000002ba <__bad_interrupt>: 2ba: 0c 94 00 00 jmp 0; 0x0 <__vectors> ................................................................................ ..... 00004650 <_exit>: 4650: ff cf rjmp .-2 ; 0x4650 <_exit> Цитата(aesok @ May 26 2008, 21:21)  У меня '((void(*)(void))0)();' всегда компилиться Попробовал - компилится без проблем. Код avr-gcc.exe -mmcu=atmega640 -Wall -gdwarf-2 -std=gnu99 -DF_CPU=16000000UL -O2 -fsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -MD -MP -MT plc4_v02.o -MF dep/plc4_v02.o.d -c ../plc4_v02.c
|
|
|
|
|
May 26 2008, 18:22
|

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

|
Цитата(_Pasha @ May 26 2008, 19:49)  Не верю  Что верю-не верю? Зависит о того, как реализовали startup. Я никогда call main не делаю, бо совсем незачем. А оно это надо приключения на свою голову искать причем абсолютно без какой-бы то ни было надобности??? Цитата(singlskv @ May 26 2008, 20:06)  // останавливаем всю переферию SysTimerStop(); AdcStop(); SpiStop(); PwmStop(); PortsReset(); I2cStop(); Ну и зачем весь этот лишний код? Зачем помнить, что после модификации-добавления надо еще добавить stop()? Watcdog-и есть везде, зачастую есть возможность спровоцировать Watcdog досрочно.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Karl Как программно сгенерить ресет? Jul 26 2005, 10:52 MALLOY2 1) можнро через вачдог если он есть
2) а можно ... Jul 26 2005, 11:27 Rock Цитата(MALLOY2 @ Jul 26 2005, 15:27) 1) ... May 21 2008, 13:52  Палыч Цитата(Rock @ May 21 2008, 16:52) В WinAV... May 21 2008, 14:20  Сергей Борщ Цитата(Rock @ May 21 2008, 16:52) В WinA... May 21 2008, 14:23   IgorKossak Цитата(Сергей Борщ @ May 21 2008, 17:23) ... May 21 2008, 19:05    zltigo Цитата(IgorKossak @ May 21 2008, 21:05) Н... May 21 2008, 19:27     Rock Цитата(zltigo @ May 21 2008, 23:27) ((voi... May 26 2008, 12:10      Сергей Борщ Цитата(Rock @ May 26 2008, 15:10) А вот ... May 26 2008, 12:15       Rock Цитата(Сергей Борщ @ May 26 2008, 16:15) ... May 26 2008, 12:21        aesok Цитата(Rock @ May 26 2008, 16:21) 1361: ... May 26 2008, 17:21         Rock Цитата(aesok @ May 26 2008, 21:21) Пожалу... May 26 2008, 17:49          aesok Цитата(Rock @ May 26 2008, 21:49) WinAVR-... May 26 2008, 18:01           Rock Цитата(aesok @ May 26 2008, 22:01) Извини... May 26 2008, 18:13            aesok Цитата(Rock @ May 26 2008, 22:13) Код8... May 26 2008, 18:51             Rock Цитата(aesok @ May 26 2008, 22:51) avr-gc... May 26 2008, 19:16              aesok Цитата(Rock @ May 26 2008, 23:16) уточнит... May 26 2008, 19:27               singlskv Цитата(aesok @ May 26 2008, 23:27) Потому... May 26 2008, 20:26                aesok Цитата(singlskv @ May 27 2008, 00:26) ну ... May 26 2008, 21:03                 singlskv Цитата(aesok @ May 27 2008, 01:03) Давайт... May 26 2008, 21:16                  defunct Цитата(singlskv @ May 27 2008, 00:16) а 1... May 26 2008, 21:36                   singlskv Цитата(defunct @ May 27 2008, 01:36) пино... May 26 2008, 21:51 nml Цитата(Karl @ Jul 26 2005, 13:52)Контроллер м... Jul 26 2005, 11:34 Karl Цитата(nml @ Jul 26 2005, 16:34)Цитата(Karl ... Jul 27 2005, 03:22 lolikandr В своё время удовлетворился таким решением - глоба... Jul 28 2005, 06:18 IgorKossak Цитата(lolikandr @ Jul 28 2005, 09:18)В своё ... Jul 29 2005, 07:04 lolikandr ЦитатаНаверное, под важными регистрами имелась в в... Jul 29 2005, 13:26 MrYuran Ещё один способ:
пишем ручками стартап со всеми не... May 21 2008, 14:04 kada Работающий пример на IARe:
Код// Программный сбро... May 21 2008, 16:39 Палыч А, не выдаёт ли транслятор какого-либо сообщения п... May 26 2008, 12:47 Rock Цитата(Палыч @ May 26 2008, 16:47) А, не ... May 26 2008, 12:51 VladimirYU Цитата(Палыч @ May 26 2008, 16:47) АА, не... May 26 2008, 12:52 Палыч Цитата(Rock @ May 26 2008, 15:51) нет... May 26 2008, 12:57 Rock Цитата(Палыч @ May 26 2008, 16:57) Странн... May 26 2008, 13:05 _Pasha Есть еще
Кодint main(void)
{
................ May 26 2008, 13:16 Rock Цитата(_Pasha @ May 26 2008, 17:16) Есть ... May 26 2008, 13:45 zltigo Цитата(_Pasha @ May 26 2008, 15:16) Есть ... May 26 2008, 13:58  Rock Цитата(zltigo @ May 26 2008, 17:58) Это н... May 26 2008, 14:02 Палыч Сейчас попробовал эту конструкцию в WinAVR - всё х... May 26 2008, 13:50 Rock Цитата(Палыч @ May 26 2008, 17:50) Сейчас... May 26 2008, 13:52  Палыч Цитата(Rock @ May 26 2008, 16:52) какую? ... May 26 2008, 14:19 singlskv Щаз я Вам все объясню
Дело в том что у WinAVR ес... May 26 2008, 15:11 zltigo Цитата(singlskv @ May 26 2008, 17:11) Дел... May 26 2008, 15:51 defunct Цитата(singlskv @ May 26 2008, 18:11) ито... May 26 2008, 16:03  Палыч А, ведь точно - прав singlskv!
Цитата(defunct... May 26 2008, 16:14   defunct Цитата(Палыч @ May 26 2008, 19:14) Наверн... May 26 2008, 16:17  singlskv Цитата(defunct @ May 26 2008, 20:03) А по... May 26 2008, 16:23 singlskv Да, ну и конечно стоит еще добавить вариант которы... May 26 2008, 16:00    singlskv Цитата(zltigo @ May 26 2008, 22:22) Ну и ... May 26 2008, 18:36  singlskv Цитата(zltigo @ May 26 2008, 21:20) вещи ... May 26 2008, 18:06   aesok Цитата(singlskv @ May 26 2008, 22:06) А 2... May 26 2008, 18:11 singlskv Цитата(_Pasha @ May 26 2008, 21:02) 2sing... May 26 2008, 19:14 _Pasha Цитата(singlskv @ May 26 2008, 23:14) НО,... May 27 2008, 03:45 singlskv По мотивам этой темы озадачился вопросом кодогенер... May 27 2008, 18:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|