Инструменты пользователя

Инструменты сайта


ob:o7:flash

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

ob:o7:flash [2017/07/29 10:33]
иван_денисов
ob:o7:flash [2020/10/29 07:08]
Строка 1: Строка 1:
-====== Сохранение данных в FLASH память микроконтроллера ====== 
- 
-Часто возникает необходимость сохранить некоторые параметры работы программы в энергонезависимую память, так чтобы при перезагрузке микроконтроллера эти данные не пропали, и мы смогли их использовать для работы программы. Это могут быть, например, параметры калибровки какого-то датчика или целевая температура термостата. 
- 
-Рассмотрим сохранение данных на примере трех чисел n1, n2, n3 с помощью модуля **MicroSTM32F10xFlash**. 
- 
-Сначала надо определить номер страницы памяти, куда будем сохранять данные. Логично определить последнюю страницу памяти, так чтобы наша прошивка не пострадала от манипуляций с FLASH. Для МК 128 кб ROM адрес определим следующим образом: 
-<code> 
- 
-CONST 
-page127 = Flash.Page0 + 127 * 1024; 
- 
-</code> 
-Если у вашего МК 64кб ROM памяти, то используйте 63 вместо 127. 
- 
-Запись данных n1, n2, n3 осуществляется следующим образом: 
-<code> 
-Flash.UnLock; 
-Flash.ErasePage(page127, res); 
-IF res = Flash.complete THEN 
- Flash.Write(page127, n1, res); 
- Flash.Write(page127 + 4, n2, res); 
- Flash.Write(page127 + 8, n3, res); 
-END; 
-Flash.Lock 
-</code> 
- 
-Считывание сохраненных данных не требует использование модуля Flash. 
- 
-<code> 
-SYSTEM.GET(page127, n1); 
-SYSTEM.GET(page127 + 4, n2); 
-SYSTEM.GET(page127 + 8, n3); 
-</code> 
- 
- 
- 
----- 
- 
-Автор заметки: [[http://iadenisov.ru|И.А. Денисов]] 
  
ob/o7/flash.txt · Последнее изменение: 2020/10/29 07:08 (внешнее изменение)