Кросс-средства разработки для AVR
Moderator: Shaos
-
- Doomed
- Posts: 491
- Joined: 16 Apr 2005 22:35
- Location: Томск
Кросс-средства разработки для AVR
Средства для сборки - все свободные. GNUMake - стандартный.
Остальное вот:
avr-binutils - ассемблер, линкер и другие утилиты.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/
ftp://gatekeeper.dec.com/pub/GNU/binutils/
avr-gcc - компилятор С.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/gcc/
ftp://gatekeeper.dec.com/pub/GNU/gcc/
avr-libc - стандартная библиотека С для AVR.
http://www.amelek.gda.pl/avr/libc/
uisp - программа для загрузки кода во flash-память микроконтроллера через LPT-порт ПК.
http://savannah.nongnu.org/download/uis ... 207.tar.gz.
Кроме того, все эти программы (кроме uisp) входят в дистрибутивы ALT Linux и их можно скачать с сайта компании http://www.altlinux.ru/ или его зеркал.
Остальное вот:
avr-binutils - ассемблер, линкер и другие утилиты.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/
ftp://gatekeeper.dec.com/pub/GNU/binutils/
avr-gcc - компилятор С.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/gcc/
ftp://gatekeeper.dec.com/pub/GNU/gcc/
avr-libc - стандартная библиотека С для AVR.
http://www.amelek.gda.pl/avr/libc/
uisp - программа для загрузки кода во flash-память микроконтроллера через LPT-порт ПК.
http://savannah.nongnu.org/download/uis ... 207.tar.gz.
Кроме того, все эти программы (кроме uisp) входят в дистрибутивы ALT Linux и их можно скачать с сайта компании http://www.altlinux.ru/ или его зеркал.
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???SfS wrote:avr-binutils - ассемблер, линкер и другие утилиты.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/
ftp://gatekeeper.dec.com/pub/GNU/binutils/
avr-gcc - компилятор С.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/gcc/
ftp://gatekeeper.dec.com/pub/GNU/gcc/
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Хм - поддержка avr в исходниках сидит, в том числе и в моей слаквари, осталось понять как ее в бинарники затолкать, не сломав существующий gccShaos wrote:Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???SfS wrote:avr-binutils - ассемблер, линкер и другие утилиты.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/
ftp://gatekeeper.dec.com/pub/GNU/binutils/
avr-gcc - компилятор С.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/gcc/
ftp://gatekeeper.dec.com/pub/GNU/gcc/

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Ага - нашел ( http://slacy.com/avr/compiler.html ):Shaos wrote:Хм - поддержка avr в исходниках сидит, в том числе и в моей слаквари, осталось понять как ее в бинарники затолкать, не сломав существующий gccShaos wrote:Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???SfS wrote:avr-binutils - ассемблер, линкер и другие утилиты.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/binutils/
ftp://gatekeeper.dec.com/pub/GNU/binutils/
avr-gcc - компилятор С.
ftp://ftp.informatik.rwth-aachen.de/pub/gnu/gcc/
ftp://gatekeeper.dec.com/pub/GNU/gcc/
configure --target=avr --program-prefix="avr-"
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Обломс - gcc-3.3.4 не собираетсяShaos wrote: Ага - нашел ( http://slacy.com/avr/compiler.html ):
configure --target=avr --program-prefix="avr-"

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
А вот gcc-3.3.2 с гейткипера собрался!Shaos wrote:Обломс - gcc-3.3.4 не собираетсяShaos wrote: Ага - нашел ( http://slacy.com/avr/compiler.html ):
configure --target=avr --program-prefix="avr-"
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Теперь avr-libc-20020203 не хочет собиратьсяShaos wrote:А вот gcc-3.3.2 с гейткипера собрался!Shaos wrote:Обломс - gcc-3.3.4 не собираетсяShaos wrote: Ага - нашел ( http://slacy.com/avr/compiler.html ):
configure --target=avr --program-prefix="avr-"

Code: Select all
In file included from ../../../../common/macros.inc:18,
from ../../../../libc/pmstring/memcpy_P.S:2:
../../../../include/io-avr.h:75:4: warning: #warning "device type not defined"
../../../../libc/pmstring/memcpy_P.S: Assembler messages:
../../../../libc/pmstring/memcpy_P.S:17: Error: constant value required
../../../../libc/pmstring/memcpy_P.S:17: Error: constant value required
../../../../libc/pmstring/memcpy_P.S:18: Error: constant value required
../../../../libc/pmstring/memcpy_P.S:18: Error: constant value required
../../../../libc/pmstring/memcpy_P.S:37: Error: constant value required
../../../../libc/pmstring/memcpy_P.S:37: Error: register r24, r26, r28 or r30 required
make[4]: *** [memcpy_P.o] Ошибка 1
make[3]: *** [all-recursive] Ошибка 1
make[2]: *** [all-recursive] Ошибка 1
make[1]: *** [multi-do] Ошибка 1
make: *** [all-multi] Ошибка 2
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Пришлось ставить более старый binutils с gcc!Shaos wrote: Теперь avr-libc-20020203 не хочет собираться![]()
После перебора нескольких версий сработала вот такая конфигурация:
binutils-2.13.2.1
gcc-3.2.3
avr-libc-20020203
Last edited by Shaos on 07 May 2005 05:57, edited 2 times in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
-
- Doomed
- Posts: 491
- Joined: 16 Apr 2005 22:35
- Location: Томск
С удивлением и радостью узнал что я тут модератор)
Отвечаю на все вопросы пока коротко. Потом наверное нарисую более подробную доку.
Как собрать кросс-средства для AVR ?
Собирать все следует именно в том порядке как тут указано!
1. Установка: GNU binutils
Пакет binulils содержит низкоуровневые средства необходимые для создания объектных файлов. Он включает в себя ассемблер AVR (avr-as), линкер (avr-ld), библиотеку средств управления библиотеками (avr-ranlib, avr-ar), программы для создания исполняемых модулей загружаемых в память программ микроконтроллера (avr-objcopy), дизассемблер(avr-objdump) и утилиты avr-strip и avr-size.
Для установки пакета binutils выполните следующие команды:
bunzip2 -c binutils-2.11.2.tar.bz2 | tar xvf -
cd binutils-2.11.2
./configure --target=avr --prefix=/usr/local/atmel
make
make install
Добавьте строку /usr/local/atmel/lib в файле /etc/ld.so и обновите кэш линкера командой /sbin/ldconfig.
2. Установка: AVR gcc
avr-gcc - собственно компилятор С.
Для его установки используйте следующие команды:
tar zxvf gcc-core-3.0.3.tar.gz
cd gcc-core-3.0.3
./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c
make
make install
3. Установка: Библиотека AVR C
Библиотека AVR C до сих пор находится в стадии разработки и поэтому процесс установки может немного изменяться от версии к версии. Я рекомендую использовать версию указанную выше в таблице, для приведенной мной процедуры установки. Именно эту версию я использовал при создании программ описанных в этой и последующих статьях.
Установите следующие пременные среды (синтаксис bash):
export CC=avr-gcc
export AS=avr-as
export AR=avr-ar
export RANLIB=avr-ranlib
export PATH=/usr/local/atmel/bin:${PATH}
./configure --prefix=/usr/local/atmel --target=avr --enable-languages=c --host=avr
make
make install
Установка: Программатор
Программатор предназначен для загрузки исполняего кода в память программ микроконтроллера.
Наилучшим образом для этих целей подходит uisp для Linux. Он может быть использован прямо из make-файла. Вам только нужно будет добавить строку "make load" в make-файл и созданный Вами код будет загружен в микроконтроллер сразу после компиляции.
uisp устанавливается следующими командами:
tar zxvf uisp-20011025.tar.gz
cd uisp-20011025/src
make
cp uisp /usr/local/atmel/bin
Заметьте - все команды для AVR начинаются с avr- (avr-gcc, avr-ld и т.д.) и никак не могут повлиять на установленные в системе gcc, ld и т.п.
Отвечаю на все вопросы пока коротко. Потом наверное нарисую более подробную доку.
Как собрать кросс-средства для AVR ?
Собирать все следует именно в том порядке как тут указано!
1. Установка: GNU binutils
Пакет binulils содержит низкоуровневые средства необходимые для создания объектных файлов. Он включает в себя ассемблер AVR (avr-as), линкер (avr-ld), библиотеку средств управления библиотеками (avr-ranlib, avr-ar), программы для создания исполняемых модулей загружаемых в память программ микроконтроллера (avr-objcopy), дизассемблер(avr-objdump) и утилиты avr-strip и avr-size.
Для установки пакета binutils выполните следующие команды:
bunzip2 -c binutils-2.11.2.tar.bz2 | tar xvf -
cd binutils-2.11.2
./configure --target=avr --prefix=/usr/local/atmel
make
make install
Добавьте строку /usr/local/atmel/lib в файле /etc/ld.so и обновите кэш линкера командой /sbin/ldconfig.
2. Установка: AVR gcc
avr-gcc - собственно компилятор С.
Для его установки используйте следующие команды:
tar zxvf gcc-core-3.0.3.tar.gz
cd gcc-core-3.0.3
./configure --target=avr --prefix=/usr/local/atmel --disable-nls --enable-language=c
make
make install
3. Установка: Библиотека AVR C
Библиотека AVR C до сих пор находится в стадии разработки и поэтому процесс установки может немного изменяться от версии к версии. Я рекомендую использовать версию указанную выше в таблице, для приведенной мной процедуры установки. Именно эту версию я использовал при создании программ описанных в этой и последующих статьях.
Установите следующие пременные среды (синтаксис bash):
export CC=avr-gcc
export AS=avr-as
export AR=avr-ar
export RANLIB=avr-ranlib
export PATH=/usr/local/atmel/bin:${PATH}
./configure --prefix=/usr/local/atmel --target=avr --enable-languages=c --host=avr
make
make install
Установка: Программатор
Программатор предназначен для загрузки исполняего кода в память программ микроконтроллера.
Наилучшим образом для этих целей подходит uisp для Linux. Он может быть использован прямо из make-файла. Вам только нужно будет добавить строку "make load" в make-файл и созданный Вами код будет загружен в микроконтроллер сразу после компиляции.
uisp устанавливается следующими командами:
tar zxvf uisp-20011025.tar.gz
cd uisp-20011025/src
make
cp uisp /usr/local/atmel/bin
Заметьте - все команды для AVR начинаются с avr- (avr-gcc, avr-ld и т.д.) и никак не могут повлиять на установленные в системе gcc, ld и т.п.
-
- Doomed
- Posts: 491
- Joined: 16 Apr 2005 22:35
- Location: Томск
-
- Doomed
- Posts: 491
- Joined: 16 Apr 2005 22:35
- Location: Томск
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Это хорошо, а то рассуждая в соответствии с буквой стандарта int теоретически должен быть 8-битным, т.е. соответствовать размеру одновременно обрабатываемого слова в процессореSfS wrote:Как и у всех 8биток - int - 16 бит, char - 8бит, long - 32 битаShaos wrote:А вот какой размер инта тут?

Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Admin
- Posts: 24088
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
Вроде у меня все проще получилось:SfS wrote: Как собрать кросс-средства для AVR ?
Собирать все следует именно в том порядке как тут указано!
1) binutils-2.13.2.1
./configure --target=avr --program-prefix="avr-"
make
make install
2) gcc-3.2.3
./configure --target=avr --program-prefix="avr-" --enable-languages=c
make
make install
3) avr-libs-20020203
./doconf
./domake
./domake install
причем все хозяйство устанавливается в /usr/local/avr а бинарники с префиксом avr- в /usr/local/bin и менять PATH и вообще вручную устанавливать какие-либо переменные окружения вроде не требуется
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Doomed
- Posts: 491
- Joined: 16 Apr 2005 22:35
- Location: Томск