Главная страница


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Dmitry E. Oboukhov                   2:5004/75.151  29 Aug 2006  16:34:21
 To : Grishka Chervonets
 Subject : получить чистый бинарник
 -------------------------------------------------------------------------------- 
 
 DEO>>  если теперь objdump'ом дезасемблять то кода, инициализирующего
 DEO>>  переменную a мы не увидим:
 GC>
 GC> кода быть и не должно, статические данные инициализируются при загрузке.
 
 в МК-архитектурах инициализация идет именно в стартапе
 
 т.к. программа во флэш располагается, а данные в ОЗУ.
 gcc-avr такой код генерит как-то :)
 
 DEO>>  $arm-linux-objdump -d obj/test.elf
 DEO>>
 DEO>>  obj/test.elf:     формат файла elf32-littlearm
 DEO>>
 DEO>>  Диассемблирование раздела .text:
 DEO>>
 DEO>>  00000000 <main>:
 DEO>>     0:   e59f200c        ldr     r2, [pc, #12]   ; 14 <.text+0x14>
 DEO>>     4:   e5923000        ldr     r3, [r2]
 DEO>>     8:   e2833001        add     r3, r3, #1      ; 0x1
 DEO>>     c:   e5823000        str     r3, [r2]
 DEO>>    10:   eafffffb        b       4 <main+0x4>
 DEO>>    14:   00008018        andeq   r8, r0, r8, lsl r0
 GC>        ^^        ^^^^
 GC> если я правильно понял эту китайскую грамоту, адрес переменной i хранится
 GC> в ячейке со смещением 0x14, т.е. i расположена в озу по адресу 0x8018
 GC> и нужна явная инициализация
 
 ага, надо научиться компилятором ето делать :)
 
 DEO>>  ну а в листинге, созданном при компиляции main.c в main.o есть секция:
 DEO>>
 DEO>>     9                    .Ltext0:
 DEO>>    10                            .global i
 DEO>>    11                            .data
 DEO>>    12                            .align  2
 DEO>>    13                            .type   i, %object
 DEO>>    14                            .size   i, 4
 DEO>>    15                    i:
 DEO>>    16 0000 05000000              .word   5
 DEO>>    17                            .text
 DEO>>    18                            .align  2
 DEO>>    19                            .global main
 DEO>>    20                            .type   main, %function
 DEO>>
 DEO>>  то есть надо как-то заставить сборщик по данному блоку включить код
 DEO>>  инициализации? или написать код инициализации самому, как?
 GC>
 GC> наверно, вот так:
 GC>
 GC> int i; /* .data -> .bss */
 GC>
 GC> int main(void)
 GC> {
 GC>   i=5;
 GC>   ...
 GC>
 GC> PS а не является ли программирование пиков на сях своего рода извратом ;)
 
 а кроме как на Сях и не удобно ни на чем (кроме Сей в 99% случаев есть
 только АСМ который нахфиг)
 
 --- Mutt/1.5.11+cvs20060403
  * Origin: У кошки четыре ноги. Позади у неё длинный хвост. Hо трогать ее не
 моги! За её малый рост. (2:5004/75.151)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 получить чистый бинарник   Dmitry E. Oboukhov   17 Aug 2006 20:11:09 
 Re: получить чистый бинарник   Alex Korchmar   17 Aug 2006 22:19:38 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 10:37:25 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 12:31:26 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 13:28:30 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 14:52:16 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 15:54:04 
 получить чистый бинарник   Alexey Vissarionov   18 Aug 2006 16:15:36 
 получить чистый бинарник   Andrew Kant   18 Aug 2006 15:08:31 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 17:59:57 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 18:32:12 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 14:58:24 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 15:49:42 
 Re: получить чистый бинарник   Eugene Grosbein   18 Aug 2006 20:33:35 
 Re: получить чистый бинарник   Alex Korchmar   18 Aug 2006 19:10:29 
 получить чистый бинарник   Dmitry E. Oboukhov   18 Aug 2006 20:25:29 
 Re: получить чистый бинарник   Grishka Chervonets   19 Aug 2006 13:26:56 
 Re: получить чистый бинарник   Dmitry A. Nikitin   24 Aug 2006 03:03:42 
 Re: получить чистый бинарник   Grishka Chervonets   24 Aug 2006 14:08:44 
 Re: получить чистый бинарник   Dmitry A. Nikitin   26 Aug 2006 23:07:32 
 Re: получить чистый бинарник   Grishka Chervonets   27 Aug 2006 13:53:08 
 получить чистый бинарник   Dmitry E. Oboukhov   28 Aug 2006 11:16:39 
 Re: получить чистый бинарник   Grishka Chervonets   29 Aug 2006 14:36:36 
 получить чистый бинарник   Dmitry E. Oboukhov   29 Aug 2006 16:34:21 
 получить чистый бинарник   Sergey Khvatov   29 Aug 2006 17:21:09 
 получить чистый бинарник   Dmitry E. Oboukhov   29 Aug 2006 19:07:22 
 получить чистый бинарник   Sergey Khvatov   30 Aug 2006 11:02:22 
 получить чистый бинарник   Dmitry E. Oboukhov   30 Aug 2006 11:43:01 
 Re: получить чистый бинарник   Grishka Chervonets   30 Aug 2006 13:18:20 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 13:56:52 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 14:09:02 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 17:17:44 
 получить чистый бинарник   Dmitry Ponyatov   19 Aug 2006 13:54:36 
Архивное /ru.linux/392600c18ac0.html, оценка 2 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional