small changes

develop
Katya 1 year ago
parent 510aa6be06
commit 8086a52104

@ -1,22 +0,0 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Atmel Studio Solution File, Format Version 11.00
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{54F91283-7BC4-4236-8FF9-10F437C3AD48}") = "GccApplication1", "GccApplication1\GccApplication1.cproj", "{DCE6C7E3-EE26-4D79-826B-08594B9AD897}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|AVR = Debug|AVR
Release|AVR = Release|AVR
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.ActiveCfg = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Debug|AVR.Build.0 = Debug|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.ActiveCfg = Release|AVR
{DCE6C7E3-EE26-4D79-826B-08594B9AD897}.Release|AVR.Build.0 = Release|AVR
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal

@ -1,36 +0,0 @@
:100000000C945A000C9477000C9477000C947700B1
:100010000C9477000C9477000C9477000C94770084
:100020000C9477000C9477000C9477000C94770074
:100030000C9477000C9477000C9477000C94770064
:100040000C9477000C9477000C9477000C94770054
:100050000C9477000C9477000C9477000C94770044
:100060000C9477000C9477000C9477000C94770034
:100070000C9477000C9477000C9477000C94770024
:100080000C9477000C9477000C9477000C94770014
:100090000C9477000C9477000C9477000C94770004
:1000A0000C9477000C9477000C9477000C947700F4
:1000B0000C94770011241FBECFEFD8E0DEBFCDBF78
:1000C00011E0A0E0B1E0E8E1F2E002C005900D929D
:1000D000AC30B107D9F721E0ACE0B1E001C01D922E
:1000E000AC30B207E1F70E948F000C940A010C9427
:1000F00000003C9A44982FEF81EE94E0215080401C
:100100009040E1F700C000003C982FEF81EE94E0B2
:10011000215080409040E1F700C000000895CF9347
:10012000DF93CDB7DEB72C970FB6F894DEBF0FBEC6
:10013000CDBF8CE0E0E0F1E0DE01119601900D9280
:100140008A95E1F783E08AB98BB917B818B8699A2C
:100150006A98729888E090E00E94F70078940E9474
:10016000D4006E012DE0C20ED11C0E947900339B99
:10017000FCCF719A8FEF93EDE0E381509040E04027
:10018000E1F700C000008E010F5F1F4FF801F190F2
:100190008F018F2D0E9402018F2D0E94DE000C1511
:1001A0001D05A1F77198E1CF6A9A729A6B9A87B18F
:1001B000866087B980E58093AC000895429880936B
:1001C000AE008091AD00882384F0EDEAF0E0719AF2
:1001D0002FEF81EE94E0215080409040E1F700C085
:1001E000000071988081882394F7429A08951092B4
:1001F000C5008093C40088E18093C1008EE08093A5
:10020000C2000895E0ECF0E0908195FFFDCF80936F
:08021000C6000895F894FFCF29
:0C021800014E20280100019C402801013B
:00000001FF

@ -1,385 +0,0 @@
GccApplication1.elf: file format elf32-avr
Sections:
Idx Name Size VMA LMA File off Algn
0 .data 0000000c 00800100 00000218 0000028c 2**0
CONTENTS, ALLOC, LOAD, DATA
1 .text 00000218 00000000 00000000 00000074 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
2 .comment 00000030 00000000 00000000 00000298 2**0
CONTENTS, READONLY
3 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 000002c8 2**2
CONTENTS, READONLY
4 .debug_aranges 00000088 00000000 00000000 00000308 2**0
CONTENTS, READONLY, DEBUGGING
5 .debug_info 00000d91 00000000 00000000 00000390 2**0
CONTENTS, READONLY, DEBUGGING
6 .debug_abbrev 00000b49 00000000 00000000 00001121 2**0
CONTENTS, READONLY, DEBUGGING
7 .debug_line 00000601 00000000 00000000 00001c6a 2**0
CONTENTS, READONLY, DEBUGGING
8 .debug_frame 000000cc 00000000 00000000 0000226c 2**2
CONTENTS, READONLY, DEBUGGING
9 .debug_str 0000054c 00000000 00000000 00002338 2**0
CONTENTS, READONLY, DEBUGGING
10 .debug_loc 000001f6 00000000 00000000 00002884 2**0
CONTENTS, READONLY, DEBUGGING
11 .debug_ranges 00000058 00000000 00000000 00002a7a 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
00000000 <__vectors>:
0: 0c 94 5a 00 jmp 0xb4 ; 0xb4 <__ctors_end>
4: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
8: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
10: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
14: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
18: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
1c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
20: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
24: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
28: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
2c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
30: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
34: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
38: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
3c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
40: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
44: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
48: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
4c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
50: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
54: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
58: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
5c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
60: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
64: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
68: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
6c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
70: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
74: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
78: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
7c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
80: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
84: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
88: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
8c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
90: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
94: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
98: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
9c: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
a0: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
a4: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
a8: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
ac: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
b0: 0c 94 77 00 jmp 0xee ; 0xee <__bad_interrupt>
000000b4 <__ctors_end>:
b4: 11 24 eor r1, r1
b6: 1f be out 0x3f, r1 ; 63
b8: cf ef ldi r28, 0xFF ; 255
ba: d8 e0 ldi r29, 0x08 ; 8
bc: de bf out 0x3e, r29 ; 62
be: cd bf out 0x3d, r28 ; 61
000000c0 <__do_copy_data>:
c0: 11 e0 ldi r17, 0x01 ; 1
c2: a0 e0 ldi r26, 0x00 ; 0
c4: b1 e0 ldi r27, 0x01 ; 1
c6: e8 e1 ldi r30, 0x18 ; 24
c8: f2 e0 ldi r31, 0x02 ; 2
ca: 02 c0 rjmp .+4 ; 0xd0 <__do_copy_data+0x10>
cc: 05 90 lpm r0, Z+
ce: 0d 92 st X+, r0
d0: ac 30 cpi r26, 0x0C ; 12
d2: b1 07 cpc r27, r17
d4: d9 f7 brne .-10 ; 0xcc <__do_copy_data+0xc>
000000d6 <__do_clear_bss>:
d6: 21 e0 ldi r18, 0x01 ; 1
d8: ac e0 ldi r26, 0x0C ; 12
da: b1 e0 ldi r27, 0x01 ; 1
dc: 01 c0 rjmp .+2 ; 0xe0 <.do_clear_bss_start>
000000de <.do_clear_bss_loop>:
de: 1d 92 st X+, r1
000000e0 <.do_clear_bss_start>:
e0: ac 30 cpi r26, 0x0C ; 12
e2: b2 07 cpc r27, r18
e4: e1 f7 brne .-8 ; 0xde <.do_clear_bss_loop>
e6: 0e 94 8f 00 call 0x11e ; 0x11e <main>
ea: 0c 94 0a 01 jmp 0x214 ; 0x214 <_exit>
000000ee <__bad_interrupt>:
ee: 0c 94 00 00 jmp 0 ; 0x0 <__vectors>
000000f2 <STMReset>:
}
}
}
void STMReset() {
DDRC |= (1 << PINC4);
f2: 3c 9a sbi 0x07, 4 ; 7
PORTC &= ~(1 << PINC4);
f4: 44 98 cbi 0x08, 4 ; 8
#else
//round up by default
__ticks_dc = (uint32_t)(ceil(fabs(__tmp)));
#endif
__builtin_avr_delay_cycles(__ticks_dc);
f6: 2f ef ldi r18, 0xFF ; 255
f8: 81 ee ldi r24, 0xE1 ; 225
fa: 94 e0 ldi r25, 0x04 ; 4
fc: 21 50 subi r18, 0x01 ; 1
fe: 80 40 sbci r24, 0x00 ; 0
100: 90 40 sbci r25, 0x00 ; 0
102: e1 f7 brne .-8 ; 0xfc <STMReset+0xa>
104: 00 c0 rjmp .+0 ; 0x106 <STMReset+0x14>
106: 00 00 nop
_delay_ms(100);
DDRC &= ~(1 << PINC4);
108: 3c 98 cbi 0x07, 4 ; 7
10a: 2f ef ldi r18, 0xFF ; 255
10c: 81 ee ldi r24, 0xE1 ; 225
10e: 94 e0 ldi r25, 0x04 ; 4
110: 21 50 subi r18, 0x01 ; 1
112: 80 40 sbci r24, 0x00 ; 0
114: 90 40 sbci r25, 0x00 ; 0
116: e1 f7 brne .-8 ; 0x110 <STMReset+0x1e>
118: 00 c0 rjmp .+0 ; 0x11a <STMReset+0x28>
11a: 00 00 nop
11c: 08 95 ret
0000011e <main>:
//bytes++;
//PORTE = 0;
//}
int main(void)
{
11e: cf 93 push r28
120: df 93 push r29
122: cd b7 in r28, 0x3d ; 61
124: de b7 in r29, 0x3e ; 62
126: 2c 97 sbiw r28, 0x0c ; 12
128: 0f b6 in r0, 0x3f ; 63
12a: f8 94 cli
12c: de bf out 0x3e, r29 ; 62
12e: 0f be out 0x3f, r0 ; 63
130: cd bf out 0x3d, r28 ; 61
uint8_t data_to_send[] = {0x01, 0x4E, 0x20, 0x28, 0x01, 0x00, 0x01, 0x9C, 0x40, 0x28, 0x01, 0x01};
132: 8c e0 ldi r24, 0x0C ; 12
134: e0 e0 ldi r30, 0x00 ; 0
136: f1 e0 ldi r31, 0x01 ; 1
138: de 01 movw r26, r28
13a: 11 96 adiw r26, 0x01 ; 1
13c: 01 90 ld r0, Z+
13e: 0d 92 st X+, r0
140: 8a 95 dec r24
142: e1 f7 brne .-8 ; 0x13c <main+0x1e>
DDRD = 3; // USART PD0, PD1
144: 83 e0 ldi r24, 0x03 ; 3
146: 8a b9 out 0x0a, r24 ; 10
PORTD = 3;
148: 8b b9 out 0x0b, r24 ; 11
///////////////////////////////
//STM NRST
DDRC = 0;
14a: 17 b8 out 0x07, r1 ; 7
PORTC = 0;
14c: 18 b8 out 0x08, r1 ; 8
///////////////////////////////
DDRE |= (1 << PORTE1);
14e: 69 9a sbi 0x0d, 1 ; 13
DDRE &= ~(1 << PORTE2);
150: 6a 98 cbi 0x0d, 2 ; 13
PORTE &= ~(1 << PORTE2);
152: 72 98 cbi 0x0e, 2 ; 14
//PORTE = 2;
USART_Init(8); // óñòàíîâêà ñêîðîñòè 115200: (16 000 000 / (16 * 115 200) ) - 1, U2X = 0
154: 88 e0 ldi r24, 0x08 ; 8
156: 90 e0 ldi r25, 0x00 ; 0
158: 0e 94 f7 00 call 0x1ee ; 0x1ee <USART_Init>
sei();
15c: 78 94 sei
// -----SPI-----
SPI_MasterInit();
15e: 0e 94 d4 00 call 0x1a8 ; 0x1a8 <SPI_MasterInit>
162: 6e 01 movw r12, r28
164: 2d e0 ldi r18, 0x0D ; 13
166: c2 0e add r12, r18
168: d1 1c adc r13, r1
//PORTE &= ~(1 << PORTE1); // STATUS âûêë
//for (uint8_t i = 0; i < 12; i++) {
//USART_Transmit(data_to_send[i]);
//}
// $05$4E$20$28$01$00$03$9C$40$28$01$01
STMReset();
16a: 0e 94 79 00 call 0xf2 ; 0xf2 <STMReset>
//_delay_ms(100);
//PORTE &= ~(1 << PORTE1); // STATUS âûêë
//
//PORTE |= (1 << PORTE1); // STATUS âêë
if ((PINC)&(1<<PORTC3)) { // STM ãîòîâ ê ïðèåìó
16e: 33 9b sbis 0x06, 3 ; 6
170: fc cf rjmp .-8 ; 0x16a <main+0x4c>
PORTE |= (1 << PORTE1); // STATUS âêë
172: 71 9a sbi 0x0e, 1 ; 14
174: 8f ef ldi r24, 0xFF ; 255
176: 93 ed ldi r25, 0xD3 ; 211
178: e0 e3 ldi r30, 0x30 ; 48
17a: 81 50 subi r24, 0x01 ; 1
17c: 90 40 sbci r25, 0x00 ; 0
17e: e0 40 sbci r30, 0x00 ; 0
180: e1 f7 brne .-8 ; 0x17a <main+0x5c>
182: 00 c0 rjmp .+0 ; 0x184 <main+0x66>
184: 00 00 nop
186: 8e 01 movw r16, r28
188: 0f 5f subi r16, 0xFF ; 255
18a: 1f 4f sbci r17, 0xFF ; 255
_delay_ms(1000);
for (int i = 0; i < 12; i++) {
USART_Transmit(data_to_send[i]);
18c: f8 01 movw r30, r16
18e: f1 90 ld r15, Z+
190: 8f 01 movw r16, r30
192: 8f 2d mov r24, r15
194: 0e 94 02 01 call 0x204 ; 0x204 <USART_Transmit>
SPI_MasterTransmit(data_to_send[i]);
198: 8f 2d mov r24, r15
19a: 0e 94 de 00 call 0x1bc ; 0x1bc <SPI_MasterTransmit>
//PORTE |= (1 << PORTE1); // STATUS âêë
if ((PINC)&(1<<PORTC3)) { // STM ãîòîâ ê ïðèåìó
PORTE |= (1 << PORTE1); // STATUS âêë
_delay_ms(1000);
for (int i = 0; i < 12; i++) {
19e: 0c 15 cp r16, r12
1a0: 1d 05 cpc r17, r13
1a2: a1 f7 brne .-24 ; 0x18c <main+0x6e>
USART_Transmit(data_to_send[i]);
SPI_MasterTransmit(data_to_send[i]);
}
PORTE &= ~(1 << PORTE1); // STATUS âûêë
1a4: 71 98 cbi 0x0e, 1 ; 14
1a6: e1 cf rjmp .-62 ; 0x16a <main+0x4c>
000001a8 <SPI_MasterInit>:
*/
#include "spi.h"
void SPI_MasterInit(void) {
// Íàñòðîéêà ïèíà SS (PB2) êàê âûõîäà
DDRE |= (1 << PORTE2);
1a8: 6a 9a sbi 0x0d, 2 ; 13
// Óñòàíîâêà SS â âûñîêîå ñîñòîÿíèå (íåàêòèâíûé)
PORTE |= (1 << PORTE2);
1aa: 72 9a sbi 0x0e, 2 ; 14
/* Set MOSI, SS and SCK output */
DDRE |= (1 << MOSI);
1ac: 6b 9a sbi 0x0d, 3 ; 13
DDRC |= (1 << SCK) | (1 << SS);
1ae: 87 b1 in r24, 0x07 ; 7
1b0: 86 60 ori r24, 0x06 ; 6
1b2: 87 b9 out 0x07, r24 ; 7
/* Enable SPI, Master */
SPCR1 = (1 << SPE1) | (1 << MSTR1);
1b4: 80 e5 ldi r24, 0x50 ; 80
1b6: 80 93 ac 00 sts 0x00AC, r24 ; 0x8000ac <__TEXT_REGION_LENGTH__+0x7f80ac>
1ba: 08 95 ret
000001bc <SPI_MasterTransmit>:
}
void SPI_MasterTransmit(uint8_t data) {
PORTC &= ~(1 << PORTC2); // íà÷àëî ïåðåäà÷è - íèçêèé óðîâåíü
1bc: 42 98 cbi 0x08, 2 ; 8
SPDR1 = data;
1be: 80 93 ae 00 sts 0x00AE, r24 ; 0x8000ae <__TEXT_REGION_LENGTH__+0x7f80ae>
while(!(SPSR1 & (1<<SPIF1))) {
1c2: 80 91 ad 00 lds r24, 0x00AD ; 0x8000ad <__TEXT_REGION_LENGTH__+0x7f80ad>
1c6: 88 23 and r24, r24
1c8: 84 f0 brlt .+32 ; 0x1ea <SPI_MasterTransmit+0x2e>
1ca: ed ea ldi r30, 0xAD ; 173
1cc: f0 e0 ldi r31, 0x00 ; 0
PORTE |= (1 << PORTE1); // STATUS âêë
1ce: 71 9a sbi 0x0e, 1 ; 14
1d0: 2f ef ldi r18, 0xFF ; 255
1d2: 81 ee ldi r24, 0xE1 ; 225
1d4: 94 e0 ldi r25, 0x04 ; 4
1d6: 21 50 subi r18, 0x01 ; 1
1d8: 80 40 sbci r24, 0x00 ; 0
1da: 90 40 sbci r25, 0x00 ; 0
1dc: e1 f7 brne .-8 ; 0x1d6 <SPI_MasterTransmit+0x1a>
1de: 00 c0 rjmp .+0 ; 0x1e0 <SPI_MasterTransmit+0x24>
1e0: 00 00 nop
_delay_ms(100);
PORTE &= ~(1 << PORTE1); // STATUS âûêë
1e2: 71 98 cbi 0x0e, 1 ; 14
}
void SPI_MasterTransmit(uint8_t data) {
PORTC &= ~(1 << PORTC2); // íà÷àëî ïåðåäà÷è - íèçêèé óðîâåíü
SPDR1 = data;
while(!(SPSR1 & (1<<SPIF1))) {
1e4: 80 81 ld r24, Z
1e6: 88 23 and r24, r24
1e8: 94 f7 brge .-28 ; 0x1ce <SPI_MasterTransmit+0x12>
PORTE |= (1 << PORTE1); // STATUS âêë
_delay_ms(100);
PORTE &= ~(1 << PORTE1); // STATUS âûêë
}
PORTC |= (1 << PORTC2); // êîíåö ïåðåäà÷è - âûñîêèé óðîâåíü
1ea: 42 9a sbi 0x08, 2 ; 8
1ec: 08 95 ret
000001ee <USART_Init>:
#include "usart0.h"
void USART_Init (uint16_t speed) {
// Ñò. è ìë. ñêîðîñòü
UBRR0H = 0;
1ee: 10 92 c5 00 sts 0x00C5, r1 ; 0x8000c5 <__TEXT_REGION_LENGTH__+0x7f80c5>
UBRR0L = (uint8_t)(speed);
1f2: 80 93 c4 00 sts 0x00C4, r24 ; 0x8000c4 <__TEXT_REGION_LENGTH__+0x7f80c4>
// Ïðåðûâàíèÿ ïðè ïðèåìå, âêë ïðèåì/ïåðåäà÷à
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
1f6: 88 e1 ldi r24, 0x18 ; 24
1f8: 80 93 c1 00 sts 0x00C1, r24 ; 0x8000c1 <__TEXT_REGION_LENGTH__+0x7f80c1>
// 8 áèò äàííûõ, 2 ñòîï-áèòà
UCSR0C = (1<<USBS0) | (3<<UCSZ00);
1fc: 8e e0 ldi r24, 0x0E ; 14
1fe: 80 93 c2 00 sts 0x00C2, r24 ; 0x8000c2 <__TEXT_REGION_LENGTH__+0x7f80c2>
202: 08 95 ret
00000204 <USART_Transmit>:
}
void USART_Transmit (uint8_t data) {
while (!(UCSR0A & (1<<UDRE0))); // Îæèäàíèå êîíöà ïåðåäà÷è
204: e0 ec ldi r30, 0xC0 ; 192
206: f0 e0 ldi r31, 0x00 ; 0
208: 90 81 ld r25, Z
20a: 95 ff sbrs r25, 5
20c: fd cf rjmp .-6 ; 0x208 <USART_Transmit+0x4>
UDR0 = data; // Íà÷àëî ïåðåäà÷è
20e: 80 93 c6 00 sts 0x00C6, r24 ; 0x8000c6 <__TEXT_REGION_LENGTH__+0x7f80c6>
212: 08 95 ret
00000214 <_exit>:
214: f8 94 cli
00000216 <__stop_program>:
216: ff cf rjmp .-2 ; 0x216 <__stop_program>

@ -1,549 +0,0 @@
Archive member included to satisfy reference by file (symbol)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o (exit)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
Discarded input sections
.data 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.bss 0x00000000 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.text 0x00000000 0x0 delay.o
.data 0x00000000 0x0 delay.o
.bss 0x00000000 0x0 delay.o
.text.delay8 0x00000000 0xa delay.o
.text.delay16 0x00000000 0xe delay.o
.text.init_PUTR
0x00000000 0x6 delay.o
.text.PUTR 0x00000000 0x94 delay.o
.debug_info 0x00000000 0x19a delay.o
.debug_abbrev 0x00000000 0xf1 delay.o
.debug_loc 0x00000000 0x112 delay.o
.debug_aranges
0x00000000 0x38 delay.o
.debug_ranges 0x00000000 0x28 delay.o
.debug_line 0x00000000 0x148 delay.o
.debug_str 0x00000000 0x1a4 delay.o
.comment 0x00000000 0x31 delay.o
.debug_frame 0x00000000 0x78 delay.o
.text 0x00000000 0x0 main.o
.data 0x00000000 0x0 main.o
.bss 0x00000000 0x0 main.o
.bss.bytes 0x00000000 0x2 main.o
.text 0x00000000 0x0 spi.o
.data 0x00000000 0x0 spi.o
.bss 0x00000000 0x0 spi.o
.text 0x00000000 0x0 usart0.o
.data 0x00000000 0x0 usart0.o
.bss 0x00000000 0x0 usart0.o
.text.USART_Receive
0x00000000 0x10 usart0.o
.text.USART_DataAvailable
0x00000000 0xc usart0.o
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.fixed
0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
Memory Configuration
Name Origin Length Attributes
text 0x00000000 0x00008000 xr
data 0x00800100 0x00000800 rw !x
eeprom 0x00810000 0x00000400 rw !x
fuse 0x00820000 0x00000003 rw !x
lock 0x00830000 0x00000400 rw !x
signature 0x00840000 0x00000400 rw !x
user_signatures 0x00850000 0x00000400 rw !x
*default* 0x00000000 0xffffffff
Linker script and memory map
Address of section .data set to 0x800100
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
LOAD delay.o
LOAD main.o
LOAD spi.o
LOAD usart0.o
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a
END GROUP
START GROUP
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libm.a
LOAD c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr5\libc.a
LOAD C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5\libatmega328pb.a
END GROUP
[0x00000000] __TEXT_REGION_ORIGIN__ = DEFINED (__TEXT_REGION_ORIGIN__)?__TEXT_REGION_ORIGIN__:0x0
[0x00800100] __DATA_REGION_ORIGIN__ = DEFINED (__DATA_REGION_ORIGIN__)?__DATA_REGION_ORIGIN__:0x800060
[0x00008000] __TEXT_REGION_LENGTH__ = DEFINED (__TEXT_REGION_LENGTH__)?__TEXT_REGION_LENGTH__:0x20000
[0x00000800] __DATA_REGION_LENGTH__ = DEFINED (__DATA_REGION_LENGTH__)?__DATA_REGION_LENGTH__:0xffa0
[0x00000400] __EEPROM_REGION_LENGTH__ = DEFINED (__EEPROM_REGION_LENGTH__)?__EEPROM_REGION_LENGTH__:0x10000
[0x00000003] __FUSE_REGION_LENGTH__ = DEFINED (__FUSE_REGION_LENGTH__)?__FUSE_REGION_LENGTH__:0x400
0x00000400 __LOCK_REGION_LENGTH__ = DEFINED (__LOCK_REGION_LENGTH__)?__LOCK_REGION_LENGTH__:0x400
0x00000400 __SIGNATURE_REGION_LENGTH__ = DEFINED (__SIGNATURE_REGION_LENGTH__)?__SIGNATURE_REGION_LENGTH__:0x400
0x00000400 __USER_SIGNATURE_REGION_LENGTH__ = DEFINED (__USER_SIGNATURE_REGION_LENGTH__)?__USER_SIGNATURE_REGION_LENGTH__:0x400
.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 0x218
*(.vectors)
.vectors 0x00000000 0xb4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
0x00000000 __vector_default
0x00000000 __vectors
*(.vectors)
*(.progmem.gcc*)
0x000000b4 . = ALIGN (0x2)
0x000000b4 __trampolines_start = .
*(.trampolines)
.trampolines 0x000000b4 0x0 linker stubs
*(.trampolines*)
0x000000b4 __trampolines_end = .
*libprintf_flt.a:*(.progmem.data)
*libc.a:*(.progmem.data)
*(.progmem*)
0x000000b4 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
0x000000b4 __ctors_start = .
*(.ctors)
0x000000b4 __ctors_end = .
0x000000b4 __dtors_start = .
*(.dtors)
0x000000b4 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.init0)
.init0 0x000000b4 0x0 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
0x000000b4 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000000b4 0xc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x000000c0 0x16 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_copy_data.o)
0x000000c0 __do_copy_data
.init4 0x000000d6 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_clear_bss.o)
0x000000d6 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000e6 0x8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
*(.init9)
*(.text)
.text 0x000000ee 0x4 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
0x000000ee __vector_38
0x000000ee __vector_22
0x000000ee __vector_28
0x000000ee __vector_1
0x000000ee __vector_32
0x000000ee __vector_34
0x000000ee __vector_24
0x000000ee __vector_12
0x000000ee __bad_interrupt
0x000000ee __vector_6
0x000000ee __vector_31
0x000000ee __vector_35
0x000000ee __vector_39
0x000000ee __vector_3
0x000000ee __vector_23
0x000000ee __vector_30
0x000000ee __vector_25
0x000000ee __vector_11
0x000000ee __vector_13
0x000000ee __vector_17
0x000000ee __vector_19
0x000000ee __vector_7
0x000000ee __vector_41
0x000000ee __vector_43
0x000000ee __vector_27
0x000000ee __vector_5
0x000000ee __vector_33
0x000000ee __vector_37
0x000000ee __vector_4
0x000000ee __vector_44
0x000000ee __vector_9
0x000000ee __vector_2
0x000000ee __vector_21
0x000000ee __vector_15
0x000000ee __vector_36
0x000000ee __vector_29
0x000000ee __vector_40
0x000000ee __vector_8
0x000000ee __vector_26
0x000000ee __vector_14
0x000000ee __vector_10
0x000000ee __vector_16
0x000000ee __vector_18
0x000000ee __vector_20
0x000000ee __vector_42
0x000000f2 . = ALIGN (0x2)
*(.text.*)
.text.STMReset
0x000000f2 0x2c main.o
0x000000f2 STMReset
.text.main 0x0000011e 0x8a main.o
0x0000011e main
.text.SPI_MasterInit
0x000001a8 0x14 spi.o
0x000001a8 SPI_MasterInit
.text.SPI_MasterTransmit
0x000001bc 0x32 spi.o
0x000001bc SPI_MasterTransmit
.text.USART_Init
0x000001ee 0x16 usart0.o
0x000001ee USART_Init
.text.USART_Transmit
0x00000204 0x10 usart0.o
0x00000204 USART_Transmit
0x00000214 . = ALIGN (0x2)
*(.fini9)
.fini9 0x00000214 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
0x00000214 _exit
0x00000214 exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x00000214 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avr5\libgcc.a(_exit.o)
*(.fini0)
0x00000218 _etext = .
.data 0x00800100 0xc load address 0x00000218
0x00800100 PROVIDE (__data_start, .)
*(.data)
*(.data*)
*(.gnu.linkonce.d*)
*(.rodata)
.rodata 0x00800100 0xc main.o
*(.rodata*)
*(.gnu.linkonce.r*)
0x0080010c . = ALIGN (0x2)
0x0080010c _edata = .
0x0080010c PROVIDE (__data_end, .)
.bss 0x0080010c 0x0
0x0080010c PROVIDE (__bss_start, .)
*(.bss)
*(.bss*)
*(COMMON)
0x0080010c PROVIDE (__bss_end, .)
0x00000218 __data_load_start = LOADADDR (.data)
0x00000224 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x0080010c 0x0
[!provide] PROVIDE (__noinit_start, .)
*(.noinit*)
[!provide] PROVIDE (__noinit_end, .)
0x0080010c _end = .
[!provide] PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
.fuse
*(.fuse)
*(.lfuse)
*(.hfuse)
*(.efuse)
.lock
*(.lock*)
.signature
*(.signature*)
.user_signatures
*(.user_signatures*)
.stab
*(.stab)
.stabstr
*(.stabstr)
.stab.excl
*(.stab.excl)
.stab.exclstr
*(.stab.exclstr)
.stab.index
*(.stab.index)
.stab.indexstr
*(.stab.indexstr)
.comment 0x00000000 0x30
*(.comment)
.comment 0x00000000 0x30 main.o
0x31 (size before relaxing)
.comment 0x00000030 0x31 spi.o
.comment 0x00000030 0x31 usart0.o
.note.gnu.avr.deviceinfo
0x00000000 0x40
.note.gnu.avr.deviceinfo
0x00000000 0x40 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.note.gnu.build-id
*(.note.gnu.build-id)
.debug
*(.debug)
.line
*(.line)
.debug_srcinfo
*(.debug_srcinfo)
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x88
*(.debug_aranges)
.debug_aranges
0x00000000 0x28 main.o
.debug_aranges
0x00000028 0x28 spi.o
.debug_aranges
0x00000050 0x38 usart0.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0xd91
*(.debug_info .gnu.linkonce.wi.*)
.debug_info 0x00000000 0x8ea C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.debug_info 0x000008ea 0x274 main.o
.debug_info 0x00000b5e 0x130 spi.o
.debug_info 0x00000c8e 0x103 usart0.o
.debug_abbrev 0x00000000 0xb49
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x86e C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.debug_abbrev 0x0000086e 0x174 main.o
.debug_abbrev 0x000009e2 0xde spi.o
.debug_abbrev 0x00000ac0 0x89 usart0.o
.debug_line 0x00000000 0x601
*(.debug_line .debug_line.* .debug_line_end)
.debug_line 0x00000000 0x1a6 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.debug_line 0x000001a6 0x1d2 main.o
.debug_line 0x00000378 0x162 spi.o
.debug_line 0x000004da 0x127 usart0.o
.debug_frame 0x00000000 0xcc
*(.debug_frame)
.debug_frame 0x00000000 0x44 main.o
.debug_frame 0x00000044 0x34 spi.o
.debug_frame 0x00000078 0x54 usart0.o
.debug_str 0x00000000 0x54c
*(.debug_str)
.debug_str 0x00000000 0x318 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/gcc/dev/atmega328pb/avr5/crtatmega328pb.o
.debug_str 0x00000318 0x1e5 main.o
0x21e (size before relaxing)
.debug_str 0x000004fd 0x10 spi.o
0x1de (size before relaxing)
.debug_str 0x0000050d 0x3f usart0.o
0x1bf (size before relaxing)
.debug_loc 0x00000000 0x1f6
*(.debug_loc)
.debug_loc 0x00000000 0x169 main.o
.debug_loc 0x00000169 0x67 spi.o
.debug_loc 0x000001d0 0x26 usart0.o
.debug_macinfo
*(.debug_macinfo)
.debug_weaknames
*(.debug_weaknames)
.debug_funcnames
*(.debug_funcnames)
.debug_typenames
*(.debug_typenames)
.debug_varnames
*(.debug_varnames)
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x58
*(.debug_ranges)
.debug_ranges 0x00000000 0x18 main.o
.debug_ranges 0x00000018 0x18 spi.o
.debug_ranges 0x00000030 0x28 usart0.o
.debug_macro
*(.debug_macro)
OUTPUT(GccApplication1.elf elf32-avr)
LOAD linker stubs

@ -1,37 +0,0 @@
S01700004763634170706C69636174696F6E312E737265635B
S11300000C945A000C9477000C9477000C947700AD
S11300100C9477000C9477000C9477000C94770080
S11300200C9477000C9477000C9477000C94770070
S11300300C9477000C9477000C9477000C94770060
S11300400C9477000C9477000C9477000C94770050
S11300500C9477000C9477000C9477000C94770040
S11300600C9477000C9477000C9477000C94770030
S11300700C9477000C9477000C9477000C94770020
S11300800C9477000C9477000C9477000C94770010
S11300900C9477000C9477000C9477000C94770000
S11300A00C9477000C9477000C9477000C947700F0
S11300B00C94770011241FBECFEFD8E0DEBFCDBF74
S11300C011E0A0E0B1E0E8E1F2E002C005900D9299
S11300D0AC30B107D9F721E0ACE0B1E001C01D922A
S11300E0AC30B207E1F70E948F000C940A010C9423
S11300F000003C9A44982FEF81EE94E02150804018
S11301009040E1F700C000003C982FEF81EE94E0AE
S1130110215080409040E1F700C000000895CF9343
S1130120DF93CDB7DEB72C970FB6F894DEBF0FBEC2
S1130130CDBF8CE0E0E0F1E0DE01119601900D927C
S11301408A95E1F783E08AB98BB917B818B8699A28
S11301506A98729888E090E00E94F70078940E9470
S1130160D4006E012DE0C20ED11C0E947900339B95
S1130170FCCF719A8FEF93EDE0E381509040E04023
S1130180E1F700C000008E010F5F1F4FF801F190EE
S11301908F018F2D0E9402018F2D0E94DE000C150D
S11301A01D05A1F77198E1CF6A9A729A6B9A87B18B
S11301B0866087B980E58093AC0008954298809367
S11301C0AE008091AD00882384F0EDEAF0E0719AEE
S11301D02FEF81EE94E0215080409040E1F700C081
S11301E0000071988081882394F7429A08951092B0
S11301F0C5008093C40088E18093C1008EE08093A1
S1130200C2000895E0ECF0E0908195FFFDCF80936B
S10B0210C6000895F894FFCF25
S10F0218014E20280100019C4028010137
S9030000FC

@ -1,163 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit!
################################################################################
SHELL := cmd.exe
RM := rm -rf
USER_OBJS :=
LIBS :=
PROJ :=
O_SRCS :=
C_SRCS :=
S_SRCS :=
S_UPPER_SRCS :=
OBJ_SRCS :=
ASM_SRCS :=
PREPROCESSING_SRCS :=
OBJS :=
OBJS_AS_ARGS :=
C_DEPS :=
C_DEPS_AS_ARGS :=
EXECUTABLES :=
OUTPUT_FILE_PATH :=
OUTPUT_FILE_PATH_AS_ARGS :=
AVR_APP_PATH :=$$$AVR_APP_PATH$$$
QUOTE := "
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:=
LIB_DEP:=
LINKER_SCRIPT_DEP:=
# Every subdirectory with source files must be described here
SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../delay.c \
../main.c \
../spi.c \
../usart0.c
PREPROCESSING_SRCS +=
ASM_SRCS +=
OBJS += \
delay.o \
main.o \
spi.o \
usart0.o
OBJS_AS_ARGS += \
delay.o \
main.o \
spi.o \
usart0.o
C_DEPS += \
delay.d \
main.d \
spi.d \
usart0.d
C_DEPS_AS_ARGS += \
delay.d \
main.d \
spi.d \
usart0.d
OUTPUT_FILE_PATH +=GccApplication1.elf
OUTPUT_FILE_PATH_AS_ARGS +=GccApplication1.elf
ADDITIONAL_DEPENDENCIES:=
OUTPUT_FILE_DEP:= ./makedep.mk
LIB_DEP+=
LINKER_SCRIPT_DEP+=
# AVR32/GNU C Compiler
./delay.o: .././delay.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328pb -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
./main.o: .././main.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328pb -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
./spi.o: .././spi.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328pb -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
./usart0.o: .././usart0.c
@echo Building file: $<
@echo Invoking: AVR/GNU C Compiler : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -x c -funsigned-char -funsigned-bitfields -DDEBUG -I"C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include" -O1 -ffunction-sections -fdata-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega328pb -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb" -c -std=gnu99 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o "$@" "$<"
@echo Finished building: $<
# AVR32/GNU Preprocessing Assembler
# AVR32/GNU Assembler
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(C_DEPS)),)
-include $(C_DEPS)
endif
endif
# Add inputs and outputs from these tool invocations to the build variables
# All Target
all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES)
$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) $(LINKER_SCRIPT_DEP)
@echo Building target: $@
@echo Invoking: AVR/GNU Linker : 5.4.0
$(QUOTE)C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-gcc.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="GccApplication1.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=atmega328pb -B "C:\Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb"
@echo Finished building target: $@
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "GccApplication1.elf" "GccApplication1.hex"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "GccApplication1.elf" "GccApplication1.eep" || exit 0
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "GccApplication1.elf" > "GccApplication1.lss"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature -R .user_signatures "GccApplication1.elf" "GccApplication1.srec"
"C:\Program Files (x86)\Atmel\Studio\7.0\toolchain\avr8\avr8-gnu-toolchain\bin\avr-size.exe" "GccApplication1.elf"
# Other Targets
clean:
-$(RM) $(OBJS_AS_ARGS) $(EXECUTABLES)
-$(RM) $(C_DEPS_AS_ARGS)
rm -rf "GccApplication1.elf" "GccApplication1.a" "GccApplication1.hex" "GccApplication1.lss" "GccApplication1.eep" "GccApplication1.map" "GccApplication1.srec" "GccApplication1.usersignatures"

@ -1,39 +0,0 @@
delay.d delay.o: .././delay.c .././delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\cpufunc.h
.././delay.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\cpufunc.h:

@ -1,65 +0,0 @@
main.d main.o: .././main.c .././main.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
.././usart0.h .././spi.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h
.././main.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
.././usart0.h:
.././spi.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

@ -1,12 +0,0 @@
################################################################################
# Automatically-generated file. Do not edit or delete the file
################################################################################
delay.c
main.c
spi.c
usart0.c

@ -1,65 +0,0 @@
spi.d spi.o: .././spi.c .././spi.h .././main.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
.././usart0.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h
.././spi.h:
.././main.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
.././usart0.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

@ -1,65 +0,0 @@
usart0.d usart0.o: .././usart0.c .././usart0.h .././main.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h \
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h \
.././spi.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h \
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h
.././usart0.h:
.././main.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\io.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\sfr_defs.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\inttypes.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdint.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdint.h:
C:\Program\ Files\ (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include/avr/iom328pb.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\portpins.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\common.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\version.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\fuse.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\lock.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\avr\interrupt.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdio.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stdarg.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\lib\gcc\avr\5.4.0\include\stddef.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\stdlib.h:
.././spi.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\util\delay_basic.h:
c:\program\ files\ (x86)\atmel\studio\7.0\toolchain\avr8\avr8-gnu-toolchain\avr\include\math.h:

@ -1,86 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Store xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="AtmelPackComponentManagement">
<ProjectComponents>
<ProjectComponent z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<CApiVersion></CApiVersion>
<CBundle></CBundle>
<CClass>Device</CClass>
<CGroup>Startup</CGroup>
<CSub></CSub>
<CVariant></CVariant>
<CVendor>Atmel</CVendor>
<CVersion>2.0.0</CVersion>
<DefaultRepoPath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs</DefaultRepoPath>
<DependentComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Description></Description>
<Files xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include\</AbsolutePath>
<Attribute></Attribute>
<Category>include</Category>
<Condition>C</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>include/</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\include\avr\iom328pb.h</AbsolutePath>
<Attribute></Attribute>
<Category>header</Category>
<Condition>C</Condition>
<FileContentHash>ciLFjy803ysEAt1ml/dotQ==</FileContentHash>
<FileVersion></FileVersion>
<Name>include/avr/iom328pb.h</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\templates\main.c</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>rwiL+kQhXb1eoW7Dnm7abg==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.c</Name>
<SelectString>Main file (.c)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\templates\main.cpp</AbsolutePath>
<Attribute>template</Attribute>
<Category>source</Category>
<Condition>C Exe</Condition>
<FileContentHash>mkKaE95TOoATsuBGv6jmxg==</FileContentHash>
<FileVersion></FileVersion>
<Name>templates/main.cpp</Name>
<SelectString>Main file (.cpp)</SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
<d4p1:anyType i:type="FileInfo">
<AbsolutePath>C:/Program Files (x86)\Atmel\Studio\7.0\Packs\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb</AbsolutePath>
<Attribute></Attribute>
<Category>libraryPrefix</Category>
<Condition>GCC</Condition>
<FileContentHash i:nil="true" />
<FileVersion></FileVersion>
<Name>gcc/dev/atmega328pb</Name>
<SelectString></SelectString>
<SourcePath></SourcePath>
</d4p1:anyType>
</Files>
<PackName>ATmega_DFP</PackName>
<PackPath>C:/Program Files (x86)/Atmel/Studio/7.0/Packs/Atmel/ATmega_DFP/2.0.401/Atmel.ATmega_DFP.pdsc</PackPath>
<PackVersion>2.0.401</PackVersion>
<PresentInProject>true</PresentInProject>
<ReferenceConditionId>ATmega328PB</ReferenceConditionId>
<RteComponents xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string></d4p1:string>
</RteComponents>
<Status>Resolved</Status>
<VersionMode>Fixed</VersionMode>
<IsComponentInAtProject>true</IsComponentInAtProject>
</ProjectComponent>
</ProjectComponents>
</Store>

@ -1,177 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="14.0">
<PropertyGroup>
<SchemaVersion>2.0</SchemaVersion>
<ProjectVersion>7.0</ProjectVersion>
<ToolchainName>com.Atmel.AVRGCC8.C</ToolchainName>
<ProjectGuid>dce6c7e3-ee26-4d79-826b-08594b9ad897</ProjectGuid>
<avrdevice>ATmega328PB</avrdevice>
<avrdeviceseries>none</avrdeviceseries>
<OutputType>Executable</OutputType>
<Language>C</Language>
<OutputFileName>$(MSBuildProjectName)</OutputFileName>
<OutputFileExtension>.elf</OutputFileExtension>
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>
<AssemblyName>GccApplication1</AssemblyName>
<Name>GccApplication1</Name>
<RootNamespace>GccApplication1</RootNamespace>
<ToolchainFlavour>Native</ToolchainFlavour>
<KeepTimersRunning>true</KeepTimersRunning>
<OverrideVtor>false</OverrideVtor>
<CacheFlash>true</CacheFlash>
<ProgFlashFromRam>true</ProgFlashFromRam>
<RamSnippetAddress>0x20000000</RamSnippetAddress>
<UncachedRange />
<preserveEEPROM>true</preserveEEPROM>
<OverrideVtorValue>exception_table</OverrideVtorValue>
<BootSegment>2</BootSegment>
<ResetRule>0</ResetRule>
<eraseonlaunchrule>0</eraseonlaunchrule>
<EraseKey />
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<offline-documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.52.0" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtool>com.atmel.avrdbg.tool.ispmk2</avrtool>
<avrtoolserialnumber>0000B809060C</avrtoolserialnumber>
<avrdeviceexpectedsignature>0x1E9516</avrdeviceexpectedsignature>
<com_atmel_avrdbg_tool_stk500>
<ToolOptions>
<InterfaceProperties>
<IspClock>0</IspClock>
</InterfaceProperties>
<InterfaceName>ISP</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.stk500</ToolType>
<ToolNumber>
</ToolNumber>
<ToolName>STK500</ToolName>
</com_atmel_avrdbg_tool_stk500>
<avrtoolinterface>ISP</avrtoolinterface>
<avrtoolinterfaceclock>125000</avrtoolinterfaceclock>
<com_atmel_avrdbg_tool_ispmk2>
<ToolOptions>
<InterfaceProperties>
<IspClock>125000</IspClock>
</InterfaceProperties>
<InterfaceName>ISP</InterfaceName>
</ToolOptions>
<ToolType>com.atmel.avrdbg.tool.ispmk2</ToolType>
<ToolNumber>0000B809060C</ToolNumber>
<ToolName>AVRISP mkII</ToolName>
</com_atmel_avrdbg_tool_ispmk2>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega328pb -B "%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb"</avrgcc.common.Device>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\include\</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize for size (-Os)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\include\</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGcc>
<avrgcc.common.Device>-mmcu=atmega328pb -B "%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\gcc\dev\atmega328pb"</avrgcc.common.Device>
<avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex>
<avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss>
<avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep>
<avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec>
<avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures>
<avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcc.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcc.compiler.symbols.DefSymbols>
<avrgcc.compiler.directories.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\include\</Value>
</ListValues>
</avrgcc.compiler.directories.IncludePaths>
<avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level>
<avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers>
<avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel>
<avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings>
<avrgcc.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcc.linker.libraries.Libraries>
<avrgcc.assembler.general.IncludePaths>
<ListValues>
<Value>%24(PackRepoDir)\Atmel\ATmega_DFP\2.0.401\include\</Value>
</ListValues>
</avrgcc.assembler.general.IncludePaths>
<avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel>
</AvrGcc>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
<Compile Include="delay.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="delay.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="main.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="main.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="spi.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="usart0.c">
<SubType>compile</SubType>
</Compile>
<Compile Include="usart0.h">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>

@ -1,80 +0,0 @@
// delay.c
#include "delay.h"
// íåîïòèìèçèðóåìûå êîìïèëÿòîðîì ôóíêöèè ïðîöåññîðíûõ çàäåðæåê
void delay8(uint8_t ticks)
{
/*
àðõèòåêòðóðà AVR8 (2560, 328pb), ÷àñòîòà = 16 MHz, ïåðèîä 62.5 ns
èñïûòàíî íà êîäå c çàìåðîì îñöèëëîãðàôîì
PORTA |= (1 << 1);
delay8(val);
PORTA &= ~(1 << 1);
ïîëó÷åííàÿ ôîðìóëà çàäåðæêè (ìêñ) = 0,191 * ticks + 1,227, åñëè ticks > 0
0 ticks = 1,38 ìêñ
*/
__asm__ volatile (
"cpc %A0,__zero_reg__ \n\t" \
"breq L_Exit_%= \n\t" \
"L_LOOP_%=: \n\t" \
"subi %A0,1 \n\t" \
"brne L_LOOP_%= \n\t" \
"L_Exit_%=: \n\t" \
: "=w" (ticks) \
: "0" (ticks) \
); \
return;
}
void delay16(uint16_t ticks)
{
/*
àðõèòåêòðóðà AVR8 (2560, 328pb), ÷àñòîòà = 16 MHz, ïåðèîä 62.5 ns
èñïûòàíî íà êîäå c çàìåðîì îñöèëëîãðàôîì
PORTA |= (1 << 1);
delay16(val);
PORTA &= ~(1 << 1);
ïîëó÷åííàÿ ôîðìóëà çàäåðæêè (ìêñ) = 0,250 * ticks + 1,294 , åñëè ticks > 0
0 ticks = 1,44 ìêñ
*/
__asm__ volatile (
"cp %A0,__zero_reg__ \n\t" \
"cpc %B0,__zero_reg__ \n\t" \
"breq L_Exit_%= \n\t" \
"L_LOOP_%=: \n\t" \
"subi %A0,1 \n\t" \
"sbci %B0,0 \n\t" \
"brne L_LOOP_%= \n\t" \
"L_Exit_%=: \n\t" \
: "=w" (ticks) \
: "0" (ticks) \
); \
return;
}
void init_PUTR()
{
DDRC |= 1 << PORTC0;
PORTC |= 1 << PORTC0;
}
void PUTR(uint8_t byte)
{
#define BIT_TICK 35 // 115200
uint8_t bit[8];
for(uint8_t i = 0; i < 8; i++)
bit[i] = (byte >> i) & 0x01;
// transmittion
PORTC &= ~(1 << PORTC0);
delay8(BIT_TICK);
for(uint8_t i = 0; i < 8; i++)
{
if(bit[i] != 0)
PORTC |= 1 << PORTC0;
else
PORTC &= ~(1 << PORTC0);
delay8(BIT_TICK);
}
PORTC |= 1 << PORTC0;
delay8(BIT_TICK);
}

@ -1,14 +0,0 @@
// delay.h
#ifndef DELAY_H_
#define DELAY_H_
#include <avr/io.h>
#include <avr/cpufunc.h>
void delay8(uint8_t);
void delay16(uint16_t);
void init_PUTR();
void PUTR(uint8_t);
#endif

@ -1,83 +0,0 @@
/*
* GccApplication1.c
*
* Created: 11.10.2023 16:40:59
* Author : Katya
*/
#include "main.h"
int bytes = 0;
//ISR (USART0_RX_vect) {
//data_to_send[bytes] = UDR0;
//bytes++;
//PORTE = 0;
//}
int main(void)
{
uint8_t data_to_send[] = {0x01, 0x4E, 0x20, 0x28, 0x01, 0x00, 0x01, 0x9C, 0x40, 0x28, 0x01, 0x01};
DDRD = 3; // USART PD0, PD1
PORTD = 3;
///////////////////////////////
//STM NRST
DDRC = 0;
PORTC = 0;
///////////////////////////////
DDRE |= (1 << PORTE1);
DDRE &= ~(1 << PORTE2);
PORTE &= ~(1 << PORTE2);
//PORTE = 2;
USART_Init(8); // óñòàíîâêà ñêîðîñòè 115200: (16 000 000 / (16 * 115 200) ) - 1, U2X = 0
sei();
// -----SPI-----
SPI_MasterInit();
//_delay_ms(100);
//PORTE |= (1 << PORTE1);
//_delay_ms(100);
//PORTE &= ~(1 << PORTE1); // STATUS âûêë
while (1)
{
//if ((PINC)&(1<<PORTC3)) {
//PORTE |= (1 << PORTE1); // STATUS âêë
//}
//for (uint8_t i = 0; i < 12; i++) {
//data_to_send[i] = USART_Receive();
//}
//PORTE &= ~(1 << PORTE1); // STATUS âûêë
//for (uint8_t i = 0; i < 12; i++) {
//USART_Transmit(data_to_send[i]);
//}
// $05$4E$20$28$01$00$03$9C$40$28$01$01
STMReset();
//PORTE |= (1 << PORTE1);
//_delay_ms(100);
//PORTE &= ~(1 << PORTE1); // STATUS âûêë
//
//PORTE |= (1 << PORTE1); // STATUS âêë
if ((PINC)&(1<<PORTC3)) { // STM ãîòîâ ê ïðèåìó
PORTE |= (1 << PORTE1); // STATUS âêë
_delay_ms(1000);
for (int i = 0; i < 12; i++) {
USART_Transmit(data_to_send[i]);
SPI_MasterTransmit(data_to_send[i]);
}
PORTE &= ~(1 << PORTE1); // STATUS âûêë
}
}
}
void STMReset() {
DDRC |= (1 << PINC4);
PORTC &= ~(1 << PINC4);
_delay_ms(100);
DDRC &= ~(1 << PINC4);
_delay_ms(100);
}

@ -1,23 +0,0 @@
/*
* main.h
*
* Created: 12.10.2023 12:18:13
* Author: Katya
*/
#ifndef MAIN_H_
#define MAIN_H_
#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <stdio.h>
#include <stdlib.h>
#include "usart0.h"
#include "spi.h"
#include <util/delay.h>
void STMReset();
#endif /* MAIN_H_ */

@ -1,32 +0,0 @@
/*
* spi.c
*
* Created: 13.10.2023 11:03:48
* Author: Katya
*/
#include "spi.h"
void SPI_MasterInit(void) {
// Íàñòðîéêà ïèíà SS (PB2) êàê âûõîäà
DDRE |= (1 << PORTE2);
// Óñòàíîâêà SS â âûñîêîå ñîñòîÿíèå (íåàêòèâíûé)
PORTE |= (1 << PORTE2);
/* Set MOSI, SS and SCK output */
DDRE |= (1 << MOSI);
DDRC |= (1 << SCK) | (1 << SS);
/* Enable SPI, Master */
SPCR1 = (1 << SPE1) | (1 << MSTR1);
}
void SPI_MasterTransmit(uint8_t data) {
PORTC &= ~(1 << PORTC2); // íà÷àëî ïåðåäà÷è - íèçêèé óðîâåíü
SPDR1 = data;
while(!(SPSR1 & (1<<SPIF1))) {
PORTE |= (1 << PORTE1); // STATUS âêë
_delay_ms(100);
PORTE &= ~(1 << PORTE1); // STATUS âûêë
}
PORTC |= (1 << PORTC2); // êîíåö ïåðåäà÷è - âûñîêèé óðîâåíü
}

@ -1,21 +0,0 @@
/*
* spi.h
*
* Created: 13.10.2023 11:03:59
* Author: Katya
*/
#ifndef SPI_H_
#define SPI_H_
#define MOSI DDE3
#define SCK DDC1
#define SS DDC2
#include "main.h"
void SPI_MasterInit (void);
void SPI_MasterTransmit(uint8_t data);
#endif /* SPI_H_ */

@ -1,33 +0,0 @@
/*
* usart0.c
*
* Created: 12.10.2023 12:18:27
* Author: Katya
*/
#include "usart0.h"
void USART_Init (uint16_t speed) {
// Ст. и мл. скорость
UBRR0H = 0;
UBRR0L = (uint8_t)(speed);
// Прерывания при приеме, вкл прием/передача
UCSR0B = (1 << RXEN0) | (1 << TXEN0);
// 8 бит данных, 2 стоп-бита
UCSR0C = (1<<USBS0) | (3<<UCSZ00);
}
void USART_Transmit (uint8_t data) {
while (!(UCSR0A & (1<<UDRE0))); // Ожидание конца передачи
UDR0 = data; // Начало передачи
}
uint8_t USART_Receive() {
while (!(UCSR0A & (1 << RXC0))); // Ожидание конца приема
return UDR0; // Принятые данные
}
uint8_t USART_DataAvailable() {
// Пришел ли пакет в приемную шину
return (UCSR0A & (1 << RXC0)) ? 1 : 0;
}

@ -1,19 +0,0 @@
/*
* usart0.h
*
* Created: 12.10.2023 12:18:41
* Author: Katya
*/
#ifndef USART0_H_
#define USART0_H_
#include "main.h"
void USART_Init (uint16_t speed);
void USART_Transmit (uint8_t data);
uint8_t USART_Receive();
uint8_t USART_DataAvailable();
#endif /* USART0_H_ */
Loading…
Cancel
Save