Форум Микро-Чип
Поиск и заказ электронных компонентов
 

Вернуться   Форум Микро-Чип > Продукция MICROCHIP

Продукция MICROCHIP Технические вопросы по всей продукции Microchip

Ответ
 
Опции темы Опции просмотра
Старый 01.01.2018, 17:24   #1
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 54
Сообщений: 972
Вес репутации: 2006/63
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Горячий рестарт

На PIC18 использовал следующий код, когда надо было выполнять действие только один раз при Hard Reset при подаче питания. А при программном сбросе определенные действия не выполнялись.
На PIC32 почему то портится память при программном сбросе.
Код:
WORD    HardReset;

if (HardReset != 0x5AA5)
    {
    RunCmdNumber(15);    //выполнить сценарий при подаче питания
    HardReset = 0x5AA5;
    }
По идее раз нет инициализации переменной , то при вкл питания значение переменной будет случайное, шанс, что будет такое же что и в примере - нулевой.
А при программном рестарте значение переменной должно соответствовать последнему присвоенному значению.
Но что то код не работает.
smart_pic вне форума   Ответить с цитированием
Старый 01.01.2018, 19:16   #2
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,542
Вес репутации: 3061/66
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Горячий рестарт

smart_pic
то при вкл питания значение переменной будет случайное - будет какое-то. увы, его нельзя рассчитывать как хороший источник энтропии.


то при вкл питания значение переменной будет случайное, шанс, что будет такое же что и в примере - нулевой. - если Вы считаете, что нулевой - мб. и оптимизирующий компилятор считает также и выкидывает условие?

вообще в регистре RCON есть бит SWR, который однозначно определяет, что был выполнен soft reset.
besogon вне форума   Ответить с цитированием
Старый 01.01.2018, 19:35   #3
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,542
Вес репутации: 3061/66
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Горячий рестарт

плюс еще забыл.
есть один момент.
на каком уровне и какой компилятор Вы используете.

если у Вы писали boot.S и скрипт линкера и прочее - разговор один.
если Вы не писали boot.S, скрипт - то Вам нужно смотреть, что на самом деле происходит в Вашем ините.

1. в xc32 стартап курильщика.
2. HardReset попадают в bss и обнуляются там еще до захода в main.
besogon вне форума   Ответить с цитированием
Старый 01.01.2018, 20:16   #4
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 54
Сообщений: 972
Вес репутации: 2006/63
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Горячий рестарт

Цитата:
Сообщение от besogon Посмотреть сообщение
smart_pic
вообще в регистре RCON есть бит SWR, который однозначно определяет, что был выполнен soft reset.
Попробую отработать вариант с RCON бит SWR,
и при старте выводить значение переменной в СОМ порт для контроля.
Хотя надо было начинать с контроля переменной.
К сожалению, наверное, используется Microchip загрузчик по ЛАН.
smart_pic вне форума   Ответить с цитированием
Старый 01.01.2018, 20:30   #5
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,542
Вес репутации: 3061/66
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Горячий рестарт

smart_pic
я не работал плотно с микрочиповской кодовой базой.
вернее пытался работать.
мне не понравилось.

использую xc32 только как забагованный и испорченный gcc, так что наверное сейчас не смогу более детально подсказать.
besogon вне форума   Ответить с цитированием
Старый 02.01.2018, 20:30   #6
smart_pic
Senior Member
 
Регистрация: 08.12.2008
Адрес: Ставрополь
Возраст: 54
Сообщений: 972
Вес репутации: 2006/63
smart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond reputesmart_pic has a reputation beyond repute
Отправить сообщение для smart_pic с помощью Skype™
По умолчанию Re: Горячий рестарт

Проверил, что происходит с переменными при ресете после подачи питания - похоже что все переменные обнуляются.
При программном сбросе, или сбросе по сторожевому таймеру переменные также обнуляются.
Для определения был ли программный или сброс по питанию можно использовать регистр RCON.
smart_pic вне форума   Ответить с цитированием
Старый 02.01.2018, 21:07   #7
Марк
Senior Member
 
Аватар для Марк
 
Регистрация: 18.08.2007
Адрес: M.O.
Возраст: 58
Сообщений: 2,133
Вес репутации: 2724/87
Марк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond reputeМарк has a reputation beyond repute
По умолчанию Re: Горячий рестарт

Цитата:
Сообщение от smart_pic Посмотреть сообщение
похоже что все переменные обнуляются.
Зависит от настроек компилятора.
Марк вне форума   Ответить с цитированием
Старый 02.01.2018, 23:18   #8
besogon
Senior Member
 
Регистрация: 12.07.2012
Возраст: 31
Сообщений: 1,542
Вес репутации: 3061/66
besogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond reputebesogon has a reputation beyond repute
По умолчанию Re: Горячий рестарт

smart_pic
я Вам писал раньше про boot и startup.

после старта в переменных мусор, который не является хорошим источником энтропии.

далее у Вас кусок кода аля.
Код:
#ifndef COMPACT_STARTUP
	/*clear uninitialized data*/
	la      t0,_bss_begin
	la      t1,_bss_end
	b       _bss_check
	nop
_bss_init:
	sw      zero,0x0(t0)
	sw      zero,0x4(t0)
	sw      zero,0x8(t0)
	sw      zero,0xc(t0)
	addu    t0,16
_bss_check:
	bltu    t0,t1,_bss_init
	nop
#endif
который и очищает bss.

Марк
компилятора - нет, не согласен.
среды - да, может быть. бахает свой startup.
besogon вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OSA и рестарт задачи Alex B. Продукция MICROCHIP 14 26.12.2008 14:28


Часовой пояс GMT +3, время: 12:18.


Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot