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

 
 
> MSP-GCC 4. Кто-нибудь пробовал?, Случайно наткнулся:)
AHTOXA
сообщение Oct 6 2009, 11:27
Сообщение #1


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

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



http://mspgcc4.sourceforge.net/

Пишут, что
Цитата
GCC 4.x has several advantages over the old 3.2.3 branch. Here are the most important:

  • Better optimization. The generated code is typically 7%-10% smaller than code generated by MSPGCC-3.2.3
  • Better debug info support. The objdump utility displays the mixed assembly/code correctly.
  • Better C++ and inlining support. Unused local variables are automatically filtered out. Inline functions are implemented in a much more compact way.
  • Support for various handy features. For example, gcc 4.3 correctly handles the #pragma once statements.
  • Additionally, the MSPGCC4 port fixes the data-sections bug present in all original MSPGCC versions, allowing using -ffunction-sections and -fdata-sections switches.


Насчёт -ffunction-sections and -fdata-sections врут похоже, у меня и с ними и в текущем msp-gcc нет проблем.

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
MrYuran
сообщение May 21 2010, 13:06
Сообщение #2


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Нашёл предварительно, где копать:
stdlib.h:

Код
extern __inline__ int abs(int __x) __ATTR_CONST__;
extern __inline__ int abs(int __x)
{
    return (__x < 0)  ?  -__x  :  __x;
}
        
extern __inline__ long labs(long __x) __ATTR_CONST__;
extern __inline__ long labs(long __x)
{
    return (__x < 0)  ?  -__x  :  __x;
}


Ну и каким местом он влезает во все модули, где есть stdlib.h ?
Посмотрел, в старой версии этот файл один-в-один

Таки победил smile.gif
Пришлось extern __inline__ заменить на static __inline__
Цитата
Build project 9010U - OK.
text data bss dec hex filename
20191 72 742 21005 520d 9010U.elf
msp430-gcc (MSPGCC4_r4-20100210) 4.4.3
Copyright © 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.

Ну ничего себе "Better optimization. The generated code is typically 7%-10% smaller than code generated by MSPGCC-3.2.3"
- 20k против 12 от предыдущей версии!


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 21 2010, 13:22
Сообщение #3


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

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



Цитата(MrYuran @ May 21 2010, 19:06) *
Ну ничего себе "Better optimization. The generated code is typically 7%-10% smaller than code generated by MSPGCC-3.2.3"
- 20k против 12 от предыдущей версии!

Это общая тенденция - 4й GCC генерит больший код, чем 3й. Хотя 20 против 12 - это явный перебор.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 21 2010, 14:01
Сообщение #4


неотягощённый злом
******

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



Цитата(AHTOXA @ May 21 2010, 17:22) *
Это общая тенденция - 4й GCC генерит больший код, чем 3й. Хотя 20 против 12 - это явный перебор.
Неа. Всё же со всеми новыми способами оптимизации 4й GCC получается получше 3-его.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 24 2010, 09:37
Сообщение #5


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(demiurg_spb @ May 21 2010, 18:01) *
Неа. Всё же со всеми новыми способами оптимизации 4й GCC получается получше 3-его.

Прикрутил-таки сегодня "вхоле-програм" и "комбайн". -Os
Код
Build project 9010U - OK.
   text       data        bss        dec        hex    filename
   7518          4        772       8294       2066    9010U.elf
msp430-gcc (MSPGCC4_r4-20100210) 4.4.3
Copyright (C) 2010 Free Software Foundation, Inc.

08.gif

-O3 выдал internal compiler error

-O2:
Код
   text       data        bss        dec        hex    filename
   8876          4        772       9652       25b4    9010U.elf


-O1:
Код
   text       data        bss        dec        hex    filename
   8824          4        772       9600       2580    9010U.elf


Оптимизация выключена:
Код
   text       data        bss        dec        hex    filename
  12574         72       1118      13764       35c4    9010U.elf

Практически то же самое, что 3-я версия давала с -O3
Если это ещё на железке заработает, вывод однозначный. Брать!
По оптимизации вполне сравнимо с ИАРом.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 24 2010, 10:40
Сообщение #6


неотягощённый злом
******

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



Цитата(MrYuran @ May 24 2010, 13:37) *
По оптимизации вполне сравнимо с ИАРом.
Так и о чём:-)
При таком способе оптимизации очень важно грамотно использовать volatile - и там где раньше и без него могло проканать - теперь не проканает...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение May 24 2010, 13:50
Сообщение #7


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

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



Цитата(MrYuran @ May 24 2010, 15:37) *
По оптимизации вполне сравнимо с ИАРом.

Круто! Теперь будет занята четверть объёма флешаsmile.gif
Цитата(demiurg_spb @ May 24 2010, 16:40) *
При таком способе оптимизации очень важно грамотно использовать volatile - и там где раньше и без него могло проканать - теперь не проканает...

Кстати да, ждём повторного отчёта, после расстановки всех положенных volatile wink.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 25 2010, 05:43
Сообщение #8


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(AHTOXA @ May 24 2010, 17:50) *
Круто! Теперь будет занята четверть объёма флешаsmile.gif

Дело не в этом, просто всё должно быть красиво!
Ну и хочется знать хотя бы теоретический предел "сжатия".
К тому же, у меня задачи достаточно легковесные (измериловка, обработка, обмен с хостом), а вот к примеру, для автономного прибора с графическим экранчиком, кучей менюшек и даже встроенным блокнотом уже начинает играть рояль.
Причём, от оптимизации и потребление может зависеть (хотя, на фоне экранчика, жрущего как лошадь 3мА, это всё копейки...)
Или вот например, выпустили серию G2xx. Вот если бы добавили флеша хотя бы до 8кБ, то туда можно было бы упихать что-нибудь стоящее.

Попробовал вчера ещё один проект собрать, там что-то непонятное творит.
Такое ощущение, что вместо elf-а подсовывает неразлинкованный объектник.
Прикрепленный файл  1002TD.elf.lst.zip ( 32.52 килобайт ) Кол-во скачиваний: 80


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение May 25 2010, 09:24
Сообщение #9


неотягощённый злом
******

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



Цитата(MrYuran @ May 25 2010, 09:43) *
Такое ощущение, что вместо elf-а подсовывает неразлинкованный объектник.
Да ну... Откуда такие предположения? Вроде как при такой компиляции он объектные файлы вообще не создаёт.
У Вас в Makefile конечная цель elf или всё-таки ещё получаете hex или bin и что с ними?


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
MrYuran
сообщение May 25 2010, 09:40
Сообщение #10


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(demiurg_spb @ May 25 2010, 13:24) *
Да ну... Откуда такие предположения? Вроде как при такой компиляции он объектные файлы вообще не создаёт.
У Вас в Makefile конечная цель elf или всё-таки ещё получаете hex или bin и что с ними?

Предположения из листинга, полученного обждампом из эльфа.
Делаю так:
Код
$(NAME).elf : $(CSRC)
    @echo $^
    @$(CC) -c $(CFLAGS) -combine -fwhole-program $^ $(LDFLAGS) -o $@

Как уже писал, в предыдущем проекте всё собралось нормально.
И листинг нормальный.
CODE

Disassembly of section .text:

00001100 <__init_stack>:

1100: 31 40 00 0a mov #2560, r1 ;#0x0a00

00001104 <__low_level_init>:

1104: b2 40 80 5a mov #23168, &0x0120 ;#0x5a80
1108: 20 01

0000110a <__do_clear_bss>:
110a: 3f 40 e6 02 mov #742, r15 ;#0x02e6
110e: 0f 93 tst r15
1110: 04 24 jz $+10 ;abs 0x111a
1112: 1f 83 dec r15
1114: cf 43 48 02 mov.b #0, 584(r15);r3 As==00, 0x0248(r15)
1118: fc 23 jnz $-6 ;abs 0x1112

0000111a <__do_copy_data>:
111a: 3f 40 48 00 mov #72, r15 ;#0x0048
111e: 0f 93 tst r15
1120: 05 24 jz $+12 ;abs 0x112c
1122: 2f 83 decd r15
1124: 9f 4f 68 5a mov 23144(r15),512(r15);0x5a68(r15), 0x0200(r15)
1128: 00 02
112a: fb 23 jnz $-8 ;abs 0x1122

0000112c <__jump_to_main>:
112c: 30 40 54 22 br #0x2254

00001130 <__ctors_end>:
1130: 30 40 3e 12 br #0x123e


а вот "ненормальный":
CODE
Disassembly of section .text.GetRealTime.1824:

00000000 <GetRealTime.1824>:
0: 0b 12 push r11
2: 0b 4f mov r15, r11
4: 08 3c jmp $+18 ;abs 0x16
6: 1e 42 00 00 mov &0x0000,r14
a: 1f 42 00 00 mov &0x0000,r15
e: 8b 4e 00 00 mov r14, 0(r11) ;0x0000(r11)
12: 8b 4f 02 00 mov r15, 2(r11) ;0x0002(r11)
16: 1c 42 00 00 mov &0x0000,r12
1a: 1d 42 00 00 mov &0x0000,r13
1e: 3e 4b mov @r11+, r14
20: 3f 4b mov @r11+, r15
22: 2b 82 sub #4, r11 ;r2 As==10
24: 0c 9e cmp r14, r12
26: ef 23 jnz $-32 ;abs 0x6
28: 0d 9f cmp r15, r13
2a: ed 23 jnz $-36 ;abs 0x6
2c: 3b 41 pop r11
2e: 30 41 ret
Disassembly of section .text.Beep.1817:

00000000 <Beep.1817>:
0: 0b 12 push r11
2: 0a 12 push r10
4: 0b 4f mov r15, r11
6: 3f 40 00 00 mov #0, r15 ;#0x0000
a: b0 12 00 00 call #0x0000
e: 0c 4b mov r11, r12
10: 3a 40 05 00 mov #5, r10 ;#0x0005
14: b0 12 00 00 call #0x0000
18: 0d 43 clr r13
1a: 82 5c 00 00 add r12, &0x0000
1e: 82 6d 00 00 addc r13, &0x0000
22: e2 c3 31 00 bic.b #2, &0x0031 ;r3 As==10
26: 3a 41 pop r10
28: 3b 41 pop r11
2a: 30 41 ret


Если первый выглядит как нормальный бинарник, с конкретными абсолютными адресами, то второй - как нелинкованный выход компилятора.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AHTOXA   MSP-GCC 4. Кто-нибудь пробовал?   Oct 6 2009, 11:27
- - Ko4egap   Отличная новость! Завтра буду пробовать. Надею...   Oct 11 2009, 08:23
|- - mdmitry   Цитата(Ko4egap @ Oct 11 2009, 12:23) Отли...   Oct 11 2009, 19:02
- - MrYuran   Выкачал, стал запускать - пишет, мол, файл исполня...   Nov 1 2009, 13:32
|- - AHTOXA   Цитата(MrYuran @ Nov 1 2009, 18:32) Радуе...   Nov 1 2009, 21:27
|- - MrYuran   Цитата(AHTOXA @ Nov 2 2009, 00:27) Наскол...   Nov 2 2009, 06:07
|- - mdmitry   Цитата(MrYuran @ Nov 2 2009, 09:07) Кстат...   Nov 2 2009, 12:22
|- - MrYuran   Цитата(mdmitry @ Nov 2 2009, 15:22) У IAR...   Nov 2 2009, 12:39
|- - mdmitry   Цитата(MrYuran @ Nov 2 2009, 15:39) Ну та...   Nov 2 2009, 16:29
- - MrYuran   Таки распаковал... Йошкин кот! 265 МЕТРОВ...   Nov 6 2009, 10:14
|- - mdmitry   Цитата(MrYuran @ Nov 6 2009, 13:14) Кстат...   Nov 6 2009, 12:45
|- - Сергей Борщ   Цитата(MrYuran @ Nov 6 2009, 12:14) Кстат...   Nov 6 2009, 13:09
- - MrYuran   CODE#if !defined(__msp430_headers_usci_h__) #d...   Nov 6 2009, 12:49
|- - mdmitry   Цитата(MrYuran @ Nov 6 2009, 15:49) CODE#...   Nov 6 2009, 13:56
|- - Сергей Борщ   Цитата(mdmitry @ Nov 6 2009, 15:56) Для э...   Nov 6 2009, 15:10
|- - mdmitry   Цитата(Сергей Борщ @ Nov 6 2009, 18:10) Т...   Nov 6 2009, 15:46
|- - Сергей Борщ   Цитата(mdmitry @ Nov 6 2009, 17:46) Имеет...   Nov 6 2009, 16:45
|- - mdmitry   Цитата(Сергей Борщ @ Nov 6 2009, 19:45) Н...   Nov 6 2009, 17:25
|- - Сергей Борщ   Цитата(mdmitry @ Nov 6 2009, 19:25) Получ...   Nov 6 2009, 18:03
|- - mdmitry   Цитата(Сергей Борщ @ Nov 6 2009, 21:03) В...   Nov 6 2009, 21:25
|- - Сергей Борщ   Цитата(mdmitry @ Nov 6 2009, 23:25) msp43...   Nov 7 2009, 07:45
|- - mdmitry   Цитата(Сергей Борщ @ Nov 7 2009, 10:45) В...   Nov 7 2009, 14:08
|- - Сергей Борщ   Цитата(mdmitry @ Nov 7 2009, 16:08) Хочет...   Nov 7 2009, 18:33
- - MrYuran   Таки попробовал... Компилятор что-то компилит. А в...   May 21 2010, 11:41
|- - Сергей Борщ   Цитата(MrYuran @ May 21 2010, 15:48) Ну и...   May 21 2010, 13:14
||- - MrYuran   Цитата(Сергей Борщ @ May 21 2010, 17:14) ...   May 21 2010, 13:19
|- - demiurg_spb   Давайте посмотрим на всю стоку целиком. Вот как у ...   May 25 2010, 10:00
- - MrYuran   ЦитатаЗа ключики спасибо, буду играться. КодBuild ...   May 21 2010, 13:34
- - MrYuran   А как заставить make выводить весь поток полностью...   May 25 2010, 10:23
|- - AHTOXA   make -n ?   May 25 2010, 10:28
|- - demiurg_spb   Цитата(MrYuran @ May 25 2010, 14:23) А ка...   May 25 2010, 11:33
- - MrYuran   Цитатаd:\WORK\PROJECTS\MARK-1002T...   May 25 2010, 10:55
- - MrYuran   Короче, я понял. Он все секции мапит на 0x0000, в ...   May 25 2010, 12:06
- - MrYuran   Противоречивые какие-то чувства навевает... Поигра...   Jun 11 2010, 13:29
|- - demiurg_spb   Цитата(MrYuran @ Jun 11 2010, 17:29) если...   Jun 13 2010, 11:08
- - MrYuran   ААААААААААААААААААААААААААААААА!!!...   Jun 17 2010, 07:31
- - MrYuran   Вот кстати интересно: Кто структуры пакует - компи...   Jun 17 2010, 08:45
|- - demiurg_spb   Про упаковку всех структур: КодCFLAGS += -fpack-st...   Jun 17 2010, 09:25
|- - MrYuran   Цитата(demiurg_spb @ Jun 17 2010, 13:25) ...   Jun 17 2010, 09:31
|- - Сергей Борщ   Цитата(MrYuran @ Jun 17 2010, 12:31) Ура,...   Jun 17 2010, 12:34
|- - MrYuran   Цитата(Сергей Борщ @ Jun 17 2010, 16:34) ...   Jun 17 2010, 15:49
- - MrYuran   Перекомпилил старый ИАРовский прожект, который ран...   Jul 6 2010, 06:41
- - MrYuran   В последнее время проект реанимирован, произошло (...   Apr 5 2012, 06:16
- - MrYuran   Попробовал дополнительные ключики ЦитатаCFLAGS += ...   Apr 5 2012, 07:40
|- - AHTOXA   Это про какой mspgcc? Про просто mspgcc или про ms...   Apr 5 2012, 07:59
|- - MrYuran   Цитата(AHTOXA @ Apr 5 2012, 11:59) Это пр...   Apr 5 2012, 08:21
|- - AHTOXA   А, ну с этим мы уже немножко познакомились   Apr 5 2012, 08:32
|- - MrYuran   Цитата(AHTOXA @ Apr 5 2012, 12:32) А, ну ...   Apr 5 2012, 08:36
- - MrYuran   Попробовали крайнюю версию 4.6.2 - опять -combine ...   Apr 5 2012, 10:54
- - AHTOXA   Цитата(MrYuran @ Apr 5 2012, 14:36) Там ч...   Apr 5 2012, 13:02
|- - MrYuran   Цитата(AHTOXA @ Apr 5 2012, 17:02) Глюки ...   Apr 6 2012, 09:44
- - MrYuran   Сегодня обнаружил эпический глюк в этой версии. Вс...   May 24 2012, 09:01
|- - alx2   Цитата(MrYuran @ May 24 2012, 14:01) Сего...   May 25 2012, 03:25
|- - MrYuran   Цитата(alx2 @ May 25 2012, 07:25) Если ош...   May 25 2012, 05:04
|- - Сергей Борщ   Давно не работаю с MSP, но при беглом просмотре бр...   May 25 2012, 06:27
|- - alx2   Цитата(MrYuran @ May 25 2012, 10:04) При ...   May 28 2012, 05:07
- - MrYuran   Вот листинг старой версии (трэш и угар но работае...   May 25 2012, 08:05
- - Сергей Борщ   QUOTE (MrYuran @ May 25 2012, 11:05) Попу...   May 25 2012, 08:59


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 02:52
Рейтинг@Mail.ru


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