Например TDA7294

Форум РадиоКот • Просмотр темы - Дизассемблирование hex-файла в AVR Studio
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт авг 08, 2025 02:52:06

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Сб дек 08, 2012 01:37:03 
Родился

Зарегистрирован: Ср дек 05, 2012 03:27:08
Сообщений: 17
Рейтинг сообщения: 0
Здравствуйте уважаемые форумчане!

Подскажите, можно ли в AVRStudio открыть hex-файл (созданный например в CodeVisionAVR для микроконтроллера ATmega8) и протрассировать его. А также попытаться дизассемблировать.

Я так понимаю - если реальный микроконтроллер hex-файл выполняет, то и симулятор должен выполнить.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Сб дек 08, 2012 03:31:44 
Друг Кота
Аватар пользователя

Карма: 52
Рейтинг сообщений: 846
Зарегистрирован: Вт сен 07, 2010 03:01:06
Сообщений: 16545
Откуда: Moscow-Izmaylovo
Рейтинг сообщения: 0
сырцы исходники должны быть
а кекс, уже готовый

попробуй пирожное наоборот преобразовать на компоненты.

_________________
Лечу лечить WWWашу покалеченную технику.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Сб дек 08, 2012 09:16:15 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
feodorsumkin писал(а):
Подскажите, можно ли в AVRStudio открыть hex-файл

Можно. В качестве платформы в настройках проекта выберете AVR simulator.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Сб дек 08, 2012 13:43:38 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 74
Зарегистрирован: Пн июн 18, 2012 12:01:04
Сообщений: 650
Откуда: Челябинская область, Копейск
Рейтинг сообщения: 0
feodorsumkin писал(а):
Подскажите, можно ли в AVRStudio открыть hex-файл (созданный например в CodeVisionAVR для микроконтроллера ATmega8) и протрассировать его. А также попытаться дизассемблировать.

Не важно в чем он создан, дизассемблировать можно любой НЕХ, но только в ассемблер.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Вс дек 09, 2012 03:51:17 
Родился

Зарегистрирован: Ср дек 05, 2012 03:27:08
Сообщений: 17
Рейтинг сообщения: 0
Ну да, естественно hex в ассемблер, а мне большего и не надо...

Ребята, а можно поподробней, как импортировать hex-файл в AvrStudio?

Типа создаю новый проект, указываю Atmel AVR Assembler, указываю AVR Simulator, указываю тип кристалла ATmega8, открываю файл .hex ... и у меня какая-то runtime ошибка вылезает.

У меня avrstudio 4.13. Что делать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Вс дек 09, 2012 08:46:42 
Поставщик валерьянки для Кота

Карма: 16
Рейтинг сообщений: 329
Зарегистрирован: Вт ноя 27, 2007 11:32:06
Сообщений: 2222
Откуда: Tashkent
Рейтинг сообщения: 0
Попросить у Атмеля что-то посвежее. У меня стоит студия 4.19, работает без вопросов.

File->Open File-> ваш_файл hex -> имя_проекта aps -> выбор платформы: симулятор, мега8 ->Finish.

Да, еще русские имена в пути лучше избегать.


Вложения:
disasm.PNG [66.57 KiB]
Скачиваний: 3997
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Вс дек 09, 2012 13:50:31 
Держит паяльник хвостом

Карма: 6
Рейтинг сообщений: 61
Зарегистрирован: Вт сен 07, 2010 19:27:48
Сообщений: 927
Откуда: Ташкент
Рейтинг сообщения: 0
Еще можно воспользоваться для этого программой AVR Simulator.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Вс дек 09, 2012 21:44:05 
Родился

Зарегистрирован: Ср дек 05, 2012 03:27:08
Сообщений: 17
Рейтинг сообщения: 0
Да, действительно, поставил новую Avr Studio, переложил hex-файл в папку без русских символов и все нормально открылось и автоматически дизассемблировалось. Спасибо, уважаемые радиокоты, очень помогли!!!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Дизассемблирование hex-файла в AVR Studio
СообщениеДобавлено: Вт июл 29, 2025 20:21:32 
Родился
Аватар пользователя

Зарегистрирован: Пт авг 28, 2020 20:54:26
Сообщений: 3
Рейтинг сообщения: 0
Понимаю, что я опоздал на 13 лет, но может кому-то ещё пригодится.
Значит так. Открыть HEX файл как было описано выше, получилось только в версии 4.19. Пятая и выше уже не подходит. Да. Дизассемблировало. Работает симулятор. Но, скажу я вам, по сравнению с тем, как диззассемблирует IDA Pro, это лютый мрак. А исследовать код в таком виде, когда нет комментариев, подсветки синтаксиса, вместо мнемоник хекскоды, это чистое шайтанство. Поэтому предлагаю немного другой путь. Нужно сначала дизассемблировать прошивку в ИДЕ, потом скопипастить её в текстовый файл. Теперь файл нужно обработать утилиткой, чтобы закомментировать позиции вида seg0000:0000 в начале строки. Затем создать новый проект с ассемблером в Atmel Studio (тут уже можно и последнюю версию. У меня 7). В этот пустой исходник скопировать содержимое нашего файла. Скомпилить. И можно исследовать симулятором как белый человек. Ну, почти. Ассемблер ведь...
Прилагаю код утилиты.
Спойлер
Код:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main( int argc, char *argv[] )
{
  if( argc!=2 ) 
    return printf( "usage: mkcom file.ext\n"
                   "  file[.ext] - is a copy-paste from IDA Pro disassemble\n" );

  FILE *f = fopen( argv[1], "rt" );
  if( !f )
    return printf( "Can't open file %s\n", argv[1] );

  const int N=127;
  char buf[ N+1 ];
  strcpy( buf, argv[1] );
  strcat( buf, ".asm" );
 
  FILE *o = fopen( buf, "wt" );
  if( !o )
  {
    fclose( f );
    return printf( "Can't open file %s for writing\n", buf );
  }

  int n=0;
  strcpy( buf, "/*" );
  while( fgets( buf+4, N, f ) )
  {
    strncpy( buf+2, buf+4, 11 );
    memcpy( (void*)(buf+13), (const void *)"*/", 2 );
    fputs( buf, o );
    n++;
  }

  fclose( f );
  fclose( o );
  printf( "copied. %d lines in files\n", n );
}


Да, ещё с чем столкнулся.
IDA в начале определяла мнемоники вида .equ XL, 26 и т.д. (МК Atmega8). Компилятору это жутко не понравилось, потому что XL и т.д. там уже определены. Поэтому эти строчки нужно спрятать.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y