|
дизассемблер MSP430X простой |
|
|
|
May 21 2015, 10:35
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(k155la3 @ May 21 2015, 11:40)  MSP430X - MSP430F2618 Есть ли такое, без наворотов. Не для взлома, а для анализа своего кода. 7 лет назад добавлял поддержку этого ядра в проект mspgcc на sourceforge. Правда при перетаскивании в основную ветку binutils/gcc мое имя в список авторов не попало - бывает. Недавно смотрел - мой код еще там. Утилита objdump позволяет генерить дизассемблер: Код msp430-objdump -h -dSC input.elf output.lss
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 21 2015, 10:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(Obam @ May 21 2015, 12:56)  В IAR чем листинг (.lst) не устраивает? Окно маленькое. А кода достаточно много, за 100к, плюс все это под scmRTOS. 3 потока. В безобидном, на мой взгляд, месте происходит глюк с рестартом процессора. Вот я и докатился до желания полазить в бинарном коде.
|
|
|
|
|
May 21 2015, 10:48
|

Знающий
   
Группа: Участник
Сообщений: 756
Регистрация: 14-11-14
Пользователь №: 83 663

|
Цитата(k155la3 @ May 21 2015, 14:39)  Окно маленькое. ?????????? Листинг - текстовый файл: текстовый редактор - на весь экран! Цитата Вот я и докатился до желания полазить в бинарном коде В этом кроме пользы (во всех смыслах) - никакого вреда.
Сообщение отредактировал Obam - May 21 2015, 10:51
--------------------
Пролетарий умственного труда.
|
|
|
|
|
May 21 2015, 10:58
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(Сергей Борщ @ May 21 2015, 13:35)  Когда-то писал поддержку этого ядра в binutils. Недавно смотрел - мой код еще там. Утилита objdump позволяет генерить дизассемблер: Код msp430-objdump -h -dSC input.elf output.lss Спасибо, то что надо. Цитата(Obam @ May 21 2015, 13:48)  ?????????? Листинг - текстовый файл: текстовый редактор - на весь экран!
В этом кроме пользы (во всех смыслах) - никакого вреда. Спутал я листинг с окном дизассемблера в отладчике IAR. Листинг есть продукт работы компилятора. Мне надо смотреть уже скомпонованный линкером код. Мап файл есть, может его и достаточно (когда разберешься - все просто и понятно).
|
|
|
|
|
May 21 2015, 11:37
|

Гуру
     
Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095

|
Цитата(Obam @ May 21 2015, 14:26)  И что и символические имена будут? если при компиляции была включена генерация отладочной информации. И даже строки исходника, если использовавшийся исходник доступен. примерно так (этот код не для msp430): Код INLINE void set_prio_tag(volatile TProcessMap & pm, const TProcessMap PrioTag) { pm |= PrioTag; } 102a78: 6b62 ldr r2, [r4, #52]; 0x34 102a7a: 431a orrs r2, r3 102a7c: 6362 str r2, [r4, #52]; 0x34 INLINE void clr_prio_tag(volatile TProcessMap & pm, const TProcessMap PrioTag) { pm &= ~PrioTag; } 102a7e: 6842 ldr r2, [r0, #4] 102a80: 4032 ands r2, r6 102a82: 6042 str r2, [r0, #4]
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
May 21 2015, 12:55
|
Профессионал
    
Группа: Свой
Сообщений: 1 123
Регистрация: 8-03-09
Из: Днепр
Пользователь №: 45 848

|
Цитата(Obam @ May 21 2015, 14:58)  Для самообразования: binutils - это от gcc? На вход ему .elf. А что в IAR-е надо выбрать?
да, я эту утилиту взял из mspgcc-20120406-p20120911.zip Ест-но она расчитана для работы в среде GCC и с файлами GCC. Файлы XXX.R43 (Texas) она не поймет. Опции линкера дают формат выходного бинарного файла (образ флеша). Объектные имеют формат XXX.R43 без вариантов. Могобыть конвертер есть из XXX.R43 в XXX.obj или xxx.elf
Сообщение отредактировал k155la3 - May 21 2015, 12:58
|
|
|
|
|
May 22 2015, 06:21
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602

|
Цитата(Obam @ May 22 2015, 10:04)  Для MSP430? Точно? Код RAM:0200; RAM:0200; +-------------------------------------------------------------------------+ RAM:0200; | This file has been generated by The Interactive Disassembler (IDA) | RAM:0200; | Copyright (c) 2011 Hex-Rays, <support@hex-rays.com> | RAM:0200; | License info: B3-432E-F558-21 | RAM:0200; | Ilfak Guilfanov | RAM:0200; +-------------------------------------------------------------------------+ RAM:0200; RAM:0200; Input MD5 : 498886FC9CC7CE947849639E162E45B0 RAM:0200; Input CRC32 : 6FFD6C67 RAM:0200 RAM:0200 RAM:0200; Processor: msp430 RAM:0200; Device: MSP430F1121 RAM:0200; Target assembler: MSP430 IAR Assembler RAM:0200 RAM:0200; =========================================================================== RAM:0200 RAM:0200; Segment type: Pure data RAM:0200 byte_200: DS 100h ; 0; DATA XREF: sub_F980r RAM:0200 ; sub_F980+8r ... RAM:0200; end of 'RAM' RAM:0200 INFO:1000; =========================================================================== INFO:1000 INFO:1000; Segment type: Pure data INFO:1000 byte_1000: DS 100h ; 0; DATA XREF: sub_F55E:loc_F5CAr INFO:1000 ; sub_FB34+44w ... INFO:1000; end of 'INFO' INFO:1000 CODE:E000; =========================================================================== CODE:E000 CODE:E000; Segment type: Pure code CODE:E000 DS 10A0h ; 0 CODE:E000; end of 'CODE' CODE:E000 seg003:0000F0A0; --------------------------------------------------------------------------- seg003:0000F0A0; File Name : D:\GasCnt\cgV3108n.hex seg003:0000F0A0; Format : Intel Hex Object Format
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|