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

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

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

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

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

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


 
Опции темы

Proteus не сохраняет изменённый EEPROM

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

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

Он обязан сохранять. У меня сохраняет все данные последней симуляции.
А чтобы сбросить на начальные, надо выбрать в меню пункт.
OverHead вне форума  
Непрочитано 15.08.2010, 21:29  
AndreiVV
Гражданин KAZUS.RUN
 
Регистрация: 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  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,693
Сказал спасибо: 28
Сказали Спасибо 4,526 раз(а) в 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  
avr123-nm-ru
Почётный гражданин KAZUS.RUN
 
Регистрация: 13.05.2006
Адрес: Москва
Сообщений: 3,552
Сказал спасибо: 75
Сказали Спасибо 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  
CodeNameHawk
Вид на жительство
 
Регистрация: 21.10.2009
Сообщений: 349
Сказал спасибо: 181
Сказали Спасибо 65 раз(а) в 57 сообщении(ях)
CodeNameHawk на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

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

Сообщение от Halex07 Посмотреть сообщение
Это было бы нахальным вмешательством в исходные данные со стороны программы.
Извините. Вы, конечно, специалист, но с таким согласиться невозможно. Это бы как раз было абсолютно естественно, и в максимальной степени соответствовало бы реальной работе устройства в железе!
Если в железе у меня какие-то данные в процессе работы устройства сохраняются в EEPROM, то они там и остаются! Аж пока не изменятся снова или пока я не перешью контроллер!
Сообщение от Halex07 Посмотреть сообщение
Не думаю, чтоб у Вас программа переписывала весь EEPROM, а поменять десяток ячеек - разминка для рук, а то пальчики атрофируются и отсохнут.
У меня сейчас вся логика проекта завязана на то, что в процессе работы устройства различные данные периодически сохраняются в EEPROM. Отладка математики (не самой примитивной) займет не один день. И мне надо, чтобы завтра, включив комп и запустив симуляцию в PROTEUS, мое устройство начало работать с теми данными в EEPROM, которые последний раз были туда записаны вчера при симуляции! А не с исходных в HEXе! Без танцов с бубнами и прочего, максимально приближенно к реальному железу!
Неужели такой примитивной функции в столь наворочанной программе вообще нет???
KGN вне форума  
Непрочитано 17.02.2012, 20:03  
Halex07
Супер-модератор
 
Аватар для Halex07
 
Регистрация: 03.05.2007
Сообщений: 2,693
Сказал спасибо: 28
Сказали Спасибо 4,526 раз(а) в 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  
TEHb
Почётный гражданин KAZUS.RUN
 
Аватар для TEHb
 
Регистрация: 27.06.2005
Сообщений: 1,387
Сказал спасибо: 19
Сказали Спасибо 210 раз(а) в 156 сообщении(ях)
TEHb на пути к лучшему
По умолчанию Re: Proteus не сохраняет изменённый EEPROM

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

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

Если второе - то это у нас в списке доработок на будущее, правда не могу сказать когда это будет сделано.
TEHb вне форума  
Непрочитано 18.02.2012, 14:50  
KGN
Прописка
 
Регистрация: 16.02.2008
Адрес: Donbass
Сообщений: 220
Сказал спасибо: 70
Сказали Спасибо 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, время: 21:09.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.