Subversion Repositories svnkaklik

Rev

Rev 409 | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log

Rev 409 Rev 410
1
# makefile, written by guido socher
1
# makefile, written by guido socher
2
MCU=atmega8
2
MCU=atmega8
3
#MCU=at90s4433
3
#MCU=at90s4433
4
CC=avr-gcc
4
CC=avr-gcc
5
OBJCOPY=avr-objcopy
5
OBJCOPY=avr-objcopy
6
# optimize for size:
6
# optimize for size:
7
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
7
CFLAGS=-g -mmcu=$(MCU) -Wall -Wstrict-prototypes -Os -mcall-prologues
8
#-------------------
8
#-------------------
9
all: avrm8ledtest.hex
9
all: avrm8ledtest.hex
10
#-------------------
10
#-------------------
11
help: 
11
help: 
12
	@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal"
12
	@echo "Usage: make all|load|load_pre|rdfuses|wrfuse1mhz|wrfuse4mhz|wrfusecrystal"
13
	@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an"
13
	@echo "Warning: you will not be able to undo wrfusecrystal unless you connect an"
14
	@echo "         external crystal! uC is dead after wrfusecrystal if you do not"
14
	@echo "         external crystal! uC is dead after wrfusecrystal if you do not"
15
	@echo "         have an external crystal."
15
	@echo "         have an external crystal."
16
#-------------------
16
#-------------------
17
avrm8ledtest.hex : avrm8ledtest.out 
17
avrm8ledtest.hex : avrm8ledtest.out 
18
	$(OBJCOPY) -R .eeprom -O ihex avrm8ledtest.out avrm8ledtest.hex 
18
	$(OBJCOPY) -R .eeprom -O ihex avrm8ledtest.out avrm8ledtest.hex 
19
avrm8ledtest.out : avrm8ledtest.o 
19
avrm8ledtest.out : avrm8ledtest.o 
20
	$(CC) $(CFLAGS) -o avrm8ledtest.out -Wl,-Map,avrm8ledtest.map avrm8ledtest.o 
20
	$(CC) $(CFLAGS) -o avrm8ledtest.out -Wl,-Map,avrm8ledtest.map avrm8ledtest.o 
21
avrm8ledtest.o : avrm8ledtest.c 
21
avrm8ledtest.o : avrm8ledtest.c 
22
	$(CC) $(CFLAGS) -Os -c avrm8ledtest.c
22
	$(CC) $(CFLAGS) -Os -c avrm8ledtest.c
23
#------------------
23
#------------------
24
load: avrm8ledtest.hex
24
load: avrm8ledtest.hex
25
	./prg_load_uc avrm8ledtest.hex
25
	./prg_load_uc avrm8ledtest.hex
26
# here is a pre-compiled version in case you have trouble with
26
# here is a pre-compiled version in case you have trouble with
27
# your development environment
27
# your development environment
28
load_pre: avrm8ledtest_pre.hex
28
load_pre: avrm8ledtest_pre.hex
29
	./prg_load_uc avrm8ledtest.hex
29
	./prg_load_uc avrm8ledtest.hex
30
#
30
#
31
loaduisp: avrm8ledtest.hex
31
loaduisp: avrm8ledtest.hex
32
	./prg_load_uc -u avrm8ledtest.hex
32
	./prg_load_uc -u avrm8ledtest.hex
33
# here is a pre-compiled version in case you have trouble with
33
# here is a pre-compiled version in case you have trouble with
34
# your development environment
34
# your development environment
35
load_preuisp: avrm8ledtest_pre.hex
35
load_preuisp: avrm8ledtest_pre.hex
36
	./prg_load_uc -u avrm8ledtest.hex
36
	./prg_load_uc -u avrm8ledtest.hex
37
#-------------------
37
#-------------------
38
# fuse byte settings:
38
# fuse byte settings:
39
#  Atmel AVR ATmega8 
39
#  Atmel AVR ATmega8 
40
#  Fuse Low Byte      = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal)
40
#  Fuse Low Byte      = 0xe1 (1MHz internal), 0xe3 (4MHz internal), 0xe4 (8MHz internal)
41
#  Fuse High Byte     = 0xd9 
41
#  Fuse High Byte     = 0xd9 
42
#  Factory default is 0xe1 for low byte and 0xd9 for high byte
42
#  Factory default is 0xe1 for low byte and 0xd9 for high byte
43
# Check this with make rdfuses
43
# Check this with make rdfuses
44
rdfuses:
44
rdfuses:
45
	./prg_fusebit_uc -r
45
	./prg_fusebit_uc -r
46
# use internal RC oscillator 1 Mhz
46
# use internal RC oscillator 1 Mhz
47
wrfuse1mhz:
47
wrfuse1mhz:
48
	./prg_fusebit_uc -w 1
48
	./prg_fusebit_uc -w 1
49
# use internal RC oscillator 4 Mhz
49
# use internal RC oscillator 4 Mhz
50
wrfuse4mhz:
50
wrfuse4mhz:
51
	./prg_fusebit_uc -w 4
51
	./prg_fusebit_uc -w 4
52
# use external 3-8 Mhz crystal
52
# use external 3-8 Mhz crystal
53
# Warning: you can not reset this to intenal unless you connect a crystal!!
53
# Warning: you can not reset this to intenal unless you connect a crystal!!
54
wrfusecrystal:
54
wrfusecrystal:
55
	@echo "Warning: The external crystal setting can not be changed back without a working crystal"
55
	@echo "Warning: The external crystal setting can not be changed back without a working crystal"
56
	@echo "         You have 3 seconds to abort this with crtl-c"
56
	@echo "         You have 3 seconds to abort this with crtl-c"
57
	@sleep 3
57
	@sleep 3
58
	./prg_fusebit_uc -w 0
58
	./prg_fusebit_uc -w 0
59
#-------------------
59
#-------------------
60
clean:
60
clean:
61
	rm -f *.o *.map *.out *t.hex
61
	rm -f *.o *.map *.out *t.hex
62
#-------------------
62
#-------------------