aesok 0 18 июля, 2008 Опубликовано 18 июля, 2008 · Жалоба Глупые строки вида lds r24, 0x013A lds r25, 0x013B mov r18, r24 mov r19, r25 - остались. Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах. В чем отличие и кому нужны 32 байта - так и не понял. На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...) Анатолий. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
777777 0 18 июля, 2008 Опубликовано 18 июля, 2008 · Жалоба Исходники компилятора находятся здесь: http://gcc.gnu.org/. Сделать компилятор менее глупым в ваших силах. А поточнее можно ссылочку? Может и правда стоит попробовать... Когда-то давно с энтузиазмом дорабатывал компилятор Small-C для процессора 8080, он у меня стал полностью соответствовать стандарту, не понимал только элипсисы (...) Там даже оптимизатор был неслабый. Прада, он был pure-C... На этом форуме было несколько рекомендаций как заставить avr-gcc 4.3 гененрировать более компактный код, поищите. (--param inline-call-cost, атрибут OS_main...) param inline-call-cost есть, а OS_main - это что? Надо сказать, документация у WinAVR весьма неудачно сделана, все разбросано по каким-то закоулкам. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 18 июля, 2008 Опубликовано 18 июля, 2008 · Жалоба Надо сказать, документация у WinAVR весьма неудачно сделана, все разбросано по каким-то закоулкам. А мне наоборот, очень понравилась, хотя бы тем, что она вообще есть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kaf 0 18 июля, 2008 Опубликовано 18 июля, 2008 (изменено) · Жалоба А мне наоборот, очень понравилась, хотя бы тем, что она вообще есть c WinAvr идет документация по avr-libc, а остальную документацию нужно искать, как сказали выше, на http://gcc.gnu.org и на http://sources.redhat.com/binutils/ Изменено 18 июля, 2008 пользователем kaf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 18 июля, 2008 Опубликовано 18 июля, 2008 · Жалоба Ну уж не знаю, что тогда считать документацией... Щас специально глянул - в папке WinAVR лежит папочка DOC (32 метра) - это чё - не документация? ну вы ребята зажрались... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aesok 0 20 июля, 2008 Опубликовано 20 июля, 2008 · Жалоба а 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 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton_Malygin 0 30 июля, 2008 Опубликовано 30 июля, 2008 · Жалоба У меня вот такой вопрос. поставил тут сегодня 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 только вот почему. Люди добрые помогите обойти проблему. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 30 июля, 2008 Опубликовано 30 июля, 2008 · Жалоба Мало информации: как создаете проект, какими средствами? Если без средств студии, то одни проблемы (рабочая директория и директория запуска make, корректность самого makefile и др). Со студией не работал, она сама что-то плодит (не понравилось), надо разбираться что за файлы наплодила и какие в них настройки. Возможно, студиа не знает об установленном winavr. Сначало надо установить winavr, а затем студию. Она сама подцепит winavr. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 16 30 июля, 2008 Опубликовано 30 июля, 2008 · Жалоба Сначало надо установить winavr, а затем студию. Она сама подцепит winavr. что-то сомневаюсь. Надёжнее ручками подцепить. Да и собственно, цеплять-то особо нечего. Разве что указать пути к системным хедерам и библиотекам. Скорее всего надо разбираться с настройками проекта в студии. Здесь помочь ничем не могу. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Anton_Malygin 0 30 июля, 2008 Опубликовано 30 июля, 2008 (изменено) · Жалоба Самое интересное что дома попробывал сейчас немного по другому. Установил в начале WinAVR-20080610 затем устанвил AVR Studio 4.14 build589 и всё заработало...хм интресно...завтра на работе попробую такую же комбинцию. :) В общем тут немного поэксперементировал и пришёл к выводу. Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ Например (C:\Documents and Settings\Admin\Мои документы\test) Иначе Makefail не создастся...Для его создание необходимо исключить русские символы в пути до проекта.... Изменено 30 июля, 2008 пользователем Антон Малыгин Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Самое интересное что дома попробывал сейчас немного по другому. Установил в начале WinAVR-20080610 затем устанвил AVR Studio 4.14 build589 и всё заработало...хм интресно...завтра на работе попробую такую же комбинцию. :) Наверно студия при установки смотрит, установлен ли WinAVR, и если да - то она готова для работы с ним. В противном случае начинаются проблемы. В общем тут немного поэксперементировал и пришёл к выводу. Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ Например (C:\Documents and Settings\Admin\Мои документы\test) Иначе Makefail не создастся...Для его создание необходимо исключить русские символы в пути до проекта.... Это верно. При разработке программ под что угодно, в путях не должно быть русских имен. Я даже имена каталогов и файлов стараюсь не делать длинее 8 символов. Хотя здесь проблем не возникало никогда. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
kaf 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Наверно студия при установки смотрит, установлен ли WinAVR, и если да - то она готова для работы с ним. В противном случае начинаются проблемы. Если сама не нешла, то достаточно прописать в плагине пути до make и gcc Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Если создаёшь проект то в пути до проекта не ДОЛЖНО БЫТЬ РУССКИХ БУКВ Я даже больше скажу : если Вы "случайно" сделали лог. диск командой типа SUBST z: c:\design, и расположили там проект, то вся веселая АВР-студия висла (наверное и сейчас виснет) намертво, и развесить ее можно было только удалив диск z: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mdmitry 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба 2 MrYuran и haker_fox как я понимаю, студия именно смотрит наличие установленного winavr и цепляется к нему. Полностью согласен,что русские буквы и пробелы в именах путь к потенциальным (и не только) несовместимости и ошибкам. Надежнее конечно руками все прописать, а еще надежнее самому сделать makefile. Я сам студио не использую, не нравится, когда за меня makefile автоматически делается и из кусков к тому же. У меня eclipse+winavr. Для симулирования иногда студия запускается на проект, собранный make. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
LEAS 0 31 июля, 2008 Опубликовано 31 июля, 2008 · Жалоба Сам я пользуюсь 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 Удачи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться