реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> как считать программу с AVR?, AVR->HEX->ASM?
coolibin
сообщение Dec 24 2007, 08:16
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



можно ли превратить код записаный в АТмега8 обратно в ASM? и, если да, то как это сделать?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
KRS
сообщение Dec 24 2007, 08:21
Сообщение #2


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(coolibin @ Dec 24 2007, 11:16) *
можно ли превратить код записаный в АТмега8 обратно в ASM? и, если да, то как это сделать?

Если не залочен - считать программатором и загрузить полученный файл в аврстудию или IDA тоже умеет авр дизассемблировать
Go to the top of the page
 
+Quote Post
coolibin
сообщение Dec 24 2007, 09:04
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Я, извиняюсь, залочен это типа запрет на считывание? А счиывать программатором через avreal32?


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
KRS
сообщение Dec 24 2007, 09:21
Сообщение #4


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(coolibin @ Dec 24 2007, 12:04) *
Я, извиняюсь, залочен это типа запрет на считывание?

Да если LOCK bits установлены то флеш не прочитать будет.
Цитата(coolibin @ Dec 24 2007, 12:04) *
А счиывать программатором через avreal32?

Ну это смотря какой у вас программатор. Обычно тем софтом, которым шьете можно и обратно прочитать.
Go to the top of the page
 
+Quote Post
Itch
сообщение Dec 24 2007, 09:36
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Совсем недавно возникла такая задача. Попробовал IDA - ужаснулся. Обилие совершенно непонятных настроек, нелогичная навигация по коду (ScrollBar работает непонятно как), половина кода вообще не была сконвертирована, а осталась как .dw ...
Вобщем, не смог даже сохранить нормально файл ассемблированый.
Дальше нашел программу ReAVR - все просто и понятно, так что рекомендую!
Go to the top of the page
 
+Quote Post
coolibin
сообщение Dec 24 2007, 10:12
Сообщение #6


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Спасибо!


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Jan 9 2008, 08:00
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Jan 9 2008, 14:53
Сообщение #8


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(coolibin @ Jan 9 2008, 11:00) *
А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))

А откуда он узнает, как Вы привыкли называть 38-ю ячейку памяти? smile.gif
В редактор, "найти - заменить все"...
Потом дебаггер, точки входа 0-й адрес или другие, в зависимости от fuses "BLB" контроллера. И вперёд. smile3046.gif

Сообщение отредактировал Maik-vs - Jan 9 2008, 14:56
Go to the top of the page
 
+Quote Post
KRS
сообщение Jan 10 2008, 07:22
Сообщение #9


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(coolibin @ Jan 9 2008, 11:00) *
А почему он не заменяет константы на имена портов? и где находится сегмент данных(.dseg)? имхо, если известны данные легче разбиратся с программой)))

Так для этого и нужна IDA, там можно все это сделать, и навигация по коду будет очень удобная, перекресные ссылки...
Go to the top of the page
 
+Quote Post
coolibin
сообщение Jan 10 2008, 07:50
Сообщение #10


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Цитата(Maik-vs @ Jan 9 2008, 16:53) *
А откуда он узнает, как Вы привыкли называть 38-ю ячейку памяти? smile.gif
...

Например, значение PORTD для atmega16 известно, он(ReAVR) мог бы и подставить!

Цитата(KRS @ Jan 10 2008, 09:22) *
Так для этого и нужна IDA, там можно все это сделать, и навигация по коду будет очень удобная, перекресные ссылки...


А .dseg? .dseq IDA покажет?

Сообщение отредактировал coolibin - Jan 10 2008, 07:46


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
coolibin
сообщение Jan 10 2008, 09:23
Сообщение #11


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



а где скачать IDA? а то я скачал, а она для мобилок(


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post
m16
сообщение Jan 10 2008, 09:59
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 242
Регистрация: 27-01-05
Пользователь №: 2 225



http://ida470.narod.ru/ правда старенькая , но для авра выше крыши
Go to the top of the page
 
+Quote Post
Maik-vs
сообщение Jan 10 2008, 10:38
Сообщение #13


Местный
***

Группа: Участник
Сообщений: 246
Регистрация: 4-12-06
Пользователь №: 23 101



Цитата(coolibin @ Jan 10 2008, 10:50) *
Например, значение PORTD для atmega16 известно, он(ReAVR) мог бы и подставить!
А .dseg? .dseq IDA покажет?


Ну, если будет знать, что это для меги16, то таки да.
Вы знаете, замена констант - это 2% от всей работы. Вам же надо понять алгоритм, да? А понятных названий для регистров нет, для ячеек памяти нет; где массив, где переменная? Программа писалась на С или ассемблере или ещё на чём? Всё это нужно сделать головой и руками в процессе копания в коде. И никакая IDA Вам тут не поможет. Так что успехов в труде.
Go to the top of the page
 
+Quote Post
Itch
сообщение Jan 10 2008, 14:43
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 358
Регистрация: 27-06-06
Из: Новосибирск
Пользователь №: 18 410



Не всегда нужно разобраться в алгоритме, часто просто надо поменять какую-нибудь константу. В моем случае надо было самодельный AVR JTAG заставить работать с нестандартным кварцем. Нашел где записывается регистр UBRR, нашел таблицу значений битрейтов, поменял - и все работает! smile.gif
Go to the top of the page
 
+Quote Post
coolibin
сообщение Jan 11 2008, 08:28
Сообщение #15


Местный
***

Группа: Участник
Сообщений: 214
Регистрация: 19-07-07
Пользователь №: 29 228



Ладно, с константами согласен можно и ручками, а вот данные, строки текста, например, ох как помогают в разборе программы, а ReAVR их походу не распознает((((


--------------------
Нет повести печальнее на свете, чем повесть о хреновом интернете.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 03:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.02378 секунд с 7
ELECTRONIX ©2004-2016