roboforum.ru

Технический форум по робототехнике.

[FAQ] Make

Программирование микроконтроллеров AVR, PIC, ARM.
Разработка и изготовление печатных плат для модулей.

[FAQ] Make

Сообщение Vooon » 14 окт 2007, 21:48

Создал статью по сборке в avr-gcc (чаще его WinAvr'ом кличут)
wiki/Avr-gcc:make

собственно дал линк на "умную книжку" и свой Makefile - можно использовать под любой проект, правки минимум :)
свой мейк строил на основе мейка из умной книжки :)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: [FAQ] Make

Сообщение Vooon » 14 окт 2007, 23:33

кто подскажет как сделать запуск cog.py из мейка?
кстати кто не знает что такое ког вот линк: http://www.nedbatchelder.com/code/cog/index_ru.html
штука классная, понять только как в мейк запуск кога сделать... а кажись придумал :)
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: [FAQ] Make

Сообщение Vooon » 14 окт 2007, 23:42

вот вариант с использованием кога
Код: Выделить всёРазвернуть
# output filename
program_name := main
# source directories ('.' - current dir)
source_dirs  := .
#source_dirs  := . includes
#source_dirs      := $(addprefix ../,$(source_dirs))

# uC type
mcu   := atmega128
# CPU freq
f_cpu := 14745600UL

# compiler flags
cpflags   := -mmcu=$(mcu) -Wall -g -O2 -DF_CPU=$(f_cpu)
# linker flags
ldflags := -mmcu=$(mcu) -Wl

#- do not need to edit ----------------------------------------------
rm := rm -rf
cog := cog.py -r
# compiller
cc := avr-g++
cclog := compile.log
# avr-objcopy
objcpy := avr-objcopy
# doxygen
doxygen := doxygen
doxylog := doxygen.log

search_wildcards := $(addsuffix /*.cpp,$(source_dirs))

$(addsuffix .out,$(program_name)): cog all

all: $(notdir $(patsubst %.cpp,%.o, $(wildcard $(search_wildcards) ) ) )
   $(cc) $(ldflags) $^ -o $(addsuffix .out,$(program_name)) 2>>$(cclog)
   $(objcpy) -R.eeprom -O ihex $(addsuffix .out,$(program_name)) $(addsuffix .hex,$(program_name)) 2>>$(cclog)
   $(doxygen) 2>> $(doxylog)

VPATH := $(source_dirs)

%.o: %.cpp
   $(cc) $(cpflags) $(addprefix -I,$(source_dirs)) -MD -c  $< 2>>$(cclog)

cog:
   $(cog) *.cpp *.h

include $(wildcard *.d)

clean:
   $(rm) $(addsuffix .out,$(program_name)) $(addsuffix .hex,$(program_name)) *.d *.o *.hex $(cclog) $(doxylog) doc
   $(cog) -x *.cpp *.h
Linux user | Firefox user
Аватара пользователя
Vooon
Site Admin
 
Сообщения: 3339
Зарегистрирован: 09 фев 2006, 15:36
Откуда: Москва
Skype: vooon341
прог. языки: Python, C, Bash, JavaScript, C++, PHP
ФИО: Владимир Ермаков

Re: [FAQ] Make

Сообщение Myp » 15 окт 2007, 01:07

вот... человек на своей волне...
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич


Вернуться в Микроконтроллеры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 17