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

Vaho1967    0

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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

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 смайлов.

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

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

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

Загрузка...