Oleg_IT 0 Posted December 8, 2015 · Report post Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить? Quote Ответить с цитированием Share this post Link to post Share on other sites
Johnny81 0 Posted December 8, 2015 · Report post Что такое готовый модуль? Там какая-то готовая прошивка? stm32F4 не умеет исполнять программу из nand. Т.е. там есть загрузчик, который ее оттуда выгружает в ОЗУ. Дальше соответственно смотреть, что делает загрузчик, определить, какие блоки свободны и писать туда... Quote Ответить с цитированием Share this post Link to post Share on other sites
Oleg_IT 0 Posted December 8, 2015 · Report post Модуль готовый, программа моя. То что программа загружается в ОЗУ это понятно. Есть библиотека или примеры как в NAND записать/прочитать байт? Quote Ответить с цитированием Share this post Link to post Share on other sites
Johnny81 0 Posted December 8, 2015 · Report post AN2784 есть (он про F1, но разницы особой нет). Плюс даташит на вашу модель Nand. Но я все еще не понял - программа ваша, а загрузчик нет? Можно ж посмотреть, что загрузчик делает... Quote Ответить с цитированием Share this post Link to post Share on other sites
scifi 0 Posted December 8, 2015 · Report post Есть библиотека или примеры как в NAND записать/прочитать байт? NAND для хранения часто меняющихся настроек - не очень кузяво. Ресурс, как считается, невелик по сравнению с набортной флеш STM32. Записывать можно только страницу целиком, стирать - только блок (много страниц). Почему бы не задействовать для этого встроенную флеш STM32? На этом форуме уже было множество обсуждений нюансов, с этим связанных. Quote Ответить с цитированием Share this post Link to post Share on other sites
Johnny81 0 Posted December 8, 2015 · Report post NAND для хранения часто меняющихся настроек - не очень кузяво. Тут вопрос, насколько заморочиться. Если сделать wear leveling, плюс использование всех страниц в блоке - по идее будет вполне нормально с ресурсом. Опять же вопрос, что есть настройки и как часто они меняются. Но со встроенным флешем в разы проще, это да :) Quote Ответить с цитированием Share this post Link to post Share on other sites
Oleg_IT 0 Posted December 9, 2015 · Report post Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке. Чего-то про встроенный флешь не подумал. Quote Ответить с цитированием Share this post Link to post Share on other sites
Kolia 0 Posted December 9, 2015 · Report post Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке. Чего-то про встроенный флешь не подумал. Есть еще память RTC и Backup ОЗУ, правда нужна батарейка, зато доступ как к обычной ОЗУ Quote Ответить с цитированием Share this post Link to post Share on other sites
KnightIgor 0 Posted December 10, 2015 · Report post Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить? Как scifi уже заметил, было множество обсуждений на тему. Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут. Quote Ответить с цитированием Share this post Link to post Share on other sites
Rash 0 Posted December 10, 2015 · Report post можно написать эмулятор eeprom используя 2 страницы внутренней флеш, как по мне очень удобно. STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить. Quote Ответить с цитированием Share this post Link to post Share on other sites
ohmjke 0 Posted December 10, 2015 · Report post STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить. А в чем именно глючность? Quote Ответить с цитированием Share this post Link to post Share on other sites
AlexandrY 0 Posted December 10, 2015 · Report post Как scifi уже заметил, было множество обсуждений на тему. Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут. Зачем мучать внутреннюю Flash контроллера когда есть NAND? В Keil с недавних пор файловая система стала поддерживать NAND. Там делов на пару минут. Скачивается SDK для нужного чипа, конфигурируются разделы NAND и все, можно штатными командами fread , fwrite писать в NAND сколько и чего угодно. Quote Ответить с цитированием Share this post Link to post Share on other sites
Rash 0 Posted December 10, 2015 · Report post А в чем именно глючность? где-то в автомате инициализации, при постоянном дерганье питания в различных режимам происходит сбой, что все 2 выделенные страницы помимо полезных данных, содержат всякий бред. Нет CRC данных, но это недостаток. Сильно разбираться не стал где косяк, т.к. выловить такое на отладке проблематично. Написал свою, пол года в работе, в различных условиях помех, нареканий не было. В Keil с недавних пор файловая система стала поддерживать NAND. Поподробней можно этого трюка. В другие компиляторы, например в IAR портировать можно? Quote Ответить с цитированием Share this post Link to post Share on other sites
AlexandrY 0 Posted December 10, 2015 · Report post Поподробней можно этого трюка. В другие компиляторы, например в IAR портировать можно? Нет в IAR не портируется, ибо Keil свои базовые либы на C-и не раскрывает. А файловая система у них работает через слой базовых библиотек. Но есть же еще лучшая файловая от Micrium. Давалась здесь инфа по этому поводу. Quote Ответить с цитированием Share this post Link to post Share on other sites
Rash 0 Posted December 10, 2015 · Report post Micrium как то пропустил из вида, да и бесплатных обновлений нет на неё, но можно и FatFs прикрутить, вопрос кто Nand на прямую подключённую обслуживать правильно будет Quote Ответить с цитированием Share this post Link to post Share on other sites