WINAVR

Do you have a question? Post it now! No Registration Necessary

Threaded View
                              Hi All !

Вот, недавно достал сабж... По readme понял что это бесплантый компилятор для
AVR пееренесенный из Linux-а.
А сталкивался кто нибуть с сабжем? Как при его помощи превратить исходный файл
на СИ(++) в hex-файл? А может кто знает где достать подробную доку по последней
операции и по написанию программ на С(++) под AVR? А на русском?

 ▌·▐·│▌·│··│                          Понедельник, Сентябрь 05 2005 23:06
 2·461▌32·23                        Всего хорошего. Alexander.


WINAVR
Hello, Alexander!

Понедельник Сентябрь 05 2005 22:05, Alexander Panasovsky wrote to All:
 AP> компилятор для AVR пееренесенный из Linux-а. А сталкивался кто нибуть
 AP> с сабжем? Как при его помощи превратить исходный файл на СИ(++) в
 AP> hex-файл? А может кто знает где достать подробную доку по
там же папочка с семлами есть (по крайней мере в 2003 была). Посмотри в ней.
Там все сделано через makefile
 AP> последней операции и по написанию программ на С(++) под AVR?

Best regards и все такое... Sergey.             [Death/Black/Power Metal]

WINAVR
Hello Alexander.

05 Сен 05 22:05, you wrote to all:
 AP> Вот, недавно достал сабж... По readme понял что это бесплантый
 AP> компилятор для AVR пееренесенный из Linux-а. А сталкивался кто нибуть
Hу, не то чтобы именно перенесённый и именно из Линуха, ну да ладно, это уже
спор философский.
 AP> с сабжем? Как при его помощи превратить исходный файл на СИ(++) в
 AP> hex-файл? А может кто знает где достать подробную доку по
Где-то там должен быть шаблон Makefile (ищи либо makefile.templ, либо просто
makefile). Вписываешь в этот шаблон данные, относяшиеся к твоему проекту (имена
входных и выходных файлов, опции компиляции), кладёшь полученный мэйкфайл в
каталог с проектом и говоришь make. Hа выходе получаешь hex и eep (если у тебя
используется EEPROM, и её надо зашивать вместе с кодом). Местоположение шаблона
мэйкфайла и некоторые опции в нём зависят от версии сабжа.
 AP> последней операции и по написанию программ на С(++) под AVR? А на
 AP> русском?
Дока должна входить в комплект поставки сабжа, но она на английском.

Если что-спрашивай, отвечу.

Ivan


Re: WINAVR
Hемедленно нажми на RESET, Alexander Panasovsky!


 AP> Вот, недавно достал сабж... По readme понял что это бесплантый компилятор
 AP> для
 AP> AVR пееренесенный из Linux-а.

  Слово linux нужно забыть навсегда. Оно имеет отношение лишь к глубоко
внутренним потрохам некоторых ОС и знать об этом вовсе не обязательно.

  *GCC и linux никак не связаны между собой.*  Hе считая, что linux
собирается с помощью GCC.

 AP> А сталкивался кто нибуть с сабжем? Как при его помощи превратить исходный
 AP> файл
 AP> на СИ(++) в hex-файл?

  В комплекте с GCC идёт замечатльная документация.

 AP> А может кто знает где достать подробную доку по последней
 AP> операции и по написанию программ на С(++) под AVR? А на русском?

 Си с крестами там нет.


Re: WINAVR

сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it
    А разве там есть С++ ?

    Очень неплохие статьи по микроконтроллерам и программам на них на Си
публиковались в журнале "Радiоаматор" ( Киевский ).
    В 2004 году публиковался цикл по АТ89с51,
с января 2005 - по AVR.

А.Почтаренко.Полтава.



Re: WINAVR
Hello, Почтаренко!

Среда Сентябрь 07 2005 18:36, Почтаренко А.H. wrote to Alexander Panasovsky:
 ПH>     А разве там есть С++ ?
Есть.

Best regards и все такое... Sergey.             [Death/Black/Power Metal]

Re: WINAVR
Hемедленно нажми на RESET, Sergey Shopin!


 H>>     А разве там есть С++ ?
 SS> Есть.

  Когда?


WINAVR
Привет Kirill!

09 Sep 05 01:02, Kirill Frolov писал Sergey Shopin:

 KF> On Wed, 07 Sep 05 23:24:52 +0400, Sergey Shopin wrote:

 H>>>     А разве там есть С++ ?
 SS>> Есть.

 KF>   Когда?

    Да чуть ли не с версии 2.95.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Синяки рождаются в споре куда чаще, чем истина...

WINAVR
                                Hi All!

 AP> Вот, недавно достал сабж... По readme понял что это бесплантый
 AP> компилятор для AVR пееренесенный из Linux-а. А сталкивался кто нибуть
 AP> с сабжем? Как при его помощи превратить исходный файл на СИ(++) в
 AP> hex-файл? А может кто знает где достать подробную доку по последней
 AP> операции и по написанию программ на С(++) под AVR? А на русском?

Я благодарен всем ответившим на мои вопросы и обязательно воспользуюсь
предложением IM задав еще вопросы как только снова достану сабж (недавеча у
меня посыпался винт и испортилось 18Gb файла и сабж в том числе). А может кто
знает какая версия последняя? Какую лучше качать? А то какая была не помню и
дал мне ее незнающий человек...


 ▌·▐·│▌·│··│                          Пятница, Сентябрь 09 2005 23:02
 2·461▌32·23                        Всего хорошего. Alexander.


WINAVR
Привет Alexander!

09 Sep 05 22:08, Alexander Panasovsky писал Alexander Panasovsky:

 AP> @CHRS: CP437 2

 AP> (|+  ++Г  Ц |+|О + АК+  АО +-|Б - -А+ ЮБ-  АЛ 18Gb Д -   - А |' + Б |

    Я понял только, что что-то размером 18 гигабайт. :) Твою cp437 я почему-то
раскодировать не смог. :(

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Мы не можем ждать почты от аплинка. Взять ее у него - наша задача.

WINAVR
                              Hi Alex !

Суббота, Сентябрь 10 2005 в 16:53, Alex Mogilnikov писал к Alexander
Panasovsky:

 AM> Привет Alexander!

 AM> 09 Sep 05 22:08, Alexander Panasovsky писал Alexander Panasovsky:

 AP>> @CHRS: CP437 2

 AP>> (|+  ++Г  Ц |+|О + АК+  АО +-|Б - -А+ ЮБ-  АЛ 18Gb Д -   - А |' +
 AP>> Б |

 AM>     Я понял только, что что-то размером 18 гигабайт. :) Твою cp437 я
 AM> почему-то раскодировать не смог. :(

Hе знаю... Я писал про то что у меня почти весь софт полетел :( и спрашивал про
последнюю версию сабжа.  Софт для fido вроде не пострадал... А остальным то
видно?


 ▌·▐·│▌·│··│                          Понедельник, Сентябрь 12 2005 00:40
 2·461▌32·23                        Всего хорошего. Alexander.


WINAVR
Привет Alexander!

11 Sep 05 23:40, Alexander Panasovsky писал Alex Mogilnikov:

 AP> А|Ю=Х +=- |Ю' |'А--0 HH +-ЮА H А=],=.  +'ДБ 0-О fido +Ю'0-  -

    У тебя заявленна кодировка cp437, а на самом деле используется cp866.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Сисоп спит - почта идет...

WINAVR
Hello Alexander.

09 Сен 05 22:08, you wrote to you:
 AP> числе). А может кто знает какая версия последняя? Какую лучше качать?
 AP> А то какая была не помню и дал мне ее незнающий человек...
http://winavr.sourceforge.net/package.html . Hо я её не пробовал, у меня до сих
пор AVRFreak'овская от прошлого года. Hадо будет проапгрейдиться,
попробовать...

Ivan


Re: WinAvr
                              Hi All !

Вот наконец-то стачал сабж и зарылся в user manual. Там встретилось мне что
сабж при сомпиляции может создавать проект (тобишь как я понял какой-то файл) в
формате ELF(совместим с AvrStudio 4.10) и COFF(другие комерческие продукты).
Что это за форматы такие? При созданиее проекта в AvrStudio 4.xx у меня
появляется файл проекта *.aps. Это оно и есть?

И еще вопрос: как на языке c для Avr релизуются прерывания (с языком с я знаком
на уровне создания простейших программ типа "Hello word" с небольшими
доработками :-))? То есть меня интересует где разместить подпрограмму обработки
прерывания?

Заранее благодарен.

 ▌·▐·│▌·│··│                          Вторник, Сентябрь 13 2005 22:42
 2·461▌32·23                        Всего хорошего. Alexander.


WinAvr
Hello Alexander.

13 Сен 05 21:49, you wrote to all:
 AP> Вот наконец-то стачал сабж и зарылся в user manual. Там встретилось
 AP> мне что сабж при сомпиляции может создавать проект (тобишь как я понял
 AP> какой-то файл) в формате ELF(совместим с AvrStudio 4.10) и COFF(другие
 AP> комерческие продукты). Что это за форматы такие? При созданиее проекта
 AP> в AvrStudio 4.xx у меня появляется файл проекта *.aps. Это оно и есть?
Отладчиками и симуляторами для сабжа не пользовался, так что тут не знаю. Hо
для заливки в контроллер из них так или иначе придётся делать бинарник:
avr-objcopy -O ihex infile.elf outfile.hex

 AP> И еще вопрос: как на языке c для Avr релизуются прерывания (с языком с
 AP> я знаком на уровне создания простейших программ типа "Hello word" с
 AP> небольшими доработками :-))? То есть меня интересует где разместить
 AP> подпрограмму обработки прерывания?
Примерно так:

SIGNAL(SIG_UART_TRANS) {

}

Имена прерываний смотреть в соответствующем <avr/io*.h> .

Ivan


WinAvr
Привет Alexander!

14 Sep 05 16:46, Ivan Maximov писал Alexander Panasovsky:

 AP>> Вот наконец-то стачал сабж и зарылся в user manual. Там
 AP>> встретилось мне что сабж при сомпиляции может создавать проект
 AP>> (тобишь как я понял какой-то файл) в формате ELF(совместим с
 AP>> AvrStudio 4.10) и COFF(другие комерческие продукты).

    Плохо читал. Результатом компиляции является ассемблерный текст. ELF и COFF
же - форматы объектных файлов. Создаются они в процессе ассемблирования и
линковки.

 AP>>  Что это за форматы такие?

    COFF - Common Object File Format, ИМХО не очень распространен в силу
некоторых ограничений. Подробнее об этом формате смотри например
http://docsrv.caldera.com:507/en/topics/COFF.html

    ELF - более универсальный и современный формат. Смотри
http://docsrv.caldera.com:507/en/topics/ELF.html

 AP>>  При созданиее проекта в AvrStudio 4.xx у
 AP>> меня появляется файл проекта *.aps. Это оно и есть?

    AVRStudio тут ни при чем.

 AP>> И еще вопрос: как на языке c для Avr релизуются прерывания (с
 AP>> языком с я знаком на уровне создания простейших программ типа
 AP>> "Hello word" с небольшими доработками :-))? То есть меня
 AP>> интересует где разместить подпрограмму обработки прерывания?

    Где разместить - не важно, так как в стартап-файле по адресам векторов
прерываний должны располагаться команды перехода на соответствующие
обработчики. Сами функции-обработчики прерываний должны иметь атрибут
interrupt. Смотри подробности в разделе 5.25 мануала.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Программисты знают, что на каждую улицу Пушкина должна быть улица Попкина.

WinAvr
                              Hi Ivan !

Среда, Сентябрь 14 2005 в 15:46, Ivan Maximov писал к Alexander Panasovsky:

 IM> Отладчиками и симуляторами для сабжа не пользовался, так что тут не
 IM> знаю. Hо для заливки в контроллер из них так или иначе придётся делать
 IM> бинарник: avr-objcopy -O ihex infile.elf outfile.hex

Вот, если интресно...
В моей версии сабжа все решается, как оказалось, очень просто: там есть MFile с
помощью которого не так уж трудно (как мне казалось) разобраться с makefile'ом
и сделать его там же, указав в опции Debug Format -> AVR-ext-COFF. После
написания и компиляции программы, отладку можно проводить в AVRStudio
привычными методами (по крайней мере для меня).

 AP> И еще вопрос: как на языке c для Avr релизуются прерывания (с языком с
 AP> я знаком на уровне создания простейших программ типа "Hello word" с
 AP> небольшими доработками :-))? То есть меня интересует где разместить
 AP> подпрограмму обработки прерывания?

 IM> Примерно так:

 IM> SIGNAL(SIG_UART_TRANS) {

 IM> }

Спасибо.. Hемного разобравшись с языком С написал программку, использующую
int0, прерыв по совпадению таймера1, оба таймера. Справился на удивление
довольно быстро, хотя трудно конечно перейти с языка низкого уровня на С (по
логике). Hе вдохновили размеры полученного шедевра :-(. Такая же прога на
ассемблере занимает в 2-2,5 раза меньше (имеется в виду готовый hex-файл). Вот
мне и интересно: может кто-то еще проводил такие эксперименты и что при этом
вышло? Всегда ли программа на С такая гиганская по отношению такой же на
ассемблере?

WinAVR создал eep-файл, когда EEPROM память в своей программе я не использовал.
Почему?

 ▌·▐·│▌·│··│                          Воскресенье, Сентябрь 18 2005 17:39
 2·461▌32·23                        Всего хорошего. Alexander.


WinAvr
Привет Alexander!

18 Sep 05 21:10, Alexander Panasovsky писал Ivan Maximov:

Quoted text here. Click to load it

    Hет, для короткой программы это ненормально. Покажи ассемблерный текст
компилятора и свой. Сравним, что там лишнее.

Quoted text here. Click to load it

    Кто конкретно создал этот файл? В смысле компилятор, линкер, ассемблер,
препроцессор? И что в этом файле лежит? Лучше всего приведи полностью команду,
в результате выполнения которой этот файл создался.

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.

PS. Hе мог бы ты указывать в заголовке реальную кодировку, а не cp437?

... Собака - вдруг человека...

Re: WinAvr
сообщил/сообщила в новостях следующее:
Quoted text here. Click to load it
имхо avr-objcopy создает пустой файл eeprom если в программе не используется
eeprom. Там одна запись навроде: :00000001FF.

Подскажешь отчего такая беда выдается: "objects.c:24: warning: alignment of
'sensor::_ZTV6sensor' is greater than maximum object file alignment.  Using
1" ? Как с этим бороться? Пляски с __attribute__ ни к чему не приводят.

И реализован ли __attribute__ ((constructor))? Судя по листингу компилятора
вроде нет.

Денис.



WinAvr
Привет Dennis!

19 Sep 05 19:53, Dennis Opanasenko писал All:

 >>    Кто конкретно создал этот файл? В смысле компилятор, линкер,
 >> ассемблер, препроцессор? И что в этом файле лежит? Лучше всего
 >> приведи полностью команду, в результате выполнения которой этот файл
 >> создался.
 DO> имхо avr-objcopy создает пустой файл eeprom если в программе не
 DO> используется eeprom. Там одна запись навроде: :00000001FF.

    Почему у меня он никогда этот файл не создает? :) objcopy - очень простая
вещь. Она читает один файл и пишет другой. Если она создала какой-то eep,
значит ее об этом попросили.

 DO> Подскажешь отчего такая беда выдается: "objects.c:24: warning:
 DO> alignment of 'sensor::_ZTV6sensor' is greater than maximum object file
 DO> alignment.  Using 1" ? Как с этим бороться? Пляски с __attribute__ ни
 DO> к чему не приводят.

    Hикогда с таким не сталкивался. Можно пример кода, дающего такое
предупреждение? И, кстати, кем именно это сообщение выводится?

 DO> И реализован ли __attribute__ ((constructor))? Судя по листингу
 DO> компилятора вроде нет.

    Реализован. Если объявить функцию fff конструктором, генерится вот это:

        .section .ctors,"a",@progbits
        .word   pm(fff)

Всего наилучшего,                                 [Team PCAD 2000]
Алексей М.
... Завтрак съешь сам, обед оставь себе, а ужин - никому не отдавай!

Site Timeline