Отговори на тема  [ 25 мнения ]  Отиди на страница 1, 2  Следваща
Софтуерен ресет на STM32F407. 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение Софтуерен ресет на STM32F407.
Контролерът е STM32F407 ( от Discovery board ). Как е най-добре да се саморесетира ? Т.е най-бързо може да се стигне до ресет ?


Нед Мар 22, 2015 3:22 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Софтуерен ресет на STM32F407.
Въпросът е твърде общ... имаш много неща дето могат да се ресетват и по различни начини. Ако питаш за тотален ресет, само чрез шалтер на захранването. Принципно идеята на куртексите е да не се ползват тотални ресети, просто софта трябва да може да инициализира всичко, без да разчита че всичко е в някакво дефолт състояние. За повечето периферии имаш бит в системния контролер и може да ги ресетваш и е за препоръчване преди да почнеш да си играеш с тях да им биеш профилактично един ресет.
Имаш и една стандартна периферия наречена SCB (system control blok) и в нея имаш един регистър application interrupt/reset control май се казваше и там има бит за системен ресет. Но за да го вдигнеш в старшата част се пишеше парола. Сега съм на таблет и ми е трудно да ти ровя точния адрес на регистъра и какво се пишеше... Но това е универсален начин да ресетнеш софтуерно един куртекс.


Нед Мар 22, 2015 4:21 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Яну 19, 2007 9:16 am
Мнения: 1063
Местоположение: путинофили: "иди н***й"
Мнение Re: Софтуерен ресет на STM32F407.
bateAz написа:
Контролерът е STM32F407 ( от Discovery board ). Как е най-добре да се саморесетира ? Т.е най-бързо може да се стигне до ресет ?


не ползвам ST, но в Kinetis K60F (M4F) има регистър в за целта

void Cpu_SystemReset(void)
{
/* SCB_AIRCR: VECTKEY=0x05FA,SYSRESETREQ=1 */
SCB_AIRCR = (uint32_t)((SCB_AIRCR & (uint32_t)~(uint32_t)(
SCB_AIRCR_VECTKEY(0xFA05)
)) | (uint32_t)(
SCB_AIRCR_VECTKEY(0x05FA) |
SCB_AIRCR_SYSRESETREQ_MASK
)); /* Request system reset */
while(1) { /* Wait until reset */
}
}

ако няма подобна възможност, обикновенно ползвам watchdog-а за ресет (пишейки невалидни стойности в рег)


Нед Мар 22, 2015 5:01 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 27, 2005 12:48 pm
Мнения: 6094
Мнение Re: Софтуерен ресет на STM32F407.
питай Гугъл

https://www.google.bg/search?q=STM32F40 ... 220x5FA%22

_________________
main[-1u]={1};


Нед Мар 22, 2015 8:38 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Нед Сеп 26, 2004 4:11 pm
Мнения: 3750
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
И аз това направих - питах Гугъл и избрах готовата библиотечната функция. Като дойдат по-добри времена може и да напиша и ползвам нещо мое. Въпросът ми беше, ако някой вече се е спрял на просто и "красиво" решение.


Нед Мар 22, 2015 9:10 pm
Профил ICQ
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: Софтуерен ресет на STM32F407.
Код:
NVIC_SystemReset();


Нед Мар 22, 2015 10:43 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
ps66 написа:
обикновенно ползвам watchdog-а за ресет (пишейки невалидни стойности в рег)

+1

_________________
Warriors of the Night, ASSEMBLER!!!


Нед Мар 22, 2015 11:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Софтуерен ресет на STM32F407.
и с кучето става, обаче някои библиотечки/rtos си следят reset cause-a и ще ви напсуват, ако разлаете някое куче ;-)


Пон Мар 23, 2015 10:07 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пет Фев 04, 2005 9:59 pm
Мнения: 6019
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
Ами тогава викаш reset() функцията на библиотечките/rtos и всички са доволни.

_________________
Warriors of the Night, ASSEMBLER!!!


Пон Мар 23, 2015 2:08 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: Софтуерен ресет на STM32F407.
I/O пин към RESET сигнала и шунтираш цялата какафония с буболечки и библиотечки

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пон Мар 23, 2015 6:00 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
¶ написа:
I/O пин към RESET сигнала и шунтираш цялата какафония с буболечки и библиотечки

Това не работи (надеждно) - не можеш да осигуриш минимален импулс.


Пон Мар 23, 2015 6:11 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Пет Фев 25, 2005 1:58 pm
Мнения: 4585
Местоположение: US
Мнение Re: Софтуерен ресет на STM32F407.
woody написа:
¶ написа:
I/O пин към RESET сигнала и шунтираш цялата какафония с буболечки и библиотечки

Това не работи (надеждно) - не можеш да осигуриш минимален импулс.

Защо ? Съмнясва ме да не работи надежно - RESET линията ще възприеме сигнала като RESET след определено време,
а докато не го възприеме професора би трябвало да работи и I/O пина да си стои в зададеното RESET ниво.

_________________
Ето аз дишам, работя, живея и програми пиша тъй както умея, с проца под вежди се гледаме строго и боря се с него доколкото мога....


Пон Мар 23, 2015 6:24 pm
Профил WWW
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
bateAz написа:
Контролерът е STM32F407 ( от Discovery board ). Как е най-добре да се саморесетира ? Т.е най-бързо може да се стигне до ресет ?


Ако занулиш програм каунтъра (R15) кво ще стане? :)


Вто Мар 24, 2015 4:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Софтуерен ресет на STM32F407.
Реконструктор написа:
bateAz написа:
Контролерът е STM32F407 ( от Discovery board ). Как е най-добре да се саморесетира ? Т.е най-бързо може да се стигне до ресет ?


Ако занулиш програм каунтъра (R15) кво ще стане? :)


боза ;-)

Ресет вектора на този проц е нула, обаче при куртексите ресет вектора сочи към табличка с 2 елемента - стек поинтер и начален адрес. Демек на адрес 0 нямаш код, а данни така че не е добра идея да джъмпваш към адрес 0.

Но дори и към правилния адрес на ресет вектора пак не е добра идея просто така да джъмпваш... Курът има нещо като хардуерен стек за ексепшъните, в който се пъха текущия приоритет при влизане в ексепшън (прекъсване). Задължително като влизаш, трябва да влизаш в по-висок приоритет. И обратно при излизане се следи дали излизаш в по-нисък.
Това нещо няма заобикаляне и ако все пак се опиташ да го прескочиш ти гърми с hard fault ексепшън.
Та ако искаш да рестартираш без да ресетваш нищо трябва да се погрижиш да симулираш "излизания" докато нивото падне до нулево и чак тогава може да джъмпнеш към ресет процедурата. Ако някой се интересува ще му дам код за чистенето... но по принцип по-добре да се мине през софтуерен или хардуерен ресет. Изключение се налага само ако умишлено искаш да избегнеш ресети.


Вто Мар 24, 2015 5:06 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Юли 31, 2007 2:55 pm
Мнения: 1792
Местоположение: София
Мнение Re: Софтуерен ресет на STM32F407.
¶ написа:
woody написа:
¶ написа:
I/O пин към RESET сигнала и шунтираш цялата какафония с буболечки и библиотечки

Това не работи (надеждно) - не можеш да осигуриш минимален импулс.

Защо ? Съмнясва ме да не работи надежно - RESET линията ще възприеме сигнала като RESET след определено време,
а докато не го възприеме професора би трябвало да работи и I/O пина да си стои в зададеното RESET ниво.

Ресетирането вътре е доволно сложно - комбинация от синхронно и асинхронно, с автомат (FSM) да вкарва ред.
Така най-вероятно ще се получи глич, който ще обърка всичко.


Вто Мар 24, 2015 10:46 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 25 мнения ]  Отиди на страница 1, 2  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 5 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни