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

 
 
7 страниц V  « < 2 3 4 5 6 > »   
Reply to this topicStart new topic
> WinAVR-20080610, делимся впечатлениями
aesok
сообщение Jul 18 2008, 10:53
Сообщение #46


Знающий
****

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



Цитата(777777 @ Jul 18 2008, 11:02) *
Глупые строки вида
lds r24, 0x013A
lds r25, 0x013B
mov r18, r24
mov r19, r25
- остались.


Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах.

Цитата(777777 @ Jul 18 2008, 11:02) *
В чем отличие и кому нужны 32 байта - так и не понял.


На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...)

Анатолий.
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 18 2008, 11:56
Сообщение #47


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(aesok @ Jul 18 2008, 14:53) *
Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах.

А поточнее можно ссылочку? Может и правда стоит попробовать... Когда-то давно с энтузиазмом дорабатывал компилятор Small-C для процессора 8080, он у меня стал полностью соответствовать стандарту, не понимал только элипсисы (...) Там даже оптимизатор был неслабый. Прада, он был pure-C...
Цитата(aesok @ Jul 18 2008, 14:53) *
На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...)

param inline-call-cost есть, а OS_main - это что? Надо сказать, документация у WinAVR весьма неудачно сделана, все разбросано по каким-то закоулкам.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 18 2008, 12:03
Сообщение #48


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

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



Цитата(777777 @ Jul 18 2008, 14:56) *
Надо сказать, документация у WinAVR весьма неудачно сделана, все разбросано по каким-то закоулкам.

А мне наоборот, очень понравилась, хотя бы тем, что она вообще есть


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
kaf
сообщение Jul 18 2008, 12:27
Сообщение #49


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 11-07-06
Из: Челябинск
Пользователь №: 18 726



Цитата(MrYuran @ Jul 18 2008, 18:03) *
А мне наоборот, очень понравилась, хотя бы тем, что она вообще есть

c WinAvr идет документация по avr-libc, а остальную документацию нужно искать, как сказали выше, на http://gcc.gnu.org и на http://sources.redhat.com/binutils/

Сообщение отредактировал kaf - Jul 18 2008, 12:28
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 18 2008, 12:54
Сообщение #50


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

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



Ну уж не знаю, что тогда считать документацией...
Щас специально глянул - в папке WinAVR лежит папочка DOC (32 метра) - это чё - не документация?
Прикрепленное изображение

ну вы ребята зажрались...


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
aesok
сообщение Jul 20 2008, 20:21
Сообщение #51


Знающий
****

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



Цитата(777777 @ Jul 18 2008, 15:56) *
а OS_main - это что?


Цитата
Код
This patch add "OS_main" and 'OS_task' attributes in GCC .... Function with
"OS_main" and 'OS_task' attributes do not save any "call-saved" registers.

1. "OS_main" attribute  used when there IS guarantee that interrupts are
disabled at that time when function is called. For example "main" function in
avr-libc. If this function has local variables that a prologue will look so:
  in r28, 0x3d; 61
  in r29, 0x3e; 62
  sbiw r28, 0x08; 8
  out 0x3e, r29; 62
  out 0x3d, r28; 61

No save/clear/restore "I" flag.

2. "OS_task" attribute  used when there is NO guarantee that interrupts are
disabled at that time when function is called. For example task functions
multi-threading operating systems. In this case save/clear/restore "I" flag is
need for changing SP register. Prologue (if this function has local variables)
will look so:

  in r28, 0x3d; 61
  in r29, 0x3e; 62
  sbiw r28, 0x08; 8
  in r0, 0x3f; 63
  cli
  out 0x3e, r29; 62
  out 0x3f, r0; 63
  out 0x3d, r28; 61
Go to the top of the page
 
+Quote Post
Антон Малыгин
сообщение Jul 30 2008, 10:31
Сообщение #52


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 11-05-07
Из: Коряжма
Пользователь №: 27 672



У меня вот такой вопрос. поставил тут сегодня AVR Studio v4.14 build 589 затем установил WinAVR-20071221.
Далее создаю новый проект в AVR GCC на микроконтроллере ATmega16.
Далее нажимаю компиляцию и приехали называется.
При компиляции выдаётся два сообщения

Код
Build started 30.7.2008 at 14:30:11
make: Makefile: No such file or directory
make: *** No rule to make target `Makefile'.  Stop.
Build failed with 2 errors and 0 warnings...


Я как понимаю не может создать Mafefile только вот почему.
Люди добрые помогите обойти проблему.
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jul 30 2008, 13:26
Сообщение #53


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Мало информации: как создаете проект, какими средствами? Если без средств студии, то одни проблемы (рабочая директория и директория запуска make, корректность самого makefile и др). Со студией не работал, она сама что-то плодит (не понравилось), надо разбираться что за файлы наплодила и какие в них настройки.
Возможно, студиа не знает об установленном winavr.
Сначало надо установить winavr, а затем студию. Она сама подцепит winavr.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 30 2008, 13:32
Сообщение #54


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

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



Цитата(mdmitry @ Jul 30 2008, 17:26) *
Сначало надо установить winavr, а затем студию. Она сама подцепит winavr.

что-то сомневаюсь. Надёжнее ручками подцепить. Да и собственно, цеплять-то особо нечего. Разве что указать пути к системным хедерам и библиотекам. Скорее всего надо разбираться с настройками проекта в студии. Здесь помочь ничем не могу.


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
Антон Малыгин
сообщение Jul 30 2008, 18:16
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 39
Регистрация: 11-05-07
Из: Коряжма
Пользователь №: 27 672



Самое интересное что дома попробывал сейчас немного по другому.
Установил в начале WinAVR-20080610 затем устанвил AVR Studio 4.14 build589
и всё заработало...хм интресно...завтра на работе попробую такую же комбинцию. smile.gif

В общем тут немного поэксперементировал и пришёл к выводу.
Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ
Например (C:\Documents and Settings\Admin\Мои документы\test)
Иначе Makefail не создастся...Для его создание необходимо исключить русские символы в пути до проекта....

Сообщение отредактировал Антон Малыгин - Jul 30 2008, 18:30
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jul 31 2008, 03:48
Сообщение #56


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



Цитата(Антон Малыгин @ Jul 31 2008, 03:16) *
Самое интересное что дома попробывал сейчас немного по другому.
Установил в начале WinAVR-20080610 затем устанвил AVR Studio 4.14 build589
и всё заработало...хм интресно...завтра на работе попробую такую же комбинцию. smile.gif

Наверно студия при установки смотрит, установлен ли WinAVR, и если да - то она готова для работы с ним. В противном случае начинаются проблемы.
Цитата(Антон Малыгин @ Jul 31 2008, 03:16) *
В общем тут немного поэксперементировал и пришёл к выводу.
Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ
Например (C:\Documents and Settings\Admin\Мои документы\test)
Иначе Makefail не создастся...Для его создание необходимо исключить русские символы в пути до проекта....

Это верно. При разработке программ под что угодно, в путях не должно быть русских имен. Я даже имена каталогов и файлов стараюсь не делать длинее 8 символов. Хотя здесь проблем не возникало никогда.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post
kaf
сообщение Jul 31 2008, 07:22
Сообщение #57


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 11-07-06
Из: Челябинск
Пользователь №: 18 726



Цитата(haker_fox @ Jul 31 2008, 09:48) *
Наверно студия при установки смотрит, установлен ли WinAVR, и если да - то она готова для работы с ним. В противном случае начинаются проблемы.

Если сама не нешла, то достаточно прописать в плагине пути до make и gcc
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jul 31 2008, 07:41
Сообщение #58


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Антон Малыгин @ Jul 30 2008, 21:16) *
Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ


Я даже больше скажу : если Вы "случайно" сделали лог. диск командой типа SUBST z: c:\design, и расположили там проект, то вся веселая АВР-студия висла (наверное и сейчас виснет) намертво, и развесить ее можно было только удалив диск z:
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jul 31 2008, 11:26
Сообщение #59


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



2 MrYuran и haker_fox
как я понимаю, студия именно смотрит наличие установленного winavr и цепляется к нему. Полностью согласен,что русские буквы и пробелы в именах путь к потенциальным (и не только) несовместимости и ошибкам.
Надежнее конечно руками все прописать, а еще надежнее самому сделать makefile. Я сам студио не использую, не нравится, когда за меня makefile автоматически делается и из кусков к тому же. У меня eclipse+winavr. Для симулирования иногда студия запускается на проект, собранный make.


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
LEAS
сообщение Jul 31 2008, 14:09
Сообщение #60





Группа: Новичок
Сообщений: 5
Регистрация: 29-06-08
Из: Город Невест
Пользователь №: 38 619



Сам я пользуюсь WinAVR+AVRStudio+иногда Proteus. Но уже посматриваю на что-нибудь, где все в одном флаконе. И является именно IDE, а не набором разных программ, написанных разными авторами. Если кто-нибудь бывал на собрании кооператива(или смотрел фильм "Гараж"), то мы понимаем друг-друга. Пусть даже прийдется искать к этому вечно "хрюки". У меня установлен WinAVR-20060421, и не потому что я не в курсе выхода новых версий-просто я привык к "особенностям" этой. Плюс в более новых версиях в Протеусе не видно переменных, расположенных в Static RAM с выводом некорректного расположения адреса этой памяти. На это накладываются чудеса версий AVRStudio(в каком то сочетании WinAVR и AVRStudio попытка отладки Си кода в студии приводила к 100% вылету последней). Новая версия студии прекрасно отлаживает extcoff и виснет на ELF . RM.exe в указанной мною версии 20060421 (и еще какаято утилита) находятся в другой директории, какие-то файлы дублируются. Затолкав в протеус не вижу фрагмента кода, хотя в LSS файле все есть. Все это отнимает время. Человек должен ездить на машине, а не копаться в ней,это только у нас принято. Не скажу, что это совсем плохо, дает знания, но если для написания программы нужно начать с ремонта блока питания компа-это как-то не совсем. Я не против данного продукта, тем более в бесплатности есть большой плюс для написания коммерческих вещей.
Для Антон Малыгин: возможно у вас что-то с путями доступа к файлам проекта или несоответствие названий. Попробуйте создать makefile вручную или с помощью утилиты из комплекта WinAVR. В студии определите Use external makefile, при составлении в ручную не забудьте все файлы проекта с расш "С" указать(вариант, созданный утилитой makefile):
# List C source files here. (C dependencies are automatically generated.)
SRC = $(TARGET).c C1820Timer.c WireDriver.c
Удачи.
Go to the top of the page
 
+Quote Post

7 страниц V  « < 2 3 4 5 6 > » 
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


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


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