Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
18.08.2010, 13:13
|
|
Прохожий
Регистрация: 18.01.2008
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Программный сброс в мега под IAR
Братцы помогите! писал в code vision следующее:
#asm("cli");
#asm("clr R30");
#asm("clr R31");
#asm("ijmp");
и система успешно прыгала на 0000 адрес и перезагружалась.
перевел прогу на IAR - не работает. система просто виснет и срабатывает ресет по watchdog. В чем может быть причина?
|
|
|
|
18.08.2010, 13:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 28.02.2010
Сообщений: 2,297
Сказал спасибо: 53
Сказали Спасибо 461 раз(а) в 392 сообщении(ях)
|
Re: Программный сброс в мега под IAR
попробуйте в CV с внешним (сделать его пустым) startup.asm скомпилировать.По умолчанию-там идёт куча инициализаций.Если тоже перестанет работать, то смотреть , хотя-бы стек инициализировать.
|
|
|
|
18.08.2010, 13:55
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Сообщение от maxik_k42
|
Братцы помогите! писал в code vision следующее:
#asm("cli");
#asm("clr R30");
#asm("clr R31");
#asm("ijmp");
и система успешно прыгала на 0000 адрес и перезагружалась.
перевел прогу на IAR - не работает. система просто виснет и срабатывает ресет по watchdog. В чем может быть причина?
|
Для CV все проще:
#asm("cli");
#asm("jmp __RESET");
Вообще удивительно почему Ваша конструкция не срабатывает. В симуляторе проверяли что и куда прыгает и почему виснет?
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
|
|
|
|
18.08.2010, 14:00
|
|
Супер-модератор
Регистрация: 13.03.2004
Адрес: Minsk
Сообщений: 2,378
Сказал спасибо: 1,956
Сказали Спасибо 1,328 раз(а) в 578 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Тут надо помнить, что JMP в 0 - это еще не Reset, при котором - сбрасываются в дефолтные состояния все регистры. Корректнее это как раз watchdog-ом делать.
__________________
[ жизнь приятна и красива, если выпить литр пива ]
|
|
|
|
18.08.2010, 14:08
|
|
Вид на жительство
Регистрация: 09.10.2009
Сообщений: 356
Сказал спасибо: 21
Сказали Спасибо 64 раз(а) в 46 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Можно код написать которая будет зачищать все память от 0x0000 до RAMEND, но этот способ не применим к регистрам некотой переферии, типа сторожевого пса, клок-перскаллера и т.д.
__________________
Делая дело нужно в него верить на все 100%, иначе неизбежно будут возникать ошибки подпитывающие подсознательное сомнение.
|
|
|
|
18.08.2010, 18:16
|
|
Гражданин KAZUS.RU
Регистрация: 13.06.2005
Адрес: РК г.Павлодар
Сообщений: 866
Сказал спасибо: 99
Сказали Спасибо 216 раз(а) в 140 сообщении(ях)
|
Re: Программный сброс в мега под IAR
в яре asm("jmp 0x0000");
__________________
Не ошибается лишь тот, кто ни чего не делает!
|
|
|
|
18.08.2010, 19:22
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Стремление народа к ассемблеру, похоже, просто неубиваема.
Вот так будет работать для любого процессора.
Код:
|
((void (*)())0x0000)(); // Начать сначала |
|
|
|
|
18.08.2010, 19:31
|
|
Почётный гражданин KAZUS.RU
Регистрация: 10.12.2007
Адрес: Екатеринбург
Сообщений: 2,725
Сказал спасибо: 2,424
Сказали Спасибо 893 раз(а) в 580 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Зато там все понятно. А, это же, какой-то санскрит.
|
|
|
|
18.08.2010, 23:04
|
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Сообщение от baiderin
|
Зато там все понятно. А, это же, какой-то санскрит.
|
Константа (в данном случае 0) приводится к типу "указатель на функцию без параметров и не возвращающая значений". После этого вызывается эта функция.
|
|
|
|
13.09.2010, 18:38
|
|
Прохожий
Регистрация: 27.07.2009
Сообщений: 1
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Программный сброс в мега под IAR
Сообщение от SasaVitebsk
|
Стремление народа к ассемблеру, похоже, просто неубиваема. ![Улыбка](images/smilies/icon_smile.gif)
Вот так будет работать для любого процессора.
Код:
|
((void (*)())0x0000)(); // Начать сначала |
|
Чувак, ты просто контроллерный ГУРУ, сам бы хрен когда додумался. Спс.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:39.
|
|