|
|
  |
свежак KGP win32/arm/avr/mips/m68k, GNU tools chain |
|
|
|
Feb 3 2010, 19:12
|

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

|
если в discard ушло что-то нужное, на что есть ссылки в остальном коде, получаем сообщение об ошибке. Так, весь код попавший в discard, все ссылки имел только внутри себя (примерно так, на абсолютную точность в логике и совершенное знание как транслируется сейчас код gcc для arm не претеную). Есть ещё экзотика типа обращение между адресами определёнными в скрипте линкера или стартапе, но на такое багогенерирующее усовершенствование ответственные програмисты идут неохотно. В осовном анализ .map файла помогал понять, что можно удалять (откуда взялась секция).
ps: sys.c уменьшил или нет код, не присмотрелся 46 килобайт так и осталось (вместо 30 с копейками). free/malloc, весь stdio и io присутствует, signal, memcpy, syscalls. Я не вызываю ничего из этого.
Сообщение отредактировал Genadi Zawidowski - Feb 3 2010, 20:12
|
|
|
|
|
Feb 3 2010, 22:04
|

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

|
Цитата(Genadi Zawidowski @ Feb 4 2010, 00:12)  ps: sys.c уменьшил или нет код, не присмотрелся 46 килобайт так и осталось (вместо 30 с копейками). free/malloc, весь stdio и io присутствует, signal, memcpy, syscalls. Я не вызываю ничего из этого. Да, это мне категорически не нравится... Пока мне удаётся этого избегать, но хочется понять, откуда вообще подключается обработка исключений? Насколько я знаю, в режиме си она по умолчанию должна быть отключена. 2 klen, может ключик --disable-libunwind-exceptions при конфигурировании нас спасёт?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 4 2010, 08:31
|

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

|
можно собрать без обработки С++ эксепшенов. а можно эту хрень в DISCARD вдруг комуто захочется убедится что обработка исключений С++ на микроконтроллерах вопрос исключительно академический . насколько я смутно понмаю нужно памяти больше чем любому приложению + аллокатор памяти свой. както этот вопрос обсуждался сдесь на форуме - тема С++ была, разобрались, пришли к какомуто продуктивному выводу (в том числе и по сборке gcc), помню что пришлоть мучится с тем чтоб конструкторы заработали и еще чето там, после этого всем стало хорошо и я уже забыл суть  помойму на эксепшены былы уложены под большой каток нада поиском порытся.
|
|
|
|
|
Feb 4 2010, 09:21
|

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

|
Цитата(klen @ Feb 4 2010, 13:31)  можно собрать без обработки С++ эксепшенов. Эксепшены - это не обязательно C++. Вон, у Genadi Zawidowski - чисто Си, и на тебе, эксепшены. Причём я так и не понял, откуда они прицепились. Судя по map, из какого-то банального __aeabi_uldivmod. Кстати, arm-kgp-elf- от сентября прошлого года даёт на его проекте 31К вместо 47 нынешних. Сдаётся мне, что что-то всё же не так собралось  Цитата както этот вопрос обсуждался сдесь на форуме - тема С++ была, разобрались, пришли к какомуто продуктивному выводу (в том числе и по сборке gcc), помню что пришлоть мучится с тем чтоб конструкторы заработали и еще чето там, после этого всем стало хорошо и я уже забыл суть  помойму на эксепшены былы уложены под большой каток Ну так это как раз у меня конструкторы и не работали  Потом заработали, да. А с эксепшенами тогда ничего не решили, Terminator предложил заглушки, и на этом всё благополучно затихло. Вот, кстати цитата оттуда: Цитата(klen @ Sep 3 2009, 12:15)  я всетаки соберу две версии libctdc++ одну нормально а вторую с no-exception, no-rtti. а там сравним че получится.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Feb 4 2010, 10:26
|

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

|
Цитата(AHTOXA @ Feb 4 2010, 12:21)  Эксепшены - это не обязательно C++. Вон, у Genadi Zawidowski - чисто Си, и на тебе, эксепшены. Причём я так и не понял, откуда они прицепились. Судя по map, из какого-то банального __aeabi_uldivmod. Кстати, arm-kgp-elf- от сентября прошлого года даёт на его проекте 31К вместо 47 нынешних. Сдаётся мне, что что-то всё же не так собралось  Ну так это как раз у меня конструкторы и не работали  Потом заработали, да. А с эксепшенами тогда ничего не решили, Terminator предложил заглушки, и на этом всё благополучно затихло. Вот, кстати цитата оттуда:  ну теперь отглохнет, и точно пересоберем и посмотрим че выйдет.
|
|
|
|
|
Feb 5 2010, 12:18
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(klen @ Dec 3 2009, 17:38)  свежак для avr www.klen.org/Files/DevTools/kgp_avr_20091202_i686-pc-mingw32.7z Что-то у меня не выходит каменный цветок. avr-gcc.exe - Не удалось найти компонент "Приложению не удалось запуститься, поскольку libiconv-2.dll не был найден" Я нашёл эту либу в Инете, но получил "Точка входа в процедуру libiconv не найдена в библиотеке DLL libiconv-2.dll" Вас не затруднит написать пару строк по инсталляции Ваших сборок на "чистый" компьютер. Спасибо!
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 5 2010, 13:48
|

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

|
Цитата(demiurg_spb @ Feb 5 2010, 15:18)  Что-то у меня не выходит каменный цветок. avr-gcc.exe - Не удалось найти компонент "Приложению не удалось запуститься, поскольку libiconv-2.dll не был найден" Я нашёл эту либу в Инете, но получил "Точка входа в процедуру libiconv не найдена в библиотеке DLL libiconv-2.dll"
Вас не затруднит написать пару строк по инсталляции Ваших сборок на "чистый" компьютер. Спасибо! эффект такойже как и со сборкой для армов - забыл додожить библу. устанавливать ничего не нада - просто копируем в удобное место и прописываем путь в bin. если сразу не заработало то это скорее всего мой косяг. ibiconv-2.dll и вообще все дллки нужны моей сборки - я их собираю из свежих исходников, поэтому интерфейс функций может менятся, на что вы собственно и напоролись вот либы, в следущей сборке все должно быть уже без этого гемора.
Прикрепленные файлы
bin.7z ( 683.89 килобайт )
Кол-во скачиваний: 35
|
|
|
|
|
Feb 6 2010, 13:04
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Спасибо! Заработало. Код -mmcu=atmega1281 -I. -gdwarf-2 -DF_CPU=14745600UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -fno-split-wide-types -ffunction-sections -fdata-sections -fno-tree-scev-cprop -fno-move-loop-invariants -std=c99 Код gcc-4.3.2(WinAVR) 65362 bytes 30 sec gcc-4.3.3(WinAVR) 65066 bytes 35 sec gcc-4.5.0(Klen) 64552 bytes 58 sec А что так медленно?
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 6 2010, 19:15
|

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

|
Цитата(demiurg_spb @ Feb 6 2010, 16:04)  Спасибо! Заработало. Код -mmcu=atmega1281 -I. -gdwarf-2 -DF_CPU=14745600UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -fno-split-wide-types -ffunction-sections -fdata-sections -fno-tree-scev-cprop -fno-move-loop-invariants -std=c99 Код gcc-4.3.2(WinAVR) 65362 bytes 30 sec gcc-4.3.3(WinAVR) 65066 bytes 35 sec gcc-4.5.0(Klen) 64552 bytes 58 sec А что так медленно? а хрен его знает. видимо оптимизатор хрустит извилинами, он же от версии к версии все навороченнее и навороченнее. попробуте -O2. если время не изменится то есть еще педальки при сборке попробывать это подтюнить. Но сгенеренный код то хоть устраивает или я зря каллории трачу? В соседней теме накат на открытый софт пошел такой что.... даже не знаю, отобъемся или в асфаль закатают
|
|
|
|
|
Feb 6 2010, 21:18
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(klen @ Feb 6 2010, 22:15)  Но сгенеренный код то хоть устраивает или я зря каллории трачу? На первый взгляд вполне! Цитата В соседней теме накат на открытый софт пошел такой что.... даже не знаю, отобъемся или в асфаль закатают  Всё бы Вам накатить!:-)  НГ праздники прошли, а 8 марта и 23 февраля еще не наступили:-) Путь они пообсасывают эту тему - мне ничего не мешает пользоваться Gnu'тым ПО и получать, как минимум, моральное удовлетворение.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Feb 8 2010, 20:54
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(klen @ Feb 8 2010, 19:04)  архив www.klen.org/Files/DevTools/kgp_avr_20100208_i686-pc-mingw32.7z Спасибо! Вы видимо собрали с новой версией msys-1.0.dll? Некоторые тулзы из WinAVR/utils/bin (например gawk) стали вываливаться с матами на стек. Наверное надо свежий комплект утилей от msys качнуть.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|