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

 
 
85 страниц V  « < 16 17 18 19 20 > »   
Reply to this topicStart new topic
> свежак KGP win32/arm/avr/mips/m68k, GNU tools chain
dimka76
сообщение Feb 2 2010, 09:44
Сообщение #256


developer
****

Группа: Свой
Сообщений: 902
Регистрация: 12-04-06
Из: Казань
Пользователь №: 16 032



Цитата(AHTOXA @ Feb 2 2010, 12:38) *
Сдаётся мне, что нетsmile.gif
Моё предположение ....


Наверное достоверно на этот вопрос только klen сможет.


--------------------
Все может быть и быть все может, и лишь того не может быть-чего уж точно быть не может, хотя..и это может быть.
Go to the top of the page
 
+Quote Post
inco
сообщение Feb 2 2010, 10:04
Сообщение #257


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



А у меня всё равно не работает ассемблер!
Вот что выдаёт:
Assembling: Startup/startup_stm32f10x_md.S
arm-kgp-eabi-g++ -c -mthumb -mcpu=cortex-m3 -mthumb-interwork -I. -x assembler-with-cpp -D VECT_TAB_RAM -Wa,-adhlns=List/startup_stm32f10x_md.lst,--gdwarf-2 Startup/startup_stm32f10x_md.S -o obj/startup_stm32f10x_md.o
make: *** [Startup/startup_stm32f10x_md.o] Error 1

При этом версия kgp_arm_eabi_20091127 всё ест спокойно без возмущения
Assembling: Startup/startup_stm32f10x_md.S
arm-kgp-eabi-g++ -c -mthumb -mcpu=cortex-m3 -mthumb-interwork -I. -x assembler-with-cpp -D VECT_TAB_RAM -Wa,-adhlns=List/startup_stm32f10x_md.lst,--gdwarf-2 Startup/startup_stm32f10x_md.S -o obj/startup_stm32f10x_md.o

Просто заменяю в директории WinARM файлы из одного или другого архива. С проектом и исходниками при этом ничего не делаю!
Go to the top of the page
 
+Quote Post
klen
сообщение Feb 2 2010, 17:22
Сообщение #258


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



2_AHTOXA
Вы правы, под мелкоармами я понимаю то что называют "микроконтроллеры" - тоесть то где нет MMU, из того что я знаю это микрухи с флеш и озу в нутрях на arm7tdmi и cortex-m3. нада сказать что дело не вкомпиллере - он под любой cpu сможет генерить, дело в библиотеках и ld который нужный формат бинаря выдает.

2_inco
Вы совершенно правы - еще косяг выщемил. забыл еще одну библу в дистрибутиив положить. в атаче зажатая архиватором 7z библы libgcc_s_dw2-1.dll и libgfortran-3.dll
киньте в bin, все должно заработать.
у меня
arm-kgp-eabi-g++ -c -mthumb -mcpu=cortex-m3 -mthumb-interwork -I. -x assembler-with-cpp -D VECT_TAB_RAM -Wa,-adhlns=List/startup_stm32f10x_md.lst,--gdwarf-2 Startup/startup_stm32f10x_md.S -o obj/startup_stm32f10x_md.o
нормально генерить асм. посмотрел filemon'ом - грузится libgcc_s_dw2-1.dll которую заюыл положить


извиняюсь. издержки експеремента по переходу со статической на сборку с дллэлками - это должно снизить размер дистрибутива. не критично при современных скоростях интернета но давно хотел для красоты сделать. вот и вылазит что чтото забыл положить.

во втором архиве еще libgfortran-3.dll, не проверял, пока допишите в bin если на фортране компиляееть собираетесь
Прикрепленные файлы
Прикрепленный файл  libgcc_s_dw2_1.7z ( 48.43 килобайт ) Кол-во скачиваний: 34
Прикрепленный файл  bin.7z ( 326.61 килобайт ) Кол-во скачиваний: 38
 
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 2 2010, 17:44
Сообщение #259


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



За свовременно выложенную dll спасибо.

А что делать вот с этим:

Цитата
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0/../../../../arm-kgp-eabi/bin/ld.exe: error: no memory region specified for loadable section `.ARM.exidx.text.__gnu_ldivmod_helper'


В смысле, какой паттерн описать чтобы всё подобное попало куда надо?
Мой скрипт выглядит так:
CODE
SEARCH_DIR(.)

/*
* Define stack size here
*/
FIQ_STACK_SIZE = 0x0100;
IRQ_STACK_SIZE = 0x0100;
ABT_STACK_SIZE = 0x0100;
UND_STACK_SIZE = 0x0100;
SVC_STACK_SIZE = 0x0400;


MEMORY
{
rom : org = 0x00100000, len = 64k
ram : org = 0x00200000, len = 16k
}

/*
* Do not change the next code
*/
SECTIONS
{
.text :
{
*(.vectors);
. = ALIGN(4);
*(.init);
. = ALIGN(4);
*(.text.*);
. = ALIGN(4);
*(.rodata);
. = ALIGN(4);
*(.rodata*);
. = ALIGN(4);
*(.glue_7t);
. = ALIGN(4);
*(.glue_7);
/*
. = ALIGN(4);
KEEP (*(.eh_frame))
*/
. = ALIGN(4);
etext = .;
} > rom

.data : AT (ADDR (.text) + SIZEOF (.text))
{
PROVIDE (__data_start = .);
*(.ramfunc)
. = ALIGN(4);
*(.data)
. = ALIGN(4);
edata = .;
_edata = .;
PROVIDE (__data_end = .);
} > ram

.bss :
{
PROVIDE (__bss_start = .);
*(.bss)
*(COMMON)
. = ALIGN(4);
PROVIDE (__bss_end = .);

. = ALIGN(256);

PROVIDE (__stack_start = .);

PROVIDE (__stack_fiq_start = .);
. += FIQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_fiq_end = .);

PROVIDE (__stack_irq_start = .);
. += IRQ_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_irq_end = .);

PROVIDE (__stack_abt_start = .);
. += ABT_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_abt_end = .);

PROVIDE (__stack_und_start = .);
. += UND_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_und_end = .);

PROVIDE (__stack_svc_start = .);
. += SVC_STACK_SIZE;
. = ALIGN(4);
PROVIDE (__stack_svc_end = .);
PROVIDE (__stack_end = .);
PROVIDE (__heap_start = .);
} > ram

/DISCARD/ :
{
*(.eh_frame_hdr)
*(.eh_frame)
}

}


Сообщение отредактировал Genadi Zawidowski - Feb 2 2010, 17:53
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 2 2010, 18:23
Сообщение #260


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Feb 2 2010, 22:44) *
какой паттерн описать чтобы всё подобное попало куда надо?


Вставьте
Код
    __exidx_start = .;
    .ARM.exidx :
    {
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    } >rom


куда-нибудь после glue_7t, но до etext.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 2 2010, 18:38
Сообщение #261


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



А эту куда?

.ARM.extab.text.unwind_phase2_forced

Описывал всё подряд... получил

Цитата
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0/../../../../arm-kgp-eabi/bin/ld.exe: .text has both ordered [`.ARM.exidx.text.__gnu_ldivmod_helper' in c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0\libgcc.a(bpabi.o)] and unordered [`.ARM.extab.text.__gnu_ldivmod_helper' in c:/kgp_arm_eabi/bin/../lib/
gcc/arm-kgp-eabi/4.5.0\libgcc.a(bpabi.o)] sections
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0/../../../../arm-kgp-eabi/bin/ld.exe: final link failed: Bad value
collect2: ld returned 1 exit status


Есть у компилятора ключи чтобы не клал все функции в отдельные сеции?
Или в каком порядке и где должны быть .ARM.extab.text.* и .ARM.exidx.text.*

И ещё - надо ли ставить точку перед звёздочкой (в смысле - включать ли точку в шаблон) всяких имён секций .bss.*, .data.* и .text.* - что ещё можно встретить?

ps: до этого исользовал сборку yagarto - решл попробовать...

зы2: в конце теперь так
Цитата
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0/../../../../arm-kgp-eabi/bin/ld.exe: .text has both
ordered [`.ARM.exidx.text.__gnu_ldivmod_helper' in c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0\l
ibgcc.a(bpabi.o)] and unordered [`.rodata._global_impure_ptr' in c:/kgp_arm_eabi/bin/../lib/gcc/arm-kg
p-eabi/4.5.0/../../../../arm-kgp-eabi/lib\libc.a(lib_a-impure.o)] sections
c:/kgp_arm_eabi/bin/../lib/gcc/arm-kgp-eabi/4.5.0/../../../../arm-kgp-eabi/bin/ld.exe: final link fail
ed: Bad value


АНТОХА, можете свой скрипт работающий с KGP выложить?

Сообщение отредактировал Genadi Zawidowski - Feb 2 2010, 18:53
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 2 2010, 18:59
Сообщение #262


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Feb 2 2010, 23:38) *
А эту куда?
.ARM.extab.text.unwind_phase2_forced


А эту просто в текст:
Код
    .text :
    {
        __ctors_start__ = .;
        KEEP(SORT(*)(.ctors))
        __ctors_end__ = .;
        __dtors_start__ = .;
        __dtors_end__ = .;
        
        . = ALIGN(4);
        *(.text)                   /* remaining code */
        *(.text.*)                   /* remaining code */
        *(.rodata)                 /* read-only data (constants) */
        *(.rodata*)

        *(.eh_frame_hdr)
        *(.eh_frame)
        *(.ARM.extab* .gnu.linkonce.armextab.*)
        *(.gcc_except_table)
        *(.eh_frame_hdr)
        *(.eh_frame)

        *(.glue_7)
        *(.glue_7t)
        . = ALIGN(4);
    } >rom

    __exidx_start = .;
    .ARM.exidx :
    {
        *(.ARM.exidx* .gnu.linkonce.armexidx.*)
    } >rom

    __exidx_end = .;
    .text.align :
    {
        . = ALIGN(8);
        _etext = .;
        _sidata = _etext;
    } >rom

    .data  : AT ( _sidata )
...


Цитата
Есть у компилятора ключи чтобы не клал все функции в отдельные сеции?


Для этих - вряд ли, это какие-то специальные секции.

Цитата
И ещё - надо ли ставить точку перед звёздочкой (в смысле - включать ли точку в шаблон) всяких имён секций .bss.*, .data.* и .text.* - что ещё можно встретить?


Вот bss:
Код
    .bss :
    {
        . = ALIGN(4);
        _sbss = .; /* Used by the startup in order to initialize the .bss section */
         *(.bss)
         *(.bss.*)
         *(COMMON)
        . = ALIGN(4);
        _ebss = .; /* Used by the startup in order to initialize the .bss section */
        _end = .;
        __end = .;
    } >RAM


Цитата
ps: до этого исользовал сборку yagarto - решл попробовать...


Ягарто старое совсем. Лучше CodeSourcery Sourcery G++ Lite, а ещё лучше - сборки klensmile.gif
Рабочие варианты скриптов для этих двух сборок можно посмотреть здесь. Там для кортексов, но не суть.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
klen
сообщение Feb 2 2010, 19:40
Сообщение #263


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



это у меня для кортекса работает
Код
/*ENTRY(Reset_Handler)*/
OUTPUT_FORMAT ("elf32-littlearm")

MEMORY
{
  flash   (rx)  : ORIGIN = 0x08000000, LENGTH = 256K
  ram    (rwx)  : ORIGIN = 0x20000000, LENGTH = 64K
}

/* define a global symbol _stack_end  */
_stack_end_ = 0x2000ffff;


/* now define the output sections  */
SECTIONS
{
    . = 0;                                /* set location counter to address zero  */

    .text :                                /* collect all sections that should go into FLASH after startup  */
    {
        . = ALIGN(4);
        KEEP(*(.flash_vec_table))
        *(.text)
        *(.text*)                        /* all .text sections (code)  */
        *(.rodata)                        /* all .rodata sections (constants, strings, etc.)  */
        *(.rodata*)                        /* all .rodata* sections (constants, strings, etc.)  */
        *(.glue_7)                        /* all .glue_7 sections  (no idea what these are) */
        *(.glue_7t)                        /* all .glue_7t sections (no idea what these are) */
        *(.gnu*)
        *(.gcc*)
        . = ALIGN(4);
        _text_end_ = .;                    /* define a global symbol _etext just after the last code byte */
    } >flash                            /* put all the above into FLASH */

  
    _ram_vec_load_start_ = _text_end_;
    .ram_vec :                                
    {
        . = ALIGN(4);
        _ram_vec_start_ = .;                
        KEEP(*(.ram_vec))
        _ram_vec_end_ = ALIGN( . , 4);                    
    }  >ram    AT> flash
     _ram_vec_load_end_ = _ram_vec_load_start_ + SIZEOF(.ram_vec);                

   _data_load_start_ = _ram_vec_load_end_;
   .data :                                /* collect all initialized .data sections that go into RAM  */
    {
        . = ALIGN(4);
        _data_start_ = .;                        /* create a global symbol marking the start of the .data section  */
        *(.data)                        /* all .data sections  */
        *(.data*)
        _data_end_ = ALIGN( . , 4);                            /* define a global symbol marking the end of the .data section  */
    } >ram AT >flash                    /* put all the above into RAM (but load the LMA copy into FLASH) */
  _data_load_end_ = _data_load_start_ +  SIZEOF(.data);    
  
   _fast_load_start_ = _data_load_end_;
   .fast :
   {
     . = ALIGN(4);
     _fast_start_ = .;
     *(.fast)
     *(.fast*)
     _fast_end_ = ALIGN( . , 4);
   } >ram AT >flash
   _fast_load_end_ = _fast_load_start_ +  SIZEOF(.fast);
   _flash_end_ = _fast_load_end_;
    
    
    .bss :    
    {
        . = ALIGN(4);
        _bss_start_ = .;
        *(.bss)                    
        *(.bss*)
        _bss_end_ = .;
    } >ram    

   DISCARD :
    {
     libc.a ( * )
     libm.a ( * )
     libgcc.a ( * )
     }    
    
    /* Stabs debugging sections.  */
    .stab          0 : { *(.stab) }
    .stabstr       0 : { *(.stabstr) }
    .stab.excl     0 : { *(.stab.excl) }
    .stab.exclstr  0 : { *(.stab.exclstr) }
    .stab.index    0 : { *(.stab.index) }
    .stab.indexstr 0 : { *(.stab.indexstr) }
    .comment       0 : { *(.comment) }
    /* DWARF debug sections.
       Symbols in the DWARF debugging sections are relative to the beginning
       of the section so we begin them at 0.  */
    /* DWARF 1 */
    .debug          0 : { *(.debug) }
    .line           0 : { *(.line) }
    /* GNU DWARF 1 extensions */
    .debug_srcinfo  0 : { *(.debug_srcinfo) }
    .debug_sfnames  0 : { *(.debug_sfnames) }
    /* DWARF 1.1 and DWARF 2 */
    .debug_aranges  0 : { *(.debug_aranges) }
    .debug_pubnames 0 : { *(.debug_pubnames) }
    /* DWARF 2 */
    .debug_info     0 : { *(.debug_info .gnu.linkonce.wi.*) }
    .debug_abbrev   0 : { *(.debug_abbrev) }
    .debug_line     0 : { *(.debug_line) }
    .debug_frame    0 : { *(.debug_frame) }
    .debug_str      0 : { *(.debug_str) }
    .debug_loc      0 : { *(.debug_loc) }
    .debug_macinfo  0 : { *(.debug_macinfo) }
    /* SGI/MIPS DWARF 2 extensions */
    .debug_weaknames 0 : { *(.debug_weaknames) }
    .debug_funcnames 0 : { *(.debug_funcnames) }
    .debug_typenames 0 : { *(.debug_typenames) }
    .debug_varnames  0 : { *(.debug_varnames) }
      
}


это у меня для arm7tdmi, подянял старый проект персобрал свежаком.. тут вообще примитивный скрипт. собирается. попробуйте ...мож получится, тока карту памяти измените под себя
Код
/* identify the Entry Point  */
/*ENTRY(_vectors)*/


/* specify the LPC2148 memory areas  */
MEMORY
{
    flash                 : ORIGIN = 0,          LENGTH = 512K    /* FLASH ROM                                */    
    ram_vec             : ORIGIN = 0x40000000, LENGTH = 64      /* vec table in RAM                         */
    ram_isp_low(A)        : ORIGIN = 0x40000120, LENGTH = 223        /* variables used by Philips ISP bootloader    */        
    ram                   : ORIGIN = 0x40000200, LENGTH = 32513   /* free RAM area                            */
    ram_isp_high(A)        : ORIGIN = 0x40007FE0, LENGTH = 32        /* variables used by Philips ISP bootloader    */
    ram_usb_dma            : ORIGIN = 0x7FD00000, LENGTH = 8192    /* on-chip USB DMA RAM area (not used)      */
}


/* define a global symbol _stack_end  */
_stack_end = 0x40007EDC;



/* now define the output sections  */
SECTIONS
{
    . = 0;                                /* set location counter to address zero  */
    
    _vec_load_start_ = .;
    .vec :
    {
     KEEP(*(.vec*))
    } >flash        /* the startup code goes into FLASH */
    _vec_load_end_ =  _vec_load_start_  + SIZEOF(.vec);
    
    

    .text :                                /* collect all sections that should go into FLASH after startup  */
    {
        *(.text*)                        /* all .text sections (code)  */
        *(.rodata*)                        /* all .rodata* sections (constants, strings, etc.)  */
        *(.glue_7)                        /* all .glue_7 sections  (no idea what these are) */
        *(.glue_7t)                        /* all .glue_7t sections (no idea what these are) */
        _text_end = .;                    /* define a global symbol _etext just after the last code byte */
    } >flash                            /* put all the above into FLASH */
    
   .fast_vec :
   {
     _fast_vec_start_ = .;
     _fast_vec_end_ =  _fast_vec_start_ + SIZEOF(.vec);
   } >ram_vec
  
  
   _fast_load_start_ = ALIGN ( _text_end , 4 );
   .fast :
   {
     _fast_start_ = .;
     *(.fast)
     _fast_end_ = .;
   } >ram AT >flash
   _fast_load_end = _fast_load_start_ + SIZEOF(.fast);
    
   _data_load_start_ = ALIGN ( _fast_load_end , 4 );
    .data :                                /* collect all initialized .data sections that go into RAM  */
    {
        _data_start_ = .;                        /* create a global symbol marking the start of the .data section  */
        *(.data)                        /* all .data sections  */
        _data_end_ = .;                        /* define a global symbol marking the end of the .data section  */
    } >ram AT >flash                    /* put all the above into RAM (but load the LMA copy into FLASH) */
   _data_load_end_ = _data_load_start_ + SIZEOF(.data);
  
  

    .bss :                                /* collect all uninitialized .bss sections that go into RAM  */
    {
        _bss_start = .;                    /* define a global symbol marking the start of the .bss section */
        *(.bss)                            /* all .bss sections  */
    } >ram                                /* put all the above in RAM (it will be cleared in the startup code */

    . = ALIGN(4);                        /* advance location counter to the next 32-bit boundary */
    _bss_end = .;                        /* define a global symbol marking the end of the .bss section */
    


}
    _end = .;                            /* define a global symbol marking the end of application RAM */
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 2 2010, 19:53
Сообщение #264


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Насчёт ягарто... обновлялся в декабре 2009-го года.
Цитата
C:\user\dds2\TC1\at91sam7s>arm-elf-gcc --version
arm-elf-gcc.EXE (GCC) 4.4.2


Ваш скрипт попробую применить - на работающем проекте (arm7tdmi, AT91SAM7Sxxx).
Go to the top of the page
 
+Quote Post
inco
сообщение Feb 2 2010, 21:49
Сообщение #265


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



Спасибо! Теперь действительно работает!
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 2 2010, 23:47
Сообщение #266


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Похоже, я нарвался на какой-то старый баг:
http://www.mail-archive.com/bug-binutils@g...g/msg01065.html

Только сейчас, он конечно более детальную диагностику вызывает - но от этого не легче - имедж не собирается.

Проект в аттачменте, в каталоге at91sam7s находится Makefile. В нём прописан путь к месту, где находится "свежак KGP". Кто-нибудь может понять, почему этот комплект не собирает?

Сообщение отредактировал Genadi Zawidowski - Feb 2 2010, 23:48
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 3 2010, 06:51
Сообщение #267


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Genadi Zawidowski @ Feb 3 2010, 04:47) *
Кто-нибудь может понять, почему этот комплект не собирает?


Потому что вы сделали не так, как я писалsmile.gif

Вот, поправил: Прикрепленный файл  sam7x64_rom.zip ( 1.54 килобайт ) Кол-во скачиваний: 114


(Обратите внимание, что откуда-то подтягивается вызов malloc.)


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 3 2010, 17:54
Сообщение #268


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Цитата(AHTOXA @ Feb 3 2010, 09:51) *
Потому что вы сделали не так, как я писалsmile.gif

Вот, поправил: Прикрепленный файл  sam7x64_rom.zip ( 1.54 килобайт ) Кол-во скачиваний: 114


(Обратите внимание, что откуда-то подтягивается вызов malloc.)


всё начинается с откуда-то взявшегося unwind-arm.o. В варианте kgp.
В моём я перевёл в discard eh_frame*, убралось десять килобайт.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Feb 3 2010, 18:19
Сообщение #269


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Так заработало?

С этими секциями да, много непонятного. И самое непонятное - где взять инфу о том, что это за секцииsmile.gif

ЗЫ. Мои старые варианты линкерных скриптов для kgp перестали работать. Насколько я понял, конструкторы переехали из .ctors в .init_array.

Цитата(Genadi Zawidowski @ Feb 3 2010, 22:54) *
всё начинается с откуда-то взявшегося unwind-arm.o. В варианте kgp.
В моём я перевёл в discard eh_frame*, убралось десять килобайт.


Есть более правильный вариант: Прикрепленный файл  sys.zip ( 332 байт ) Кол-во скачиваний: 164


Добавьте этот файл к проекту, и ничего не придётся дискардитьsmile.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 3 2010, 18:34
Сообщение #270


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

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Так заработало?
Собранное kgp при объёме 46 килобайт работает. С этимже скриптом yagarto даёт имедж размером 36 килобайт. Вернуть на место discard - опят 30.5 килобайт.

sys.zip - это заплата, спсибо, но я не стал бы её использовать. Я не хотел бы терять контроля над кодом, дабы избежать непредсказуемого поведения в embedded приложении.
Go to the top of the page
 
+Quote Post

85 страниц V  « < 16 17 18 19 20 > » 
Reply to this topicStart new topic
5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th June 2025 - 07:29
Рейтинг@Mail.ru


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