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

 
 
> Как сделать перезагрузку программно?, сходу не смог понять
ivainc1789
сообщение Jul 8 2007, 20:00
Сообщение #1


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

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



В многофайловой Си необходимо в одном из файлов по результатам выполнения функции выполнить перезагрузку контроллера AVR. Т.е. перейти по адресу 0h. Что-то сходу не могу разобраться как грамотно это сделать?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
singlskv
сообщение Jul 9 2007, 10:44
Сообщение #2


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата
Можно по подобней, аппарвтный сброс еще никто не запрещал, ИМХО.

Вот официальное мнение Atmel по этому вопросу:

Software Reset
Question
How can I reset my AVR through software?

Answer
If you want to perform a software reset of your AVR you should use the internal Watchdog. Simply enable it and let it time out. When the Watchdog triggers it resets the program counter back to 0, clears all the registers and performs all the other tasks. This operation gives the same result as pulling the RESET line low.

You should not try to:
- Use another pin of the AVR to pull the external RESET line. The pins of the AVR are tristated halfway through the minimum reset time, this releases the RESET line and hence nothing happens.
- Jump to program location 0. Jumping to program location 0 does not clear all the registers and hence you do not have a "clean" reset.



Цитата(Сергей Борщ @ Jul 9 2007, 14:12) *
Оно проверено на вызове загрузчика, который живет по адресу 0x1800 и другой функции по другому адресу. Конкретно на адрес 0x0000 не переходил, но не вижу особой разницы - с точки зрения компилятора это вызов обычной функции, о расположении которой он ничего не знает и не должен знать. С точки зрения линкера адреса функций - обычные symbols, ему тоже все равно чему этот адрес равен конкретно. А опцией -Wl мы просто ему говорим "этот символ (метку) мы определили за тебя

Вот в этом и вопрос знает или не знает ?
линкер должен знать smile.gif
Попробую найти/воспроизвести код с "неправильным" вызовом функции по адресу 0x0000,
а потом попробую Ваш вариант.
Цитата
"Да, но оно требует загрузки R30:R31 и IJMP вместо обычного ®JMP.

Ну вроде как в IAR для этого можно воспользоваться "__z" ?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- ivainc1789   Как сделать перезагрузку программно?   Jul 8 2007, 20:00
- - IgorKossak   Чтобы сделать перезагрузку полностью с внутренней ...   Jul 8 2007, 21:03
|- - singlskv   Цитата(IgorKossak @ Jul 9 2007, 01:03) Чт...   Jul 8 2007, 22:49
|- - ivainc1789   Цитата(singlskv @ Jul 9 2007, 02:49) - де...   Jul 9 2007, 05:08
||- - jorikdima   Цитата(ivainc1789 @ Jul 9 2007, 09:08) Мо...   Jul 9 2007, 05:44
||- - spf   Цитата(ivainc1789 @ Jul 9 2007, 11:08) Мо...   Jul 9 2007, 05:46
||- - Сергей Борщ   Цитата(spf @ Jul 9 2007, 08:46) В общем в...   Jul 9 2007, 08:31
||- - Dog Pawlowa   Использую оба решения, но при использовании програ...   Jul 9 2007, 09:01
||- - singlskv   Цитата(Сергей Борщ @ Jul 9 2007, 12:31) Т...   Jul 9 2007, 09:16
||- - Сергей Борщ   Цитата(singlskv @ Jul 9 2007, 12:16) Серг...   Jul 9 2007, 10:12
|- - KRS   Цитата(singlskv @ Jul 9 2007, 02:49) Един...   Jul 9 2007, 07:21
||- - singlskv   Цитата(KRS @ Jul 9 2007, 11:21) Что значи...   Jul 9 2007, 09:01
|- - IgorKossak   Цитата(singlskv @ Jul 9 2007, 01:49) так ...   Jul 9 2007, 08:03
|- - VladimirYU   [quote name='singlskv' date='Jul 9 200...   Jul 9 2007, 10:00
- - jorikdima   объявить указатель на функцию с адресом 0 вызвать...   Jul 9 2007, 04:43
|- - singlskv   Цитата(jorikdima @ Jul 9 2007, 08:43) объ...   Jul 9 2007, 05:39
- - arttab   нормаль по собаке сделал. дог по условию сбрасыва...   Jul 9 2007, 08:27
- - Dog Pawlowa   Цитата(singlskv @ Jul 9 2007, 13:44) Вот ...   Jul 9 2007, 11:56
|- - singlskv   Цитата(Dog Pawlowa @ Jul 9 2007, 15:56) А...   Jul 9 2007, 13:50
|- - Dog Pawlowa   Цитата(singlskv @ Jul 9 2007, 16:50) поче...   Jul 9 2007, 14:00
- - VladimirYU   [quote name='singlskv' date='Jul 9 200...   Jul 9 2007, 12:04


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

 


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


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