|
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 25 2012, 08:05
|

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

|
Вот листинг старой версии (трэш и угар  но работает) CODE void SaveToFlash(unsigned int *DstPtr, unsigned int *SrcPtr, unsigned int NumOfWords) { 3ef0: 0b 12 push r11 3ef2: 0b 4f mov r15, r11 3ef4: 0c 4e mov r14, r12 D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:42 _DINT(); 3ef6: 32 c2 dint D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:43 FCTL3 = FWKEY; // Clear Lock bit 3ef8: b2 40 00 a5 mov #-23296,&0x012c ;#0xa500 3efc: 2c 01 D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:44 FCTL1 = FWKEY + WRT; // Set WRT bit for write operation 3efe: b2 40 40 a5 mov #-23232,&0x0128 ;#0xa540 3f02: 28 01 memcopy(): D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:22 //###############################################################
static inline void memcopy(unsigned int DstPtr[], unsigned int SrcPtr[], unsigned int NumOfWords) { while(NumOfWords--) 3f04: 3d 53 add #-1, r13 ;r3 As==11 3f06: 3d 93 cmp #-1, r13 ;r3 As==11 3f08: 0a 24 jz $+22 ;abs 0x3f1e D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:24 { DstPtr[NumOfWords] = SrcPtr[NumOfWords]; 3f0a: 0f 4d mov r13, r15 3f0c: 0f 5f rla r15 3f0e: 0e 4f mov r15, r14 3f10: 0e 5b add r11, r14 3f12: 0f 5c add r12, r15 3f14: ae 4f 00 00 mov @r15, 0(r14) ;0x0000(r14) 3f18: 3d 53 add #-1, r13 ;r3 As==11 3f1a: 3d 93 cmp #-1, r13 ;r3 As==11 3f1c: f6 23 jnz $-18 ;abs 0x3f0a SaveToFlash(): D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:46 { _DINT(); FCTL3 = FWKEY; // Clear Lock bit FCTL1 = FWKEY + WRT; // Set WRT bit for write operation memcopy(DstPtr, SrcPtr, NumOfWords); FCTL1 = FWKEY; // Clear WRT bit 3f1e: b2 40 00 a5 mov #-23296,&0x0128 ;#0xa500 3f22: 28 01 D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:47 FCTL3 = FWKEY + LOCK; // Reset LOCK bit 3f24: b2 40 10 a5 mov #-23280,&0x012c ;#0xa510 3f28: 2c 01 D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:48 _EINT(); 3f2a: 32 d2 eint D:\work\PROJECTS\..\1002DT_430_01_00/flash/flash.c:49 } 3f2c: 3b 41 pop r11 3f2e: 30 41 ret А вот новая. Код 000042d6 <SaveToFlash>: SaveToFlash(): 42d6: 0b 12 push r11 42d8: 0a 12 push r10 42da: 32 c2 dint 42dc: 03 43 nop 42de: b2 40 00 a5 mov #-23296,&0x012c;#0xa500 42e2: 2c 01 42e4: b2 40 40 a5 mov #-23232,&0x0128;#0xa540 42e8: 28 01 42ea: 0c 43 clr r12 42ec: 0b 4d mov r13, r11 42ee: 0b 5b rla r11 42f0: 0f 5b add r11, r15 42f2: 0e 5b add r11, r14 42f4: 07 3c jmp $+16 ;abs 0x4304 42f6: 3d 53 add #-1, r13;r3 As==11 42f8: 0b 4f mov r15, r11 42fa: 0b 5c add r12, r11 42fc: 0a 4e mov r14, r10 42fe: 0a 5c add r12, r10 4300: ab 4a 00 00 mov @r10, 0(r11);0x0000(r11) 4304: 2c 83 decd r12 4306: 0d 93 tst r13 4308: f6 23 jnz $-18 ;abs 0x42f6 430a: b2 40 00 a5 mov #-23296,&0x0128;#0xa500 430e: 28 01 4310: b2 40 10 a5 mov #-23280,&0x012c;#0xa510 4314: 2c 01 4316: 32 d2 eint 4318: 3a 41 pop r10 431a: 3b 41 pop r11 431c: 30 41 ret Немного переделал (заинлайнил erase и save внутри вызывающей функции). Чтобы все на виду. Такой вариант тоже не работал. Код 4330: 32 c2 dint 4332: 03 43 nop 4334: b2 40 02 a5 mov #-23294,&0x0128;#0xa502 4338: 28 01 433a: b2 40 00 a5 mov #-23296,&0x012c;#0xa500 433e: 2c 01 4340: 3f 40 00 10 mov #4096, r15;#0x1000 4344: b2 40 00 a5 mov #-23296,&0x0128;#0xa500 4348: 28 01 434a: b2 40 10 a5 mov #-23280,&0x012c;#0xa510 434e: 2c 01 4350: 32 d2 eint 4352: 32 c2 dint 4354: 03 43 nop 4356: b2 40 00 a5 mov #-23296,&0x012c;#0xa500 435a: 2c 01 435c: b2 40 40 a5 mov #-23232,&0x0128;#0xa540 4360: 28 01 4362: af 4b 00 00 mov @r11, 0(r15);0x0000(r15) 4366: af 4a 02 00 mov @r10, 2(r15);0x0002(r15) 436a: af 4c 04 00 mov @r12, 4(r15);0x0004(r15) 436e: af 4d 06 00 mov @r13, 6(r15);0x0006(r15) 4372: af 4e 08 00 mov @r14, 8(r15);0x0008(r15) 4376: b2 40 00 a5 mov #-23296,&0x0128;#0xa500 437a: 28 01 437c: b2 40 10 a5 mov #-23280,&0x012c;#0xa510 4380: 2c 01 4382: 32 d2 eint Сразу раскрутился цикл  Лично я никакого криминала не нашел. Есть ещё последний вариант с тактированием флеш-контроллера. Код BCSCTL2 = (DIVS)|(DIVM_0)|(SELM_0)|(SELS); // SMCLK=XT2CLK, DIVS=1, DIVM=1, MCLK=DCOCLC
117c: f2 40 0a 00 mov.b #10, &0x0058;#0x000a 1180: 58 00
FCTL2 = FWKEY | FSSEL_1 | FN3 | FN2 | FN1; // MCLK/14 for Flash Timing Generator 1182: b2 40 4e a5 mov #-23218,&0x012a;#0xa54e 1186: 2a 01 Нет, все совпадает... Чудеса, однако. Попутно ещё один небольшой глючок: Цитата msp430-objdump -dStl .\exe\1002TD_430_01_00.elf > .\exe\1002TD_430_01_00.lst BFD: Dwarf Error: mangled line number section. BFD: Dwarf Error: mangled line number section. BFD: Dwarf Error: mangled line number section. BFD: Dwarf Error: mangled line number section. ... Отсюда и отсутствие исходного текста в новых листингах
--------------------
Программирование делится на системное и бессистемное. ©Моё :) — а для кого-то БГ — это 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 Нашёл предварительно, где копать:
stdlib.h:
Кодex... May 21 2010, 13:06 Сергей Борщ Цитата(MrYuran @ May 21 2010, 15:48) Ну и... May 21 2010, 13:14  MrYuran Цитата(Сергей Борщ @ May 21 2010, 17:14) ... May 21 2010, 13:19 AHTOXA Цитата(MrYuran @ May 21 2010, 19:06) Ну н... May 21 2010, 13:22  demiurg_spb Цитата(AHTOXA @ May 21 2010, 17:22) Это о... May 21 2010, 14:01   MrYuran Цитата(demiurg_spb @ May 21 2010, 18:01) ... May 24 2010, 09:37    demiurg_spb Цитата(MrYuran @ May 24 2010, 13:37) По о... May 24 2010, 10:40     AHTOXA Цитата(MrYuran @ May 24 2010, 15:37) По о... May 24 2010, 13:50      MrYuran Цитата(AHTOXA @ May 24 2010, 17:50) Круто... May 25 2010, 05:43       demiurg_spb Цитата(MrYuran @ May 25 2010, 09:43) Тако... May 25 2010, 09:24        MrYuran Цитата(demiurg_spb @ May 25 2010, 13:24) ... May 25 2010, 09:40         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
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|