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

 
 
> STM32 flash, помогите разобраться
dimka76
сообщение May 30 2014, 07:34
Сообщение #1


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 ?


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
adnega
сообщение Jul 11 2014, 07:39
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702



Я в "крупных" МК использую две области: application и image.
Когда необходимо обновить прошивку, код, работающий в application (по сути сама программа) стирает image, получает и записывает image, проверяет CRC, версию железа и версию прошивки и после этого передает управление загрузчику (через SoftReset). До тех пор, или в случае некорректного/старого image программа работает и практически не чувствует, что идет какое-то обновление.
Загрузчик проверяет корректность и версию как application, так и image. Если все CRC корректны и версия application >= версии image, то управление передается application. Если CRC у application не корректна, а у image корректна, то image расшифровывается и переписывается в application, как и в том случе, если версия image новее, затем перезагрузка. Если все CRC не корректны, то остаемся в загрузчике и мигаем светодиодом "SOS". Некоторые функции как подсчет CRC (в том числе на лету, по ходу выполнения программы), расшифровка и т.п. вынесены в область загрузчика и application их экспортирует по фиксированным адресам из таблицы экспорта (последние 240 байт загрузчика).
Из бонусов image шифрованный, сложно получить кирпич, обновление мгновенное (минимально возможное время, т.к. основная часть тратится на передачу image по GPRS|SD-карты|RS485 и т.п., а application при этом работает). Из минусов: расход памяти практически удвоенный (но image можно держать во внешней медленной/последовательной памяти, т.к. он шифрован и не отличается от того, что передается Заказчику свободно в качестве обновления), загрузчик поддерживает лишь базовые варианты управления без возможности модернизации.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- dimka76   STM32 flash   May 30 2014, 07:34
- - aaarrr   Цитата(dimka76 @ May 30 2014, 15:44) Как ...   May 30 2014, 07:41
- - scifi   Цитата(dimka76 @ May 30 2014, 15:44) В до...   May 30 2014, 09:37
|- - dimka76   Спасибо всем ответившим. Цитата(scifi @ May ...   May 30 2014, 14:23
||- - AHTOXA   Цитата(dimka76 @ May 31 2014, 00:33) Код ...   May 31 2014, 01:07
||- - dimka76   Цитата(AHTOXA @ May 31 2014, 09:17) У вас...   Jun 1 2014, 04:39
|- - ViKo   Цитата(scifi @ May 30 2014, 12:37) Кстати...   Jul 1 2014, 10:00
|- - scifi   Цитата(ViKo @ Jul 1 2014, 14:00) Если мож...   Jul 1 2014, 10:10
- - Golikov A.   регистр SL - это стэк лимит, а вот зачем в него ч...   May 30 2014, 18:19
- - kan35   Между памятью и ядром есть прослойка в виде наприм...   May 31 2014, 00:34
- - Haamu   Чтобы не плодить новых тем, продолжу эту. Во flash...   Jun 20 2014, 05:45
|- - Сергей Борщ   Цитата(Haamu @ Jun 20 2014, 08:45) подска...   Jun 20 2014, 07:35
- - Haamu   Читал. Правда не в Programming manual, а в Referen...   Jun 20 2014, 11:17
|- - _Артём_   Цитата(Haamu @ Jun 20 2014, 15:17) Так и ...   Jun 20 2014, 11:42
|- - Сергей Борщ   Цитата(Haamu @ Jun 20 2014, 14:17) пишу о...   Jun 20 2014, 12:20
- - ViKo   Как бы тогда перекинуть функцию записи в ОЗУ, и вы...   Jul 1 2014, 10:18
|- - scifi   Цитата(ViKo @ Jul 1 2014, 14:18) Как бы т...   Jul 1 2014, 10:22
||- - Сергей Борщ   Цитата(scifi @ Jul 1 2014, 13:22) Самый п...   Jul 1 2014, 11:07
|- - A. Fig Lee   Цитата(ViKo @ Jul 1 2014, 06:18) Как бы т...   Jul 1 2014, 11:06
- - ViKo   Да, можно разместить "прошивальщик" в ко...   Jul 1 2014, 11:13
|- - A. Fig Lee   Цитата(ViKo @ Jul 1 2014, 07:13) Да, можн...   Jul 1 2014, 11:15
|- - ViKo   Цитата(A. Fig Lee @ Jul 1 2014, 14:15) Не...   Jul 1 2014, 11:18
|- - Сергей Борщ   Цитата(ViKo @ Jul 1 2014, 14:18) По нулев...   Jul 1 2014, 11:25
|- - ViKo   Цитата(Сергей Борщ @ Jul 1 2014, 14:25) П...   Jul 1 2014, 11:34
|- - Сергей Борщ   Цитата(ViKo @ Jul 1 2014, 14:34) А если п...   Jul 1 2014, 11:48
|- - doom13   Цитата(Сергей Борщ @ Jul 1 2014, 14:48) Я...   Jul 1 2014, 13:16
|- - demiurg_spb   Цитата(doom13 @ Jul 1 2014, 17:16) И вчём...   Jul 1 2014, 13:32
|- - doom13   Цитата(demiurg_spb @ Jul 1 2014, 16:32) Э...   Jul 1 2014, 13:41
|- - scifi   Цитата(doom13 @ Jul 1 2014, 17:41) Т.е. д...   Jul 1 2014, 13:57
|- - demiurg_spb   Цитата(doom13 @ Jul 1 2014, 17:41) Т.е. д...   Jul 2 2014, 08:42
|- - doom13   Цитата(demiurg_spb @ Jul 2 2014, 11:42) О...   Jul 2 2014, 08:46
||- - demiurg_spb   Цитата(doom13 @ Jul 2 2014, 12:46) Может ...   Jul 2 2014, 09:11
|- - DmitryM   Цитата(demiurg_spb @ Jul 2 2014, 11:42) И...   Jul 2 2014, 15:02
- - ViKo   В секторе 0 расположить загрузчик, основную програ...   Jul 1 2014, 12:15
|- - Сергей Борщ   Цитата(ViKo @ Jul 1 2014, 15:15) В сектор...   Jul 1 2014, 12:22
- - ViKo   Я последовательно соединял две независимых кнопки ...   Jul 1 2014, 13:55
- - Golikov A.   А у меня есть видеорегистратор, который виснет есл...   Jul 1 2014, 15:11
|- - Сергей Борщ   Цитата(Golikov A. @ Jul 1 2014, 18:11) Но...   Jul 1 2014, 15:29
- - ViKo   А вот можно ли зайти во встроенный загрузчик в STM...   Jul 2 2014, 08:55
- - Сергей Борщ   У ST есть несколько подробных аппнотов по загрузчи...   Jul 2 2014, 08:59
|- - ViKo   Цитата(Сергей Борщ @ Jul 2 2014, 11:59) У...   Jul 2 2014, 09:05
|- - scifi   Цитата(ViKo @ Jul 2 2014, 13:05) Листал. ...   Jul 2 2014, 09:42
- - Сергей Борщ   Писал ответ в соседнюю тему и пришла в голову така...   Jul 4 2014, 17:37
|- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 4 2014, 13:37) П...   Jul 4 2014, 17:57
|- - scifi   Цитата(Сергей Борщ @ Jul 4 2014, 21:37) П...   Jul 4 2014, 18:39
- - Golikov A.   Чего то я не понял бизнеса... Хотим загрузить загр...   Jul 4 2014, 18:20
|- - Сергей Борщ   Цитата(Golikov A. @ Jul 4 2014, 21:20) А ...   Jul 4 2014, 18:42
|- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 4 2014, 14:42) В...   Jul 4 2014, 19:14
- - Golikov A.   Ну то есть у нас штатный запуск проца на прошивку ...   Jul 5 2014, 06:40
- - ViKo   Так же можно потерять и самопальный загрузчик. Вер...   Jul 7 2014, 10:10
- - Golikov A.   ну как можно потерять самопальный загрузчик? Если ...   Jul 7 2014, 13:11
|- - ViKo   Цитата(Golikov A. @ Jul 7 2014, 16:11) ну...   Jul 7 2014, 13:58
|- - A. Fig Lee   Цитата(ViKo @ Jul 7 2014, 09:58) Так же, ...   Jul 7 2014, 15:01
- - ViKo   И 3 ФигЛи, несомненно, лучше одного. Не зря сообра...   Jul 7 2014, 20:00
- - Golikov A.   Вижу о космосе вы знаете по наслышке 2 из 3 - это...   Jul 7 2014, 20:18
|- - scifi   Цитата(Golikov A. @ Jul 8 2014, 00:18) На...   Jul 7 2014, 20:34
|- - A. Fig Lee   Цитата(Golikov A. @ Jul 7 2014, 16:18) Ви...   Jul 8 2014, 01:50
- - Сергей Борщ   А я для каждого изделия использую уникальные ключи...   Jul 8 2014, 05:47
|- - mantech   Цитата(Сергей Борщ @ Jul 8 2014, 08:47) А...   Jul 9 2014, 16:18
- - Golikov A.   Для этого нужно оставить механизм старта бута. Есл...   Jul 9 2014, 19:00
|- - skripach   Цитата(Golikov A. @ Jul 9 2014, 22:00) Дл...   Jul 9 2014, 20:01
- - Сергей Борщ   Тогда поделитесь сокровенным - как ваш бут отличае...   Jul 9 2014, 20:39
|- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 9 2014, 16:39) Т...   Jul 9 2014, 20:57
|- - demiurg_spb   Цитата(A. Fig Lee @ Jul 10 2014, 00:57) А...   Jul 9 2014, 21:46
|- - A. Fig Lee   Цитата(demiurg_spb @ Jul 9 2014, 17:46) С...   Jul 9 2014, 22:54
|- - demiurg_spb   Цитата(A. Fig Lee @ Jul 10 2014, 02:54) В...   Jul 9 2014, 23:05
|- - A. Fig Lee   Цитата(demiurg_spb @ Jul 9 2014, 19:05) У...   Jul 10 2014, 01:27
|- - Сергей Борщ   Цитата(A. Fig Lee @ Jul 10 2014, 04:27) О...   Jul 10 2014, 06:04
||- - skripach   Цитата(Сергей Борщ @ Jul 10 2014, 09:04) ...   Jul 10 2014, 06:54
|||- - Сергей Борщ   Цитата(skripach @ Jul 10 2014, 09:54) Уде...   Jul 10 2014, 07:58
||- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 10 2014, 02:04) ...   Jul 10 2014, 11:08
||- - Сергей Борщ   Цитата(A. Fig Lee @ Jul 10 2014, 14:08) Ч...   Jul 10 2014, 11:36
||- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 10 2014, 07:36) ...   Jul 10 2014, 14:00
|- - Axel   Цитата(A. Fig Lee @ Jul 10 2014, 04:27) О...   Jul 10 2014, 06:21
- - scifi   Уже на несколько страниц размазалось обсуждение од...   Jul 10 2014, 07:44
|- - demiurg_spb   Цитата(scifi @ Jul 10 2014, 11:44) Уже на...   Jul 10 2014, 08:28
- - Golikov A.   Все таки хотелось бы еще раз поговорить про кнопку...   Jul 10 2014, 08:41
- - Golikov A.   А вот тут вдруг у меня возникло такое подозрение.....   Jul 10 2014, 11:47
|- - Axel   Цитата(Golikov A. @ Jul 10 2014, 14:47) Т...   Jul 10 2014, 12:02
- - Golikov A.   Извращенная логика%... Забавно что вы не проверяе...   Jul 10 2014, 18:00
|- - A. Fig Lee   Цитата(Golikov A. @ Jul 10 2014, 14:00) И...   Jul 10 2014, 18:15
- - Golikov A.   ЦитатаКонтрольная сумма не спасает от повреждения....   Jul 10 2014, 18:56
- - andrewlekar   Я в своём софте тоже проверяю только, что сектор н...   Jul 11 2014, 06:28
- - Сергей Борщ   Ну что ж, идем на очередной круг. Не всегда есть в...   Jul 11 2014, 06:46
|- - A. Fig Lee   Цитата(Сергей Борщ @ Jul 11 2014, 02:46) ...   Jul 11 2014, 11:33
|- - Сергей Борщ   У меня обновление на лету. Тоже шифрование. Нет не...   Jul 11 2014, 09:15
- - andrewlekar   ЦитатаИ ради чего ваши жертвы? Ради экономии 20 ба...   Jul 11 2014, 09:44
- - Golikov A.   Ага%) Есть и на этот случай история у меня из разд...   Jul 11 2014, 18:31
- - grv   Что-то пример от ST мня загоняет в ступор это про...   Oct 20 2015, 05:32
- - scifi   Цитата(grv @ Oct 20 2015, 08:32) Зачем та...   Oct 20 2015, 07:06
- - grv   Цитата(scifi @ Oct 20 2015, 10:06) Вы, по...   Oct 20 2015, 08:46


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

 


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


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