Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внутренняя или внешняя Flash?
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
_Макс
Никогда ранее не использовал Flash микроконтроллера для хранения настроек. Практически традиция использовать внешнюю AT24.

Как пишется и читается информация со внутренней Flash памяти в STM32?
В стандартной библиотеке нашел функцию записи байта. Нужно ли предварительно стирать? Как прочитать потом?
Как сделать чтобы процедура записи/чтения происходила автоматически при работе со своими переменными или массивами? В CodeVisionAVR есть спецификатор eeprom. Есть ли что-то подобное в STM32?
scifi
Вам нужно почитать Application Note AN2594: EEPROM emulation in STM32F10x microcontrollers.
В двух словах: выделяется 2 сектора флэш и в них эмулируется EEPROM (сектора стираются попеременно). Получается очень неплохо.
_Макс
А для LPC1xxx есть что-то подобное? По моим наблюдениям у них куда более бедный софт нежели для STM32, но микроконтроллеры получше. А может я просто искать на ихнем сайте не умею?)
scifi
Цитата(_Макс @ Jan 6 2011, 23:52) *
А для LPC1xxx есть что-то подобное?

Если я правильно понимаю, в микроконтроллерах от NXP флэш-память имеет ограничения, которые делают её практически непригодной для эмуляции EEPROM. Если только не требуется большое число перезаписей, можно что-то придумать. Ключевые слова - IAP (in-application programming).
_Макс
Цитата(scifi @ Jan 6 2011, 23:01) *
Если я правильно понимаю, в микроконтроллерах от NXP флэш-память имеет ограничения, которые делают её практически непригодной для эмуляции EEPROM. Если только не требуется большое число перезаписей, можно что-то придумать. Ключевые слова - IAP (in-application programming).

Кажется IAP (in-application programming) это внутрисхемная прошивка МК.
rezident
Цитата(_Макс @ Jan 7 2011, 02:45) *
Кажется IAP (in-application programming) это внутрисхемная прошивка МК.
Нет. Внутрисхемная это ISP - In-System Prorgamming (вариант In-Scheme Programming). IAP это именно внутрипрограммное программирование, хотя по-русски звучит несколько тавтологично.
_Макс
Цитата(rezident @ Jan 6 2011, 23:54) *
Нет. Внутрисхемная это ISP - In-System Prorgamming (вариант In-Scheme Programming). IAP это именно внутрипрограммное программирование, хотя по-русски звучит несколько тавтологично.

Ваша правда, но всеравно ничего не нашел.
skripach
Цитата
Практически традиция использовать внешнюю AT24.

Неплохая традиция, если нет прессинга по цене конечной, то лучше не отходить от традиций.
Читать флеш просто как и обычную рам - по указателю к примеру. Писать сложнее.
rezident
Цитата(_Макс @ Jan 7 2011, 03:21) *
Ваша правда, но всеравно ничего не нашел.
Что именно не нашли? И ISP и IAP описаны в User manual. Если взять, например, UM10360 для LPC17xx, то там следует см. главу 32. А точнее 32.8 IAP commands.
_Макс
Нашел. Первая ссылка по STM32 показалась куда более понятной и информативной. У меня небольшой опыт. Что лучше на практике?
akimych
Flash микроконтроллера - не еепром, потому записывать в нее что-то весьма неудобно. Читать наоборот - очень удобно.
По принципу записи это скорее at25df, чем at24. К примеру у stm32 страницы от 1КБ и более. А ресурс 10к цилов всего. У еепром 1м циклов ресурс.
Так что тут надо определиться, что хранить и как часто надо записывать и как записывать (последовательно или в случайном порядке).
В контроллере удобно хранить данные, которые перезаписывать надо редко, а читать часто.

Вот интересно, в армах почему-то не делают еепром.
toweroff
Цитата(akimych @ Jan 8 2011, 00:13) *
Вот интересно, в армах почему-то не делают еепром.

кто это Вам такое сказал?
akimych
Цитата
кто это Вам такое сказал?

Сам догадался biggrin.gif
Может не точно выразился. Утверждать, что вообще нет армов с еепромом я ест-но не буду, я же их не все смотрел (в основном atmel, nxp, stm).
Просто есть некая тендеция. К примеру взять атмел, в 8ми битниках еепром есть, авр32 и армах - уже нету.
Тоже самое и у других (опять же не утверждаю, что у всех).

Цитата
In your opinion why ARM7 microcontrollers (such as LPC2000, AT91SAM7S and STR7) does not have internal EEPROM?

Цитата
It's not supported by the fab process they use.

Скорее всего так и есть, всё дело в технологии.

toweroff
А вот ARM9 от NXP в этом плане порадовал (LPC29xx)
akimych
О, и правда в LPC29xx "16 kB true EEPROM, byte-erasable and programmable".
Какие еще есть?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.