admin

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

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

admin    2 272

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

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


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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

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

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

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

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


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

У 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    11

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

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

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


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

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

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

stm32_debugger_settings.JPG

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


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

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

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

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

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

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

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

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

Загрузка...

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

    • Автор: Astrix77
      Добрый вечер!
      Необходимо написать код и разработать схему для контроллера управления домом:
      1й этап самый простой, необходим код для управления освещением.
      2й этап, написание кода для управления температурой дома.
      Цена и сроки договорные, подробности в личке.
      Забыл добавить. Код нужен для отладочной платы STM32VLDISCOVERY, только камень заменен на stm32f103ret6
      В начале нужна будет консультация по установке и настройке всех необходимых программ для прошивки МК
    • Автор: ToRcH2565
      Добрый день, недавно начал изучать азы STM, и наткнулся на интересную возможность, а именно отправлять текст через отладочный порт:
      https://hubstub.ru/stm32/111-otladka-po-swd-stm32.html  (дабы долго не обьяснять о чем я веду речь, ибо без знания терминов это может затянутся).
      Так вот, столкнулся я с проблемкой, а именно где же можно данные сообщения посмотреть в EmBlocks, отладочные окна пролез все, там не нахожу, возможно нужно ковырять глубже настройки среды? или данная среда не умеет отображать эти сообщения?
      Очень не хотелось бы городить UART для отображение отладочных сообщений...
    • Автор: Motrosoff8888
      Всем привет! Ребят есть вот это STM32F030K6T6 
      вот это, адаптер для прошивки  
      и это, собственно чем прошить. 
      Имеется прошивка, скетч, для двух Atmega328p. Есть пьезоэлементы, которые подсоединены к аналоговому пину, при касании, одна другой передаёт символы через NRF24l01, друга принимает таким же модулем и отправляет данные по блютус HC-05 на телефон.  Хотелось бы перенести её на STM32, не бесплатно конечно но и в рамках разумного. Цель переноса на STM32 - увеличить скорость отклика (задержка между ударом по пьезику и появлением символа в мониторе порта телефона) пьезо! И есть уже адаптер для прошивки МК с 32 ножками. Буду признателен если кто то ответит, можно в ЛС
    • Автор: Motrosoff8888
      Всем привет! Ребят есть вот это STM32F030K6T6 
      вот это, адаптер для прошивки 
      и это, собственно чем прошить. 
      Имеется прошивка для двух Atmega328p. Есть пьезоэлементы, которые подсоединены к аналоговому пину, при касании, одна другой передаёт символы через NRF24l01, друга принимает таким же модулем и отправляет данные по блютус HC-05 на телефон.  Хотелось бы перенести её на STM32, не бесплатно конечно но и в рамках разумного. Цель переноса на STM32 - увеличить скорость отклика (задержка между ударом по пьезику и появлением символа в мониторе порта телефона) пьезо! И есть уже адаптер для прошивки МК с 32 ножками. Буду признателен если кто то ответит, можно в ЛС
    • Автор: saer2
      Добрый!
      Осваиваю стм32.
      Уточните пожалуйста, есть ли описание библиотеки stblib ? 
      как с ней работать?
  • Сообщения

    • А зачем пальцы насиловать , нужно глазами глядеть на параметры ТР, мне что купить и перематывать его?
    • Тогда нужно 25кв сипа и его опрессовывать в наконечники, но проблема, нет пресса у меня, покупать пресс хороший денег стоит Вот и думаю как лучше, лишние советы не помешают, жду P.S. не люблю я тяп ляп, хочу красиво и правильно и с запасом
    • Понятно откуда берутся 100% положительных отзывов.. Продавец считает, что достаточно вернуть 100 рублей покупателю 5шт его фейковых железок, чтобы снова стать белым и пушистым .

      Хрен ему по воровской косой роже. Вот за пять штук настоящих транзисторов, куда ни шло, я бы ещё мог пойти на сделку с совестью..  Да и то, транзисторы сначала, а отзыв потом. Только где ему их взять..
    • А я бы не заморачивался, если есть документы, то скачал бы их на сьемный носитель или другой ПК. А потом бы установил Win на весь диск. Раз в 2 года у дочери на Asus X301A так и делаю, при чем Win лицуха. И не надо UEFI убирать система же поддерживает.
    • при выборе на какой диск ставить шиндоус, нажимаем сшифт+ф10 (кажется так) открывается командная строка, дальше через встроенную утилиту diskpart удаляем все разделы, и форматируем, в интернетах есть инструкции, удачи)
    • Рез и будущие склейки  симметричны - зазоров 2 и они равны половине ( 1/2)  расчётного - механическая прочность сердечника обеспечивается не металлическим  бандажом. Киперная лента по  перимеру и поперечная обмотка - с пропиткой  электроизоляционным лаком и сушкой. Вариант скотч на бумажной или пластиковой основе. А идеал, видемагнитофонная магнитная лента - не заменима как междуобмоточная  и покровная изоляция ... Оптимально сделать один рез , но точно нужной ширины - зазор залить компаундом  перед станочной намоткой - усиленый бандаж не требуется ....
    • На чистый винт система установиться сама, нужно только с официального сайта скачать программу установки на флешку т запустить ее. Флешка зальется сама. Неужели у вас нет друзей и знакомых у которых можно было сделать эту флешку. Мне для установки 10 пришлось купить чистый винт и установить на него систему, а старый использовать как накопитель. Это раньше можно было ХР ставить на один винт хоть 10 штук, а теперь нет. Сначала устанавливаешь систему, а потом системными прогами разбиваешь его на две части (документы). https://www.microsoft.com/ru-ru/software-download/windows10ISO Но заходить на сайт нужно под Win, я зашел под Ubuntu16.04.