20121128-183912

This commit is contained in:
BlubbFish 2012-11-28 17:37:19 +00:00
parent 41578c3362
commit 33b1e63a68
8 changed files with 962 additions and 0 deletions

View File

@ -0,0 +1,86 @@
#include <avr/io.h>
#include <util/delay.h>
volatile uint8_t segs[15] = {
0b00111111, //0
0b00000110, //1
0b01011011, //2
0b01001111, //3
0b01100110, //4
0b01101101, //5
0b01111101, //6
0b00000111, //7
0b01111111, //8
0b01101111, //9
0b01000000, //-
0b01110000, //+
0b01000110, //-1
0b01110110, //+1
0b00000000 //Blank
};
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
void display(uint8_t z, uint8_t p) {
DDRB = (segs[z]<<1);
PORTB = (segs[z]<<1);
for(uint8_t i = 1;i<=p;i++) {
if(DDRB & (1<<i)) {
DDRB |= (1<<(i-1));
} else {
DDRB &= ~(1<<(i-1));
}
}
for(uint8_t i = 1;i<=p;i++) {
if(PORTB & (1<<i)) {
PORTB |= (1<<(i-1));
} else {
PORTB &= ~(1<<(i-1));
}
}
DDRB |= (1<<p);
PORTB &= ~(1<<p);
}
void render() {
for(uint8_t f = 0;f<6;f++) {
display(frame[f],(5-f)+2);
_delay_us(2000);
}
}
int main(void) {
DDRB = 0;
while(1){
//frame = {14,5, 14,5, 14,5};
frame[0] = 11;
for(uint8_t l=0;l<10;l++) {
frame[2] = 9-l;
for(uint8_t k=0;k<10;k++) {
frame[3] = 9-k;
for(uint8_t j=0;j<10;j++) {
frame[4] = 9-j;
for(uint8_t i=0;i<10;i++) {
frame[5] = 9-i;
render();
}
}
}
}
/*DDRB = 0b11100110;
PORTB = 0b11000110;
_delay_ms(5);
DDRB = 0b11111101;
PORTB = 0b11101101;
_delay_ms(5);
DDRB = 0b10111011;
PORTB = 0b10110011;
_delay_ms(5);
DDRB = 0b01111111;
PORTB = 0b01111011;*/
/*display(0,2);
_delay_ms(10);
display(0,3);
_delay_ms(10);
display(10,7);
_delay_ms(10);*/
}
}

77
Timer/default/Makefile Normal file
View File

@ -0,0 +1,77 @@
###############################################################################
# Makefile for the project Timer
###############################################################################
## General Flags
PROJECT = Timer
MCU = attiny2313
TARGET = Timer.elf
CC = avr-gcc
CPP = avr-g++
## Options common to compile, link and assembly rules
COMMON = -mmcu=$(MCU)
## Compile options common for all C compilation units.
CFLAGS = $(COMMON)
CFLAGS += -Wall -gdwarf-2 -std=gnu99 -DF_CPU=8000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d
## Assembly specific flags
ASMFLAGS = $(COMMON)
ASMFLAGS += $(CFLAGS)
ASMFLAGS += -x assembler-with-cpp -Wa,-gdwarf2
## Linker flags
LDFLAGS = $(COMMON)
LDFLAGS += -Wl,-Map=Timer.map
## Intel Hex file production flags
HEX_FLASH_FLAGS = -R .eeprom -R .fuse -R .lock -R .signature
HEX_EEPROM_FLAGS = -j .eeprom
HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
## Objects that must be built in order to link
OBJECTS = Timer.o
## Objects explicitly added by the user
LINKONLYOBJECTS =
## Build
all: $(TARGET) Timer.hex Timer.eep Timer.lss size
## Compile
Timer.o: ../Timer.c
$(CC) $(INCLUDES) $(CFLAGS) -c $<
##Link
$(TARGET): $(OBJECTS)
$(CC) $(LDFLAGS) $(OBJECTS) $(LINKONLYOBJECTS) $(LIBDIRS) $(LIBS) -o $(TARGET)
%.hex: $(TARGET)
avr-objcopy -O ihex $(HEX_FLASH_FLAGS) $< $@
%.eep: $(TARGET)
-avr-objcopy $(HEX_EEPROM_FLAGS) -O ihex $< $@ || exit 0
%.lss: $(TARGET)
avr-objdump -h -S $< > $@
size: ${TARGET}
@echo
@avr-size -C --mcu=${MCU} ${TARGET}
## Clean target
.PHONY: clean
clean:
-rm -rf $(OBJECTS) Timer.elf dep/* Timer.hex Timer.eep Timer.lss Timer.map
## Other dependencies
-include $(shell mkdir dep 2>NUL) $(wildcard dep/*)

1
Timer/default/Timer.eep Normal file
View File

@ -0,0 +1 @@
:00000001FF

BIN
Timer/default/Timer.elf Normal file

Binary file not shown.

30
Timer/default/Timer.hex Normal file
View File

@ -0,0 +1,30 @@
:1000000012C022C021C020C01FC01EC01DC01CC005
:100010001BC01AC019C018C017C016C015C014C024
:1000200013C012C011C011241FBECFEDCDBF10E010
:10003000A0E6B0E0E8EAF1E002C005900D92A63734
:10004000B107D9F787D0AEC0DBCFE82FF0E0E05A98
:10005000FF4F8081880F87BB8081880F88BB71E04C
:1000600041E050E023C027B3872F90E030E0072E17
:1000700002C0359527950A94E2F7019720FF0AC040
:1000800027B3FA0102C0EE0FFF1F8A95E2F72E2B6D
:1000900027BB0BC027B3FA0102C0EE0FFF1F8A95E2
:1000A000E2F7CF018095822387BB7F5F6717D8F681
:1000B00071E041E050E023C028B3872F90E030E0AA
:1000C000072E02C0359527950A94E2F7019720FF85
:1000D0000AC028B3FA0102C0EE0FFF1F8A95E2F7AB
:1000E0002E2B28BB0BC028B3FA0102C0EE0FFF1F56
:1000F0008A95E2F7CF018095822388BB7F5F6717DF
:10010000D8F627B381E090E002C0880F991F6A9566
:10011000E2F7282B27BB98B38095892388BB0895E5
:100120001F93CF93DF9317E0C0E0D0E0FE01E159C9
:10013000FF4F8081612F89DF8FE99FE00197F1F701
:1001400000C0000021961150113081F7DF91CF914E
:100150001F910895FF920F931F93DF93CF9300D0C9
:10016000CDB7DEB717BA8BE0F82EF0926F0019E02A
:100170001093710009E00093720089E0809373008E
:1001800099E09093740089839A83CADF9A81915091
:1001900089819F3FB1F7815088F7015060F7115076
:0801A00038F7E3CFF894FFCF1C
:1001A8003F065B4F666D7D077F6F40704676000E99
:0601B8000E0E0E0E0E00FB
:00000001FF

367
Timer/default/Timer.lss Normal file
View File

@ -0,0 +1,367 @@
Timer.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .text 000001a8 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .data 00000016 00800060 000001a8 0000021c 2**0
CONTENTS, ALLOC, LOAD, DATA
2 .stab 000006b4 00000000 00000000 00000234 2**2
CONTENTS, READONLY, DEBUGGING
3 .stabstr 00000085 00000000 00000000 000008e8 2**0
CONTENTS, READONLY, DEBUGGING
4 .debug_aranges 00000020 00000000 00000000 0000096d 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_pubnames 00000045 00000000 00000000 0000098d 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_info 000002af 00000000 00000000 000009d2 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_abbrev 00000196 00000000 00000000 00000c81 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_line 0000024a 00000000 00000000 00000e17 2**0
CONTENTS, READONLY, DEBUGGING
9 .debug_frame 00000040 00000000 00000000 00001064 2**2
CONTENTS, READONLY, DEBUGGING
10 .debug_str 000000f6 00000000 00000000 000010a4 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_loc 000000bf 00000000 00000000 0000119a 2**0
CONTENTS, READONLY, DEBUGGING
12 .debug_pubtypes 0000002b 00000000 00000000 00001259 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 12 c0 rjmp .+36 ; 0x26 <__ctors_end>
2: 22 c0 rjmp .+68 ; 0x48 <__bad_interrupt>
4: 21 c0 rjmp .+66 ; 0x48 <__bad_interrupt>
6: 20 c0 rjmp .+64 ; 0x48 <__bad_interrupt>
8: 1f c0 rjmp .+62 ; 0x48 <__bad_interrupt>
a: 1e c0 rjmp .+60 ; 0x48 <__bad_interrupt>
c: 1d c0 rjmp .+58 ; 0x48 <__bad_interrupt>
e: 1c c0 rjmp .+56 ; 0x48 <__bad_interrupt>
10: 1b c0 rjmp .+54 ; 0x48 <__bad_interrupt>
12: 1a c0 rjmp .+52 ; 0x48 <__bad_interrupt>
14: 19 c0 rjmp .+50 ; 0x48 <__bad_interrupt>
16: 18 c0 rjmp .+48 ; 0x48 <__bad_interrupt>
18: 17 c0 rjmp .+46 ; 0x48 <__bad_interrupt>
1a: 16 c0 rjmp .+44 ; 0x48 <__bad_interrupt>
1c: 15 c0 rjmp .+42 ; 0x48 <__bad_interrupt>
1e: 14 c0 rjmp .+40 ; 0x48 <__bad_interrupt>
20: 13 c0 rjmp .+38 ; 0x48 <__bad_interrupt>
22: 12 c0 rjmp .+36 ; 0x48 <__bad_interrupt>
24: 11 c0 rjmp .+34 ; 0x48 <__bad_interrupt>
00000026 <__ctors_end>:
26: 11 24 eor r1, r1
28: 1f be out 0x3f, r1 ; 63
2a: cf ed ldi r28, 0xDF ; 223
2c: cd bf out 0x3d, r28 ; 61
0000002e <__do_copy_data>:
2e: 10 e0 ldi r17, 0x00 ; 0
30: a0 e6 ldi r26, 0x60 ; 96
32: b0 e0 ldi r27, 0x00 ; 0
34: e8 ea ldi r30, 0xA8 ; 168
36: f1 e0 ldi r31, 0x01 ; 1
38: 02 c0 rjmp .+4 ; 0x3e <__SP_H__>
3a: 05 90 lpm r0, Z+
3c: 0d 92 st X+, r0
3e: a6 37 cpi r26, 0x76 ; 118
40: b1 07 cpc r27, r17
42: d9 f7 brne .-10 ; 0x3a <__CCP__+0x6>
44: 87 d0 rcall .+270 ; 0x154 <main>
46: ae c0 rjmp .+348 ; 0x1a4 <_exit>
00000048 <__bad_interrupt>:
48: db cf rjmp .-74 ; 0x0 <__vectors>
0000004a <display>:
0b00000000 //Blank
};
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
void display(uint8_t z, uint8_t p) {
DDRB = (segs[z]<<1);
4a: e8 2f mov r30, r24
4c: f0 e0 ldi r31, 0x00 ; 0
4e: e0 5a subi r30, 0xA0 ; 160
50: ff 4f sbci r31, 0xFF ; 255
52: 80 81 ld r24, Z
54: 88 0f add r24, r24
56: 87 bb out 0x17, r24 ; 23
PORTB = (segs[z]<<1);
58: 80 81 ld r24, Z
5a: 88 0f add r24, r24
5c: 88 bb out 0x18, r24 ; 24
for(uint8_t i = 1;i<=p;i++) {
5e: 71 e0 ldi r23, 0x01 ; 1
if(DDRB & (1<<i)) {
DDRB |= (1<<(i-1));
} else {
DDRB &= ~(1<<(i-1));
60: 41 e0 ldi r20, 0x01 ; 1
62: 50 e0 ldi r21, 0x00 ; 0
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
void display(uint8_t z, uint8_t p) {
DDRB = (segs[z]<<1);
PORTB = (segs[z]<<1);
for(uint8_t i = 1;i<=p;i++) {
64: 23 c0 rjmp .+70 ; 0xac <display+0x62>
if(DDRB & (1<<i)) {
66: 27 b3 in r18, 0x17 ; 23
68: 87 2f mov r24, r23
6a: 90 e0 ldi r25, 0x00 ; 0
6c: 30 e0 ldi r19, 0x00 ; 0
6e: 07 2e mov r0, r23
70: 02 c0 rjmp .+4 ; 0x76 <display+0x2c>
72: 35 95 asr r19
74: 27 95 ror r18
76: 0a 94 dec r0
78: e2 f7 brpl .-8 ; 0x72 <display+0x28>
7a: 01 97 sbiw r24, 0x01 ; 1
7c: 20 ff sbrs r18, 0
7e: 0a c0 rjmp .+20 ; 0x94 <display+0x4a>
DDRB |= (1<<(i-1));
80: 27 b3 in r18, 0x17 ; 23
82: fa 01 movw r30, r20
84: 02 c0 rjmp .+4 ; 0x8a <display+0x40>
86: ee 0f add r30, r30
88: ff 1f adc r31, r31
8a: 8a 95 dec r24
8c: e2 f7 brpl .-8 ; 0x86 <display+0x3c>
8e: 2e 2b or r18, r30
90: 27 bb out 0x17, r18 ; 23
92: 0b c0 rjmp .+22 ; 0xaa <display+0x60>
} else {
DDRB &= ~(1<<(i-1));
94: 27 b3 in r18, 0x17 ; 23
96: fa 01 movw r30, r20
98: 02 c0 rjmp .+4 ; 0x9e <display+0x54>
9a: ee 0f add r30, r30
9c: ff 1f adc r31, r31
9e: 8a 95 dec r24
a0: e2 f7 brpl .-8 ; 0x9a <display+0x50>
a2: cf 01 movw r24, r30
a4: 80 95 com r24
a6: 82 23 and r24, r18
a8: 87 bb out 0x17, r24 ; 23
volatile uint8_t frame[6] = {14,14, 14,14, 14,14};
void display(uint8_t z, uint8_t p) {
DDRB = (segs[z]<<1);
PORTB = (segs[z]<<1);
for(uint8_t i = 1;i<=p;i++) {
aa: 7f 5f subi r23, 0xFF ; 255
ac: 67 17 cp r22, r23
ae: d8 f6 brcc .-74 ; 0x66 <display+0x1c>
b0: 71 e0 ldi r23, 0x01 ; 1
}
for(uint8_t i = 1;i<=p;i++) {
if(PORTB & (1<<i)) {
PORTB |= (1<<(i-1));
} else {
PORTB &= ~(1<<(i-1));
b2: 41 e0 ldi r20, 0x01 ; 1
b4: 50 e0 ldi r21, 0x00 ; 0
b6: 23 c0 rjmp .+70 ; 0xfe <__stack+0x1f>
} else {
DDRB &= ~(1<<(i-1));
}
}
for(uint8_t i = 1;i<=p;i++) {
if(PORTB & (1<<i)) {
b8: 28 b3 in r18, 0x18 ; 24
ba: 87 2f mov r24, r23
bc: 90 e0 ldi r25, 0x00 ; 0
be: 30 e0 ldi r19, 0x00 ; 0
c0: 07 2e mov r0, r23
c2: 02 c0 rjmp .+4 ; 0xc8 <display+0x7e>
c4: 35 95 asr r19
c6: 27 95 ror r18
c8: 0a 94 dec r0
ca: e2 f7 brpl .-8 ; 0xc4 <display+0x7a>
cc: 01 97 sbiw r24, 0x01 ; 1
ce: 20 ff sbrs r18, 0
d0: 0a c0 rjmp .+20 ; 0xe6 <__stack+0x7>
PORTB |= (1<<(i-1));
d2: 28 b3 in r18, 0x18 ; 24
d4: fa 01 movw r30, r20
d6: 02 c0 rjmp .+4 ; 0xdc <display+0x92>
d8: ee 0f add r30, r30
da: ff 1f adc r31, r31
dc: 8a 95 dec r24
de: e2 f7 brpl .-8 ; 0xd8 <display+0x8e>
e0: 2e 2b or r18, r30
e2: 28 bb out 0x18, r18 ; 24
e4: 0b c0 rjmp .+22 ; 0xfc <__stack+0x1d>
} else {
PORTB &= ~(1<<(i-1));
e6: 28 b3 in r18, 0x18 ; 24
e8: fa 01 movw r30, r20
ea: 02 c0 rjmp .+4 ; 0xf0 <__stack+0x11>
ec: ee 0f add r30, r30
ee: ff 1f adc r31, r31
f0: 8a 95 dec r24
f2: e2 f7 brpl .-8 ; 0xec <__stack+0xd>
f4: cf 01 movw r24, r30
f6: 80 95 com r24
f8: 82 23 and r24, r18
fa: 88 bb out 0x18, r24 ; 24
DDRB |= (1<<(i-1));
} else {
DDRB &= ~(1<<(i-1));
}
}
for(uint8_t i = 1;i<=p;i++) {
fc: 7f 5f subi r23, 0xFF ; 255
fe: 67 17 cp r22, r23
100: d8 f6 brcc .-74 ; 0xb8 <display+0x6e>
PORTB |= (1<<(i-1));
} else {
PORTB &= ~(1<<(i-1));
}
}
DDRB |= (1<<p);
102: 27 b3 in r18, 0x17 ; 23
104: 81 e0 ldi r24, 0x01 ; 1
106: 90 e0 ldi r25, 0x00 ; 0
108: 02 c0 rjmp .+4 ; 0x10e <__stack+0x2f>
10a: 88 0f add r24, r24
10c: 99 1f adc r25, r25
10e: 6a 95 dec r22
110: e2 f7 brpl .-8 ; 0x10a <__stack+0x2b>
112: 28 2b or r18, r24
114: 27 bb out 0x17, r18 ; 23
PORTB &= ~(1<<p);
116: 98 b3 in r25, 0x18 ; 24
118: 80 95 com r24
11a: 89 23 and r24, r25
11c: 88 bb out 0x18, r24 ; 24
}
11e: 08 95 ret
00000120 <render>:
void render() {
120: 1f 93 push r17
122: cf 93 push r28
124: df 93 push r29
126: 17 e0 ldi r17, 0x07 ; 7
128: c0 e0 ldi r28, 0x00 ; 0
12a: d0 e0 ldi r29, 0x00 ; 0
for(uint8_t f = 0;f<6;f++) {
display(frame[f],(5-f)+2);
12c: fe 01 movw r30, r28
12e: e1 59 subi r30, 0x91 ; 145
130: ff 4f sbci r31, 0xFF ; 255
132: 80 81 ld r24, Z
134: 61 2f mov r22, r17
136: 89 df rcall .-238 ; 0x4a <display>
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
138: 8f e9 ldi r24, 0x9F ; 159
13a: 9f e0 ldi r25, 0x0F ; 15
13c: 01 97 sbiw r24, 0x01 ; 1
13e: f1 f7 brne .-4 ; 0x13c <render+0x1c>
140: 00 c0 rjmp .+0 ; 0x142 <render+0x22>
142: 00 00 nop
144: 21 96 adiw r28, 0x01 ; 1
146: 11 50 subi r17, 0x01 ; 1
}
DDRB |= (1<<p);
PORTB &= ~(1<<p);
}
void render() {
for(uint8_t f = 0;f<6;f++) {
148: 11 30 cpi r17, 0x01 ; 1
14a: 81 f7 brne .-32 ; 0x12c <render+0xc>
display(frame[f],(5-f)+2);
_delay_us(2000);
}
}
14c: df 91 pop r29
14e: cf 91 pop r28
150: 1f 91 pop r17
152: 08 95 ret
00000154 <main>:
int main(void) {
154: ff 92 push r15
156: 0f 93 push r16
158: 1f 93 push r17
15a: df 93 push r29
15c: cf 93 push r28
15e: 00 d0 rcall .+0 ; 0x160 <main+0xc>
160: cd b7 in r28, 0x3d ; 61
162: de b7 in r29, 0x3e ; 62
DDRB = 0;
164: 17 ba out 0x17, r1 ; 23
while(1){
//frame = {14,5, 14,5, 14,5};
frame[0] = 11;
166: 8b e0 ldi r24, 0x0B ; 11
168: f8 2e mov r15, r24
16a: f0 92 6f 00 sts 0x006F, r15
16e: 19 e0 ldi r17, 0x09 ; 9
for(uint8_t l=0;l<10;l++) {
frame[2] = 9-l;
170: 10 93 71 00 sts 0x0071, r17
174: 09 e0 ldi r16, 0x09 ; 9
for(uint8_t k=0;k<10;k++) {
frame[3] = 9-k;
176: 00 93 72 00 sts 0x0072, r16
17a: 89 e0 ldi r24, 0x09 ; 9
for(uint8_t j=0;j<10;j++) {
frame[4] = 9-j;
17c: 80 93 73 00 sts 0x0073, r24
180: 99 e0 ldi r25, 0x09 ; 9
for(uint8_t i=0;i<10;i++) {
frame[5] = 9-i;
182: 90 93 74 00 sts 0x0074, r25
render();
186: 89 83 std Y+1, r24 ; 0x01
188: 9a 83 std Y+2, r25 ; 0x02
18a: ca df rcall .-108 ; 0x120 <render>
18c: 9a 81 ldd r25, Y+2 ; 0x02
18e: 91 50 subi r25, 0x01 ; 1
frame[2] = 9-l;
for(uint8_t k=0;k<10;k++) {
frame[3] = 9-k;
for(uint8_t j=0;j<10;j++) {
frame[4] = 9-j;
for(uint8_t i=0;i<10;i++) {
190: 89 81 ldd r24, Y+1 ; 0x01
192: 9f 3f cpi r25, 0xFF ; 255
194: b1 f7 brne .-20 ; 0x182 <main+0x2e>
196: 81 50 subi r24, 0x01 ; 1
198: 88 f7 brcc .-30 ; 0x17c <main+0x28>
frame[0] = 11;
for(uint8_t l=0;l<10;l++) {
frame[2] = 9-l;
for(uint8_t k=0;k<10;k++) {
frame[3] = 9-k;
for(uint8_t j=0;j<10;j++) {
19a: 01 50 subi r16, 0x01 ; 1
19c: 60 f7 brcc .-40 ; 0x176 <main+0x22>
while(1){
//frame = {14,5, 14,5, 14,5};
frame[0] = 11;
for(uint8_t l=0;l<10;l++) {
frame[2] = 9-l;
for(uint8_t k=0;k<10;k++) {
19e: 11 50 subi r17, 0x01 ; 1
1a0: 38 f7 brcc .-50 ; 0x170 <main+0x1c>
1a2: e3 cf rjmp .-58 ; 0x16a <main+0x16>
000001a4 <_exit>:
1a4: f8 94 cli
000001a6 <__stop_program>:
1a6: ff cf rjmp .-2 ; 0x1a6 <__stop_program>

361
Timer/default/Timer.map Normal file
View File

@ -0,0 +1,361 @@
Archive member included because of file (symbol)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o (exit)
e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
Timer.o (__do_copy_data)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00002000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
fuse 0x00820000 0x00000400 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
LOAD Timer.o
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25\libc.a
LOAD e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a
.hash
*(.hash)
.dynsym
*(.dynsym)
.dynstr
*(.dynstr)
.gnu.version
*(.gnu.version)
.gnu.version_d
*(.gnu.version_d)
.gnu.version_r
*(.gnu.version_r)
.rel.init
*(.rel.init)
.rela.init
*(.rela.init)
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
.rel.fini
*(.rel.fini)
.rela.fini
*(.rela.fini)
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
.rel.ctors
*(.rel.ctors)
.rela.ctors
*(.rela.ctors)
.rel.dtors
*(.rel.dtors)
.rela.dtors
*(.rela.dtors)
.rel.got
*(.rel.got)
.rela.got
*(.rela.got)
.rel.bss
*(.rel.bss)
.rela.bss
*(.rela.bss)
.rel.plt
*(.rel.plt)
.rela.plt
*(.rela.plt)
.text 0x00000000 0x1a8
*(.vectors)
.vectors 0x00000000 0x26 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
*(.progmem*)
0x00000026 . = ALIGN (0x2)
0x00000026 __trampolines_start = .
*(.trampolines)
.trampolines 0x00000026 0x0 linker stubs
*(.trampolines*)
0x00000026 __trampolines_end = .
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x00000026 __ctors_start = .
*(.ctors)
0x00000026 __ctors_end = .
0x00000026 __dtors_start = .
*(.dtors)
0x00000026 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x00000026 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
0x00000026 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x00000026 0x8 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x0000002e 0x16 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
0x0000002e __do_copy_data
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000044 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
*(.init9)
*(.text)
.text 0x00000048 0x2 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
0x00000048 __vector_1
0x00000048 __vector_12
0x00000048 __bad_interrupt
0x00000048 __vector_6
0x00000048 __vector_3
0x00000048 __vector_11
0x00000048 __vector_13
0x00000048 __vector_17
0x00000048 __vector_7
0x00000048 __vector_5
0x00000048 __vector_4
0x00000048 __vector_9
0x00000048 __vector_2
0x00000048 __vector_15
0x00000048 __vector_8
0x00000048 __vector_14
0x00000048 __vector_10
0x00000048 __vector_16
0x00000048 __vector_18
.text 0x0000004a 0x15a Timer.o
0x0000004a display
0x00000120 render
0x00000154 main
.text 0x000001a4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text 0x000001a4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
0x000001a4 . = ALIGN (0x2)
*(.text.*)
.text.libgcc 0x000001a4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.text.libgcc 0x000001a4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
0x000001a4 . = ALIGN (0x2)
*(.fini9)
.fini9 0x000001a4 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
0x000001a4 _exit
0x000001a4 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000001a4 0x4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
*(.fini0)
0x000001a8 _etext = .
.data 0x00800060 0x16 load address 0x000001a8
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
.data 0x00800060 0x15 Timer.o
0x00800060 segs
0x0080006f frame
.data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.data 0x00800075 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800076 . = ALIGN (0x2)
*fill* 0x00800075 0x1 00
0x00800076 _edata = .
0x00800076 PROVIDE (__data_end, .)
.bss 0x00800076 0x0
0x00800076 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800076 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
.bss 0x00800076 0x0 Timer.o
.bss 0x00800076 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_exit.o)
.bss 0x00800076 0x0 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/avr25\libgcc.a(_copy_data.o)
*(.bss*)
*(COMMON)
0x00800076 PROVIDE (__bss_end, .)
0x000001a8 __data_load_start = LOADADDR (.data)
0x000001be __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800076 0x0
0x00800076 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800076 PROVIDE (__noinit_end, .)
0x00800076 _end = .
0x00800076 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.stab 0x00000000 0x6b4
*(.stab)
.stab 0x00000000 0x6b4 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
.stabstr 0x00000000 0x85
*(.stabstr)
.stabstr 0x00000000 0x85 e:/programme/avr toolchain/bin/../lib/gcc/avr/4.5.1/../../../../avr/lib/avr25/crttn2313.o
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment
*(.comment)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x20
*(.debug_aranges)
.debug_aranges
0x00000000 0x20 Timer.o
.debug_pubnames
0x00000000 0x45
*(.debug_pubnames)
.debug_pubnames
0x00000000 0x45 Timer.o
.debug_info 0x00000000 0x2af
*(.debug_info)
.debug_info 0x00000000 0x2af Timer.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x196
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x196 Timer.o
.debug_line 0x00000000 0x24a
*(.debug_line)
.debug_line 0x00000000 0x24a Timer.o
.debug_frame 0x00000000 0x40
*(.debug_frame)
.debug_frame 0x00000000 0x40 Timer.o
.debug_str 0x00000000 0xf6
*(.debug_str)
.debug_str 0x00000000 0xf6 Timer.o
0x12a (size before relaxing)
.debug_loc 0x00000000 0xbf
*(.debug_loc)
.debug_loc 0x00000000 0xbf Timer.o
.debug_macinfo
*(.debug_macinfo)
OUTPUT(Timer.elf elf32-avr)
LOAD linker stubs
.debug_pubtypes
0x00000000 0x2b
.debug_pubtypes
0x00000000 0x2b Timer.o

View File

@ -0,0 +1,40 @@
Timer.o: ../Timer.c \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/io.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sfr_defs.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/iotn2313.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/portpins.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/common.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/version.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/fuse.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/lock.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h \
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/io.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/sfr_defs.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/inttypes.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/stdint.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/iotn2313.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/portpins.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/common.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/version.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/fuse.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/avr/lock.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay.h:
e:\programme\avr\ toolchain\bin\../lib/gcc/avr/4.5.1/../../../../avr/include/util/delay_basic.h: