Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


Ответ
Опции темы
Непрочитано 11.08.2010, 23:56   #1
Developer_
Прописка
 
Регистрация: 21.12.2005
Сообщений: 247
Сказал спасибо: 10
Сказали Спасибо 18 раз(а) в 12 сообщении(ях)
Developer_ на пути к лучшему
По умолчанию Proteus не сохраняет изменённый EEPROM

Моя программа записывает данные в EEPROM. Очень надо что бы они остались при последующих симуляциях - т.е. эти данные должны записаться в файл eep.bin Так и должно работать eeprom. Как это сделать!
Спасибо.
Реклама:
__________________
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей, по этому чёртовому гвоздю!
Developer_ вне форума   Ответить с цитированием
Непрочитано 15.08.2010, 20:27   #2
OverHead
Частый гость
 
Регистрация: 10.10.2009
Сообщений: 10
Сказал спасибо: 0
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
OverHead на пути к лучшему
По умолчанию Re: Proteu не сохраняет изменённый EEPROM

Он обязан сохранять. У меня сохраняет все данные последней симуляции.
А чтобы сбросить на начальные, надо выбрать в меню пункт.
OverHead вне форума   Ответить с цитированием
Непрочитано 15.08.2010, 21:29   #3
AndreiVV
Гражданин KAZUS.RU
 
Регистрация: 29.06.2006
Сообщений: 638
Сказал спасибо: 37
Сказали Спасибо 56 раз(а) в 41 сообщении(ях)
AndreiVV на пути к лучшему
По умолчанию Re: Proteu не сохраняет изменённый EEPROM

Сообщение от Developer_ Посмотреть сообщение
эти данные должны записаться в файл eep.bin
А где написано что он должен там сохранять?
Initial Contents Of Data EEPROM - как вы думаете что означает?
данные сохраняются, только не в eep.bin, а в другом файле вместе с остальными данными о симуляции

Последний раз редактировалось AndreiVV; 15.08.2010 в 21:41.
AndreiVV вне форума   Ответить с цитированием
Непрочитано 16.08.2010, 09:49   #4
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,508 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Proteu не сохраняет изменённый EEPROM

Сообщение от Developer_ Посмотреть сообщение
Очень надо что бы они остались при последующих симуляциях - т.е. эти данные должны записаться в файл eep.bin
Это было бы нахальным вмешательством в исходные данные со стороны программы.
Но если хотите сохранять, то что мешает???
В окне CPU EEPROM Memory по правой кнопке есть опция Copy All. Затем вставляете в любой текстовый редактор и сохраняете как текст. Таким образом можно наделать сколько угодно копий на разных этапах симуляции. Сравнить два текстовых файла - тоже не проблема. Есть масса программ, например CompareIt. Я так и вообще работаю с текстами в редакторе ConText, там есть встроенная функция сравнения. Выявили отличия, подредактировали в любом Hex-редакторе исходный бинарник и сохранили под другим именем. Ну а затем его туды - в Initial Contents Of Data EEPROM.
Сообщение от Developer_ Посмотреть сообщение
Так и должно работать
... эмбеддер.
Не думаю, чтоб у Вас программа переписывала весь EEPROM, а поменять десяток ячеек - разминка для рук, а то пальчики атрофируются и отсохнут.
Halex07 вне форума   Ответить с цитированием
Непрочитано 16.08.2010, 10:26   #5
avr123-nm-ru
Почётный гражданин KAZUS.RU
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,559
Сказал спасибо: 76
Сказали Спасибо 326 раз(а) в 230 сообщении(ях)
avr123-nm-ru на пути к лучшему
По умолчанию Re: Proteu не сохраняет изменённый EEPROM

Сообщение от Halex07 Посмотреть сообщение
Это было бы нахальным вмешательством в исходные данные со стороны программы.
Я считаю что это было бы достоверной симуляцией работы МК.

А сохранять измененное прогой сождержимое eeprom PROTEUS могбы в специальный файл с тем же названием как у оргинала, но со спец. расширением и в название влепить момент создания для хронологии изменений. Или наоборот бэкапить оригинал.
__________________
Обучалка AVR PIC ARM начинающим программирование курс самоучитель шаг за шагом с нуля, CVAVR, PROTEUS, MPLAB, WinAVR, IAR, KEIL электроника - http://proavr.narod.ru
avr123-nm-ru вне форума   Ответить с цитированием
Непрочитано 19.10.2010, 17:05   #6
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 343
Сказал спасибо: 180
Сказали Спасибо 64 раз(а) в 56 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

Цитата:
Моя программа записывает данные в EEPROM. Очень надо что бы они остались при последующих симуляциях
Протеус сохраняет еепром при последующих симуляциях, но не в тот файл что вы хотите.
CodeNameHawk вне форума   Ответить с цитированием
Непрочитано 17.02.2012, 16:29   #7
KGN
Прописка
 
Регистрация: 16.02.2008
Адрес: Donbass
Сообщений: 218
Сказал спасибо: 68
Сказали Спасибо 112 раз(а) в 58 сообщении(ях)
KGN на пути к лучшему
По умолчанию Re: Proteu не сохраняет изменённый EEPROM

Сообщение от Halex07 Посмотреть сообщение
Это было бы нахальным вмешательством в исходные данные со стороны программы.
Извините. Вы, конечно, специалист, но с таким согласиться невозможно. Это бы как раз было абсолютно естественно, и в максимальной степени соответствовало бы реальной работе устройства в железе!
Если в железе у меня какие-то данные в процессе работы устройства сохраняются в EEPROM, то они там и остаются! Аж пока не изменятся снова или пока я не перешью контроллер!
Сообщение от Halex07 Посмотреть сообщение
Не думаю, чтоб у Вас программа переписывала весь EEPROM, а поменять десяток ячеек - разминка для рук, а то пальчики атрофируются и отсохнут.
У меня сейчас вся логика проекта завязана на то, что в процессе работы устройства различные данные периодически сохраняются в EEPROM. Отладка математики (не самой примитивной) займет не один день. И мне надо, чтобы завтра, включив комп и запустив симуляцию в PROTEUS, мое устройство начало работать с теми данными в EEPROM, которые последний раз были туда записаны вчера при симуляции! А не с исходных в HEXе! Без танцов с бубнами и прочего, максимально приближенно к реальному железу!
Неужели такой примитивной функции в столь наворочанной программе вообще нет???
KGN вне форума   Ответить с цитированием
Непрочитано 17.02.2012, 20:03   #8
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,695
Сказал спасибо: 28
Сказали Спасибо 4,508 раз(а) в 956 сообщении(ях)
Halex07 на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

Сообщение от KGN Посмотреть сообщение
И мне надо, чтобы завтра, включив комп и запустив симуляцию в PROTEUS, мое устройство начало работать с теми данными в EEPROM, которые последний раз были туда записаны вчера при симуляции!
Неужто не въехали, что именно с ними и начнет... Можете хоть год ковырять отладку. И будет начинать до тех пор пока не нажмете в меню Debug опцию Reset Persistent Model Data. В этом случае данные в EEPROM вновь загрузятся из бинарного файла, который назначен в свойстве Initial contents of EEPROM или станет все FF, т.е. непрошитым, если его там не назначено. Чего вой подымать не разобравшись...
Другая сторона вопроса, что они не сохраняются в отдельный ФАЙЛ. Но это уже камень в огород разработчиков. Все дело в том, что если сделать так, чтобы перезаписывался исходный бинарник, то это нафиг никому не нужно. Представьте - я подготовил бинарник в котором, например, офигенная таблица для термопары или терморезистора, в программе накосячил и при отладке у меня перепишется исходный бинарник - все, привет родителям... и коту под хвост моя работа. А на "очень умный совет" - "а че, резервную копию сделать заранее в лом?" - могу ответить, а кто вам запрещает сделать тоже в Протеусе? В любой момент встали в паузу, засветили окно EEPROM, только отрубите там опцию Display Characters, чтоб не схватить лишнее. Теперь по правой лапке Copy All и вставляем в нормальный HEX-editor, поволяющий сохранять бинарник. Можно даже в такой раритет, как этот:
b2hedit - халявный, простой, как автомат Калашникова и работает без установки, но свое дело делает. Все, сохранили как бинарник и в любой момент можете подгрузить именно его НО, опять же через Reset Persistent Model Data. Иначе при запуске симуляции будут подгружены данные, сохраненные от предыдущего запуска (чего вы и желали). Таких копий можно наваять столько, что хотите "вчера, но по пять", или "сегодня по три, но мелкие".
А насчет претензии, что в реальном железе МК сохраняет содержимое ПЗУ в файл -??? это как, "моя нихт понимайт". МК сохраняет содержимое ПЗУ в ПЗУ и если не организовать вывод этого содержимого через периферию в файл, то хрен вы этот файл получите без подключенного дебагера/программатора, т.е. тоже лишних "телодвижений". Так что не надо выдавать желаемое за действительное.
Во всей этой полемике есть единственное дельное пожелание от avr123-nm-ru разработчикам, но насколько оно реально реализуемо, это вопрос уже к ним в лице Тени.
ЗЫ. Поскольку ваш вопрос в другом топике дублирует этот, я думаю, там его можно удалить.
Halex07 вне форума   Ответить с цитированием
Сказали "Спасибо" Halex07
muzikantgleb (21.12.2020)
Непрочитано 18.02.2012, 04:22   #9
TEHb
Почётный гражданин KAZUS.RU
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,389
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

Давайте разберёмся, о какой именно EEPROM идёт речь. Это память программ или именно EEPROM, которую используют для хранения настроек и прочего?

Если первое - то скажите пожалуйста, что делать с данными после перекомпиляции проекта? Варианта в принципе два - сохранять данные с прошлой симуляции, что может нарушить работу программы (код то съехал), или удалять их - на что опять таки пользователи будут жаловаться. Хотя конечно некоторые функции только так и можно протестировать. Например, бутлоадер, или сериализатор MAC-адресов.

Если второе - то это у нас в списке доработок на будущее, правда не могу сказать когда это будет сделано.
TEHb вне форума   Ответить с цитированием
Непрочитано 18.02.2012, 14:50   #10
KGN
Прописка
 
Регистрация: 16.02.2008
Адрес: Donbass
Сообщений: 218
Сказал спасибо: 68
Сказали Спасибо 112 раз(а) в 58 сообщении(ях)
KGN на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

Сообщение от Halex07 Посмотреть сообщение
Неужто не въехали, что именно с ними и начнет... Можете хоть год ковырять отладку. И будет начинать до тех пор пока не нажмете в меню Debug опцию Reset Persistent Model Data. В этом случае данные в EEPROM вновь загрузятся из бинарного файла, который назначен в свойстве Initial contents of EEPROM или станет все FF, т.е. непрошитым, если его там не назначено.
Не въехал, к сожалению. Да, с Протеусом я еще далеко не на "ты". В железе не один десяток устройств сделано, а с протеусом только начинаю работать. Наверно, туплю. Буду признателен и бесконечно благодарен за тыкание в то место, где именно я туплю.
Итак, начнем сначала
У меня есть текущий результат компиляции проекта в среде программирования (в данном случае в MPLAB) - это HEX, в котором содержится код EEPROM программ и инфа с начальными значениями EEPROM данных. Т.е. все необходимое для прошивки реального контроллера устройства. И я "прошиваю" контроллер, т.е. подключаю HEX к протеусу. Начинаю симуляцию. Данные в EEPROM периодически меняются, какие часто, какие реже, какие при моем участии, какие- самостоятельно, согласно логике ПО. И даже в EEPROM программ тоже иногда кой-чего пишется, но об этом позже.
Если я останавливаю симуляцию, а потом запускаю ее снова - привет родителям, как Вы выразились. Все изменения в EEPROM, которые были получены при прошлой симуляции, пропали. Симуляция снова стартует с начальными значениями в EEPROM!
Что я делаю не так? И как все-таки сделать, чтобы данные в EEPROM реально сохранялись, тютелька в тютельку так, как это происходит в железе? Без каких-то дополнительных бинарников, которые мне надо не забывать каждый раз сохранять?
Просто объясните на пальцах, если не сложно
Сообщение от Halex07 Посмотреть сообщение
Все дело в том, что если сделать так, чтобы перезаписывался исходный бинарник, то это нафиг никому не нужно.
Вот только за всех расписываться ни к чему. Мне как раз именно это и нужно! Потому что именно это и происходит в железе. А как иначе я смогу отладить устройство, в котором, например, какие-то переменные хранятся даже не в EEPROM данных, а в памяти программ? Хватает контроллеров, в которых вообще нет EEPROM данных, а настройки хранятся в программной памяти. Или отладка обновления ПО устройства будущим пользователем, когда приличные куски кода перезаписываются средствами самопрограммирования?
Сообщение от Halex07 Посмотреть сообщение
Представьте - я подготовил бинарник в котором, например, офигенная таблица для термопары или терморезистора, в программе накосячил и при отладке у меня перепишется исходный бинарник - все, привет родителям... и коту под хвост моя работа.
Улыбнуло. Вы чего, свой бинарник с офгенной таблицей прямо так готовите? Исходников и бекапов нету, совсем?
Про копирование EEPROM, HEX-editor'ы, подгрузки копий и прочее - так не надо мне оно сейчас. Мне нужно максимальное приближение к "железному" варианту изделия. Или Ваша мобила каждый раз при включении забывает сделанные ранее настройки?? И требует их подгрузки с какого-то там бинарника?
Сообщение от Halex07 Посмотреть сообщение
А насчет претензии, что в реальном железе МК сохраняет содержимое ПЗУ в файл -??? это как, "моя нихт понимайт". МК сохраняет содержимое ПЗУ в ПЗУ и если не организовать вывод этого содержимого через периферию в файл, то хрен вы этот файл получите без подключенного дебагера/программатора, т.е. тоже лишних "телодвижений".
Вы таки не понимаете сути вопроса. Не нужно мне на данном этапе пялиться на содержимое EEPROM в каком-то там файле! Мне просто нужно, чтобы устройство работало с последними сохраненными данными. И вообще, имеющийся в устройстве дисплей и соответствующие встроенные функции при необходимости прекрасно покажут мне текущее содержимое нужных ячеек EEPROM, если будет такая необходимость. Без дебагеров и программаторов, да не в абстрактном коде, а в том формате и в той размерности, в которых они реально используются. Такие "скрытые" возможности, недоступные пользователю, я всегда закладываю во все свои устройства - очень полезно потом при диагностике и ремонте бывает, если изделие идет в серию.
Я железячник, сударь. Меня теоретические извраты мало интересуют. У меня на выходе должно получиться реальное изделие. С содержиммым EEPROM которого оно само и будет работать. И мне бы хотелось, чтобы хотя бы его программная часть в Протеусе работала именно так, как будет работать в железе. Именно в таком, пользовательском виде, мне его и надо тестировать. Только и всего.

Так как добиться нужного мне результата? Это возможно?
KGN вне форума   Ответить с цитированием
Ответ

Закладки


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Proteus 7.6 SP4 вышел. Обновляемся! Easyrider83 Proteus 7 16.02.2010 21:26
atmega128 EEPROM и PROTEUS Churchill Микроконтроллеры, АЦП, память и т.д 3 02.02.2010 17:00
atmega128 EEPROM и PROTEUS Churchill Proteus 10 31.01.2010 19:02
Proteus и EEPROM alex28411 Proteus 2 02.01.2010 15:52
[Решено] Проблема с eeprom в Proteus Memfis666 Proteus, KiCAD и другие ECAD 1 01.10.2009 15:38


Часовой пояс GMT +4, время: 13:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot