Перейти к содержанию
    

Сохранение настроечных параметров.

Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что такое готовый модуль? Там какая-то готовая прошивка?

 

stm32F4 не умеет исполнять программу из nand. Т.е. там есть загрузчик, который ее оттуда выгружает в ОЗУ. Дальше соответственно смотреть, что делает загрузчик, определить, какие блоки свободны и писать туда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Модуль готовый, программа моя.

То что программа загружается в ОЗУ это понятно. Есть библиотека или примеры как в NAND записать/прочитать байт?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AN2784 есть (он про F1, но разницы особой нет). Плюс даташит на вашу модель Nand.

 

Но я все еще не понял - программа ваша, а загрузчик нет? Можно ж посмотреть, что загрузчик делает...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть библиотека или примеры как в NAND записать/прочитать байт?

NAND для хранения часто меняющихся настроек - не очень кузяво. Ресурс, как считается, невелик по сравнению с набортной флеш STM32. Записывать можно только страницу целиком, стирать - только блок (много страниц).

Почему бы не задействовать для этого встроенную флеш STM32? На этом форуме уже было множество обсуждений нюансов, с этим связанных.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

NAND для хранения часто меняющихся настроек - не очень кузяво.

 

Тут вопрос, насколько заморочиться. Если сделать wear leveling, плюс использование всех страниц в блоке - по идее будет вполне нормально с ресурсом. Опять же вопрос, что есть настройки и как часто они меняются.

 

Но со встроенным флешем в разы проще, это да :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке.

Чего-то про встроенный флешь не подумал.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке.

Чего-то про встроенный флешь не подумал.

 

Есть еще память RTC и Backup ОЗУ, правда нужна батарейка, зато доступ как к обычной ОЗУ

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить?

Как scifi уже заметил, было множество обсуждений на тему.

Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

можно написать эмулятор eeprom используя 2 страницы внутренней флеш, как по мне очень удобно. STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить.

 

А в чем именно глючность?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как scifi уже заметил, было множество обсуждений на тему.

Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут.

 

Зачем мучать внутреннюю Flash контроллера когда есть NAND?

В Keil с недавних пор файловая система стала поддерживать NAND.

Там делов на пару минут.

Скачивается SDK для нужного чипа, конфигурируются разделы NAND и все, можно штатными командами fread , fwrite писать в NAND сколько и чего угодно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А в чем именно глючность?

 

где-то в автомате инициализации, при постоянном дерганье питания в различных режимам происходит сбой, что все 2 выделенные страницы помимо полезных данных, содержат всякий бред. Нет CRC данных, но это недостаток. Сильно разбираться не стал где косяк, т.к. выловить такое на отладке проблематично. Написал свою, пол года в работе, в различных условиях помех, нареканий не было.

 

В Keil с недавних пор файловая система стала поддерживать NAND.

Поподробней можно этого трюка. В другие компиляторы, например в IAR портировать можно?

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поподробней можно этого трюка. В другие компиляторы, например в IAR портировать можно?

 

Нет в IAR не портируется, ибо Keil свои базовые либы на C-и не раскрывает. А файловая система у них работает через слой базовых библиотек.

 

Но есть же еще лучшая файловая от Micrium. Давалась здесь инфа по этому поводу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Micrium как то пропустил из вида, да и бесплатных обновлений нет на неё, но можно и FatFs прикрутить, вопрос кто Nand на прямую подключённую обслуживать правильно будет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...