admin

Запись Данных По Flash Память Напрямую С Coide

14 сообщений в этой теме

admin    2 236

Вопрос такой, известно, что у большинства STM32 нет EEPROM памяти и данные нужно хранить в Flash памяти. С чтением и записью данных я разобрался, данные (настройки) храню в последней 127 странице памяти. Эти самые настройки я передаю по UART, только вот проблема такая, что мне нужно при прошивке МК и первом запуске программы, эти настройки напрямую записать в память, т.е. дефолтные. В CooCox CoIDE я такого не нашел. Возможно вообще такое?

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
hd44780    189

Здравствуйте.

Если ещё актуально ..

С STM32 пока дел не имел, но можно просто при каждом запуске прошивки проверять, есть ли там данные (например, если все ячейки равны FF, то ничего там нет).

Если там пусто - прошивать умолчания.

Насчёт прошивки - в разных средах есть файлики, которые говорят линкеру, куда чего писать. Я пользуюсь IAR-ом, у него есть файлы .icf, там сидят эти адреса. Хотя никогда не пользовался. Знаю лишь теоретически :) .

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


Ссылка на сообщение
Поделиться на других сайтах
admin    2 236
С STM32 пока дел не имел, но можно просто при каждом запуске прошивки проверять, есть ли там данные (например, если все ячейки равны FF, то ничего там нет).

Если там пусто - прошивать умолчания.

Да, я так и сделал, просто было интересно именно насчет CoIDE, но по видимому там такое не предусмотрено

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


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

Эти самые настройки я передаю по UART, только вот проблема такая, что мне нужно при прошивке МК и первом запуске программы, эти настройки напрямую записать в память, т.е. дефолтные.

Здравствуйте! Создайте массив во флэш памяти нужного Вам размера, и загоните значения которые Вам надо. Это если Вам не нужно будет их в дальнейшем изменять.

Если нужно будет изменять данные, а на борту ЧИПа нету еепром - придется прикручивать внешнюю память 24Схх

Посмотрите в хелпе к компилятору как объявить массив.

Изменено пользователем Bokopor

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


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

Изменять данные в последствии нужно. Как загонять туда данные я знаю. EEPROM на борту присутствует у STM32.

Вопрос тут в другом

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


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

При резервировании области flash под еепром, скорее всего объявляется массив с необходимым размером. Если это так, то можно при объявлении прописывать дефолтные значения, типа:

const flash   ee_flash_arr[1024]={0x00, 0x01, 0x02,... };

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


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

А разве в программе можно флэш перезаписывать? :unknw:

Она-же вроде только раз может записаться.. при прошивке.

Анатолий, если Вам надо будет менять значения в дальнейшем а в STM32 нету еепром, то Вам придется использовать внешнюю память, как не крути...

Самое маленькое и простое это 24Схх или 93Схх соответственно I2C и SPI . Скорость работы у 93 серии выше чем у 24.

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


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

У STM32 есть энергонезависимая флэш, просто она совмещенная. Данные там нормально можно хранить, записывать и считывать, вот рабочий код: http://forum.cxem.ne...3

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


Ссылка на сообщение
Поделиться на других сайтах
IVM    0
В 27.11.2012 в 10:31, admin сказал:

нужно при прошивке МК и первом запуске программы, эти настройки напрямую записать в память, т.е. дефолтные. В CooCox CoIDE я такого не нашел. Возможно вообще такое?

-- У меня тот же вопрос: Кто нибудь уже решил проблему ? 

Использую stm32f103с8 память 64К, нужно разместить дефолтные калибровки на 64 странице(FLASH_PAGE_63   0x800FC00) в CooCox CoIDE. 

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


Ссылка на сообщение
Поделиться на других сайтах
IVM    0
В 07.07.2017 в 12:15, Zhuk72 сказал:

Второе сообщение. Пробуйте.

-- Спасибо! Пока ничего не получилось. 

С указанием адреса там только последний пример (е). Вставляю код:

const unsigned long const Table[200] __attribute__ ((section(".Table")))={ 0 } ;//;

//linkscript add the like this:
?rom(rx): ORIGIN = 0x0800FC00, LENGTH = 0x00000100
.Table : { (0,0) } //> rom

на строке со знаком вопроса(перед rom(rx)) пишет:

Цитата

Multiple markers at this line
    - Syntax error
    - Missing ;

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


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

Так ведь второе надо не в код добавлять, а куда-нибудь в настройку линкера.

Там же так и написано, правда криво, вероятно онлайн переводчиком с китайского.

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


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

Форумчане, коллеги! Подскажите, пожалуйста. CoIDE выдает вот такую ошибку при записи во флешпамять:  Error: Connect failed, check config and cable connection. Со шнуром USB всё в порядке, ST-Link Utility установил. Но в диспетчере устройств драйвер STM32 почему-то именно в разделе дисковых устройствах отображается(в контроллерах USB его нет). На отладочной плате Discovery горит Красный светодиод. Настройки дебаггера в CoIDE прилагаю. Спасибо.

Настройки дебаггера.

stm32_debugger_settings.JPG

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


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

Ваша публикация должна быть проверена модератором

Гость
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 смайлов.

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

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

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

Загрузка...

  • Похожие публикации

    • Гость Илья
      Автор: Гость Илья
      Доброго времени суток, уважаемые читатели. Решил собрать зеркало в ванную комнату, такое, чтоб новости сообщало, погоду, время, и еще показания пары датчиков. Внешне будет смотреться органично, выложу проект, пока что заказываю комплектующие. 
      Возник следующий вопрос; возможно ли на stm32 сделать какую-никакую графику, чтоб при этом работала не как слайд шоу? K примеру, на дисплее погода, махнул рукой, появились новости, выбрал нужную, читаешь, перелистываешь.
      Встраивать малинку считаю нецелесообразным, все-таки зеркало, а не медиа-центр.
      Жду ваших советов!
    • Автор: nick32
      Здравствуйте. У st.com, похоже, что-то сломалось, и драйвер не скачивается. Скиньте, пожалуйста, установщик драйвера.
    • Автор: MDG_Lab
      Здравствуйте! 
      Ткните пожалуйста носом начинающего, как в Arduino IDE настроить частоту ШИМ. 
      Работаю с STM32F103, функции analogWrite(*); pwmWrite(*); Этими функциями задаю номер порта и коэффициент заполнения.
    • Автор: TIGER53501
      Привет, никак не могу разобраться с таймером в режиме сброса по внешнему событию,
      сам сброс работает, таймер сбрасывается, вопрос вот в чём, могу ли я в этом режиме использовать захват на оставшихся каналах?
      т.е. по внешнему событию сбрасывать таймер, и потом внешними событиями записывать сколько он протикал с момента сброса?
      STM32F429ZI
      СИ + VisualGDB + HAL + Cube
    • Автор: misterflud
      В общем нужна библиотека для вывода текста с STM32RB100 на экран 1602a. Соединение -- через 4 или 8 ножки. Я вам даю микроконтроллер и дисплей, а вы ищите или пишите библиотеку для этого. В общем нужно чтобы заработало. Если дисплей не работает, то подобрать другой.
      Пишите сюда либо на почту yurolejniko@yandex.ru