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

 
 
> Собрал свежий GCC, bu2.17 avr-gcc4.2.0-20061121 avr-libc-1.4.5
klen
сообщение Dec 4 2006, 18:16
Сообщение #1


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Собрал новые сборки GCC для ARM/AVR, кому интересно качайте пробуйте, сообщайте о глюках.
Сборка для AVR протестина мной на текущем проекте, все пока работает.
http://www.klen.org/Projects/Embeded-gnu-t...last_build.html
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
klen
сообщение Dec 5 2006, 11:28
Сообщение #2


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



2_singlskv
Кусочек С кода приведите который приводитк к такой генерации, я посмотрю че происходит, очень интересно.

2_SysRq
smile.gif я сам решаю эту проблему так
указанием путя с помощю опции -I для gcc
или прописыванием PATH=$(PATH);aaa/bbb/cccc/rootdir/local/avr/include
тогда начинает работать.
А вы относительный путь сохранили от local/bin/avr-gcc до local/avr/include?
Я как раз и работаю над тем чтоб небыло таких проблем при установке пакета в любое место.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 5 2006, 11:49
Сообщение #3


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(klen @ Dec 5 2006, 11:28) *
2_singlskv
Кусочек С кода приведите который приводитк к такой генерации, я посмотрю че происходит, очень интересно.


Код
BYTE PIN_[2]={
    (BYTE)(&PINB),
    (BYTE)(&PIND)
  };

  tmp1= *(volatile BYTE *)((WORD)PIN_[0]);

результат компиляции
Код
160:        tmp1= *(volatile BYTE *)((WORD)PIN_[0]);
+0000020A:   91800100    LDS     R24,0x0100       Load direct from data space
+0000020C:   2FE8        MOV     R30,R24          Copy register
+0000020D:   27FF        CLR     R31              Clear Register
+0000020E:   8180        LDD     R24,Z+0          Load indirect with displacement
Go to the top of the page
 
+Quote Post
klen
сообщение Dec 5 2006, 12:01
Сообщение #4


бессмертным стать можно тремя способами
*****

Группа: Свой
Сообщений: 1 405
Регистрация: 9-05-06
Из: Москва
Пользователь №: 16 912



Тупо всунул и закомпилял:
Код
uint8_t PIN_[2]={
                  (uint8_t)(&PINB),
                  (uint8_t)(&PIND)
                };

volatile uint8_t tmp1= *(volatile uint8_t *)((uint16_t)PIN_[0]);
  26:    83 b1           in    r24, 0x03; 3
  28:    89 83           std    Y+1, r24; 0x01


Но сам код странный, напимер &PINB - ведь PINB есть константа типа адресс, взять от нее еще раз адрес это че получится?. Или я чето не догнал?
Go to the top of the page
 
+Quote Post
singlskv
сообщение Dec 5 2006, 15:17
Сообщение #5


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(klen @ Dec 5 2006, 12:01) *
Тупо всунул и закомпилял:
Код
uint8_t PIN_[2]={
                  (uint8_t)(&PINB),
                  (uint8_t)(&PIND)
                };

volatile uint8_t tmp1= *(volatile uint8_t *)((uint16_t)PIN_[0]);
  26:    83 b1           in    r24, 0x03; 3
  28:    89 83           std    Y+1, r24; 0x01

А как он у Вас закомпелит вот такой код ?
Код
uint8_t PIN_[2]={
                  (uint8_t)(&PINB),
                  (uint8_t)(&PIND)
                };

uint8_t tmp1= *(volatile uint8_t *)((uint16_t)PIN_[0]);
PIN_[0]=(uint8_t)(&PIND);
uint8_t tmp2= *(volatile uint8_t *)((uint16_t)PIN_[0]);
PIN_[0]=(uint8_t)(&PING);
uint8_t tmp3= *(volatile uint8_t *)((uint16_t)PIN_[0]);
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 11th August 2025 - 09:16
Рейтинг@Mail.ru


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