Страница 1 из 1

прошивка EEPROM

Добавлено: Пн ноя 25, 2019 08:13:38
sunjob
добрый день

прототип проекта, в процессе отработки EEPROM инициализирована необходимыми данными (участок памяти)

необходимо при прошивке конечного контроллера залить этот участок по назначению в контроллер

можно ссылки, идеи, мысли итд

спасибо

ATmega328
linux, avr-gcc
свисток + AVR MKII
Arduino-MK / avrdude

зы
в инете набегом, поэтому вопросы без арт-подготовки :о)

Re: прошивка EEPROM

Добавлено: Пн ноя 25, 2019 10:19:51
akl
Часто приходится так делать на своем программаторе AS-4 (AS-2). Читаю EEPROM в буфер программатора, сохраняю в файл. При прошивке боевого контроллера загружаю этот файл в буфер EEPROM и прошиваю.

Re: прошивка EEPROM

Добавлено: Пн ноя 25, 2019 11:52:53
NStorm
1. Сделать .eep файлик и прошить его через avrdude. Он прекрасно умеет прошивать eeprom.
2. Варианты в коде C прописать секцию, описание:
https://www.avrfreaks.net/comment/14608 ... nt-1460806

Re: прошивка EEPROM

Добавлено: Пн ноя 25, 2019 13:24:58
pyzhman
Засада может быть при прошивке. Если лапки мк подтянуты в программаторе не так, как в боевой схеме, то хана инфе в епроме.

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 05:11:41
sunjob
спасибо, немного не так поняли...

уже разобрался :о)
вопрос был в том, как дудкой слить EEPROM в файл... (ну, а потом его и использовать... для заливки)

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 06:16:26
NStorm
Дудка прекрасно может и считать точно также в .eep файлик. И потом прошивать его на другие МК.
Но вообще подход несколько неправильный просто, копировать так. Поэтому сразу привел пример более правильного подхода.

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 08:56:16
OKF
Посредством EEMEM создаёте .eep, дудкой пишете, дудкой читаете. Зачем ещё какие то извращения?

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 09:36:30
sunjob
to NStorm
Но вообще подход несколько неправильный просто, копировать так. Поэтому сразу привел пример более правильного подхода.
создается "сетка данных" (НЕ В ПРОГРАММЕ, бл... мур...) и потом эту "сетку" надо сохранить для переноса на конечные контроллеры (процесс создания сетки и все сопутствующие вопросы опустим, ладушки?!)
в данном случае, я считаю (хозяин тоже, мур...) что - это единственно оптимальный и удобный путь!

поэтому, ув. кот,OKF, EEMEM - не катит, ни куда... (про него хозяин тоже в курсе, мур...)

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

ну а так, вот пойми этих двуногих, сегодня им подавай таку еду, завтра другу... враги котов, какие-то... :))

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 12:34:24
Demiurg
Два варианта.
Всё данные для EEPROM прописывается в проекте. Эта область указана как данные EEPROM и при компиляции проекта создаётся файл .eep, который и заливают в МК.
Прототип в процессе работы сохраняет данные в EEPROM. Программатором считываем EEPROM в файл.eep, который потом заливаем в последующие МК. Этот способ плох тем, что если в проект внесли изменения в работу с EEPROM, могут съехать адреса переменных.
Так что лучше всего данные ручками прописать в самом проекте и скомпилировать.

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 13:21:46
sunjob
Этот способ плох тем, что если в проект внесли изменения в работу с EEPROM, могут съехать адреса переменных.
этот способ единственно хорош ... хозяин упрямый у меня... а если я его буду переубеждать, он, скатина, не даст мне царампать его тапки :) ну, короче, только так, по другому ни в какую

### UPDATE ###

походу еще задачка нарисовалась :о)

имеем указатель на свободный участом EEPROM

Код: Выделить всё

#define FREE_PTR ((sizeof(...) ... ))
вопрос: как препроцессором/варнингом вывести значение указателя?

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 15:18:02
NStorm

Код: Выделить всё

#define VALUE_TO_STRING(x) #x
#define VALUE(x) VALUE_TO_STRING(x)
#pragma message "Free: " VALUE(FREE_PTR)
По "сетке" - кто мешает сетку не шить сразу как бинарные данные в EEPROM, а сконвертировать в вид EEMEM? И потом уже из кода генерировать пусть для начала тот же самый .eep, но для внесения изменений надо будет поправить человеко-читаемый код в тексте проги, а не лезть в хекс.

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 15:37:15
Demiurg
Как то диковато читать сценки из ролевых игр...

Re: прошивка EEPROM

Добавлено: Вт ноя 26, 2019 15:40:07
sunjob
препроцессор не разворачивает sizeof()
зы
По "сетке" ... тыц