|
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 ?
--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
|
|
|
|
|
 |
Ответов
|
Jul 11 2014, 07:39
|
Гуру
     
Группа: Свой
Сообщений: 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 можно держать во внешней медленной/последовательной памяти, т.к. он шифрован и не отличается от того, что передается Заказчику свободно в качестве обновления), загрузчик поддерживает лишь базовые варианты управления без возможности модернизации.
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|