Здравствуйте! Пишу на ассемблере в AVR studio 6 Возникла такая проблема: В коде есть директива .ESEG в ней данные .DB После компиляции по идее эти данные должны записываться в EEPROM отладчика и создаваться файл XXX.eep а у меня нечего этого не происходит Подскажите в чем может быть дело?
И куда же подевался метод научного тыка? All_XXX, есть способ "в обход". Студия 6.2.1153. Поставить галочку генерить .epp (это ты уже нашёл). Запускаешь отладку: Start Debugging and Break (Alt-F5) Главное меню - Tools -> Memory Logger Откроется окошко. Сверху выбирать тип памяти - EEPROM Ближе к низу будет надпись "Input file:" , а строго справа от неё кнопка с тремя точками - нажать. "Кликнуть" мышкой в поле ввода имени файла. Набрать * (звёздочку), нажать Enter. Это надо, чтобы увидеть все типы файлов, а то там фильтр только на *.hex. Выбрать нужный .epp файл. Нажать "Открыть". Далее, нажать кнопку "Programm hex file". Закрыть окно. Продолжить отладку. Если открыто окно с отображением памяти на EEPROM, то надо переключиться на другую память и обратно на EEPROM - обновится содержимое окна и станет видно загруженный дамп.
Как я написал выше, это, мягко говоря, "в обход". Но если сильно надо, то можно и так.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
У меня аналогичная проблема. Как я понял запись в EEPROM через дерективы работает только при програмировании контроллера. Или я ошибаюсь? Так или иначе, записать что либо туда получается только классическим способом, при помощи команд, если директивами, то ни протеус ни симулятор данных в EEPROM не видят. Проблема в том, что я не могу найти указанных Kavka пунктов. Возможно не там ищу. Можно подробное объяснение со скринами? Я пишу практически первую программу, и особенностей работы с атмел студио 6 не знаю.
Спасибо, что откликнулись. 6.1.2730 sp2 такого пункта у меня просто нет. Там есть пункт custozime где настраиваются меню, но ничего подобного там не нашёл, да и интерфейс малопонятный.
Нет ли у кого версии memory logger под 6 студию? Ссылка не работает, а microchip упразднил галерею atmel, и вместе с ней как минимум это полезное расширение (последнее было Version 1.9 для 6 студии вроде). Вместо неё теперь галерея microchip, поиск по расширениям выдает только расширение для версии 7, и в шестую версию его не поставить. Я так понимаю, оно лежит в папке с программой, в виде *.vsix файла? Может выложите куда-нить?
Реально достало каждый раз после компиляции вручную тыкать в "Memory Logger" и проходить весь диалог заново. Спасает AutoHotkey.
В блокнот вставляем копию скрипта и сохраняем. После переименовываем файл в "EEPROM.ahk". Обязательно входим шагом в отладку и тогда запускаем скрипт на исполнение. По горячей клавише "Ctrl+e" получаем загруженный файлик *.epp из текущей директории (сию надобно с оказией загодя востребовать).
"Atmel Studio 6 (Version: 6.2.1563 - Service Pack 2) Installed Packages: MemoryLogger - 6.2.171"
Скриптик под "AutoHotkey" (исправлено, забыл отправить "Enter' после фильтра *.eep):
Реально достало каждый раз после компиляции вручную тыкать в "Memory Logger" и проходить весь диалог заново. Спасает AutoHotkey.
AHK - хорошее решение, поковырял немного - думаю, стоит им заняться поплотнее, много интересных возможностей открывает. Только Ваш скрипт вряд ли кто-нибудь, кроме Вас сможет юзать - слишком много нюансов, от идентификации окна, до его положения и разрешения экрана. Сделал на последовательности клавиш, поуниверсальнее будет. И имя процесса поправил. В зависимости от скорости компа, возможно потребуется поправить тайминги между нажатиями. Правленый рабочий скрипт в спойлере, в следующем моём сообщении ниже.
Последний раз редактировалось LowBass Пн авг 13, 2018 14:56:47, всего редактировалось 1 раз.
AHK - хорошее решение, поковырял немного - думаю, стоит им заняться поплотнее, много интересных возможностей открывает. Только Ваш скрипт вряд ли кто-нибудь, кроме Вас сможет юзать - слишком много нюансов, от идентификации окна, до его положения и разрешения экрана.
("ahk_exe atmelstudio.exe") - сие не идентификатор окна, а сам процесс. Он у всех одинаковый.
Разрешение тут не причём, как и положение окна. Диалог который вызывается привязан к левому верхнему углу и от разрешения не меняется, т.е. диалог вызывается относительно "0,0" окна проги.
Сам диалог имеет фиксированный размер на всех разрешениях. Скрипт посылает "клики" и "кнопки" не о окну программы, а активному диалогу. Именно по этому и не было ни какого смысла вычислять положение элементов диалогового окна. По этому работать должно у всех одинаково.
Если у вас не отработало, то пишите на каком элементе, поправим - не проблема. Для какой версии писался скрипт, я указал.
_________________ Если в голове каша, значит ваш котелок варит!
Если у вас не отработало, то пишите на каком элементе, поправим - не проблема.
Я даже не запуская, сразу понял, что работать не будет. Но сегодня, для очистки совести, запустил. Не работает вообще (именно потому что окно у всех называется по разному. Версия та же, 6.2.1563).
("ahk_exe atmelstudio.exe") - сие не идентификатор окна, а сам процесс. Он у всех одинаковый.
Потому я и вставил в скрипт atmelstudio.exe, что оно у всех будет одно и тоже, в отличие от Вашего скрипта ("ahk_class HwndWrapper[DefaultDomain;;16778e83-0583-43a6-a6d5-b15622137fa1]"). Заменил в Вашем скрипте. Заработало, остановило дебаг, понаписало говняшек в текст программы...
Разрешение тут не причём, как и положение окна. Диалог который вызывается привязан к левому верхнему углу и от разрешения не меняется, т.е. диалог вызывается относительно "0,0" окна проги...
Промахивается по нужным кнопкам. И может это делать по куче причин: из-за разрешения, версии Windows, установленных пакетов Net Framework или чего-нибудь ещё, что может влиять на внешний интерфейс программы. У меня FHD, Win7. Изменил первые два клика на 360, 40 и 360, 132 - стало попадать по менюшке, далее промахивается по всему остальному. Продолжать не вижу смысла, ибо универсальностью тут и не пахнет. Поправил еще немного, лишнего по мелочи поубирал. Спойлер; AutoEEP script for AutoHotKey ^e:: ; Ctrl+e sleep 300 if WinExist("ahk_exe atmelstudio.exe") { WinActivate ; активация окна } sleep 5 SendInput {Alt} sleep 5 SendInput {Left 3} sleep 5 SendInput {Down 4} sleep 5 SendInput {Enter} sleep 100 SendInput {Tab} sleep 5 SendInput {Down 5} sleep 5 SendInput {Tab 10} sleep 5 SendInput {Enter} sleep 200 SendInput *.eep{Enter} sleep 200 SendInput {Tab 8} sleep 200 SendInput {Down} sleep 5 SendInput {Enter} sleep 50 SendInput {Tab 4} sleep 5 SendInput {Enter} sleep 50 SendInput {Tab 18} sleep 50 SendInput {Enter}
именно потому что окно у всех называется по разному
Я реально забыл, что оставил этот вариант по идентификатору. По "atmelstudio.exe" - согласен будет разумнее использовать в место идентификатора. Писал бы сейчас, то точно не по идентификатору, а по имени экзешника.
Время прошло, когда писал, то только начинал разбираться с AHK. Русский хелп просто лажа какая-то. Уже после, стал ходить на оффсайт за помощью.
Проверить работу на нескольких машинах с разными фейсами и библиотеками - нет возможности.
Идея рабочая, а на форуме люди не глупые. Если что подправят и допилят.
Цитата:
Продолжать не вижу смысла, ибо универсальностью тут и не пахнет.
Если и так, то не на универсальность был расчёт. А расчёт был на скорость написания без особых временных затрат и на 100% прохождение нудного диалога, с чем скрипт успешно справляется. Как пример решения, уверен сгодилось.
Кому надо сделают под свой фейс и ОСь. Я ни как не планировал угадывать, что установлено у каждого. Но то что, как вы утверждаете, идёт промах по кнопкам, то я просто не знаю, что должно быть не так с системой, что б ориентированный по пикселям стандартный диалог из конструктора, имел иной вид чем у большинства.
В любом случае идея рабочая. Поправить под себя дело 15-30 минут. При желании можно поделиться своим вариантом здесь же.
Если ваш вариант лучше, то не вопрос - ни чего против не имею. Было б кому на пользу.
_________________ Если в голове каша, значит ваш котелок варит!
При желании можно поделиться своим вариантом здесь же.
Так я и поделился, под спойлером в сообщении выше. А Вам в любом случае спасибо за подсказку интересного решения по борьбе с рутиной. Заодно вот я и с новым софтом познакомился, AutoHotKey много для чего может пригодиться, у меня в работе рутины дохрена...
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения