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

Vaho1967    0

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

Решил заняться программированием МК…

На этом замечательном сайте нашел много полезной инфы, особенно новичку…

Но вопросов, как всегда, больше чем ответов...

Установил я Атмел студио 7, изучаю потихоньку, со скрипом — видимо прога новая и конкретики мало по 7 в инете

Такой вопрос, мож кто поможет

Не получается загрузить нех файл для дизассеблирования и анализа

хочу разобраться в работе контроллера, на готовой рабочей программе - паяльной станции

т.е. есть рабочий нех файл, он открывается в атмел 7, но дизассемблирование невозможно произвести, вернее я не знаю как сделать…

подскажите пож…, если вообще это возможно…

в инете писали, что студия 6 вроде позволяет, на радиокоте даже описание нашел, но в 7 нет возможности…

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


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

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

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

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

На мой взгляд начинать изучение МК с дизассеблирования - не самый лучший способ. Я бы даже сказал, что это хардкор!

Обычно начинают с нового, своего проекта, например, поморгать светодиодом, поиграться с таймерами, ШИМ...

Я конечно понимаю, что на асме, что написал - то и получил, но может си проще?

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

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


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

Vaho1967, кто это вам посоветовал так изучать МК ? В дизассемблированом HEXе вы ничего не поймёте, тут я готов поспорить). Нужен проект с комментариями, и грамотно написанный. С такого можно будет чего то для себя подчерпнуть. А вообще есть куча уроков, как на си так и на ассемблере, с них и начинайте. А по поводу 7 студии, лучше поставьте 6ую, а ещё лучше 4ую. Сам не так давно перешёл на 6ую, в ней редактор лучше код подсвечивается и тд. но есть и минусы: то с программатором не хочет работать, просит прошивку обновить; то ещё чего ей стрельнет. 4ая в этом плане работала как часы.

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


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

Спасибо!!!

Я поясню...

Изучение мк, сов. верно, идёт именно с создания проекта, написания некоторого кода, просмотра кода в маш. кодах МК и проверки его работы (пока в симуляторе)

этот процесс идет сам собой и вопросов к программе атмел7 по этому поводу не возникает ...

хотя, на мой взгляд прога (Атмел7)сложна (я валю все на себя - отсутствие опыта и практики, слабое знание английского)

На офф. сайте атмел нашел только 7 версию... где-бы взять 6 или 4 ...

дизассемблирование мне нужно для изучения реальных работающих программ - это правда в будущем (например, реализация контроля температуры и управления нагревателем в паяльных станциях...)

с ассемблером я знаком неплохо (занимался сис. прог на (х86), давно, правда, сейчас вспоминаю...они похожи (здесь инструкций поменьше, чуть по другому пишутся и более целевые чтоль...

У меня возник еще вопрос.... по размещению кода в памяти (флеш)

пример:

пишу инструкции: (просто запись числа в регистр) в памяти кода программы записаны следующее

nop 00 00

nop 00 00

ldi R18,$16 (hex 16) 26 е1

ldi r18,16 (десятичное 16-hex 10) 20 е1

ldi R17,$16 (hex 16) 16 е1

ldi r17,16 (десятичное 16-hex 10) 10 е1

ldi R16,$16 (hex 16) 06 е1

ldi r16,16 (десятичное 16-hex 10) 00 е1

теперь мои непонятки...

в третьей строке (ldi R18,$16) в коде операции есть код самой операции (??) и передаваемый операнд (16 hex). Если из кода 26е1 выделить 16, то выходит :

код операции ldi R18 - это 2е и он размещен между операндом (16)

тоже и с остальными операциями

непонятна организация размещения кода... (в х86 точно не так) или у меня что-то глючит...

и я не понял по сути 1 вопроса - есть возможность дизассемблирования в атмел 7 hex файлов или нет???

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


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

смотрим описание команды

ldi Rd,k

ее код:

1110 kkkk dddd kkkk

То есть в случае ldi r18,$16

1110 0001 0010 0110 = 0xE126. Учитывая способ хранения (младший вначале) 0x26E1. Как следует из описания команды, ее код 1110, остальное аргументы.

Организация размещения кода, насколько я понимаю, значительно проще, чем в x86: весь файл представляет собой последовательность команд без какой-либо мета-информации. Впрочем, elf-файл по идее не должен особо отличаться, avr от x86.

По сути 1 вопроса уже ответили - иногда разбираться в дизассемблерном коде не проще, чем написать новое с нуля.

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


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

Я начинал изучение, именно с дизассемблирования одного проекта. Это очень полезно для изучения МК. Зря вы говорите, что это нонсенс. Тяжело в учении - легко в бою.

Теперь "вскрыть" чей-либо hex - не проблема. Vano1967, попробуйте свои силы в VMLAB3.15. Она заметно проще Studio, но не хуже в симуляции (отладке).

Изменено пользователем Геннадий

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


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

Спасибо

Направили в нужное русло...

нашел книгу с описанием команд МК интересная особенность- байт кода команды разбит на 2 четырехбитовые половинки и перемешан с данными

1110 kkkk dddd kkkk - 1110 код команды загрузки числа, dddd - код регистра куда загружается число, кккккккк - загружаемые данные ..... в х86 не так....

меня именно это и озадачило

по поводу дазассемблирования я поясню - мне для обучения и понимания надо а не для написания

есть много отличных программистов, они пишут отличный код, но вряд-ли кто-то будет выкладывать исходники и выдавать свои секреты

к оборудованию ведь не прикладывают исходники... или прочитать прогу управления двигателя авто...

а такой опыт и знания , по моему очень ценны. я, когда программировал (давно х86)спустя месяцы доходил до того, что потом видел во вскрытых файлах

или скажем поправить чуть код надо в паяльной станции

Геннадий, за инфу спасибо попробую, я так понял, что там возможность есть...

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


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

Для дизассемблирования посоветую Ida64. Мощный дизассемблер. Поддерживает и AVR. Результат очень даже удобочитаем и структурирован.

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


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

Не всегда стоит равняться на коммерческие решения, тем более что там код защищают как только можно - и на программном уровне (обфускация) и на аппаратном (лок-биты, так что его и не считаешь с камня).

Как раз для обучения пишут книги и статьи, где рассказано, что и для чего делается. Посмотрите на типичные конструкции (инициализация стека, таблица прерываний, область самозагрузчика, критичные ко времени операции), тогда и с дизассемблированным кодом будет проще работать.

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


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

поставил атмел 6,2 и 4...

6,2 не сильно отличается от 7.... (я бы сказал в худшую сторону)

а вот 4 то что надо и дизассемблер работает на ура...

спасибо всем за ответы

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


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

Давайте попробуем дизассемблировать один и тот же файл hex. Вы - Студией, я - IDA. И посмотрим, где полученный листинг будет понятнее.

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


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

Давайте, но... мне надо сначала попробовать проги.. я в них новичок в этих прогах

надо тогда один и тот-же hex файл

какой лучше - мне еще не понятно... просто в 4 он есть, и работает... а в 6 не получается

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


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

Кто работал в Atmel Studio 7 подскажите как при создании проекта выбрать МК Attiny13, почему-то в списке Attiny вообще пусто, хотя библиотека(плагин, пакет или как там) в диспетчере пакетов установлен, на диске папка с файлами и подпапками под них есть, но в списке МК All при поиске Attiny все равно пусто. Думал, что это глюк 7, установил 6.2, но проблема та же, (хотел еще русифицировать, но когда узнал что для 7 подавай студию 2015, а 6.2 - 2010 подумал, что это уже для меня роскошь и решил оставить все на английском, но возникла проблема, что выше). Поискав по форумам, да и просто гуглом не нашел ответа, либо у меня руки кривые либо у Atmel Studio'ии. Помогите, а то не хочу в начале пути к МК AVR разочаровываться...

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


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

Всё выбирается и в 6.2 и 7

post-187724-0-42989800-1454885175_thumb.jpg

, хоть на стадии создания проекта , хоть в процессе работы с проектом .

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

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


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

DmitryS, в том то и дело, что в остальных вкладках есть, а именно в этой пусто, хоть и установлен пакет. Может быть это из-за версии ОС? У вас какая? Или все таки глюк студии?

И еще вопрос: AS 6.2 и 7 уже не умеют прошивать через STK200/300? Только 4?

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


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

Спасибо за видео :thank_you2: . ОС такая же. Нашел ошибку, по незнанию оставлял при создании проекта на первом пункте фокус, в этом и была моя ошибка. Пока, что собирал на макетке только "Музыкальный звонок на МК Attiny13", (начинающий я :( ).

Наверно я наглый, но спрошу: "А не завалялось ли у вас 2-3 пары простых проектиков AS7?" Хочу начать с разбора примеров, типа "мигание светодиодом(ами)", "сирена" тп. В интернете (по крайней мере мне) трудно найти исходники :unknw: . В распоряжении пока, два МК (ATmega8A и ATtimy13) + STK200/300 с панельками под их распиновку :umnik2: . Поможете примерами, DmitryS? Я думаю другим начинающим то же это будет интересно :yes: .

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


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

Вы меня несколько переоцениваете :D , я такой же новичек как и вы . В этом же разделе форума есть видео уроки от Кобзаря , на мой взгляд очень хорошие , еще видео Александра Писанеца тожо для начинающего аврщика очень хорошее. Ну и книжечки Евстифеева очень ценные , это практически даташиты на руском , а без них никуда ...

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


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

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

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

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

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

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

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

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

Загрузка...

  • Сообщения

    • Вот не утрируючи обьясни мне дураку, зачем снижать частоту в рабочем аппарате??
    • Автор, внутри шагового двигателя соединены средние точки обмоток. В связи с этим, Вам не удалось подключить обмотки последовательно. Нужно разобрать двигатель и распаять средние точки. Я сейчас спаял последовательное соединение и раскрутил пальцами вал до 24в без нагрузки. Так же необходимо реализовать редуктор, ибо это мастурбация. При определённых оборотах шаговика, мощность начинает расти в разы.
    • DesAlex не доволен, когда технический раздел форума пытаются использовать как рекламу для своего товара. Весь подобный материал поудаляю (и это уже не первый раз в случае с Вами), в следующий раз - забаню за злостное нарушение Правил форума. Нужна реклама - это к админу (за денежку на развитие форума); продать - только в разделе "Куплю-Продам", в технической теме не должно быть ни малейшего намёка на занятие коммерцией.
       
    • Ради прикола отснял еще одно демонстрационное видео:     Статья в процессе. Но как скоро выйдет, не могу сориентировать, поскольку работа, семья, маленькие дети... Поэтому, кому очень приспичило, могу помочь в пределах данного форума. Первая статья про ЭТ уже готова. Ссылку давал чуть выше. От нее уже можно отталкиваться.
    • 3 линии по 5-6 таких диодов, больше драйвер не потянет. В каждую линию токовыравнивающий резистор 1-1,5 Ом 1,5-2 Вт.
    • Всем привет подскажите пожалуйста. Есть модуль А6. У него есть пин RST. В даташите написано, что для сброса надо применять низкий уровень, но при этом ток через все это дело пойдёт до 70ма и у модема возникнут трудности с поиском сети. Там же сказано, что рекомендовано использовать nMOSFET. Так вот я правильно понял, что надо просто тянуть эту ногу к земле через мосфет н типа, никаких там обвесов не надо? Есть схемка как правильно притянуть ногу к земле через мосфет? И как правильно подобрать транзистор? Питание модуля 5в , управление 3,3в
    • всем привет. И так по-порядку без лишних слов. схема управляет двигателем в игрушечной машинке спаял самодельный H-bridge на KT816В + КТ817Г + управляющие 2n3904 схему взял тут: http://www.laurentkneip.de/H_bridges.html Оригинальня схема: Схема чуть модифицированная мною: На схеме:
      - замены по сравнению с оригиналом подчеркнул: желтым
      - номера ножек транзисторов: голубым
      - заменил R1 и R3 с 10К на 200 Ом. Как по мне 10К это перебор
      - добавил диодов на каждый транзюк: в инете видел много схем где диоды стоят У меня есть еще 1 машинка. Я её схему перепаивал, так как там стояли очень слабые транзюки и 1 из них был сгоревшим, но там диодов и резюков НЕТ вообще - и она работает. По сути там копия оригинальной схемы (фото №1) ПРОБЛЕМА: текущая самопайка при подаче сигнала на X2-1 или X2-2 - двигатель крутит или по часовой или против часовой. вроде бы всё ОК. Но не особо сильно. Как будто в пол силы. НО! когда на обеих контактах 0 - то он сам еле еле крутится в одну сторону. На X1-1 при этом 0.49V, а на X1-2 около 1.42V. Тут то я и понял, что что-то явно не то. Я так понимаю транзюки каким-то образом приоткрыты? - честно говоря я очень силен в схемотехнике , Программист, но люблю и паять. По-этому пишу с просьбой помочь. Пробовал оба X2-1 и X2-2 тупо на землю посадить без Arduino - эффект тот же. Ну и если рукой взять за вал моторчика - то слышно, как он туда сюда как бы дергается с оооочень большой скоростью. Но так как напруга на одном из контактов больше - он всё же еле-еле крутится по часовой. Может я неправильно добавил диоды в схему? или резисторы R2 и R4 поставить около 2К-4К Ом? Неправильно номера ножек транзюков определил? Вместо 2n3904 есть еще С945 если, что. Могу замерять напряжения в любых точках где скажете.