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

 
 
> 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 25 2012, 08:05
Сообщение #2


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

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



Вот листинг старой версии (трэш и угар sm.gif но работает)
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


Сразу раскрутился цикл sm.gif

Лично я никакого криминала не нашел.
Есть ещё последний вариант с тактированием флеш-контроллера.

Код
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 =)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 25 2012, 08:59
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (MrYuran @ May 25 2012, 11:05) *
Попутно ещё один небольшой глючок:
Пишите заявку в багтрекер. Питер довольно часто выпускает исправления.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
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   Нашёл предварительно, где копать: 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


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

 


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


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