|
|
  |
STM32: сброс всей периферии перед переходом из загрузчика в основную прошивку |
|
|
|
May 21 2014, 08:29
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(scifi @ May 21 2014, 15:29)  Какой такой fiq? Это же Cortex-M, нет там никакого fiq. Как же нет? А это что: Код /** \brief Disable FIQ
This function disables FIQ interrupts by setting the F-bit in the CPSR. Can only be executed in Privileged modes. */ #define __disable_fault_irq __disable_fiq ?
|
|
|
|
|
May 21 2014, 09:02
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(scifi @ May 21 2014, 07:17)  Это же совсем просто: в самом начале загрузчика проверять специальный флаг и прыгать в основную прошивку или продолжать выполнять загрузчик. Флаг в EEPROM? А почему сразу не прыгнуть? К чему эти танцы с бубном, если и так ясно что прыгать будем? Цитата(Golikov A. @ May 21 2014, 07:26)  специальный флаг, целостность прошивки, и какие - либо коды безопасности.... А при чем здесь reset? Программа бутлоадер стартанула, все проверила, теперь выставляет флаг, чтобы прыгнуть и делает ресет? Бессмыслица
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
May 21 2014, 09:11
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Цитата А при чем здесь reset? Программа бутлоадер стартанула, все проверила, теперь выставляет флаг, чтобы прыгнуть и делает ресет? Бессмыслица бутлоадер может работать так старт - проверка - запуск боевой прошивки а может так старт - проверка - режим обновления прошивки - обновил прошивку, поставил флаг нормального старта - ресет и по первому пути... в таком случае вы точно ничего не забудите, и ваша основная программа начнется как после ресета, со всеми регистрами в правильных состояниях Цитата Почему чушь? Код вполне имеет смысл: http://infocenter.arm.com/help/index.jsp?t...ch02s08s01.htmlэто от 7 арма... в кортаксах - м только CPSID i http://infocenter.arm.com/help/index.jsp?t...a/BABHBAAB.html
|
|
|
|
|
May 21 2014, 09:12
|
Гуру
     
Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322

|
Цитата(Golikov A. @ May 21 2014, 17:17)  поглядел доки на кортекс - м http://infocenter.arm.com/help/index.jsp?t...b/CHDBIBGJ.htmlнашел только PM Prioritizable interrupt mask: 0 = no effect. 1 = prevents the activation of all exceptions with configurable priority. Не там смотрите: нужно в описании Cortex-M3 или M4 смотреть. Цитата 2.8. FAULTMASK register bit assignmentsBits Name Function [31:1] - Reserved [0] FAULTMASK 0 = no effect 1 = prevents the activation of all exceptions except for NMI. The processor clears the FAULTMASK bit to 0 on exit from any exception handler except the NMI handler.
|
|
|
|
|
May 21 2014, 09:21
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
все там просто ссылки криво вставляются... я постом выше поправил ссылки... в кортаксах - м только CPSID i http://infocenter.arm.com/help/index.jsp?t...a/BABHBAAB.htmlотключает все крмое NMI и RESET, странно что про HardFault не упомянуто... О прошу прощения. Чет криво у них написано, если взять набор инструкций кортекса м3 Examples CPSID i ; Disable interrupts and configurable fault handlers (set PRIMASK) CPSID f ; Disable interrupts and all fault handlers (set FAULTMASK) CPSIE i ; Enable interrupts and configurable fault handlers (clear PRIMASK) CPSIE f ; Enable interrupts and fault handlers (clear FAULTMASK).
|
|
|
|
|
May 21 2014, 09:23
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(_Артём_ @ May 21 2014, 17:18)  Почему чушь? Код вполне имеет смысл: Код имеет смысл, а вот комментарий не имеет: Цитата This function disables FIQ interrupts by setting the F-bit in the CPSR. Про комментарий я и написал - это чушь.
|
|
|
|
|
May 21 2014, 09:25
|

Знающий
   
Группа: Участник
Сообщений: 974
Регистрация: 4-04-08
Из: далека
Пользователь №: 36 467

|
Цитата(Golikov A. @ May 21 2014, 08:21)  а может так старт - проверка - режим обновления прошивки - обновил прошивку, поставил флаг нормального старта - ресет и по первому пути... в таком случае вы точно ничего не забудите, и ваша основная программа начнется как после ресета, со всеми регистрами в правильных состояниях Не будет "со всеми регистрами". Флаг надо както передать. EEPROM? Его надо будет както прочтать, значит инициализировать регистры, сделать какието действия, то есть все равно ни как про ресете.
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|