реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Сохранение настроечных параметров.
Oleg_IT
сообщение Dec 8 2015, 09:34
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 8 2015, 12:10
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



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

stm32F4 не умеет исполнять программу из nand. Т.е. там есть загрузчик, который ее оттуда выгружает в ОЗУ. Дальше соответственно смотреть, что делает загрузчик, определить, какие блоки свободны и писать туда...
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Dec 8 2015, 12:44
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Модуль готовый, программа моя.
То что программа загружается в ОЗУ это понятно. Есть библиотека или примеры как в NAND записать/прочитать байт?
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 8 2015, 12:50
Сообщение #4


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



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

Но я все еще не понял - программа ваша, а загрузчик нет? Можно ж посмотреть, что загрузчик делает...
Go to the top of the page
 
+Quote Post
scifi
сообщение Dec 8 2015, 13:28
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Oleg_IT @ Dec 8 2015, 15:44) *
Есть библиотека или примеры как в NAND записать/прочитать байт?

NAND для хранения часто меняющихся настроек - не очень кузяво. Ресурс, как считается, невелик по сравнению с набортной флеш STM32. Записывать можно только страницу целиком, стирать - только блок (много страниц).
Почему бы не задействовать для этого встроенную флеш STM32? На этом форуме уже было множество обсуждений нюансов, с этим связанных.
Go to the top of the page
 
+Quote Post
Непомнящий Евген...
сообщение Dec 8 2015, 13:45
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Цитата(scifi @ Dec 8 2015, 16:28) *
NAND для хранения часто меняющихся настроек - не очень кузяво.


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

Но со встроенным флешем в разы проще, это да sm.gif
Go to the top of the page
 
+Quote Post
Oleg_IT
сообщение Dec 9 2015, 08:02
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 922
Регистрация: 3-06-05
Из: Москва
Пользователь №: 5 709



Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке.
Чего-то про встроенный флешь не подумал.
Go to the top of the page
 
+Quote Post
Kolia
сообщение Dec 9 2015, 08:11
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 188
Регистрация: 28-09-06
Из: Minsk
Пользователь №: 20 762



Цитата(Oleg_IT @ Dec 9 2015, 11:02) *
Сохранять нужно не более 10 байт, и очень редко, скорей всего при настройке.
Чего-то про встроенный флешь не подумал.


Есть еще память RTC и Backup ОЗУ, правда нужна батарейка, зато доступ как к обычной ОЗУ
Go to the top of the page
 
+Quote Post
KnightIgor
сообщение Dec 10 2015, 17:15
Сообщение #9


Знающий
****

Группа: Участник
Сообщений: 643
Регистрация: 29-05-09
Из: Германия
Пользователь №: 49 725



Цитата(Oleg_IT @ Dec 8 2015, 10:34) *
Есть готовый модуль с STM32F417, на нём стоит NAND. Как я понимаю, программа туда и записывается. Нужно сохранить несколько байт настроечной информации, периодически она может меняться. Как записать/считать данные и как выбрать адреса куда записывать в NAND, что бы там ни чего не испортить?

Как scifi уже заметил, было множество обсуждений на тему.
Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут.
Go to the top of the page
 
+Quote Post
Rash
сообщение Dec 10 2015, 20:52
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



можно написать эмулятор eeprom используя 2 страницы внутренней флеш, как по мне очень удобно. STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить.
Go to the top of the page
 
+Quote Post
ohmjke
сообщение Dec 10 2015, 21:03
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 116
Регистрация: 27-01-10
Из: СПб
Пользователь №: 55 094



Цитата(Rash @ Dec 10 2015, 23:52) *
STMовский эмулятор советую не брать, глючный алгоритм при инициализации у них, проявилось на аккумуляторных устройствах, которые могут перезагружаться подряд несколько раз при севшем аккуме и все данные портить.


А в чем именно глючность?
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 10 2015, 21:18
Сообщение #12


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(KnightIgor @ Dec 10 2015, 19:15) *
Как scifi уже заметил, было множество обсуждений на тему.
Например я пишу настройки во внутреннюю флэш контроллера, объявляя настройки в программе как константы с атрибутами, которые собираются затем в последнюю страницу флэш. Более подробно в тему я писал тут.


Зачем мучать внутреннюю Flash контроллера когда есть NAND?
В Keil с недавних пор файловая система стала поддерживать NAND.
Там делов на пару минут.
Скачивается SDK для нужного чипа, конфигурируются разделы NAND и все, можно штатными командами fread , fwrite писать в NAND сколько и чего угодно.
Go to the top of the page
 
+Quote Post
Rash
сообщение Dec 10 2015, 21:25
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Цитата(ohmjke @ Dec 11 2015, 00:03) *
А в чем именно глючность?


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

Цитата(AlexandrY @ Dec 11 2015, 00:18) *
В Keil с недавних пор файловая система стала поддерживать NAND.

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


Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Dec 10 2015, 21:38
Сообщение #14


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(Rash @ Dec 10 2015, 23:25) *
Поподробней можно этого трюка. В другие компиляторы, например в IAR портировать можно?


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

Но есть же еще лучшая файловая от Micrium. Давалась здесь инфа по этому поводу.
Go to the top of the page
 
+Quote Post
Rash
сообщение Dec 10 2015, 21:43
Сообщение #15


Знающий
****

Группа: Свой
Сообщений: 639
Регистрация: 5-09-05
Пользователь №: 8 231



Micrium как то пропустил из вида, да и бесплатных обновлений нет на неё, но можно и FatFs прикрутить, вопрос кто Nand на прямую подключённую обслуживать правильно будет
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01495 секунд с 7
ELECTRONIX ©2004-2016