From 12d7441f1f9c6fe46733d3e1b7686eced9224acb Mon Sep 17 00:00:00 2001
From: Tristan Krause <tristan.krause@stud.htwk-leipzig.de>
Date: Fri, 22 Mar 2019 15:51:52 +0100
Subject: [PATCH] Makefile Fortschritt

---
 B15F.aps         |   2 +-
 Makefile         |  27 +++++++++++++++++++++++++++
 b15f.aws         |   2 +-
 default/B15F.elf | Bin 8484 -> 8700 bytes
 default/B15F.lss |  15 ++++++++-------
 default/B15F.map |  22 ++++++++++++----------
 default/Makefile |  11 ++++++++++-
 main.c           |   5 -----
 main.cpp         |   7 +++++++
 spi.h            |  13 +++++++++++++
 10 files changed, 79 insertions(+), 25 deletions(-)
 create mode 100644 Makefile
 delete mode 100644 main.c
 create mode 100644 main.cpp

diff --git a/B15F.aps b/B15F.aps
index 7cb06d5..1ea973b 100644
--- a/B15F.aps
+++ b/B15F.aps
@@ -1 +1 @@
-<AVRStudio><MANAGEMENT><ProjectName>B15F</ProjectName><Created>22-Mar-2019 14:29:54</Created><LastEdit>22-Mar-2019 15:08:36</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>22-Mar-2019 14:29:54</Created><Version>4</Version><Build>4, 19, 0, 730</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\B15F.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>JTAGICE mkII</CURRENT_TARGET><CURRENT_PART>ATmega1284.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>spi.cpp</SOURCEFILE><HEADERFILE>spi.h</HEADERFILE><OTHERFILE>default\B15F.lss</OTHERFILE><OTHERFILE>default\B15F.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>c++</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>c++\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega1284</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>spi.cpp</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums </OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>0</USES_WINAVR><GCC_LOC>C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>F:\spi.h</Name><Name>F:\main.c</Name><Name>F:\spi.cpp</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
+<AVRStudio><MANAGEMENT><ProjectName>B15F</ProjectName><Created>22-Mar-2019 14:29:54</Created><LastEdit>22-Mar-2019 15:51:33</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>22-Mar-2019 14:29:54</Created><Version>4</Version><Build>4, 19, 0, 730</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>F:\B15F.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>JTAGICE mkII</CURRENT_TARGET><CURRENT_PART>ATmega1284.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>spi.cpp</SOURCEFILE><SOURCEFILE>main.cpp</SOURCEFILE><SOURCEFILE>Makefile</SOURCEFILE><HEADERFILE>spi.h</HEADERFILE><OTHERFILE>default\B15F.lss</OTHERFILE><OTHERFILE>default\B15F.map</OTHERFILE></FILES><CONFIGS><CONFIG><NAME>c++</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega128</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>c++\</OUTPUTDIR><ISDIRTY>0</ISDIRTY><OPTIONS/><INCDIRS/><LIBDIRS/><LIBS/><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Os -std=gnu99 -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>YES</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE>Makefile</EXTERNALMAKEFILE><PART>atmega1284</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>B15F.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>spi.cpp</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS><INCLUDE>C:\avr8-gnu-toolchain-win32_x86\avr\include\</INCLUDE></INCDIRS><LIBDIRS><LIBDIR>C:\avr8-gnu-toolchain-win32_x86\avr\lib\</LIBDIR></LIBDIRS><LIBS><LIB>libc.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2       -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>0</USES_WINAVR><GCC_LOC>C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exe</GCC_LOC><MAKE_LOC>C:\WinAVR-20100110\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><ProjectFiles><Files><Name>F:\spi.h</Name><Name>F:\spi.cpp</Name><Name>F:\main.cpp</Name><Name>F:\Makefile</Name></Files></ProjectFiles><IOView><usergroups/><sort sorted="0" column="0" ordername="1" orderaddress="1" ordergroup="1"/></IOView><Files><File00000><FileId>00000</FileId><FileName>spi.h</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>main.cpp</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>Makefile</FileName><Status>1</Status></File00002></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..758290a
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,27 @@
+# Name: Makefile
+# Project: gcnc
+# Author: Tristan Krause
+# Creation Date: 2019-03-22
+
+OUTPUT = B15F.elf
+CFLAGS  = -std=c++14 -mmcu=atmega1284 -DF_CPU=20000000
+LDFLAGS = 
+OBJECTS =  main.o
+
+COMPILER_PATH = C:\avr8-gnu-toolchain-win32_x86\bin\avr-g++.exe
+COMPILE = $(COMPILER_PATH) $(CFLAGS)
+
+B15F: $(OBJECTS)
+	@echo "Linking..."
+	$(COMPILE) $(OBJECTS) -o $(OUTPUT) $(LDFLAGS)
+
+help:
+	@echo "This Makefile has the following rules. Use one of the following:"
+	@echo "make B15F .... to compile (default)"
+	@echo "make clean ... to delete objects and hex file"
+	
+clean:
+	rm -f $(OBJECTS) $(OUTPUT)
+
+.cpp.o:
+	$(COMPILE) -c $< -o $@
diff --git a/b15f.aws b/b15f.aws
index 98f2acd..b3835b3 100644
--- a/b15f.aws
+++ b/b15f.aws
@@ -1 +1 @@
-<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA1284"/><Files><File00000 Name="F:\main.c" Position="262 71 1501 391" LineCol="0 0" State="Maximized"/></Files></AVRWorkspace>
+<AVRWorkspace><IOSettings><CurrentRegisters/></IOSettings><part name="ATMEGA1284"/><Files><File00000 Name="F:\main.cpp" Position="262 71 1501 573" LineCol="4 15" State="Maximized"/><File00001 Name="F:\spi.h" Position="288 130 1409 453" LineCol="8 9" State="Maximized"/></Files></AVRWorkspace>
diff --git a/default/B15F.elf b/default/B15F.elf
index 21b896820ff018b9bb0566e79e5165b2f380f71a..08e891fe46854376939279d0c10972dfd51c1a97 100644
GIT binary patch
delta 527
zcmYjN&nrYx82#?ObKj4-Om946L7Iz+Y#yPAQYb%m%ECtJWrmsJ88c&LA%6hLEeo=n
zm83Kql2UAJgstpEHv9o7-yOoO?>pZ)_uO;ud&R+zp-oAP@uS9sy}Abg6k1Jy5P7B8
zi`Wja{;yhXBE|#Clvwu&jPguS07}hkEr$4R8O$pU7T+#|d5I937#~BQv4R;q3DoY^
zVNJlmATLw`5T=zP);<>7l9ZSyc#v=(d1=EQFnbapM89AW-2WLZOs0fcLiCD0L0k;4
z1ZHV6=Jtd;1c2cYb?d~0*##`}y`kQm`q3eb#ZT6qyhp-7a3LY!d2I`RCh%sEX_C)o
zytJM%oazTgS;$7CZD1o%8i}6L$@#@#PL`YgA%79Wy;I55tiL>80L+<Q@biUK4*uNB
zK|V7Vq>@q}`z14JKL`2|s;2r}-B-7lDq|O6+G(k~cq4zt+jrD$+*K9Q;cHO<Up2@k
u{)kgTt)V`Jx>W^mtd>wej{!L7aMgiy$fr7!E%YX)o@6u6)&Z=e$^8P+uVu#o

delta 335
zcmez4yu@jO0@E3}jY=w<9&QW_3``7~><kPnjH{V|<U$}Z4TzC}6i5+c7Bd3_BeN5b
zy#$C?0WtF=1tvyjCf3ZnlFd&!9oZH180>kN`K-9Dxjlsi8HE@fxTZVt0M)55aC6&n
zGjmL?6O^?!2bsno3nCeR^KmgS0s)Z2$e^dEpPQJOr<V-m0Rbx$$R0svCQhIvCmWDp
z-27N@H<O5)RZL21T4HHV2|~-{uObInK)NSy5jEWWSoA0t<DJPD6@(}6Q4nCA05l;9
z$WvzhB*4HBI{Bfz@MIoE0Y;C>vWn`gIf4ufRg*mxm6@K2OwLnOV^x&{dJ(K>jiLb4
Y50T0H6xAeV00W^H7y>W=axw@20Elitn*aa+

diff --git a/default/B15F.lss b/default/B15F.lss
index 8623653..a564f37 100644
--- a/default/B15F.lss
+++ b/default/B15F.lss
@@ -13,17 +13,17 @@ Idx Name          Size      VMA       LMA       File off  Algn
                   CONTENTS, READONLY
   4 .debug_aranges 00000020  00000000  00000000  00000194  2**0
                   CONTENTS, READONLY, DEBUGGING
-  5 .debug_info   000007dc  00000000  00000000  000001b4  2**0
+  5 .debug_info   00000833  00000000  00000000  000001b4  2**0
                   CONTENTS, READONLY, DEBUGGING
-  6 .debug_abbrev 00000762  00000000  00000000  00000990  2**0
+  6 .debug_abbrev 0000079a  00000000  00000000  000009e7  2**0
                   CONTENTS, READONLY, DEBUGGING
-  7 .debug_line   00000055  00000000  00000000  000010f2  2**0
+  7 .debug_line   00000061  00000000  00000000  00001181  2**0
                   CONTENTS, READONLY, DEBUGGING
-  8 .debug_frame  00000024  00000000  00000000  00001148  2**2
+  8 .debug_frame  00000024  00000000  00000000  000011e4  2**2
                   CONTENTS, READONLY, DEBUGGING
-  9 .debug_str    0000037a  00000000  00000000  0000116c  2**0
+  9 .debug_str    000003b8  00000000  00000000  00001208  2**0
                   CONTENTS, READONLY, DEBUGGING
- 10 .debug_ranges 00000010  00000000  00000000  000014e6  2**0
+ 10 .debug_ranges 00000010  00000000  00000000  000015c0  2**0
                   CONTENTS, READONLY, DEBUGGING
 
 Disassembly of section .text:
@@ -80,8 +80,9 @@ Disassembly of section .text:
 
 000000a4 <main>:
 
-
 int main() {
+
+	SPI spi_master;
 	return 0;
 }
   a4:	80 e0       	ldi	r24, 0x00	; 0
diff --git a/default/B15F.map b/default/B15F.map
index 90e2dda..8dd5f98 100644
--- a/default/B15F.map
+++ b/default/B15F.map
@@ -23,6 +23,7 @@ LOAD main.o
 LOAD spi.o
 LOAD c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a
 LOAD c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a
+LOAD c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libc.a
 START GROUP
 LOAD c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/avr51\libgcc.a
 LOAD c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51\libm.a
@@ -371,31 +372,32 @@ END GROUP
 .debug_pubnames
  *(.debug_pubnames)
 
-.debug_info     0x00000000      0x7dc
+.debug_info     0x00000000      0x833
  *(.debug_info .gnu.linkonce.wi.*)
  .debug_info    0x00000000      0x792 c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51/crtatmega1284.o
- .debug_info    0x00000792       0x4a main.o
+ .debug_info    0x00000792       0xa1 main.o
 
-.debug_abbrev   0x00000000      0x762
+.debug_abbrev   0x00000000      0x79a
  *(.debug_abbrev)
  .debug_abbrev  0x00000000      0x729 c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51/crtatmega1284.o
- .debug_abbrev  0x00000729       0x39 main.o
+ .debug_abbrev  0x00000729       0x71 main.o
 
-.debug_line     0x00000000       0x55
+.debug_line     0x00000000       0x61
  *(.debug_line .debug_line.* .debug_line_end)
  .debug_line    0x00000000       0x1a c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51/crtatmega1284.o
- .debug_line    0x0000001a       0x3b main.o
- .debug_line    0x00000055        0x0 spi.o
+ .debug_line    0x0000001a       0x47 main.o
+ .debug_line    0x00000061        0x0 spi.o
 
 .debug_frame    0x00000000       0x24
  *(.debug_frame)
  .debug_frame   0x00000000       0x24 main.o
 
-.debug_str      0x00000000      0x37a
+.debug_str      0x00000000      0x3b8
  *(.debug_str)
  .debug_str     0x00000000      0x296 c:/avr8-gnu-toolchain-win32_x86/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avr51/crtatmega1284.o
- .debug_str     0x00000296       0xd9 main.o
- .debug_str     0x0000036f        0xb spi.o
+ .debug_str     0x00000296      0x117 main.o
+                                0x14b (size before relaxing)
+ .debug_str     0x000003ad        0xb spi.o
                                  0xd5 (size before relaxing)
 
 .debug_loc
diff --git a/default/Makefile b/default/Makefile
index 4aa90c1..9c8edd5 100644
--- a/default/Makefile
+++ b/default/Makefile
@@ -15,7 +15,7 @@ COMMON = -mmcu=$(MCU)
 
 ## Compile options common for all C compilation units.
 CFLAGS = $(COMMON)
-CFLAGS += -Wall -gdwarf-2 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums 
+CFLAGS += -Wall -gdwarf-2 -DF_CPU=20000000UL -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums
 CFLAGS += -MD -MP -MT $(*F).o -MF dep/$(@F).d 
 
 ## Assembly specific flags
@@ -36,6 +36,15 @@ HEX_EEPROM_FLAGS += --set-section-flags=.eeprom="alloc,load"
 HEX_EEPROM_FLAGS += --change-section-lma .eeprom=0 --no-change-warnings
 
 
+## Include Directories
+INCLUDES = -I"C:\avr8-gnu-toolchain-win32_x86\avr\include" 
+
+## Library Directories
+LIBDIRS = -L"C:\avr8-gnu-toolchain-win32_x86\avr\lib" 
+
+## Libraries
+LIBS = -lc 
+
 ## Objects that must be built in order to link
 OBJECTS = main.o spi.o 
 
diff --git a/main.c b/main.c
deleted file mode 100644
index d085acc..0000000
--- a/main.c
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-int main() {
-	return 0;
-}
diff --git a/main.cpp b/main.cpp
new file mode 100644
index 0000000..4b50465
--- /dev/null
+++ b/main.cpp
@@ -0,0 +1,7 @@
+#include "spi.h"
+
+int main() {
+
+	SPI spi_master;
+	return 0;
+}
diff --git a/spi.h b/spi.h
index e69de29..56e5286 100644
--- a/spi.h
+++ b/spi.h
@@ -0,0 +1,13 @@
+#ifndef SPI_H
+#define SPI_H
+
+#include <util/delay.h>
+
+class SPI {
+
+
+	private: int d;
+
+};
+
+#endif