Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: свежак KGP win32/arm/avr/mips/m68k
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26
klen
Всем привет.
выкладываю свежак для хоста linux-x86_64
arm 26Mb
http://klen.org/Files/DevTools/linux-x86_6...20110206.tar.7z
проверено на текщих проектах - еще ужался код на процент

avr 13Mb
http://klen.org/Files/DevTools/linux-x86_6...20110206.tar.7z
тут все интересно, порт под виндой поадает при генерации отладочной информации dwarf2. пол линухов не падает почемуто. шайтан???? не давече как полчаса взад общасля с господином aesok, Анатолий сказал что знает откуда ногти растут - как у него появится время( сказочник wink.gif ) сказал поковыряеццо - флаг ему вруки и барабан на шею. также он том еще немного посочинял на тему оптимизации пересылок байтов слов и двойных слов, сказал что работает. в следующую сбоку добавлю, поглядим асм на выходе wink.gif

mips 17Mb
http://klen.org/Files/DevTools/linux-x86_6...20110206.tar.7z
тут непаханное поле для тестеров - могу сказать что компилит и линкует, не более. проверять неначем.

linux 183Mb
http://klen.org/Files/DevTools/linux-x86_6...20110206.tar.7z
тутА поле перепахано и ечменя намолочено горы...типа.. использую для больших проектов на больших голимых x86 таргетов.
в библиотеках есть куча дребидени которая возможно вам пригодится - я не чистил. если нада выложу свежесборную qt 4.7.1, у меня на ней проги работают.

все пакеты требуют библиотек с которыми сликованы исполняймые бинарники тулсов ( кроме kgp_x86_64-linux-gnu - там они само сабой есть и отуда они выдраны ) и их нада скачать 50Mb
http://klen.org/Files/DevTools/linux-x86_6...20110206.tar.7z
для того чтоб все работало нада закешироать содержимое директории с либами с помощью ldconfig. если чето не заведется - проверте утилитой ldd - она скажет чего нехватает из библиотек - вышлю кривой стартер.

для винды добавлю как прегружусь под нее.. это стало редким событием в моей жизни, пора прекратить пинать дохлую лошадь и дохлого лошаденка (avr).

еще немного интересного из моей жизни.
приехал ко мне в гости Стас Волков - солитс и руководитель(посли смерти Танича) группы "Лесоповал" , типа учу его на армах девайсы разрабатывать. так вот он под макосом сидит и попросил сделать сборку для снежного леопарда, попробывал с канадачка не получилось wink.gif .... так что возможно название темы скоро можно будет расширить словами типа Darwn или Mach .... вот такие у нас эстрадные кексы иногда попадаются! эмбеддеры!
gba
Возникла проблема со сборкой от 2010-12-12 (насколько я понял последняя для x86_32 под винду). Проблема заключается в том, что системные вызовы _sbrk_r и т.д. автоматом подцепляются из libc, хотя их там быть по идее не должно(?)

Тему поднимал здесь. Действительно ли косяк в тулчейне?

Кстати говоря, так же попутно возникла проблема с набором тулзов (make, sh, rm, touch), из состава MSYS (ссылка была пару страниц назад) - на одной машине с Win7 все утилиты тихо не работают (даже хелп не выдают), а на другой, тоже с Win7, make ругается на команду @echo, говорит, что не знает такой. Такой же набор от Yagarto работает нормально.
Nixon
Киньте к тулзам файлик с именем echo и содержимым
Код
#!/bin/sh
echo "$@"
gba
Спасибо. Как-то я забыл что sh есть
klen
Цитата(gba @ Feb 17 2011, 21:50) *
Возникла проблема со сборкой от 2010-12-12 (насколько я понял последняя для x86_32 под винду). Проблема заключается ...

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

собрать newlib можно и с системными вызовами(_sbrk_r,...) так и без них. собирал и в таком и в другом варианте. сводилось это у тому в результате что либо пользовательский или библиотечный код вытягивал незаметно из libc либо начинал ругатся что _sbrk_r неопределен. в любом случае определенную програмистом приложения версию можно подсунуть спереди библиотечной. поскольку у меня пишется код для микроконтроллеров - наличие в прошивки _sbrk_r и иже с ними - для меня признак какой то кривости, разматываю дерево вызовов и смотрю откуда что прилезло.

echo - то откуда взялось? вернее зачем оно нужно при сборке? хорошо, положу. тогда уж давайте еще до кучи все что может пригодится. вообще хочу напомнить что маленький пакетик утилит предназначен чтоб можно было написать нормальный по функциональности makefile но не требовалось бы ставить MSys/MinGW . проблемы иногда бывают как я заметил если на машине ставился дистрибутив cygwin или msys. и вообще Micro-говно-Soft продолжает культивировать технологию написания кривого софта под кривую ОС. уроды. теперь еще и нокию утопят в фекальных масса.

вопрос к народу, в предыдущм посте вывалил сборки под host - linux64, это кто нибудь оценил? подайте голос, или тока масдайщики живут в нашем теремке? если не будет ответ в основном для масдайщиков буду билды делать
Nixon
echo часто присутствует в makefile из сторонних источников для комментирования процесса билда. Иногда полезно.

Да, и автогенераторы из эклипса вставляют echo повсюду.
gba
Да я в общем-то без претензий, наоборот Ваша сборка нравится. Просто я с армами без операционки не работал еще, а в примерах на printf() везде упоминается, что должны быть нерезолвенные ссылки на _sbrk_r, вот и смутило такое поведение.

Цитата(klen @ Feb 18 2011, 10:32) *
echo - то откуда взялось? вернее зачем оно нужно при сборке? хорошо, положу. тогда уж давайте еще до кучи все что может пригодится. вообще хочу напомнить что маленький пакетик утилит предназначен чтоб можно было написать нормальный по функциональности makefile но не требовалось бы ставить MSys/MinGW . проблемы иногда бывают как я заметил если на машине ставился дистрибутив cygwin или msys

echo нужно для echo sm.gif Понятное дело, что это не критично. Но в той версии, которая лежит на сайте Терры (руководствовался Вашей статьей), все работало, а после обновления сборки те же самые мейкфайлы работать перестали.

PS Под виндой сижу только для того, чтобы потом показать некоторым коллегам, кто линукс не может осилить, как работать с STM32 под Eclipse
AHTOXA
Цитата(klen @ Feb 18 2011, 12:32) *
собрать newlib можно и с системными вызовами(_sbrk_r,...) так и без них. собирал и в таком и в другом варианте. сводилось это у тому в результате что либо пользовательский или библиотечный код вытягивал незаметно из libc либо начинал ругатся что _sbrk_r неопределен.

ИМХО, лучше уж пусть ругается, чем незаметно подтягивает. Так сразу заметен момент, когда что-то пошло не так sm.gif
Цитата(klen @ Feb 18 2011, 12:32) *
вопрос к народу, в предыдущм посте вывалил сборки под host - linux64, это кто нибудь оценил?

Я скачал, но ещё не оценил - архиватор ругается на архив (но разворачивает), а дальше -- затык, не знаю что делать. С Codesourcery оказалось проще - развернул архив, добавил bin в PATH и всё заработало. Вот бы такую сборку kgp sm.gif Ну или краткую инструкцию по установке.
klen
Цитата(AHTOXA @ Feb 18 2011, 11:49) *
ИМХО, лучше уж пусть ругается, чем незаметно подтягивает. Так сразу заметен момент, когда что-то пошло не так sm.gif

Я скачал, но ещё не оценил - архиватор ругается на архив (но разворачивает), а дальше -- затык, не знаю что делать. С Codesourcery оказалось проще - развернул архив, добавил bin в PATH и всё заработало. Вот бы такую сборку kgp sm.gif Ну или краткую инструкцию по установке.


если пролема тока с распаковкой то поробуйте обновить пакет 7z или 7z-common вроде, свежий нужен. если нет пакета в вашем репозитоирии то лучше всего тупо скачать исходники и скомпилять. 7z LZMA2 жмет недетски.. иногда кажется что от можт сжат 1 бит sm.gif
если распакуете - то настройка простая
1, указать путь в bin
2. закешировать либы с помощью ldconfig в папке lib

жду результатов

интересное наблюдение - по линухом компиляция в сренем в 3,5 раза быстрее происходит. (быстрая ФС, линукс всегда все пытается делать в памяти, ну и вообще почемуто утилиты командной строки быстрее все работают). кода проект маленький то незаметно, но например есть у меня такой проект для stm32 что там по ходу собирается 8 библиотек из исходников и еще приложение, да еще половина на с++, тут кжо бесить начинает когда ждеш секунд 7-12. с отладчиком таже фигня. а вот эклипс это генетический тормоз, зато удобный как кожаный диван с журнальным столиком на которм коньяк и лимончики нарезанные
AHTOXA
А что делать с симлинком на /opt/lib (вроде так) в корне? Видимо подразумевается, что надо распаковывать в /opt ?
klen
Цитата(AHTOXA @ Feb 18 2011, 12:31) *
А что делать с симлинком на /opt/lib (вроде так) в корне? Видимо подразумевается, что надо распаковывать в /opt ?

а кто ссылается? странная линка /opt/kgp-*** /lib может? у меня /opt/lib не существует.
вообще да, у меня все лежит в /opt
положте пока так, я подумаю че сделать чтоб его мотать по файловой системе сожно было куда угодно.
AHTOXA
Цитата(klen @ Feb 18 2011, 14:38) *
а кто ссылается?

Вроде "lib32". Прям в корне архива. Я сейчас не могу посмотреть, у меня линукс дома.
Цитата
я подумаю че сделать чтоб его мотать по файловой системе сожно было куда угодно.

Это будет замечательно. А без либ как-нить нельзя? Как у codesourcery? Как они умудрились? По размеру даже меньше, чем ваша сборка, значит не статическая линковка... Правда у них не 64-битная, может в этом дело?
AHTOXA
Добрался до линукса. Значит так.
Архив. Ругается не 7zip, ругается уже tar. То есть, из kgp_arm_eabi-20110206.tar.7z без проблем извлекается kgp_arm_eabi.tar, а вот уже при распаковке этого tar-а валятся ошибки:
Код
tar: kgp_arm_eabi/lib64/jim: Функция mkdir завершилась с ошибкой: Это не каталог
tar: kgp_arm_eabi/lib64/gcc: Функция mkdir завершилась с ошибкой: Это не каталог
tar: kgp_arm_eabi/lib64/openocd: Функция mkdir завершилась с ошибкой: Это не каталог
...

...и ещё 250 строчек. Как видно, дело в папке lib64. То ли её нет в архиве, то ли что ещё.
Плюс к тому в распакованной папке kgp_arm_eabi имеется симлинк с именем lib64, указывающий на opt/kgp_arm_eabi/lib. Короче, что-то не так заархивировалось sm.gif

Ладно, исправляю симлинк, чтоб указывал на ./lib, потом закидываю в этот lib все либы, которые во втором архиве (x86_64-lib-20110206.tar.7z).
Теперь надо закешировать... Пытаюсь:
Код
$ sudo ldconfig /home/me/kgp/lib
/sbin/ldconfig.real: /home/me/kgp/lib/libstdc++.so.6.0.15-gdb.py не является
ELF-файлом -- у него в начале неправильные волшебные байты.

Итог: со второго наскока тоже не получилось, застрял. Жду подсказок sm.gif
AHTOXA
Цитата(AHTOXA @ Feb 18 2011, 17:58) *
Итог: со второго наскока тоже не получилось, застрял. Жду подсказок sm.gif

Устал ждать, прибил этот libstdc++.so.6.0.15-gdb.py, после этого ldconfig отработал нормально.
Тестовый си-проект, который я приаттачивал к вот этому сообщению скомпилился и заработал, причём размер кода очень порадовал, а размер ОЗУ - наоборот:
Код
                  text    data    bss
Codesourcery     32644    1416    600
        kgp      19396    2244    600

А вот с C++ что-то не срослось:
Код
uart.h: В функции-члене ‘void uart_t<(uart_num_t)0u115200ul>::_ZTv0_n12_
N6uart_tIL10uart_num_t0ELm115200EL7remap_t0EE5putchEc(char)’:
uart.h:116:6: ошибка: invalid argument to gimple call ch


ЗЫ. А зачем он ругается по-русски? sm.gif
klen
>Устал ждать, прибил этот libstdc++.so.6.0.15-gdb.py, после этого ldconfig отработал нормально.
не нада обращать внимание, ldconfig натыкается на нелибу и ругается - так и должно быть

>скомпилился и заработал, причём размер кода очень порадовал, а размер ОЗУ - наоборот
как говорил мой учитель - "произведение жопы на голову есть константа заданная в момент рождения человека", или то больше или другое sm.gif
ето может быть связано с ключами по умолчанию. посмотрите с опцией -v что gcc пихает в cc1 - может явно надо чтото поменять, у меня там вроде оптимизации какето впихнуты. нада глядеть. вообще я по скорости больше фанатею а не по размеру. никогда небыло чтоб флеша не хватала или огу а вот скорости всегда хоца больше.... в эту сторону и иду.

effect = text*data*bss

Codesourcery 32644*1416 = 46223904
kgp 19396*2244 = 43524624

если принят такой виртуальный критерий качества то kgp чуток лучше.

НО! меня интересует скорость основных циклических трасс кода!!! флеш и озу - разменная монета!! скорость - цель!!
сравните скорость.

>А вот с C++ что-то не срослось: В функции-члене ‘void uart_t<(uart_num_t)0u115200ul>::_ZTv0_n12_re

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


>А зачем он ругается по-русски?
ну дык он родися здесь як мы! как же ему еще говорить...
AHTOXA
Цитата(klen @ Feb 18 2011, 21:51) *
не нада обращать внимание, ldconfig натыкается на нелибу и ругается - так и должно быть

Так страшно, по первости-тоsm.gif
Кстати, вот список действительно нужных либ:
Код
libcloog.so
libcloog.so.0
libcloog.so.0.0.0
libgmpxx.so
libgmpxx.so.4
libgmpxx.so.4.1.2
libmpc.so
libmpc.so.2
libmpc.so.2.0.0
libppl.so.9
libppl.so.9.0.0
libppl_c.so
libppl_c.so.4
libppl_c.so.4.0.0
libpwl.so
libpwl.so.5
libpwl.so.5.0.0

(Я смотрел на что ругается и по одной добавлял.)
Цитата(klen @ Feb 18 2011, 21:51) *
НО! меня интересует скорость основных циклических трасс кода!!! флеш и озу - разменная монета!! скорость - цель!!
сравните скорость.

Пока не могу, мои проекты не компилируютсяsm.gif
Цитата(klen @ Feb 18 2011, 21:51) *
дайте кусок кода который отдельно можно компильнуть.

Вот, тестовый проект: Нажмите для просмотра прикрепленного файла
Не компилится uart.h. Для сравнения там же (в папке src/lib) лежит файлик dbg_uart.h, так вот, он - компилится.
Цитата
ну дык он родися здесь як мы! как же ему еще говорить...

А ежели у кого редактор настроен на слова "warning", "error"? Нунаф, баловство это.
klen
>Я смотрел на что ругается и по одной добавлял.
ну да, я все кучей закатал, в следующий оах скриптик напишу чтоб тока эти в дистр копировал



>Пока не могу, мои проекты не компилируютсяsm.gif
тяжело в учении легко в бою.

>Вот, тестовый проект: Нажмите для просмотра прикрепленного файла
>Не компилится uart.h. Для сравнения там же (в папке src/lib) лежит файлик dbg_uart.h, так вот, он - компилится.
посмотрю.

>А ежели у кого редактор настроен на слова "warning", "error"? Нунаф, баловство это.
замечание по делу, но... а как тогда у меня эклипс парсит выход компиллера? наверно чтото другое использует для определения.... ну может тут только имя исходника и номер строки кода важны?
AHTOXA
Цитата(klen @ Feb 21 2011, 00:38) *
посмотрю.

Хорошо. Кстати, я тут полистал этот топик немного назад, и вспомнил, что это уже не первый случай с этим самым "gimple call". Вот предыдущий...
Цитата(klen @ Feb 21 2011, 00:38) *
а как тогда у меня эклипс парсит выход компиллера? наверно чтото другое использует для определения....

Он всё засовывает в ошибки - и предупреждения тоже. Видимо по умолчанию.
klen
Цитата(AHTOXA @ Feb 21 2011, 21:21) *
.... это уже не первый случай с этим самым "gimple call"

и не последний, я думаю что это разные косяки вылазящие через одно место. оптимзатор GIMPLE представления пилится непрерывно.
PVL
Уважаемый, klen. Нет ли возможности собрать такой тул для NIOSII под маздай?
klen
Цитата(PVL @ Feb 23 2011, 02:17) *
Уважаемый, klen. Нет ли возможности собрать такой тул для NIOSII под маздай?

в офицальной ветке gcc такой таргет не поддерживает, я не нашел. микроблазе поддерживает а nios ненашел. зато на сайте автора плисин есть дистрибутивы тулсов. оттуда чем не устраивает?
PVL
Цитата(klen @ Feb 23 2011, 23:34) *
в офицальной ветке gcc такой таргет не поддерживает, я не нашел. микроблазе поддерживает а nios ненашел. зато на сайте автора плисин есть дистрибутивы тулсов. оттуда чем не устраивает?


Мне не удалось собрать ими что либо... я железячник, а не программист - мне тяжело разобраться как ими пользоваться. они отличаются от стандартного GCC.
Spym
klen, смотрите, какая штука:

Код
test.cpp
arm-kgp-eabi-g++ -c  -mcpu=arm7tdmi-s  -gdwarf-2   -O0 -Wall -Wcast-align -Wimplicit -Wpointer-arith -Wswitch -Wreturn-type -Wunused -Wa,-adhlns=./tmp/test.lst  -funsigned-char -ffunction-sections -fdata-sections  -MD -MP -MF ./tmp/test.o.d
-std=c++0x test.cpp -o test.o
cc1plus.exe: warning: command line option '-Wimplicit' is valid for C/ObjC but not for C++ [enabled by default]
test.cpp:28:11: internal compiler error: tree check: expected tree that contains 'decl minimal' structure, have 'integer_cst' in decl_linkage, at cp/tree.c:2969
Please submit a full bug report,
with preprocessed source if appropriate.
See <klen_s@mail.ru> for instructions.
make: *** [test.o] Error 1


Это мне захотелось проверить шаблон, где аргументом по умолчанию будет NULL. Разумеется, такой шаблон компилироваться отказался, но дело и не в нём.
Вот весь test.cpp:

Код
#include <cstdlib>

volatile int i = 0;

void my_callee()
{
    i++;
    return;
}

//void null_callee() { }
//static void(*const NULL_CALLEE)() = null_callee;
static void(*const NULL_CALLEE)() = static_cast<void(*const)()>(NULL);


template < int Smth, void(*Callee)() = NULL_CALLEE >
class TCaller
{
public:
    static void Invoke()
    {
        Callee();
    }
};


//TCaller<-2, my_callee> ct;
TCaller<-1> ct;

int main()
{
    ct.Invoke();
    return 0;
}


Версия, правда, не самая последняя (win32):
Код
C:\kgp_arm_eabi\bin>arm-kgp-eabi-c++ --version
arm-kgp-eabi-c++ (Klen's GCC package (KGP) for ARM/elf platform, ---- HALLOWEEN EDITIION 2010 ---- ) 4.6.0 20101030 (exp
erimental)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


P.S. не могу еще раз не обратить Вашего внимания на старый вопрос, уже утративший актуальность в связи с переходом на KGP, но не оставивший моего любопытства: http://electronix.ru/forum/index.php?showtopic=82874 - ни здесь, ни на ЛОРе никто на него не ответил, что несколько странно.
klen
свежак
теперь мы будем дрюкать код компиллером версии 4.7.X

mingw64
http://klen.org/Files/DevTools/x86-64_kgp-...w32_20110327.7z

arm
http://klen.org/Files/DevTools/kgp-arm-eab...-64_20110327.7z
есть возможность собирать с поддержкой процов Faraday http://www.faraday-tech.com/html/products/...technology.html, оно комунить нуна? почитал доки и не впечатлился...
mips
http://klen.org/Files/DevTools/x86-64_kgp-...w32_20110327.7z

первые два протестерованы на текущих проектах
, последний нечем тестить.

r301
Цитата(klen @ Mar 27 2011, 19:07) *

а можно kgp-arm-eabi еще и под x86 ?
klen
Цитата(r301 @ Mar 27 2011, 20:27) *
а можно kgp-arm-eabi еще и под x86 ?

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

пожже выложу
AHTOXA
Цитата(klen @ Mar 27 2011, 21:07) *
первые два протестерованы на текущих проектах

А на моём тестовом проекте из сообщения №516? Как там с пресловутым "gimple call"?
Andrew L
Добрый день! Подскажите как сделать так, чтобы kgp отображался в списке toolchain в Eclipse? Я слил kgp (для работы с mips), но не знаю как установить его в систему (win).
_3m
Цитата(klen @ Mar 27 2011, 20:40) *
да можно конечно, но на мой взгляд ненужно... атомы уже даже 64 битные, походу оборудования 32 битного уже не выпускаеццо.
пожже выложу

Рано вы похоронили 32 бит. Оно еще живо и жить будет долго потому что:
* под виртуалкой лучше гонять 32 битный софт из-за меньших требований к озу
* даже на современном железе приходится гонять 32 битный софт из-за того что драйверов для имеющейся (и хорошо работающей) периферии под 64 бит нет и не будет
* 64 битному софту требуется увеличенные объемы озу по сравнению с его 32-битными версиями. конфигурации готовых систем как правило избытком озу не обладают. Бюджет на апгрейд свежекупленной техники никто не даст. Закупать правильные конфигурации тоже никто не будет - у них видите ли такая корпоративная политика закупок.
* не весь старый софт нормально работает на 64-битных системах

По этим причинам еще годы придется сидеть на 32-битных системах даже при наличии 64-битных процессоров.
Bender
Цитата
а можно kgp-arm-eabi еще и под x86
?

И мне тоже нужно
Koshak
Цитата(klen @ Mar 27 2011, 20:07) *
теперь мы будем дрюкать код компиллером версии 4.7.X

Можно сделать kgp-arm-mingw с финальной версией GCC 4.6.0 (x86 & x64)?
Для production release-ов....
klen
2_Антоха,
мож я чето не так делал но оно скомпилялось...
-O2 как в архиве
Цитата
-klen@klen-dev:/opt/home/polygon/testcase$ make
--- compiling ./src/hw.cpp...
--- compiling ./src/main.cpp...
--- compiling ./src/base/sysinit.cpp...
--- compiling ./src/lib/uart_base.cpp...
--- compiling scmRTOS/Common/OS_Kernel.cpp...
--- compiling scmRTOS/Common/OS_Services.cpp...
--- compiling scmRTOS/Common/usrlib.cpp...
--- compiling scmRTOS/CortexM3/OS_Target_cpp.cpp...
--- compiling ./src/base/startup.c...
--- compiling ./src/base/sys.c...
--- assembling scmRTOS/CortexM3/OS_Target_asm.S...
--- linking...
--- making asm-lst...
text data bss dec hex filename
3356 4 4532 7892 1ed4 ./exe/testcase.elf
Errors: none

-Os
Цитата
klen@klen-dev:/opt/home/polygon/testcase$ make
--- compiling ./src/hw.cpp...
--- compiling ./src/main.cpp...
--- compiling ./src/base/sysinit.cpp...
--- compiling ./src/lib/uart_base.cpp...
--- compiling scmRTOS/Common/OS_Kernel.cpp...
--- compiling scmRTOS/Common/OS_Services.cpp...
--- compiling scmRTOS/Common/usrlib.cpp...
--- compiling scmRTOS/CortexM3/OS_Target_cpp.cpp...
--- compiling ./src/base/startup.c...
--- compiling ./src/base/sys.c...
--- assembling scmRTOS/CortexM3/OS_Target_asm.S...
--- linking...
--- making asm-lst...
text data bss dec hex filename
3044 4 4528 7576 1d98 ./exe/testcase.elf
Errors: none


едем дальше
2_Andrew L
Цитата
Добрый день! Подскажите как сделать так, чтобы kgp отображался в списке toolchain в Eclipse? Я слил kgp (для работы с mips), но не знаю как установить его в систему (win).

это наиболее сложные вопросы из когдалибо встречающихся по данной теме.... эээ.... прошу помощь зала и друга по телефону...
1, про эклипс - Вам не нада чтоб он (компиллер) отображался в каком то списке какойто программы(эклипс) - Вам нада чтоб он умел компилять и линковать файлы (я знаю что это не тот ответ который Вы ждете но к сожалению это правильный ответ, потому что если он появится в какомто списке то это не значит что эклипса сразуже с низкого старта побежит генерить прошивки из вашего кода ;(, тут поимаеш дело тооонкое... )
2. вопрос подобен по сути первому. если Вы засунули на диск мою сборку и прописали в пути путь к bin то Вы ЕНТОГО ЗВЕРЯ УСТАНОВИЛИ!. вот вопрос как его пользовать......
3. пункт под этим номером зарезервирован для широкоформатного ответа со стороны зрительного зала....
ps. нада сказать что часто оказываюсь в такойже ситуации - когда начинаю изучать новое - нихрена непонятно, тут главное не плюнуть и продолжать безнадежно тужится внадежеде что скорость начнется отличатся от нуля... мы тут типа поможем.. wink.gif


2_Koshak
ок, сделаю референсную 4,6,0 но пожже, binutils gdb openocd newlib я так понимаю оставляем свежие.

2_остальыне кто 32 битную версию просят
Во первых я 32 бита не похоронил - а только всеми силами ( судя повсему безуспешно) пытаюсь это сделать.... такчто рано мне лавры приписывать. я воинствующий выжигатель всего старого и отжишего тормозного регрессивного дегресивного дегенеративного дибильного и прочего мохнатого и заросшенебритого....
ну например на мой взгляд все автомобили уже как лет 40 должны иметь по одному электромотору с редуктором на каждое колесо и отдельным шимом для раздачи момента на них как МНЕ хочется а не как хочет этого тупорылая трансмисия, и иметь мааааааааленький двс оптимизированный на заданный обороты с отоптимизированным процессом нагруженный на генератор. вот пАимаете тепловозы умеют так делать а мобили НЕТ!!! бесит.

arm mingw32
http://klen.org/Files/DevTools/kgp-arm-eab...-32_20110328.7z

mips mingw32
http://klen.org/Files/DevTools/kgp-mips-el...-32_20110328.7z

я их не тестил - неначем дома

теперь чтоб достич апофеоза и окончательно меня убить, Вы по закону жанра должны попросить собрать сборки для 32bit Linux laughing.gif

а когда мы все соберемся в теплой компании чтоб познакомится и выпить кружку пива? скоро тепло наступит ....
ReAl
Нет, только Linux/64 biggrin.gif
r301
Цитата(klen @ Mar 28 2011, 23:37) *

спасибо!
смеха ради сравнил время сборки проекта на win2008x64: kgp-arm-eabi_x86-32 собарает за ~25 сек, kgp-arm-eabi_x86_64 за ~28 сек. В обоих случаях размер бинаря на выходе идентичен.
А lto так и не заработало crying.gif, падает с ошибкой 'internal compiler error: in insert_value_copy_on_edge, at tree-outof-ssa.c:242'
klen
Цитата(r301 @ Mar 29 2011, 13:39) *
lto так и не заработало crying.gif, падает с ошибкой 'internal compiler error: in insert_value_copy_on_edge, at tree-outof-ssa.c:242'

сам давно нервничаю по этому поводу... а идея то какая красивая, одновременно и скорость (длинные в короткие вызовы по возможности перекомпановать) и размер кода. я так понимаю люди трудятся но еще не дотрудились до промышленого состояния.
AHTOXA
Цитата(klen @ Mar 29 2011, 01:37) *
2_Антоха,
мож я чето не так делал но оно скомпилялось...


Отлично, качаюsm.gif

И - присоединяюсь к просьбе про референсную 4.6.0. Желательно под вынь-32 и под линукс-64:)
klen
а как там в сравнении с конкурентами? winarm codesourcery итд? есть профицыт?
AHTOXA
Дома линукс, завтра на работе проверю.
IgorKossak
Вышел новый YAGARTO на базе GCC 4.6.0. С ним тоже есть смысл проверить.
AHTOXA
Короче, вот что у меня получилось:
Код
                              text    data      bss
  codesourcery 2009q1-161 :  31444       8      8296
                kgp-4.5.0 :  29660       8      8296
                kgp-4.7.0 :  29116       8      8296

klen--чемпионsm.gif
YAGARTO - на днях скачаю, если будет время.
klen
2_AHTOXA
а работет то что скомпилялось? я то только на кортексах могу тестировать. еще есть еще белогвардейские недобитки в виде arm7tdmi которые в текущих проектах у многих.

и еще..мне по скорости сгенеренного кода интереснее узнать разницу. флеш в первом приближении можно считать резиновым а озу квазирезиновым( разуеется на моих задачах).
AHTOXA
Да вроде работает. Проверил на STM32 и на ADuC70xx. Дома есть ещё LPC2148, могу на них проверить.
Проекты на C++, scmRTOS.
Про скорость могу сказать лишь одно - пока хватаетsm.gif Честно говоря, в моих приложениях я не знаю как сравнивать, а писать специальные тесты некогда...
r301
lto таки заработало yeah.gif . как оказывается в LDFLAGS кроме -flto надо еще и флаги оптимизации добавлять.
добавил в makefile
Код
LDFLAGS += -flto $(OPTIMIZATION)
CFLAGS += -flto

и вот оно, счастье.
Код
с -Os -combine -fwhole-program (gcc version 4.5.0 20091115 т.к. в 4.7 -combine убрали):
  text    data     bss
16665      40    4232

c -Os -flto (gcc gcc version 4.7.0 20110328)
   text    data     bss
  16113      40    4240


Bender
У меня на одном проекте LPC2212 (включая 87к двоичных данных):
Код
-O1
yagarto 4.51 - 110040 байт
yagarto 4.52 - 110036 байт
kgp       4.7  - 108929 байт
-Os
kgp без LTO       4.7  - 107578 байт
kgp c LTO       4.7  - 103344  байт


На другом проекте LPC2212 (включая 65к двоичных данных):
Код
-Os
kgp без LTO  - 87135  байт
kgp c    LTO  - 82161  байт


Отличная экономия sm.gif
Да, кстати, проекты под TNKernel 2.6.
klen
приеду домой попробую тоже lto , но у меня какието траблы были, в коде ковырялся - бросил, не стал разбиратся. судя по резултату lto оптимизатор нехило код функций перекрутил через мясорубку.
этож получается lto оптимизатор из 27к утрамбовал в 23к это если я не ошибаюсь 14 процентов - даже не верится. а код работает хоть?
что характерно - сие шаманство возможно только для elf бинарников, токсть встраиваемый линкус и проги для него получится отплющить а вот winCE видимо курит солому.

по поводу флагов оптимизации непонятно - как я понимаю они в elf объектники складываются на всякий случай либов секции dwarf либо еще кудато, поэтому lto-wraper и lto1 может их и сам вытащить...

gcc мне напоминает В.Ленина - все для народа (для тех кто пламенный революционер и мелкобарыжнеческого элемента у кого бабла нет на иар wink.gif)
Mitsufan
Что-то линкер из последней сборки для MIPS стал ругаться на инверсию атрибута в описании блока памяти в скрипте линкера.

MEMORY
{
kseg1_data_mem (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000
}

../../../mips-kgp-elf/bin/ld.exe: invalid syntax in flags
collect2: ld returned 1 exit status

Меняю ld.exe на предыдущий (4.6.0 от 25.07.2010) - все нормально компилируется.
klen
2_Mitsufan
мож синтаксис поменялся, нада доки посмотреть на binutils. но скорее всего косяг.
а кокой mips пропрограмируете?
Genadi Zawidowski
Кто-нибудь с флагом -flto пробовал работать с чем-то похожим на ramfunc? Как выглядят Ваши скрипты и определения? Моё срособ (с секцией по имени .data_ramfunc) даёт с применением link time optimization утроение объёма ОЗУ под такие функции.
Временно выкинул использование этой фичи - код в среднем на 25 процентов ужался (AT91SAM7Sxxx) и при этом продолжает работать!
demiurg_spb
а avr-gcc 4.7.0 под win32 c lto планируется? Уж очень хочется!
Сбилдите плиз, пусть там не всё будет гладко с отладочной информацией...
Mitsufan
MIPS - PIC32, скрипты для линкера от родного микрочиповского C32. С предыдущими сборками KGP все работало.

А где можно посмотреть изменения для GCC 4.7, желательно прямой линк.

Цитата(klen @ Mar 31 2011, 06:58) *
2_Mitsufan
мож синтаксис поменялся, нада доки посмотреть на binutils. но скорее всего косяг.
а кокой mips пропрограмируете?

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.