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

 
 
> avr-gcc Ubuntu 8.10, будет ли работать?
alex1979
сообщение Jun 5 2009, 06:14
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 23-11-07
Из: Украина, Волынь
Пользователь №: 32 613



Собрал avr-gcc под Ubuntu.
binutils-2.29.51
gcc-4.3.2
avr-libc-1.6.6
применил патчи от WinAvr-20090313.

Собрал проект на линуксе и есть одно небольшое отличие, вопрос не смертельное ли оно unsure.gif

дисассемблер поекта на линуксе:
Код
.....
00000098 <__do_copy_data>:
      98:    13 e0           ldi    r17, 0x03; 3
      9a:    a0 e0           ldi    r26, 0x00; 0
      9c:    b1 e0           ldi    r27, 0x01; 1
      9e:    e0 e8           ldi    r30, 0x80; 128
      a0:    f1 e3           ldi    r31, 0x31; 49
      a2:    00 e0           ldi    r16, 0x00; 0
      a4:    0b bf           out    0x3b, r16; 59
      a6:    02 c0           rjmp    .+4     ; 0xac <__do_copy_data+0x14>
      a8:    07 90           elpm    r0, Z+
      aa:    0d 92           st    X+, r0
      ac:    a6 32           cpi    r26, 0x26; 38
      ae:    b1 07           cpc    r27, r17
      b0:    d9 f7           brne    .-10    ; 0xa8 <__do_copy_data+0x10>

      000000b2 <__do_clear_bss>:
.....


и на винде:
Код
....
00000098 <__do_copy_data>:
      98:    13 e0           ldi    r17, 0x03; 3
      9a:    a0 e0           ldi    r26, 0x00; 0
      9c:    b1 e0           ldi    r27, 0x01; 1
      9e:    ee e1           ldi    r30, 0x1E; 30
      a0:    f2 e3           ldi    r31, 0x32; 50
      a2:    00 e0           ldi    r16, 0x00; 0
      a4:    0b bf           out    0x3b, r16; 59
      a6:    02 c0           rjmp    .+4     ; 0xac <__do_copy_data+0x14>
      a8:    07 90           elpm    r0, Z+
      aa:    0d 92           st    X+, r0
      ac:    a8 34           cpi    r26, 0x48; 72
      ae:    b1 07           cpc    r27, r17
      b0:    d9 f7           brne    .-10    ; 0xa8 <__do_copy_data+0x10>
      b2:    1b be           out    0x3b, r1; 59

000000b4 <__do_clear_bss>:
....


разница в одну команду out 0x3b, r1 ; 59


проект компилировался для ATmega128

Сообщение отредактировал alex1979 - Jun 5 2009, 06:28
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Legotron
сообщение Jul 1 2009, 07:35
Сообщение #2


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(alex1979 @ Jun 5 2009, 10:14) *
Собрал проект на линуксе и есть одно небольшое отличие, вопрос не смертельное ли оно unsure.gif

2All: Уважаемые, не могли бы вы объяснить, в чем суть различий??
Почему на ATxmega работать не будет??
Очень интересно понять смысл вопроса, не выкидывать же многотысячные строки дизасемблера в форум для принятия решения, будет работать на ATxmega или нет..
Go to the top of the page
 
+Quote Post
aesok
сообщение Jul 1 2009, 19:31
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(Legotron @ Jul 1 2009, 11:35) *
2All: Уважаемые, не могли бы вы объяснить, в чем суть различий??
Почему на ATxmega работать не будет??


out 0x3b, r1 - переводиться как 'out RAMPZ, __zero_reg__' или друними словами обнулить регистр RAMPZ.

ATmegа контролеры имеют до 64КВ RAM, регистр RAMPZ используется как старший байт регистра Z только для адресации более 64 КВ FLASH и в програме всегда уснанавливается перед исполнением инструкций ELPM и SPM. Его состояния не оказывает никакого влияния на код генерируемый avr-gcc.

ATxmega контролеры могут адресовать до 16 MB RAM и регистр RAMPZ ипользуеться как старший байт регистра Z как для доступа к FLASH инструкциями ELPM и SPM так и для доступа к RAM инструкциями LD и ST. avr-gcc не знает о существовании регистра RAMPZ а также о RAMPX, RAMPY и RAMPD и никогда не устанавливает их перед инструкциями LD и ST. Для коректной работы кода генерируемого avr-gcc неодходимо чтобы эти регистры содержали нули, поэтому RAMPZ и должен быть обнулен в стартап коде после использования.

Анатолий.
Go to the top of the page
 
+Quote Post



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

 


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


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