|
STM32 flash, помогите разобраться |
|
|
|
May 30 2014, 07:34
|

developer
   
Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032

|
В документации написано что шина данных FLASH памяти у STM32 128-ми битная. Но при этом в коде startup, где идет инициализация переменных в ОЗУ, копирование идет по 4 байта (32 бита) инструкции Код ... ldr r3, [r3, r1] str r3, [r0, r1] adds r1, r1, #4 ... У ST есть AppNote EEPROM emulation in STM32F10x microcontrollers, где при чтении из FLASH (виртуальной EEPROM) копируются 16-ти битные данные Код /** * @brief Returns the last stored variable data, if found, which correspond to * the passed virtual address * @param VirtAddress: Variable virtual address * @param Data: Global variable contains the read variable value * @retval Success or error status: * - 0: if variable was found * - 1: if the variable was not found * - NO_VALID_PAGE: if no valid page was found. */ uint16_t EE_ReadVariable(uint16_t VirtAddress, uint16_t* Data) Как же все-таки читается FLASH? А если мне надо только один байт прочитать из FLASH ?
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
 |
Ответов
(45 - 59)
|
Jul 4 2014, 19:14
|

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

|
Цитата(Сергей Борщ @ Jul 4 2014, 14:42)  Возможно хочется обновляться штатным, но по возможности не добираясь до ноги BOOT, по команде приложению? Только не приложению, а бутлоадеру. Приложение может работать, а может не работать. А свой бутлоадер может запускатся не от кнопки, или от кнопки, но от другой. Но пользовать стандартный механизм загрузки..
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jul 5 2014, 06:40
|
Гуру
     
Группа: Свой
Сообщений: 4 256
Регистрация: 17-02-06
Пользователь №: 14 454

|
Ну то есть у нас штатный запуск проца на прошивку пользователя. Которая в самом начале имеет ветвления свой бут стандартный бут рабочая прошивка и мы не трогая ножку бут имеем возможность обновить прошивку через UART? Ну да, наверное это интересная мысль. Главное не затереть начальный разветвитель, а то придем к кирпичу
|
|
|
|
|
Jul 7 2014, 13:58
|

Универсальный солдатик
     
Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362

|
Цитата(Golikov A. @ Jul 7 2014, 16:11)  ну как можно потерять самопальный загрузчик? Так же, как и основную программу. С помощью электромагнитного импульса, например, как в "Матрице". То есть, если принимать меры к тому, чтобы входить в самодельный загрузчик сразу после сброса, из опасения, что основная программа может глючить, и из нее уже не войти, то тогда надо думать и о том, что и сам этот загрузчик может заглючить. А если не думать, то не думать.  Поэтому я и хочу по простому перескочить во встроенный загрузчик. Для начала. А там видно будет.
|
|
|
|
|
Jul 7 2014, 15:01
|

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

|
Цитата(ViKo @ Jul 7 2014, 09:58)  Так же, как и основную программу. С помощью электромагнитного импульса, например, как в "Матрице". То есть, если принимать меры к тому, чтобы входить в самодельный загрузчик сразу после сброса, из опасения, что основная программа может глючить, и из нее уже не войти, то тогда надо думать и о том, что и сам этот загрузчик может заглючить. А если не думать, то не думать.  Поэтому я и хочу по простому перескочить во встроенный загрузчик. Для начала. А там видно будет. Встроенный загрузчик тоже может глючить. Изза электромагнитного импульса, например. Предлагаю делать резервирование - как для космоса делали: 3 одинаковых канала, решение принимается голосованием, если 2 сказали 1, значит 1. Так меньше вероятность глюков. 3 одинаковых СТМ, на всякий случай - а вдруг заглючит?
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jul 8 2014, 01:50
|

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

|
Цитата(Golikov A. @ Jul 7 2014, 16:18)  Вижу о космосе вы знаете по наслышке 2 из 3 - это для ближнего космоса, до луны край! Нормальный режим 3 из 5! Глюк нормальной программы я больше отношу к пользователю. Найдет какую-то фигню, от другого продукта, и зальет как обновление. И здрасьте вам Кирпичь Иваныч! На эти случаи всегда даю пользователю еще попытку  Дык для этого бутлоадер и делают отдельным без всякой зависимости на главной программе. Заливай что хочешь, все равно бутлодырем можно будет переписать
--------------------
Верить нельзя никому, даже себе. Мне - можно.
|
|
|
|
|
Jul 9 2014, 16:18
|
Гуру
     
Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143

|
Цитата(Сергей Борщ @ Jul 8 2014, 08:47)  А я для каждого изделия использую уникальные ключи шифрования. Загрузчик зальет в изделие только его родную прошивку. Но все равно остается шанс, что родная прошивка сделает из изделия кирпич из-за того, что я не предусмотрел какой-то нюанс. Че-то я не понял, если бут находится в своей выделенной области флеша, пользовательская прога во флеш не пишет что-попало, то какого рожна что-то должно превратить камень в кирпич?? Ну зашил он туда хрень, потом рестартанет проц в режиме бута и прошьет что надо. Уже дофига такого было, пока прошивки шифровать не начал, теперь хрень не шьют
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|