nedoPC.org

Community of electronics hobbyists established in 2002

...
Atom Feed | View unanswered posts | View active topics It is currently 12 Nov 2018 23:26



Reply to topic  [ 23 posts ]  Go to page Previous  1, 2
Кросс-средства разработки для AVR 
Author Message
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17116
Location: Colorado
Reply with quote
Post 
В связи с необходимостью обновиться пробую следующую конфигурацию:

1) binutils-2.14
./configure --target=avr --program-prefix="avr-"
make
make install

2) gcc-3.3.2
./configure --target=avr --program-prefix="avr-" --enable-languages=c,c++
make
make install

3) avr-libs-1.0.5 (see http://download.savannah.nongnu.org/releases/avr-libc/)
./doconf
./domake
./domake install

все автоматически устанавливается в /usr/local/avr, а бинарники с префиксом avr- в /usr/local/bin (менять PATH и вообще вручную устанавливать какие-либо переменные окружения не требуется), для нормальной сборки AVROS надо сделать символическую ссылку /usr/include/avr, направленную на /usr/local/avr/include

_________________
:eugeek: https://twitter.com/Shaos1973


09 Jan 2006 21:48
Profile WWW
Novelist
User avatar

Joined: 10 Jan 2006 08:54
Posts: 49
Location: St.Petersburg, Russian
Reply with quote
Post 
Shaos wrote:
Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???


Идёшь на homepage, там написано как к cvs подключиться.
Выгребаешь релиз и собираешь с нужными опциями. Нужно иметь
как минимум msys, лучше cygwin, лучше linux.

Для виндов можно легко нагуглить собранное.

Для линуха в каком-нибудь дебиане всё есть. В микродистрибутивах
см. выше.


12 Jan 2006 07:38
Profile ICQ YIM WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17116
Location: Colorado
Reply with quote
Post 
fk0 wrote:
Shaos wrote:
Чего-то я не понял как по этим ссылкам выцарапывать avr-binutils и avr-gcc???


Идёшь на homepage, там написано как к cvs подключиться.
Выгребаешь релиз и собираешь с нужными опциями. Нужно иметь
как минимум msys, лучше cygwin, лучше linux.

Для виндов можно легко нагуглить собранное.

Для линуха в каком-нибудь дебиане всё есть. В микродистрибутивах
см. выше.


Дык в линухе я сижу - и давно уже все собрал :)

_________________
:eugeek: https://twitter.com/Shaos1973


12 Jan 2006 07:49
Profile WWW
God

Joined: 02 Jan 2006 03:28
Posts: 1371
Location: Abakan
Reply with quote
Попробовал покомпилировать свои простенькие програмульки, и вот что заметил: объявления переменных с помощью uint8_t (без указания, что буду исползовать в качестве переменной регистр) оперируют 16бит словами, в том числе при побитовом "И" явно указанного регистра и константы... Что-то мне это совсем не нравится. :( Может я что не так делаю?
Пробовал указывать ключ -mint8, но тогда происходит "глюк" при подключении stdint.h (вроде так), и ничего не компилируется.

Ну, а в общем и целом, работать удобно. :)
Разобрался с uisp, которому, как оказалось, требуется явное указание, что проц нужно почистить. А то по началу долго парился - "вроде должно работать, но не хочет" :D

И еще один попутный вопрос: кто что может посоветовать из средств эмуляции-отладки?


24 Jan 2007 12:35
Profile
Doomed

Joined: 16 Apr 2005 23:35
Posts: 492
Location: Томск
Reply with quote
jdigreze wrote:
Попробовал покомпилировать свои простенькие програмульки, и вот что заметил: объявления переменных с помощью uint8_t (без указания, что буду исползовать в качестве переменной регистр) оперируют 16бит словами, в том числе при побитовом "И" явно указанного регистра и константы... Что-то мне это совсем не нравится. :(


Как ты это заметил ?
Вообще в С любая целая константа считается типа int. Вероятно, язык С принудительно приводит всё к int ?

Попробуй поставить оптимизацию по скорости - ключик -Os.

Кстати, а если вместо uint8_t использовать signed char ? Не пробовал ?


02 Feb 2007 05:22
Profile
God

Joined: 02 Jan 2006 03:28
Posts: 1371
Location: Abakan
Reply with quote
SfS wrote:
Как ты это заметил ?

avr-gcc -g -mmcu=atmega16 -c my.c - компилируем
avr-gcc -g -mmcu=atmega16 -o my.elf my.o - получаем эльфа
avr-objdump -h -S my.elf > my.lst - из эльфа получаем лист
дык вот в этом листе и просматривал, как оно компилирует...

SfS wrote:
Вообще в С любая целая константа считается типа int. Вероятно, язык С принудительно приводит всё к int ?

Это мы в курсе ;) Вообще, я так подозреваю, что промежуточный код генерится gcc, и лишь потом, при оптимизации уже готового промежуточного кода, приводится к виду avr-gcc... Хотя может быть я ошибаюсь.

SfS wrote:
Попробуй поставить оптимизацию по скорости - ключик -Os.

Вот-вот! Это оно самое :D
Достаточно поставить в первой строчке -O1
Как пример без ключика -Os:
DDRA = 0xFF;
получаем:
ldi r30, 0x3A
ldi r31, 0x00
ldi r24, 0xFF
st Z, r24
Теперь ставим ключик -O1, и получаем:
ldi r25, 0xFF
out 0x1a, r25
Вот это уже другой коленкор :D

SfS wrote:
Кстати, а если вместо uint8_t использовать signed char ? Не пробовал ?
Неа... Да уже и не надо. Хотя может быть позже попробую.


03 Feb 2007 00:18
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17116
Location: Colorado
Reply with quote
Post 
SfS wrote:
Заодно приведу распайку кабеля для программирования программой 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)


При запуске uisp чего-то в Slackware 11.0 с ядром 2.6.17.13 не срастается:

/dev/parport0: No such file or directory
Failed to open ppdev.

_________________
:eugeek: https://twitter.com/Shaos1973


06 Mar 2007 21:48
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 17116
Location: Colorado
Reply with quote
Post 
Shaos wrote:
При запуске uisp чего-то в Slackware 11.0 с ядром 2.6.17.13 не срастается:

/dev/parport0: No such file or directory
Failed to open ppdev.


Вспомнил:

rmmod lp
modprobe ppdev


Надо чтоли загрузочные скрипты поправить чтобы каждый раз мучительно не вспоминать чего же надо сделать, чтобы LPT поюзать...

_________________
:eugeek: https://twitter.com/Shaos1973


06 Mar 2007 22:00
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 23 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.