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

 
 
85 страниц V  « < 5 6 7 8 9 > »   
Reply to this topicStart new topic
> свежак KGP win32/arm/avr/mips/m68k, GNU tools chain
Сергей Борщ
сообщение Nov 15 2008, 08:14
Сообщение #91


Гуру
******

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



Цитата(klen @ Nov 14 2008, 08:52) *
Текущее состояние компиллера таково что без разбора сует эту секцию всегда независимо от языка с которого компиляется исходник.
А CFLAGS += -fno-exceptions не спасает?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 15 2008, 10:27
Сообщение #92


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

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



Цитата(Сергей Борщ @ Nov 15 2008, 11:14) *
А CFLAGS += -fno-exceptions не спасает?

при компиляции С эта опция по умолчанию должна быть выключена, так написано в описании фронтэнда GCC. C++ по умолчанию включена.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Nov 15 2008, 12:26
Сообщение #93


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

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



Цитата(klen @ Nov 15 2008, 14:03) *
выбери то что меньше глючить и дает лучший код


Хорошо, спрошу иначе: какие потенциальные преимущества у arm-kgp-elf- перед arm-none-eabi- ? Кроме того, что свежак? smile.gif

Цитата(Сергей Борщ @ Nov 15 2008, 14:14) *
А CFLAGS += -fno-exceptions не спасает?


Да там чисто сишный примерчик. Но всё равно попробую.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
ReAl
сообщение Nov 15 2008, 13:23
Сообщение #94


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Rst7 @ Nov 13 2008, 08:49) *
Как-то IAR с этим справляется на ура:

бз-з-з-з...
Странно.
WinAVR-20060421 (3.4.6) -Os
Код
.global    netw_memcpy
    .type    netw_memcpy, @function
netw_memcpy:
/* prologue: frame size=0 */
/* prologue end (size=0) */
    movw r26,r24
    movw r30,r22
.L7:
    tst r20
    breq .L1
    ld r24,Z+
    st X+,r24
    subi r20,lo8(-(-1))
    rjmp .L7
.L1:
    ret
/* epilogue: frame size=0 */


WinAVR-20060421 (3.4.6) -O2 и -O3
Код
.global    netw_memcpy
    .type    netw_memcpy, @function
netw_memcpy:
/* prologue: frame size=0 */
/* prologue end (size=0) */
    movw r26,r24
    movw r30,r22
    rjmp .L7
.L9:
    ld r24,Z+
    st X+,r24
    subi r20,lo8(-(-1))
.L7:
    tst r20
    brne .L9
    ret
/* epilogue: frame size=0 */


WinAVR-20070525 (4.1.2) и WinAVR-20071221 (4.2.2) -Os, -O2 и -O3
Код
.global    netw_memcpy
    .type    netw_memcpy, @function
netw_memcpy:
/* prologue: frame size=0 */
/* prologue end (size=0) */
    tst r20
    breq .L5
    movw r26,r22
    movw r30,r24
.L4:
    ld r24,X+
    st Z+,r24
    subi r20,lo8(-(-1))
    brne .L4
.L5:
    ret
/* epilogue: frame size=0 */


Что-то их не туда понесло в более свежих версиях sad.gif
То-то я не спешу менять...


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 16 2008, 21:12
Сообщение #95


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

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



получилось
опции -Os


Код
void cpy ( char* x , char* y , size_t s  )
{
  if ( !s ) return;
  size_t t = s;
  do
   {
     *(y++) = *(x++);
   }
  while( --t );
}


Код
000000DC:   01FC        MOVW      R30,R24        Copy register pair
000000DD:   01DB        MOVW      R26,R22        Copy register pair
22:         if ( !s ) return;
000000DE:   1541        CP        R20,R1         Compare
000000DF:   0551        CPC       R21,R1         Compare with carry
000000E0:   F029        BREQ      PC+0x06        Branch if equal
26:            *(y++) = *(x++);
000000E1:   9181        LD        R24,Z+         Load indirect and postincrement
000000E2:   938D        ST        X+,R24         Store indirect and postincrement
28:         while( --t );
000000E3:   5041        SUBI      R20,0x01       Subtract immediate
000000E4:   4050        SBCI      R21,0x00       Subtract immediate with carry
000000E5:   CFF8        RJMP      PC-0x0007      Relative jump
000000E6:   9508        RET                      Subroutine return


это вроде то что нужно
что характерно, при замене типа счетчика на char начинается маразм.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 16 2008, 21:45
Сообщение #96


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата(klen @ Nov 16 2008, 23:12) *
что характерно, при замене типа счетчика на char начинается маразм.

Дык надо лечить, тем более, что явно чтото сломали. Зачем мне int в счетчике, если нативный тип для AVR - unsigned char.

Вот приведенный выше результат после 4.1.2 и 4.2.2 - это то, что должно быть.

PS А что с падением? Или там совсем мрачно?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 17 2008, 06:03
Сообщение #97


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
это вроде то что нужно


Кстати, и к этому коду есть вопросы. IAR
Код
        RSEG CODE:CODE:NOROOT(1)
//   27 __x_z void cpy ( char* x , char* y , size_t s  )
cpy:
//   28 {
        MOV     R19, R25
        MOV     R20, R24
//   29   if ( !s ) return;
        MOV     R18, R16
        OR      R18, R17
        BREQ    ??cpy_0
//   30   size_t t = s;
        MOVW    R25:R24, R17:R16
//   31   do
//   32    {
//   33      *(y++) = *(x++);
??cpy_1:
        LD      R16, X+
        ST      Z+, R16
//   34    }
//   35   while( --t );
        SBIW    R25:R24, 1
        BRNE    ??cpy_1
??cpy_0:
        MOV     R24, R20
        MOV     R25, R19
        RET
//   36 }


И тут есть куда копать...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 17 2008, 11:31
Сообщение #98


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

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



Цитата(Rst7 @ Nov 17 2008, 09:03) *
Кстати, и к этому коду есть вопросы. IAR

какие? у ИАРа на две инструкции длинее. иар не смог сделать группировку и выполнить movw
причины почему падает не смотрел, я рабочие дни работаю, хобби только по выходным
Go to the top of the page
 
+Quote Post
Rst7
сообщение Nov 17 2008, 11:45
Сообщение #99


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
иар не смог сделать группировку и выполнить movw


Зато GCC перестарался с циклом - лишних 3 такта на итерацию. Что суть более зло. Правда, я там видел у Вас -Os, а что будет с -O3?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 19 2008, 17:49
Сообщение #100


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



вопрос к klen : на какую папку настроена ваша сборка avr-gcc ?
при запуске avr-gcc выдает сообщение что не находит сс1.
при добавлении пути к сс1 в %PATH% ругается что не находит какой-то библиотечный .o файл.
в сборках WinAVR этого не было.
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 21 2008, 07:12
Сообщение #101


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

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



Цитата(ukpyr @ Nov 19 2008, 20:49) *
вопрос к klen : на какую папку настроена ваша сборка avr-gcc ?
при запуске avr-gcc выдает сообщение что не находит сс1.
при добавлении пути к сс1 в %PATH% ругается что не находит какой-то библиотечный .o файл.
в сборках WinAVR этого не было.

это косяг, такого не должно быть. Как Вы его устанавливали?
1. распаковываете архив.
2. кладете содержимое в отдельную папку XXX .
3. прописываете путь к XXX\bin

все, из этого положения работатьдолжно сразу. двигать папки содержимого и файлы нельзя.
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 21 2008, 09:28
Сообщение #102


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



так и сделал. не работает :
Цитата
cc1 -quiet -v -I. -Ilib -imultilib avr5 -iprefix e:\work\tools\prg\lng\c\gcc\avr\bin\../lib/gcc/avr/4.4.0/ -MD out\obj\skss_01.d -MF E:\work\projects\outcome\delta\skss_01\src\out\.dep\skss_01.o.d -MP -MQ out\obj\skss_01.o -DF_CPU=1000000UL -include skss_01.h skss_01.c -quiet -dumpbase skss_01.c -mmcu=atmega16 -auxbase-strip out\obj\skss_01.o -gdwarf-2 -Os -Wall -Wstrict-prototypes -Wundef -std=gnu99 -version -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -ffunction-sections -o c:\windows\Temp/ccTaTY11.s
avr-gcc: CreateProcess: No such file or directory


WinAVR 4.1.1 из той же папки компилирует нормально.

и еще бинарные файлы вашей сборки намного больше чем у WinAVR : avr/bin занимает 33М против 6М.

Сообщение отредактировал ukpyr - Nov 21 2008, 09:33
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 22 2008, 09:08
Сообщение #103


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

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



2_ukpyr
1. какой архив используете.
2. по размеру. я собираю все библиотеи с отладочной информацией. вдруг понадобится. в прошивку всервно идет только целевой код.
Go to the top of the page
 
+Quote Post
ukpyr
сообщение Nov 22 2008, 17:25
Сообщение #104


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

Группа: Участник
Сообщений: 1 264
Регистрация: 17-06-08
Из: бандустан
Пользователь №: 38 347



Цитата
1. какой архив используете.

kgp_avr-bu2.19.50_20081005-gcc4.4.0_20081003-avrlibc1.6.2.7z

с последним WinAVR то же самое, пока не могу понять в чем причина.

Цитата
по размеру. я собираю все библиотеи с отладочной информацией. вдруг понадобится. в прошивку всервно идет только целевой код

просто собираю флешку портабельного софта для работы на выездах, приходится экономить объем.
Go to the top of the page
 
+Quote Post
klen
сообщение Nov 24 2008, 08:25
Сообщение #105


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

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



Цитата(ukpyr @ Nov 22 2008, 20:25) *
kgp_avr-bu2.19.50_20081005-gcc4.4.0_20081003-avrlibc1.6.2.7z

с последним WinAVR то же самое, пока не могу понять в чем причина.
просто собираю флешку портабельного софта для работы на выездах, приходится экономить объем.

я себе такую тоже сделал.
для этого сделал себе MinGW с динамической конфигурацией путей в момент загрузки консоли.
в пакете всегда есть msys, и все тулсы для сборки проектов win32,AVR,ARM
с эклипсом трудно - на машине в которую воткнуто флеш должна быть еще и ява машина.

если хотите могу выложть - переделаете под себя.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 10:55
Рейтинг@Mail.ru


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