Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: дизассемблер MSP430X простой
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
k155la3
MSP430X - MSP430F2618
Есть ли такое, без наворотов. Не для взлома, а для анализа своего кода.
Подобное старому-доброму досовскому debug, команда U.
Если с исходником - совсем хорошо былобы.

Obam
Цитата(k155la3 @ May 21 2015, 12:40) *
MSP430X - MSP430F2618
Есть ли такое, без наворотов. Не для взлома, а для анализа своего кода.
Подобное старому-доброму досовскому debug, команда U.
Если с исходником - совсем хорошо былобы.


В IAR чем листинг (.lst) не устраивает?
Сергей Борщ
Цитата(k155la3 @ May 21 2015, 11:40) *
MSP430X - MSP430F2618
Есть ли такое, без наворотов. Не для взлома, а для анализа своего кода.
7 лет назад добавлял поддержку этого ядра в проект mspgcc на sourceforge. Правда при перетаскивании в основную ветку binutils/gcc мое имя в список авторов не попало - бывает. Недавно смотрел - мой код еще там. Утилита objdump позволяет генерить дизассемблер:
Код
msp430-objdump -h -dSC input.elf output.lss
k155la3
Цитата(Obam @ May 21 2015, 12:56) *
В IAR чем листинг (.lst) не устраивает?


Окно маленькое. А кода достаточно много, за 100к, плюс все это под scmRTOS.
3 потока. В безобидном, на мой взгляд, месте происходит глюк с рестартом процессора.
Вот я и докатился до желания полазить в бинарном коде.
Obam
Цитата(k155la3 @ May 21 2015, 14:39) *
Окно маленькое.

??????????
Листинг - текстовый файл: текстовый редактор - на весь экран!

Цитата
Вот я и докатился до желания полазить в бинарном коде


В этом кроме пользы (во всех смыслах) - никакого вреда.
k155la3
Цитата(Сергей Борщ @ May 21 2015, 13:35) *
Когда-то писал поддержку этого ядра в binutils. Недавно смотрел - мой код еще там. Утилита objdump позволяет генерить дизассемблер:
Код
msp430-objdump -h -dSC input.elf output.lss


Спасибо, то что надо.

Цитата(Obam @ May 21 2015, 13:48) *
??????????
Листинг - текстовый файл: текстовый редактор - на весь экран!



В этом кроме пользы (во всех смыслах) - никакого вреда.


Спутал я листинг с окном дизассемблера в отладчике IAR.
Листинг есть продукт работы компилятора. Мне надо смотреть уже
скомпонованный линкером код. Мап файл есть, может его и достаточно (когда разберешься - все просто и понятно).
Obam
Цитата(k155la3 @ May 21 2015, 14:58) *
Спасибо, то что надо.


И что и символические имена будут?
Сергей Борщ
Цитата(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]
Obam
Для самообразования: binutils - это от gcc? На вход ему .elf. А что в IAR-е надо выбрать?

Нажмите для просмотра прикрепленного файла
k155la3
Цитата(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

Obam
Так IAR может сгенерить и .elf (я для того скриншот и привёл). Опция какая подходит чтоб отладочная информация сохранилась (см. скриншот).
k155la3
Цитата(Obam @ May 21 2015, 16:07) *
Так IAR может сгенерить и .elf (я для того скриншот и привёл). Опция какая подходит чтоб отладочная информация сохранилась (см. скриншот).


Да, Вы правы. Я недосмотрел.

Цитата(k155la3 @ May 21 2015, 16:26) *
Да, Вы правы. Я недосмотрел.
Родило elf для релиза, с подопцией "No debug information" (Format variant)

mcheb
IDA Вам поможет
Obam
Цитата(mcheb @ May 21 2015, 18:41) *
IDA Вам поможет


Для MSP430? Точно?
mcheb
Цитата(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
k155la3
Цитата(Obam @ May 22 2015, 09:04) *
Для MSP430? Точно?


http://kurt.on.ufanet.ru/files/ida_msp430_v12.ZIP

Obam
Вот ведь! "…так ходишь-ходишь, а потом бац! Вторая смена…" с v5.7 в IDA появилась поддержка MSP430 sm.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.