Author |
Message |
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Средства для сборки - все свободные. 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/ или его зеркал.
|
03 May 2005 20:46 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???
|
06 May 2005 19:10 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Хм - поддержка avr в исходниках сидит, в том числе и в моей слаквари, осталось понять как ее в бинарники затолкать, не сломав существующий gcc
|
06 May 2005 19:31 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Ага - нашел ( http://slacy.com/avr/compiler.html ): configure --target=avr --program-prefix="avr-"
|
06 May 2005 19:38 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Обломс - gcc-3.3.4 не собирается
|
06 May 2005 20:19 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
А вот gcc-3.3.2 с гейткипера собрался!
|
06 May 2005 20:32 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Теперь avr-libc-20020203 не хочет собираться
|
06 May 2005 20:41 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Пришлось ставить более старый binutils с gcc! После перебора нескольких версий сработала вот такая конфигурация: 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.
|
06 May 2005 21:30 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
А вот какой размер инта тут?
|
06 May 2005 21:51 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 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 и т.п.
|
07 May 2005 01:24 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Как и у всех 8биток - int - 16 бит, char - 8бит, long - 32 бита
|
07 May 2005 01:28 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Заодно приведу распайку кабеля для программирования программой uisp (LPT порт - стандартный разъем, со стороны AVR - номера выводов указаны для NedoPC-90):
pin on AVR Pin on parallel port (LPT) MOSI (1) D0 (2) MISO (2) Busy (11) SCK (3) Strobe (1) Reset (4) Init (16) GND(6) GND (18)
|
07 May 2005 01:33 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Это хорошо, а то рассуждая в соответствии с буквой стандарта int теоретически должен быть 8-битным, т.е. соответствовать размеру одновременно обрабатываемого слова в процессоре
|
07 May 2005 06:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22643 Location: Silicon Valley
|
Вроде у меня все проще получилось: 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 и вообще вручную устанавливать какие-либо переменные окружения вроде не требуется
|
07 May 2005 06:08 |
|
|
SfS
Doomed
Joined: 16 Apr 2005 22:35 Posts: 492 Location: Томск
|
Это так, если в путях есть /usr/local/bin. Иначе надо прописать путь к компилятору
|
10 May 2005 02:50 |
|
|