Перейти к содержанию
    

делаю

 

А скачать откуда можно? На вашем сайте последняя сборка для AVR от 2006 года.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

с EABI стало лучше, Вами предложенный код компиляется на 2 инструкции длинне чем у Sourcery G++ Lite 2009q3-68.

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

кстате это к работе с битами никакого отношения не имеет. толко к registers usage.

 

Спасибо большое!

Скачал, проверил - все великолепно!

 

Кстати, если в том коде результат собирать в промежуточной переменной, вот так

 

unsigned int func( var v )
{
       var vv;

vv.y.y0 = k[0][v.y.y0];
vv.y.y1 = k[1][v.y.y1];
vv.y.y2 = k[2][v.y.y2];
vv.y.y3 = k[3][v.y.y3];
vv.y.y4 = k[4][v.y.y4];
vv.y.y5 = k[5][v.y.y5];
vv.y.y6 = k[6][v.y.y6];
vv.y.y7 = k[7][v.y.y7];
return vv.x;
}

 

то код компилится лучше, чем у CS. На 1 инструкцию (4 байта) меньше.

И push/pop нет совсем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо большое!

Скачал, проверил - все великолепно!

 

Кстати, если в том коде результат собирать в промежуточной переменной, вот так

 

unsigned int func( var v )
{
       var vv;

vv.y.y0 = k[0][v.y.y0];
vv.y.y1 = k[1][v.y.y1];
vv.y.y2 = k[2][v.y.y2];
vv.y.y3 = k[3][v.y.y3];
vv.y.y4 = k[4][v.y.y4];
vv.y.y5 = k[5][v.y.y5];
vv.y.y6 = k[6][v.y.y6];
vv.y.y7 = k[7][v.y.y7];
return vv.x;
}

 

то код компилится лучше, чем у CS. На 1 инструкцию (4 байта) меньше.

И push/pop нет совсем.

 

вот я этого и добивался!

я не знаю как там IAR и иже с ними, но если для GCC код С писать c пониманием во что и как это переваривается - можно недетски оптимизатору помочь. Но.. для этого нада спецнавыки и знания навыки.

 

2_dimka76

седня-завтра пересоберу выложу.

 

 

2_All_кому_нада _avr

ктонить тыкнет носом в патч который avr-size заставляет знать размеры ОЗУ и FLASH микросхем. лень искать и лень самому писать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

вот я этого и добивался!

выкладывайте, пожалуйста, линуксячие сборки (32бит) - раз уж все равно собираете...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

выкладывайте, пожалуйста, линуксячие сборки (32бит) - раз уж все равно собираете...

я 64битные собираю. 32битные не кашерно. Это сильно старый комп должен быть чтоб на него нельзя было поставить 64биный линукс.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где?

На http://www.klen.org/Files/DevTools/ ошибка 403.

во первых их там еще нет. я их собираю но не складываю туда.

во вторых у Вас нет прав на просмотр www.klen.org/Files/DevTools

 

при следеющей пересборке выложу линуксовую сборку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Это сильно старый комп должен быть чтоб на него нельзя было поставить 64биный линукс.

да, старенький;

тогда, если не сложно, архив Ваших src, или изменения относительно оригинальных исходников, ну или краткую инструкцию по сборке (я уже спрашивал через личку - не пришло сообщение?).

(хотя, жаль что нет 32бит - уж больно долго все это добро собирается)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, старенький;

тогда, если не сложно, архив Ваших src, или изменения относительно оригинальных исходников, ну или краткую инструкцию по сборке (я уже спрашивал через личку - не пришло сообщение?).

(хотя, жаль что нет 32бит - уж больно долго все это добро собирается)

все что я правил уже в транке, я с транка собираю

http://gcc.gnu.org/svn.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

все что я правил уже в транке, я с транка собираю

http://gcc.gnu.org/svn.html

еще вопросы:

- в gcc/config/arm/t-arm-elf какие-нить изменения вносите для полного мультилиба?

- gmp- и mpfr- нужно скачивать отдельно, или они вообще не нужны?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

при следеющей пересборке выложу линуксовую сборку.

Если Вас не затруднит. И очень желательно бы с исходниками.

А если все будет еще и скриптами обернуто, как, например, в crunch-tools/cross-tool/buildroot/ptxdist/oe и т.п. (специфические патчи, откуда брать исходники и скрипты для сборки).

А то пока со всех ресурсов все соберешь в кучу - столько времени и сил уходит :)

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

ЗЫ: Машины линуксовые есть - и 32 и 64. Можно хоть каждую ночь собирать на автомате.

Изменено пользователем faa

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

свежак для avr

www.klen.org/Files/DevTools/kgp_avr_20091202_i686-pc-mingw32.7z

 

1. Исходники ко всему берутся из cvs репозиториев (binutils,gdb,avr-libc,newlib), svn trunk для gcc, поэтому Вы сами можете их и без меня забрать.

2. скрипта сборки у меня нет. делаю все руками.

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

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

klen@klen-dev:/opt/kgp_avr/libexec/gcc/avr/4.5.0$ ldd /opt/kgp_arm_eabi/libexec/gcc/arm-kgp-eabi/4.5.0/cc1plus

linux-vdso.so.1 => (0x00007fff043ff000)

libcloog.so.0 => /opt/kgp_linux64/lib/libcloog.so.0 (0x00007fa56c78e000)

libppl_c.so.2 => /opt/kgp_linux64/lib/libppl_c.so.2 (0x00007fa56c242000)

libppl.so.7 => /opt/kgp_linux64/lib/libppl.so.7 (0x00007fa56bf7a000)

libgmpxx.so.4 => /opt/kgp_linux64/lib/libgmpxx.so.4 (0x00007fa56bd76000)

libmpfr.so.1 => /opt/kgp_linux64/lib/libmpfr.so.1 (0x00007fa56bb27000)

libgmp.so.3 => /opt/kgp_linux64/lib/libgmp.so.3 (0x00007fa56b8ca000)

libdl.so.2 => /lib/libdl.so.2 (0x00007fa56b6c6000)

libelf.so.0 => /opt/kgp_linux64/lib/libelf.so.0 (0x00007fa56cb97000)

libc.so.6 => /lib/libc.so.6 (0x00007fa56b357000)

libstdc++.so.6 => /opt/kgp_linux64/lib/libstdc++.so.6 (0x00007fa56b030000)

libm.so.6 => /lib/libm.so.6 (0x00007fa56adac000)

libgcc_s.so.1 => /opt/kgp_linux64/lib/libgcc_s.so.1 (0x00007fa56ab95000)

/lib64/ld-linux-x86-64.so.2 (0x00007fa56c9b0000)

 

4. mpfr и gmp необходимы для сборки gcc, если их нет gcc не соберется

http://gcc.gnu.org/install/prerequisites.html здесь написано что необходимо.

Вы должные скачать готовые либы и ниделы для своей платформы или скачать исходники их собрать.

 

5. мануал я писать как собирать все это барохло я не буду. никаких ''сИкретов" нет. все патчи уже содержатся в trunk.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

свежак для avr

www.klen.org/Files/DevTools/kgp_avr_20091202_i686-pc-mingw32.7z

 

Вы свою сборку с WinAVR не сравнивали ?

Например, на предмет оптимальности получаемого кода.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вы свою сборку с WinAVR не сравнивали ?

Например, на предмет оптимальности получаемого кода.

 

неа, уверен Вы сравните и раскажете. А че? плохой код выдает?

а что такое "оптимальный получаймый код" я незнаю ? скорость, компактность, объем потребного озу, скорость кодогенерации. это все взаимоисключающие критерии. какой из них для Вас "оптимальный" :) Вот например для индусов оптимальный код - тот который написан за один час и имеет 1000 строк кода и похер как работает.

 

для меня "оптимальный получаймый код" - быстрые циклы ручками на асме, прарывания жЁско на асме, все остальное С-код GCC по любому пережует неплохо. Главное чтоб глюков небыло.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а что такое "оптимальный получаймый код" я незнаю ?

 

это - скорость, компактность, объем потребного озу, скорость кодогенерации в одном флаконе :biggrin:

 

просто если все (и вы и создатели WinAVR, в том числе) собирают из одних исходников, то какая разница.

этот вопрос и для ARM(ов) справедлив.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...