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

фанат дивана
     
Группа: Свой
Сообщений: 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 нет проблем. Короче, если кто-то пробовал, поделитесь пожалуйста впечатлениями.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
 |
Ответов
|
May 21 2010, 13:06
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 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 ? Посмотрел, в старой версии этот файл один-в-один Таки победил  Пришлось 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 =)
|
|
|
|
|
May 24 2010, 09:37
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 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. -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 =)
|
|
|
|
|
May 24 2010, 10:40
|

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

|
Цитата(MrYuran @ May 24 2010, 13:37)  По оптимизации вполне сравнимо с ИАРом. Так и о чём:-) При таком способе оптимизации очень важно грамотно использовать volatile - и там где раньше и без него могло проканать - теперь не проканает...
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
May 25 2010, 05:43
|

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

|
Цитата(AHTOXA @ May 24 2010, 17:50)  Круто! Теперь будет занята четверть объёма флеша  Дело не в этом, просто всё должно быть красиво! Ну и хочется знать хотя бы теоретический предел "сжатия". К тому же, у меня задачи достаточно легковесные (измериловка, обработка, обмен с хостом), а вот к примеру, для автономного прибора с графическим экранчиком, кучей менюшек и даже встроенным блокнотом уже начинает играть рояль. Причём, от оптимизации и потребление может зависеть (хотя, на фоне экранчика, жрущего как лошадь 3мА, это всё копейки...) Или вот например, выпустили серию G2xx. Вот если бы добавили флеша хотя бы до 8кБ, то туда можно было бы упихать что-нибудь стоящее. Попробовал вчера ещё один проект собрать, там что-то непонятное творит. Такое ощущение, что вместо elf-а подсовывает неразлинкованный объектник.
1002TD.elf.lst.zip ( 32.52 килобайт )
Кол-во скачиваний: 80
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это Bill Gilbert =)
|
|
|
|
|
May 25 2010, 09:40
|

Беспросветный оптимист
     
Группа: Свой
Сообщений: 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 =)
|
|
|
|
Сообщений в этой теме
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
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|