|
|
  |
WinAVR-20080610, делимся впечатлениями |
|
|
|
Jul 18 2008, 10:53
|
Знающий
   
Группа: Участник
Сообщений: 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...) Анатолий.
|
|
|
|
|
Jul 18 2008, 11:56
|

Профессионал
    
Группа: Участник
Сообщений: 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 весьма неудачно сделана, все разбросано по каким-то закоулкам.
|
|
|
|
|
Jul 18 2008, 12:27
|
Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
Jul 20 2008, 20:21
|
Знающий
   
Группа: Участник
Сообщений: 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
|
|
|
|
|
Jul 30 2008, 10:31
|
Участник

Группа: Участник
Сообщений: 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 только вот почему. Люди добрые помогите обойти проблему.
|
|
|
|
|
Jul 30 2008, 18:16
|
Участник

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

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

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

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

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

|
Цитата(haker_fox @ Jul 31 2008, 09:48)  Наверно студия при установки смотрит, установлен ли WinAVR, и если да - то она готова для работы с ним. В противном случае начинаются проблемы. Если сама не нешла, то достаточно прописать в плагине пути до make и gcc
|
|
|
|
|
Jul 31 2008, 14:09
|
Группа: Новичок
Сообщений: 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 Удачи.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|