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

 
 
> avr-gcc, версия 4.1.1 вместо 3.3.1, Что-то изменилось в компиляторе, перестал нормально работать objdump,
impatt
сообщение Oct 23 2006, 04:49
Сообщение #1


Частый гость
**

Группа: Validating
Сообщений: 169
Регистрация: 10-11-04
Из: Челябинск
Пользователь №: 1 088



Решил обновить компилятор (версия 3.3.1, как мне кажется, в одном месте начала глючить, решил, что новый, вероятно, поведёт себя более правильно). Собирал из исходников, работаю в Linux.
Компилятор версии 4.1.1 рожает код (не проверял ещё, насколько он лучше и всё такое), но objdump версий 2.15 и 2.17 перестал везде правильно диззассемблировать рождённые объектники (может, дизассемблирование не совсем правильный термин):
если компилятор версии 3.1.1 практически на каждую строку С-шного текста позволял objdump-у выводить ассемблерный эксивалент строки, то новый позволяет местами: где-то всё по-старому, а где-то идёт массив ассемблерного кода, а С-шные строки сбиваются в кучу или вообще куда-то исчезают.
Кто-нибудь знает ,что происходит и как лечить ?
Примеры ниже.
Заранее благодарю за советы.

****************************************
К примеру, такая С-функция:
void putFString(uint8_t *stringPtr){
uint8_t temp;
while ((temp = pgm_read_byte_near(stringPtr)) != 0){
stringPtr++;
pushToDebugBuffer(temp);
};
return;
}
компилируется и команда 'avr-objdump -h -S ./uart.o' выводит следующее:
0000022c <putFString>:
22c: cf 93 push r28
22e: df 93 push r29
230: ec 01 movw r28, r24
232: 03 c0 rjmp .+6 ; 0x23a <putFString+0xe>
234: 21 96 adiw r28, 0x01 ; 1
236: 0e 94 00 00 call 0 ; 0x0 <nextAddress>
23a: fe 01 movw r30, r28
23c: 84 91 lpm r24, Z
23e: 88 23 and r24, r24
240: c9 f7 brne .-14 ; 0x234 <putFString+0x8>
242: df 91 pop r29
244: cf 91 pop r28
246: 08 95 ret

В то время, как компилятор версии 3.3.1 компилировал в объектники и 'avr-objdump -h -S ./uart.o' выводил листинг так:

00000000 <putFString>:

uint8_t f_hexPrefix[] PROGMEM ="0x";
uint8_t f_CR[] PROGMEM ="\n";

void putFString(uint8_t *stringPtr){
0: cf 93 push r28
2: df 93 push r29
4: ec 01 movw r28, r24
uint8_t temp;
while ((temp = pgm_read_byte_near(stringPtr)) != 0){
6: fc 01 movw r30, r24
8: 84 91 lpm r24, Z
a: 88 23 and r24, r24
c: 39 f0 breq .+14 ; 0x1c <putFString+0x1c>
stringPtr++;
e: 21 96 adiw r28, 0x01 ; 1
pushToDebugBuffer(temp);
10: 0e 94 00 00 call 0 ; 0x0 <putFString>
14: fe 01 movw r30, r28
16: 84 91 lpm r24, Z
18: 88 23 and r24, r24
1a: c9 f7 brne .-14 ; 0xe <putFString+0xe>
};
return;
}
1c: df 91 pop r29
1e: cf 91 pop r28
20: 08 95 ret
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- impatt   avr-gcc, версия 4.1.1 вместо 3.3.1   Oct 23 2006, 04:49
- - Andy Great   Оптимизация в компиляторе поменялась, наверное?   Oct 23 2006, 08:22
|- - klen   Цитата(Andy Great @ Oct 23 2006, 12:22) О...   Oct 23 2006, 08:33
|- - impatt   Цитата(klen @ Oct 23 2006, 11:33) Цитата(...   Oct 23 2006, 08:40
|- - aesok   Цитата(impatt @ Oct 23 2006, 12:40) -gdwa...   Oct 23 2006, 09:16
||- - impatt   Цитата(aesok @ Oct 23 2006, 12:16) Цитата...   Oct 23 2006, 09:59
|||- - klen   Цитата..... и откуда выковыривать все волшебные оп...   Oct 23 2006, 10:05
|||- - impatt   Цитата(klen @ Oct 23 2006, 13:05) о-о-о--...   Oct 24 2006, 02:24
|||- - andrew_b   Цитата(impatt @ Oct 24 2006, 06:24) Но вс...   Oct 24 2006, 09:38
|||- - impatt   Цитата(andrew_b @ Oct 24 2006, 12:38) Цит...   Oct 24 2006, 10:22
|||- - aesok   Цитата(impatt @ Oct 24 2006, 14:22) Ошибк...   Oct 24 2006, 10:33
|||- - impatt   Цитата(aesok @ Oct 24 2006, 13:33) Отличн...   Oct 25 2006, 02:01
|||- - aesok   Цитата(impatt @ Oct 25 2006, 06:01) Цитат...   Oct 25 2006, 06:20
|||- - impatt   Цитата(aesok @ Oct 25 2006, 09:20) ...   Oct 25 2006, 06:53
|||- - aesok   Цитата(impatt @ Oct 25 2006, 10:53) Правд...   Oct 25 2006, 10:27
|||- - impatt   Цитата(aesok @ Oct 25 2006, 13:27) Пожалу...   Oct 26 2006, 05:21
|||- - aesok   Проверте версию "avr-objdump", возможно...   Oct 26 2006, 14:32
|||- - impatt   Цитата(aesok @ Oct 26 2006, 17:32) Провер...   Oct 27 2006, 04:39
|||- - klen   Цитата(impatt @ Oct 27 2006, 08:39) И ещё...   Oct 27 2006, 05:22
|||- - impatt   Цитата(klen @ Oct 27 2006, 08:22) Странне...   Oct 27 2006, 05:57
|||- - aesok   Пока короткий ответ. Увидел я про что вы говорит...   Oct 27 2006, 06:42
|||- - impatt   Цитата(aesok @ Oct 27 2006, 09:42) Увидел...   Oct 27 2006, 06:58
||- - impatt   Цитата(aesok @ Oct 23 2006, 12:16) Да и G...   Oct 24 2006, 02:44
||- - aesok   Цитата(impatt @ Oct 24 2006, 06:44) Цитат...   Oct 24 2006, 08:40
||- - impatt   Цитата(aesok @ Oct 24 2006, 11:40) Патчи ...   Oct 24 2006, 09:40
||- - aesok   Цитата(impatt @ Oct 24 2006, 13:40) Интер...   Oct 24 2006, 09:44
|- - klen   >> -gdwarf-2 стандартными binutils не поддер...   Oct 23 2006, 09:28
- - Andy Great   У, уже 4.2.0 есть... С 4.1.0 на 4.1.1 есть смысл п...   Oct 23 2006, 08:42
|- - impatt   Цитата(Andy Great @ Oct 23 2006, 11:42) У...   Oct 23 2006, 08:46
- - Andy Great   На сайте ГЦЦ почитать - так ровным счетом ничего. ...   Oct 23 2006, 09:06
- - Andy Great   ЦитатаПереходить на ноые версии ? это Вам решать, ...   Oct 23 2006, 10:33


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

 


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


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