20131112-181020

This commit is contained in:
2013-11-12 17:10:21 +00:00
parent 2ffd4de5f4
commit 0d42ffca71
37 changed files with 18233 additions and 2896 deletions
Binary file not shown.
+22 -4
View File
@@ -6,28 +6,46 @@
*/
#include "config.h"
#include "Led.h"
#include "Led.hpp"
#include "uart.hpp"
#include "Spi.hpp"
#include "Output.h"
#include "Can.h"
#include "portc.hpp"
#include "portb.hpp"
#include <util/delay.h>
Led l;
//////////////////// LED //////////////////////////////////////////
typedef Led<avrlib::portc, PINC2, PINC1, PINC0> ledclass;
ledclass l;
///////////////////////// UART ////////////////////////////////////
typedef Uart<9600> uartclass;
uartclass u;
///////////////////////// SPI /////////////////////////////////////
typedef Spi<avrlib::portb, PINB4, PINB6, PINB5, PINB7, 0, uartclass> spiclass;
spiclass s;
Output o;
Can c;
int main(void)
{
l.color(Led::YELLOW);
l.color(l.YELLOW);
u.send("Init done!\r\n");
CANMessage m;
m.id = 0x0123;
m.rtr = 0;
m.length = 2;
m.data[0] = 0xAF;
m.data[1] = 0xFE;
l.fade(Led::YELLOW, Led::RED, 10);
l.fade(l.YELLOW, l.RED, 10);
while(1)
{
u.send("Stuff!\r\n");
o.AudioOn();
c.can_send_message(&m);
_delay_ms(1);
+93 -81
View File
@@ -27,14 +27,14 @@
<BootSegment>0</BootSegment>
<AsfFrameworkConfig>
<framework-data xmlns="">
<options />
<configurations />
<files />
<documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.7.2" />
</dependencies>
</framework-data>
<options />
<configurations />
<files />
<documentation help="" />
<dependencies>
<content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.7.2" />
</dependencies>
</framework-data>
</AsfFrameworkConfig>
<avrtoolinterface>ISP</avrtoolinterface>
<avrtool>com.atmel.avrdbg.tool.ispmk2</avrtool>
@@ -77,80 +77,80 @@
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<ToolchainSettings>
<AvrGccCpp>
<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.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.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>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
</AvrGccCpp>
<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.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.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>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>NDEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize for size (-Os)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<ToolchainSettings>
<AvrGccCpp>
<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.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.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>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
<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.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.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>
<avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultCharTypeUnsigned>
<avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcccpp.compiler.general.ChangeDefaultBitFieldUnsigned>
<avrgcccpp.compiler.symbols.DefSymbols>
<ListValues>
<Value>DEBUG</Value>
</ListValues>
</avrgcccpp.compiler.symbols.DefSymbols>
<avrgcccpp.compiler.optimization.level>Optimize (-O1)</avrgcccpp.compiler.optimization.level>
<avrgcccpp.compiler.optimization.PackStructureMembers>True</avrgcccpp.compiler.optimization.PackStructureMembers>
<avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcccpp.compiler.optimization.AllocateBytesNeededForEnum>
<avrgcccpp.compiler.optimization.DebugLevel>Default (-g2)</avrgcccpp.compiler.optimization.DebugLevel>
<avrgcccpp.compiler.warnings.AllWarnings>True</avrgcccpp.compiler.warnings.AllWarnings>
<avrgcccpp.linker.libraries.Libraries>
<ListValues>
<Value>libm</Value>
</ListValues>
</avrgcccpp.linker.libraries.Libraries>
<avrgcccpp.linker.memorysettings.Comment>&lt;segmentname&gt;=&lt;address&gt;, for example .boot=0xff</avrgcccpp.linker.memorysettings.Comment>
<avrgcccpp.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcccpp.assembler.debugging.DebugLevel>
</AvrGccCpp>
</ToolchainSettings>
</PropertyGroup>
<ItemGroup>
@@ -166,10 +166,7 @@
<Compile Include="config.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Led.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="Led.h">
<Compile Include="Led.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="mcp2515_defs.h">
@@ -181,6 +178,21 @@
<Compile Include="Output.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="pin.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="portb.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="portc.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="Spi.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="uart.hpp">
<SubType>compile</SubType>
</Compile>
</ItemGroup>
<Import Project="$(AVRSTUDIO_EXE_PATH)\\Vs\\Compiler.targets" />
</Project>
+28 -6
View File
@@ -1,4 +1,5 @@
Button.d Button.o: .././Button.cpp .././config.h .././Led.h \
Button.d Button.o: .././Button.cpp .././config.h .././Led.hpp \
.././pin.hpp \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/sfr_defs.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/inttypes.h \
@@ -10,15 +11,22 @@ Button.d Button.o: .././Button.cpp .././config.h .././Led.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/version.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/fuse.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h \
.././Output.h .././Can.h \
.././uart.hpp \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h \
.././Spi.hpp \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay_basic.h \
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h \
.././mcp2515_defs.h
.././Output.h .././Can.h .././mcp2515_defs.h .././portc.hpp \
.././portb.hpp
.././config.h:
.././Led.h:
.././Led.hpp:
.././pin.hpp:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/io.h:
@@ -42,9 +50,15 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/avr/lock.h:
.././Output.h:
.././uart.hpp:
.././Can.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/stdio.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stdarg.h:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/include/stddef.h:
.././Spi.hpp:
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/util/delay.h:
@@ -52,4 +66,12 @@ c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-
c:\program\ files\ (x86)\atmel\atmel\ toolchain\avr8\ gcc\native\3.4.2.876\avr8-gnu-toolchain\bin\../lib/gcc/avr/4.7.2/../../../../avr/include/math.h:
.././Output.h:
.././Can.h:
.././mcp2515_defs.h:
.././portc.hpp:
.././portb.hpp:
Binary file not shown.
+117 -87
View File
@@ -1,88 +1,118 @@
:100000000C942B000C9448000C9448000C9448006D
:100010000C9448000C9448000C9448000C94480040
:100020000C9448000C9448000C9448000C94480030
:100030000C9448000C9448000C9448000C94480020
:100040000C9448000C9448000C9448000C94480010
:100050000C944800890011241FBECFE5D8E0DEBF14
:10006000CDBF20E0A0E6B0E001C01D92A336B207EC
:10007000E1F710E0C6E5D0E004C02297FE010E943F
:10008000B102C435D107C9F70E944A000C94B502E9
:100090000C940000CF93DF93CDB7DEB72C970FB64B
:1000A000F894DEBF0FBECDBF66E082E690E00E940E
:1000B000000283E291E09A8389831B8282E08C8331
:1000C0008FEA8D838EEF8E832AE030E044E050E0AB
:1000D00066E070E082E690E00E940B0281E690E02C
:1000E0000E94AD02BE016F5F7F4F80E690E00E94EC
:1000F0005D018FE99FE00197F1F700C0000081E604
:1001000090E00E94AB0265E082E690E00E94690206
:10011000E5CF82E690E00E94FD0181E690E00E943A
:10012000A70280E690E00E944F01089587B3806A9D
:1001300087BB88B38F7188BBBC9AC49A089580E549
:100140008DB981E08EB908956FB9779BFECF8FB1DD
:1001500008950F931F93CF93DF93EC01062F142F75
:10016000C49862E00E94A400602FCE010E94A40007
:10017000612FCE010E94A400C49ADF91CF911F91FC
:100180000F910895FF920F931F93CF93DF93EC018C
:10019000F62E042F122FC49865E00E94A4006F2D44
:1001A000CE010E94A400602FCE010E94A400612F06
:1001B000CE010E94A400C49ADF91CF911F910F91AC
:1001C000FF900895CF93DF93EC01C49860EC0E94F8
:1001D000A4008FE99FE00197F1F700C00000C49AE6
:1001E0008FE39CE90197F1F700C0000047E06AE265
:1001F000CE010E94A90040E969E2CE010E94A90057
:1002000042E068E2CE010E94A90043E06BE2CE0129
:100210000E94A90040E660E6CE010E94A90040E6E7
:1002200060E7CE010E94A90040E060E2CE010E949A
:10023000A90040E061E2CE010E94A90040E062E234
:10024000CE010E94A90040E063E2CE010E94A90015
:1002500040E064E2CE010E94A90040E065E2CE01E8
:100260000E94A90040E066E2CE010E94A90040E0A1
:1002700067E2CE010E94A90040E06CE0CE010E943E
:10028000A90040E06DE0CE010E94A90020E040EE10
:100290006FE0CE010E94C200DF91CF910895CF930D
:1002A000DF93EC010E949600CE010E949F00CE01D8
:1002B0000E94E200DF91CF910895AF92BF92CF925A
:1002C000DF92EF92FF920F931F93CF93DF931F92D2
:1002D000CDB7DEB78C016B01C49860EA0E94A40020
:1002E0006FEFC8010E94A40089836FEFC8010E94CC
:1002F000A400C49A898182FF0AC0898184FF09C051
:10030000898186FD69C06894BB24B2F805C0B12C10
:1003100003C06894BB24B1F8C4986B2D6064C80115
:100320000E94A400F60180819181BC0176956795B9
:100330007695679576956795C8010E94A400F601A9
:1003400060816295660F607EC8010E94A40060E033
:10035000C8010E94A40060E0C8010E94A400F60148
:10036000A380F8E0FA1518F46894AA24A3F8F6011B
:100370008281882331F06A2D6064C8010E94A40044
:1003800019C06A2DC8010E94A400AA2099F0760124
:10039000F4E0EF0EF11CAA948A2D90E00596C80EA9
:1003A000D91EF70161917F01C8010E94A400EC14DD
:1003B000FD04B9F7C49A0000C498B11005C061E803
:1003C000C8010E94A40005C06B2D6068C8010E948E
:1003D000A400C49A81E001C080E00F90DF91CF912A
:1003E0001F910F91FF90EF90DF90CF90BF90AF9053
:1003F000089584B3876084BB08950E94F90108952D
:1004000085B3887F85BB85B3962F9370892B6470E5
:10041000682B65BB08952F923F924F925F926F9227
:100420007F928F929F92AF92BF92CF92DF92EF9284
:10043000FF920F931F93CF93DF935C01862E942E30
:10044000690100E010E0212C312C422C532C2AC0F1
:10045000C62DD72D682DC5010E9400022196CF3FE1
:10046000D105C1F71016110654F4C42DD52D692DF0
:10047000C5010E9400022196C017D107C1F78FEF76
:10048000E81AF80AEC14FD0421F407C07101602E8B
:10049000712E0F3F1105E4F2E5CF0F5F1F4F0F3FA5
:1004A000110521F01C141D048CF3F7CFDF91CF91BF
:1004B0001F910F91FF90EF90DF90CF90BF90AF9082
:1004C0009F908F907F906F905F904F903F902F9074
:1004D00008951F93CF93DF93EC01162F262F30E062
:1004E00046E050E064E070E00E940B02212F30E013
:1004F00042E050E066E070E0CE010E940B02212F46
:1005000030E043E050E062E070E0CE010E940B0278
:10051000212F30E041E050E063E070E0CE010E9426
:100520000B02212F30E045E050E061E070E0CE01A9
:100530000E940B02212F30E044E050E065E070E0C3
:10054000CE010E940B02DF91CF911F91089584B3D9
:10055000806384BB0895AD980895AD9A0895EE0F19
:0E056000FF1F0590F491E02D0994F894FFCF51
:100000000C942B000C9453000C9453000C9453004C
:100010000C9453000C9453000C9453000C94530014
:100020000C9453000C9453000C9453000C94530004
:100030000C9453000C9453000C9453000C945300F4
:100040000C9453000C9453000C9453000C945300E4
:100050000C945300FB0111241FBECFE5D8E0DEBF96
:10006000CDBF10E0A0E6B0E0EAE1F7E002C0059005
:100070000D92A438B107D9F720E0A4E8B0E001C0A0
:100080001D92A938B207E1F710E0C6E5D0E004C040
:100090002297FE010E948703C435D107C9F70E9449
:1000A00055000C948B030C940000CF93DF93CDB7D5
:1000B000DEB72C970FB6F894DEBF0FBECDBFA89861
:1000C000A09AA99AA19AAA9AA29AEAE6F0E089E4EB
:1000D0005D9BFECF8CB981918111FACF83E291E0D3
:1000E0009A8389831B8282E08C838FEA8D838EEFD3
:1000F0008E8340E050E0BAE060E070E023C08F2FD4
:10010000A898A09AA99AA19AAA9AA29A8F5F8F3FBB
:10011000B9F7121613060CF43FC10AC0A898A09AAA
:10012000A998A19AAA9AA29A019682179307B4F362
:10013000A15019F0EF3F19F72FC14F5F5F4F4F3FAD
:10014000510561F0E42F9A01AB2FF42FF3CF5D9BA3
:10015000FECF8CB931960DC0F5010BC0E0E6F0E0A2
:10016000E12CF12C0F2EF5E0DF2EF02D00E010E059
:100170005F0180818111EBCF85E890E00E948303CD
:10018000BE016F5F7F4F84E890E00E94E1028FE93B
:100190009FE00197F1F700C0000085E890E00E9421
:1001A0008103A70123C0872FA898A09AA998A19A94
:1001B000AA9AA29A8F5F8F3FB9F7121613060CF412
:1001C000EDC00AC0A898A09AA99AA19AAA9AA29A40
:1001D000019682179307B4F3E15019F06F3F19F7B6
:1001E000DDC04F5F5F4F4F3F510549F1642F9A01CA
:1001F000ED2D742FF3CF872FA898A09AA99AA19AD2
:10020000AA9AA29A8F5F8F3FB9F7121613060CF4C1
:10021000C7C00AC0A898A09AA99AA19AAA98A29A17
:10022000019682179307B4F3E15019F06F3F19F765
:10023000B7C04F5F5F4F4F3F510511F42AC0A70170
:10024000642F9A01ED2D742FF1CF872FA898A09AD3
:10025000A99AA19AAA98A29A8F5F8F3FB9F712160E
:1002600013060CF49FC00AC0A89AA09AA99AA19A52
:10027000AA98A29A019682179307B4F3E15019F055
:100280006F3F19F78FC04F5F5F4F4F3F510511F41C
:100290002AC0A701642F9A01ED2D742FF1CF872F6B
:1002A000A89AA09AA99AA19AAA98A29A8F5F8F3F1A
:1002B000B9F7121613060CF477C00AC0A89AA09AD0
:1002C000A998A19AAA98A29A019682179307B4F3C3
:1002D000E15019F06F3F19F767C04F5F5F4F4F3F15
:1002E000510511F42AC0A701642F9A01ED2D742F36
:1002F000F1CF872FA89AA09AA998A19AAA98A29A12
:100300008F5F8F3FB9F7121613060CF44FC00AC067
:10031000A89AA09AA998A19AAA9AA29A0196821735
:100320009307B4F3E15019F06F3F19F73FC04F5FE7
:100330005F4F4F3F510511F429C0A701642F9A0167
:10034000ED2D742FF1CF872FA89AA09AA998A19A82
:10035000AA9AA29A8F5F8F3FB9F71216130644F13B
:100360000AC0A898A09AA998A19AAA9AA29A0196B6
:1003700082179307B4F3E15019F06F3F21F718C0CB
:100380004F5F5F4F4F3F510511F4E6CEA701642F39
:100390009A01ED2D742FF1CFCB01C0CEC80112CF41
:1003A000C80138CFC80160CFC80188CFC801B0CF1D
:1003B000C801D7CF86E080BD88E08AB987E689B9D1
:1003C000E7E7F0E085E55D9BFECF8CB98191811177
:1003D000FACFBD9AC598BD9ABF9AC798BF9ABC9AE2
:1003E000C49ABC9ABE98C698C698BE9A80E58DB944
:1003F00081E08EB90895A29AA19AA09A86E080BD64
:1004000088E08AB987E689B9E7E7F0E085E55D9B92
:10041000FECF8CB981918111FACF86E890E00E94DD
:10042000DA0185E890E00E947D0384E890E00E9474
:10043000D302089587B3806A87BB88B38F7188BB66
:10044000BC9AC49A089580E58DB981E08EB908956B
:100450006FB9779BFECF8FB108950F931F93CF9302
:10046000DF93EC01062F142FC49862E00E9428024B
:10047000602FCE010E942802612FCE010E94280227
:10048000C49ADF91CF911F910F910895FF920F931E
:100490001F93CF93DF93EC01F62E042F122FC498F5
:1004A00065E00E9428026F2DCE010E942802602F75
:1004B000CE010E942802612FCE010E942802C49A18
:1004C000DF91CF911F910F91FF900895CF93DF930C
:1004D000EC01C49860EC0E9428028FE99FE001972C
:1004E000F1F700C00000C49A8FE39CE90197F1F78F
:1004F00000C0000047E06AE2CE010E942D0240E900
:1005000069E2CE010E942D0242E068E2CE010E9423
:100510002D0243E06BE2CE010E942D0240E660E630
:10052000CE010E942D0240E660E7CE010E942D021E
:1005300040E060E2CE010E942D0240E061E2CE0187
:100540000E942D0240E062E2CE010E942D0240E0B6
:1005500063E2CE010E942D0240E064E2CE010E94DF
:100560002D0240E065E2CE010E942D0240E066E2ED
:10057000CE010E942D0240E067E2CE010E942D02D2
:1005800040E06CE0CE010E942D0240E06DE0CE0123
:100590000E942D0220E040EE6FE0CE010E94460254
:1005A000DF91CF910895CF93DF93EC010E941A025F
:1005B000CE010E942302CE010E946602DF91CF91FC
:1005C0000895AF92BF92CF92DF92EF92FF920F9376
:1005D0001F93CF93DF931F92CDB7DEB78C016B01D2
:1005E000C49860EA0E9428026FEFC8010E942802A6
:1005F00089836FEFC8010E942802C49A898182FF13
:100600000AC0898184FF09C0898186FD69C0689418
:10061000BB24B2F805C0B12C03C06894BB24B1F868
:10062000C4986B2D6064C8010E942802F601808185
:100630009181BC01769567957695679576956795D6
:10064000C8010E942802F60160816295660F607EF3
:10065000C8010E94280260E0C8010E94280260E0F0
:10066000C8010E942802F601A380F8E0FA1518F4E8
:100670006894AA24A3F8F6018281882331F06A2DB8
:100680006064C8010E94280219C06A2DC8010E9436
:100690002802AA2099F07601F4E0EF0EF11CAA944A
:1006A0008A2D90E00596C80ED91EF70161917F0151
:1006B000C8010E942802EC14FD04B9F7C49A000096
:1006C000C498B11005C061E8C8010E94280205C0A5
:1006D0006B2D6068C8010E942802C49A81E001C0A5
:1006E00080E00F90DF91CF911F910F91FF90EF90DD
:1006F000DF90CF90BF90AF90089584B3806384BBA8
:100700000895AD980895AD9A0895EE0FFF1F0590D6
:0A071000F491E02D0994F894FFCF56
:10071A005374756666210D0A00496E697420646F08
:10072A006E65210D0A005561727420646F6E652131
:04073A000D0A0000A4
:00000001FF
File diff suppressed because it is too large Load Diff
+144 -149
View File
@@ -2,6 +2,8 @@ Archive member included because of file (symbol)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o (exit)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
Button.o (__do_copy_data)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
Button.o (__do_clear_bss)
c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
@@ -12,6 +14,7 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-
Discarded input sections
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
.group 0x00000000 0x8 Button.o
.text 0x00000000 0x0 Button.o
.text 0x00000000 0x0 Can.o
.bss 0x00000000 0x0 Can.o
@@ -21,10 +24,6 @@ Discarded input sections
0x00000000 0x2e Can.o
.text._ZN3Can15can_get_messageEP10CANMessage
0x00000000 0x124 Can.o
.text 0x00000000 0x0 Led.o
.bss 0x00000000 0x0 Led.o
.text._ZN3Led6uninitEv
0x00000000 0x2 Led.o
.text 0x00000000 0x0 Output.o
.bss 0x00000000 0x0 Output.o
.text._ZN6Output8MotorOffEv
@@ -44,6 +43,19 @@ Discarded input sections
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc.mul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc.div
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc.prologue
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc.builtins
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text.libgcc.fmul
0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.text 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
.bss 0x00000000 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
.text.libgcc.mul
@@ -100,7 +112,6 @@ Linker script and memory map
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
LOAD Button.o
LOAD Can.o
LOAD Led.o
LOAD Output.o
START GROUP
LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5\libm.a
@@ -201,7 +212,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.rela.plt
*(.rela.plt)
.text 0x00000000 0x56e
.text 0x00000000 0x71a
*(.vectors)
.vectors 0x00000000 0x54 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
0x00000000 __vector_default
@@ -240,110 +251,100 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.init3)
*(.init3)
*(.init4)
.init4 0x00000062 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
0x00000062 __do_clear_bss
.init4 0x00000062 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
0x00000062 __do_copy_data
.init4 0x00000078 0x10 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
0x00000078 __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
.init6 0x00000072 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
0x00000072 __do_global_ctors
.init6 0x00000088 0x16 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
0x00000088 __do_global_ctors
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x00000088 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
.init9 0x0000009e 0x8 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
*(.init9)
*(.text)
.text 0x00000090 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
0x00000090 __vector_1
0x00000090 __vector_12
0x00000090 __bad_interrupt
0x00000090 __vector_6
0x00000090 __vector_3
0x00000090 __vector_11
0x00000090 __vector_13
0x00000090 __vector_17
0x00000090 __vector_19
0x00000090 __vector_7
0x00000090 __vector_5
0x00000090 __vector_4
0x00000090 __vector_9
0x00000090 __vector_2
0x00000090 __vector_15
0x00000090 __vector_8
0x00000090 __vector_14
0x00000090 __vector_10
0x00000090 __vector_16
0x00000090 __vector_18
0x00000090 __vector_20
0x00000094 . = ALIGN (0x2)
.text 0x000000a6 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
0x000000a6 __vector_1
0x000000a6 __vector_12
0x000000a6 __bad_interrupt
0x000000a6 __vector_6
0x000000a6 __vector_3
0x000000a6 __vector_11
0x000000a6 __vector_13
0x000000a6 __vector_17
0x000000a6 __vector_19
0x000000a6 __vector_7
0x000000a6 __vector_5
0x000000a6 __vector_4
0x000000a6 __vector_9
0x000000a6 __vector_2
0x000000a6 __vector_15
0x000000a6 __vector_8
0x000000a6 __vector_14
0x000000a6 __vector_10
0x000000a6 __vector_16
0x000000a6 __vector_18
0x000000a6 __vector_20
0x000000aa . = ALIGN (0x2)
*(.text.*)
.text.main 0x00000094 0x7e Button.o
0x00000094 main
.text.main 0x000000aa 0x30a Button.o
0x000000aa main
.text._ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC2Ev
0x000003b4 0x42 Button.o
0x000003b4 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC1Ev
0x000003b4 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC2Ev
.text._GLOBAL__sub_I_l
0x00000112 0x1a Button.o
0x000003f6 0x3e Button.o
.text._ZN3Can8init_pinEv
0x0000012c 0x12 Can.o
0x0000012c _ZN3Can8init_pinEv
0x00000434 0x12 Can.o
0x00000434 _ZN3Can8init_pinEv
.text._ZN3Can8init_spiEv
0x0000013e 0xa Can.o
0x0000013e _ZN3Can8init_spiEv
0x00000446 0xa Can.o
0x00000446 _ZN3Can8init_spiEv
.text._ZN3Can8spi_putcEh
0x00000148 0xa Can.o
0x00000148 _ZN3Can8spi_putcEh
0x00000450 0xa Can.o
0x00000450 _ZN3Can8spi_putcEh
.text._ZN3Can22mcp2515_write_registerEhh
0x00000152 0x32 Can.o
0x00000152 _ZN3Can22mcp2515_write_registerEhh
0x0000045a 0x32 Can.o
0x0000045a _ZN3Can22mcp2515_write_registerEhh
.text._ZN3Can18mcp2515_bit_modifyEhhh
0x00000184 0x40 Can.o
0x00000184 _ZN3Can18mcp2515_bit_modifyEhhh
0x0000048c 0x40 Can.o
0x0000048c _ZN3Can18mcp2515_bit_modifyEhhh
.text._ZN3Can8init_canEv
0x000001c4 0xda Can.o
0x000001c4 _ZN3Can8init_canEv
0x000004cc 0xda Can.o
0x000004cc _ZN3Can8init_canEv
.text._ZN3CanC2Ev
0x0000029e 0x1c Can.o
0x0000029e _ZN3CanC2Ev
0x0000029e _ZN3CanC1Ev
0x000005a6 0x1c Can.o
0x000005a6 _ZN3CanC2Ev
0x000005a6 _ZN3CanC1Ev
.text._ZN3Can16can_send_messageEP10CANMessage
0x000002ba 0x138 Can.o
0x000002ba _ZN3Can16can_send_messageEP10CANMessage
.text._ZN3Led4initEv
0x000003f2 0x8 Led.o
0x000003f2 _ZN3Led4initEv
.text._ZN3LedC2Ev
0x000003fa 0x6 Led.o
0x000003fa _ZN3LedC1Ev
0x000003fa _ZN3LedC2Ev
.text._ZN3Led5colorEh
0x00000400 0x16 Led.o
0x00000400 _ZN3Led5colorEh
.text._ZN3Led4fadeEiii
0x00000416 0xbc Led.o
0x00000416 _ZN3Led4fadeEiii
.text._ZN3Led7rainbowEh
0x000004d2 0x7c Led.o
0x000004d2 _ZN3Led7rainbowEh
0x000005c2 0x138 Can.o
0x000005c2 _ZN3Can16can_send_messageEP10CANMessage
.text._ZN6OutputC2Ev
0x0000054e 0x8 Output.o
0x0000054e _ZN6OutputC2Ev
0x0000054e _ZN6OutputC1Ev
0x000006fa 0x8 Output.o
0x000006fa _ZN6OutputC2Ev
0x000006fa _ZN6OutputC1Ev
.text._ZN6Output8AudioOffEv
0x00000556 0x4 Output.o
0x00000556 _ZN6Output8AudioOffEv
0x00000702 0x4 Output.o
0x00000702 _ZN6Output8AudioOffEv
.text._ZN6Output7AudioOnEv
0x0000055a 0x4 Output.o
0x0000055a _ZN6Output7AudioOnEv
.text.libgcc 0x0000055e 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
0x0000055e __tablejump2__
0x00000562 __tablejump__
0x0000056a . = ALIGN (0x2)
0x00000706 0x4 Output.o
0x00000706 _ZN6Output7AudioOnEv
.text.libgcc 0x0000070a 0xc c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
0x0000070a __tablejump2__
0x0000070e __tablejump__
0x00000716 . = ALIGN (0x2)
*(.fini9)
.fini9 0x0000056a 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
0x0000056a _exit
0x0000056a exit
.fini9 0x00000716 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
0x00000716 _exit
0x00000716 exit
*(.fini9)
*(.fini8)
*(.fini8)
@@ -362,49 +363,54 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x0000056a 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
.fini0 0x00000716 0x4 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
*(.fini0)
0x0000056e _etext = .
0x0000071a _etext = .
.data 0x00800060 0x0 load address 0x0000056e
.data 0x00800060 0x24 load address 0x0000071a
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/../../../../avr/lib/avr5/crtm32a.o
.data 0x00800060 0x0 Button.o
.data 0x00800060 0x0 Can.o
.data 0x00800060 0x0 Led.o
.data 0x00800060 0x0 Output.o
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_exit.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_copy_data.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_clear_bss.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_ctors.o)
.data 0x00800060 0x0 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr5\libgcc.a(_tablejump.o)
*(.data*)
*(.rodata)
*(.rodata*)
.rodata.str1.1
0x00800060 0x23 Button.o
*(.gnu.linkonce.d*)
0x00800060 . = ALIGN (0x2)
0x00800060 _edata = .
0x00800060 PROVIDE (__data_end, .)
0x00800084 . = ALIGN (0x2)
*fill* 0x00800083 0x1
0x00800084 _edata = .
0x00800084 PROVIDE (__data_end, .)
.bss 0x00800060 0x3
0x00800060 PROVIDE (__bss_start, .)
.bss 0x00800084 0x5
0x00800084 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800060 0x3 Button.o
0x00800060 c
0x00800061 o
0x00800062 l
.bss 0x00800084 0x5 Button.o
0x00800084 c
0x00800085 o
0x00800086 s
0x00800087 u
0x00800088 l
*(.bss*)
*(COMMON)
0x00800063 PROVIDE (__bss_end, .)
0x0000056e __data_load_start = LOADADDR (.data)
0x0000056e __data_load_end = (__data_load_start + SIZEOF (.data))
0x00800089 PROVIDE (__bss_end, .)
0x0000071a __data_load_start = LOADADDR (.data)
0x0000073e __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800063 0x0
0x00800063 PROVIDE (__noinit_start, .)
.noinit 0x00800089 0x0
0x00800089 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800063 PROVIDE (__noinit_end, .)
0x00800063 _end = .
0x00800063 PROVIDE (__heap_start, .)
0x00800089 PROVIDE (__noinit_end, .)
0x00800089 _end = .
0x00800089 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
@@ -450,7 +456,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.comment 0x00000000 0x2f Button.o
0x30 (size before relaxing)
.comment 0x00000000 0x30 Can.o
.comment 0x00000000 0x30 Led.o
.comment 0x00000000 0x30 Output.o
.debug
@@ -465,66 +470,57 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0x120
.debug_aranges 0x00000000 0xe0
*(.debug_aranges)
.debug_aranges
0x00000000 0x28 Button.o
0x00000000 0x30 Button.o
.debug_aranges
0x00000028 0x70 Can.o
0x00000030 0x70 Can.o
.debug_aranges
0x00000098 0x48 Led.o
.debug_aranges
0x000000e0 0x40 Output.o
0x000000a0 0x40 Output.o
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x1b32
.debug_info 0x00000000 0x40d0
*(.debug_info)
.debug_info 0x00000000 0x6b5 Button.o
.debug_info 0x000006b5 0xdae Can.o
.debug_info 0x00001463 0x4db Led.o
.debug_info 0x0000193e 0x1f4 Output.o
.debug_info 0x00000000 0x312e Button.o
.debug_info 0x0000312e 0xdae Can.o
.debug_info 0x00003edc 0x1f4 Output.o
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x8d3
.debug_abbrev 0x00000000 0x841
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x2d0 Button.o
.debug_abbrev 0x000002d0 0x2fa Can.o
.debug_abbrev 0x000005ca 0x1eb Led.o
.debug_abbrev 0x000007b5 0x11e Output.o
.debug_abbrev 0x00000000 0x429 Button.o
.debug_abbrev 0x00000429 0x2fa Can.o
.debug_abbrev 0x00000723 0x11e Output.o
.debug_line 0x00000000 0x686
.debug_line 0x00000000 0x723
*(.debug_line)
.debug_line 0x00000000 0x1ca Button.o
.debug_line 0x000001ca 0x2ce Can.o
.debug_line 0x00000498 0x165 Led.o
.debug_line 0x000005fd 0x89 Output.o
.debug_line 0x00000000 0x3cc Button.o
.debug_line 0x000003cc 0x2ce Can.o
.debug_line 0x0000069a 0x89 Output.o
.debug_frame 0x00000000 0x324
.debug_frame 0x00000000 0x254
*(.debug_frame)
.debug_frame 0x00000000 0x44 Button.o
.debug_frame 0x00000044 0x19c Can.o
.debug_frame 0x000001e0 0xe0 Led.o
.debug_frame 0x000002c0 0x64 Output.o
.debug_frame 0x00000000 0x54 Button.o
.debug_frame 0x00000054 0x19c Can.o
.debug_frame 0x000001f0 0x64 Output.o
.debug_str 0x00000000 0x4ae
.debug_str 0x00000000 0x10df
*(.debug_str)
.debug_str 0x00000000 0x430 Button.o
0x481 (size before relaxing)
.debug_str 0x00000430 0x3c Can.o
.debug_str 0x00000000 0x108e Button.o
0x10f0 (size before relaxing)
.debug_str 0x0000108e 0x32 Can.o
0x33e (size before relaxing)
.debug_str 0x0000046c 0x23 Led.o
0x17f (size before relaxing)
.debug_str 0x0000048f 0x1f Output.o
.debug_str 0x000010c0 0x1f Output.o
0x150 (size before relaxing)
.debug_loc 0x00000000 0xb79
.debug_loc 0x00000000 0xf51
*(.debug_loc)
.debug_loc 0x00000000 0x47 Button.o
.debug_loc 0x00000047 0x721 Can.o
.debug_loc 0x00000768 0x3eb Led.o
.debug_loc 0x00000b53 0x26 Output.o
.debug_loc 0x00000000 0x80a Button.o
.debug_loc 0x0000080a 0x721 Can.o
.debug_loc 0x00000f2b 0x26 Output.o
.debug_macinfo
*(.debug_macinfo)
@@ -532,12 +528,11 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x128
.debug_ranges 0x00000000 0x5e0
*(.debug_ranges)
.debug_ranges 0x00000000 0x18 Button.o
.debug_ranges 0x00000018 0x60 Can.o
.debug_ranges 0x00000078 0x80 Led.o
.debug_ranges 0x000000f8 0x30 Output.o
.debug_ranges 0x00000000 0x550 Button.o
.debug_ranges 0x00000550 0x60 Can.o
.debug_ranges 0x000005b0 0x30 Output.o
.debug_macro
*(.debug_macro)
+117 -87
View File
@@ -1,89 +1,119 @@
S00E0000427574746F6E2E737265639A
S11300000C942B000C9448000C9448000C94480069
S11300100C9448000C9448000C9448000C9448003C
S11300200C9448000C9448000C9448000C9448002C
S11300300C9448000C9448000C9448000C9448001C
S11300400C9448000C9448000C9448000C9448000C
S11300500C944800890011241FBECFE5D8E0DEBF10
S1130060CDBF20E0A0E6B0E001C01D92A336B207E8
S1130070E1F710E0C6E5D0E004C02297FE010E943B
S1130080B102C435D107C9F70E944A000C94B502E5
S11300900C940000CF93DF93CDB7DEB72C970FB647
S11300A0F894DEBF0FBECDBF66E082E690E00E940A
S11300B0000283E291E09A8389831B8282E08C832D
S11300C08FEA8D838EEF8E832AE030E044E050E0A7
S11300D066E070E082E690E00E940B0281E690E028
S11300E00E94AD02BE016F5F7F4F80E690E00E94E8
S11300F05D018FE99FE00197F1F700C0000081E600
S113010090E00E94AB0265E082E690E00E94690202
S1130110E5CF82E690E00E94FD0181E690E00E9436
S1130120A70280E690E00E944F01089587B3806A99
S113013087BB88B38F7188BBBC9AC49A089580E545
S11301408DB981E08EB908956FB9779BFECF8FB1D9
S113015008950F931F93CF93DF93EC01062F142F71
S1130160C49862E00E94A400602FCE010E94A40003
S1130170612FCE010E94A400C49ADF91CF911F91F8
S11301800F910895FF920F931F93CF93DF93EC0188
S1130190F62E042F122FC49865E00E94A4006F2D40
S11301A0CE010E94A400602FCE010E94A400612F02
S11301B0CE010E94A400C49ADF91CF911F910F91A8
S11301C0FF900895CF93DF93EC01C49860EC0E94F4
S11301D0A4008FE99FE00197F1F700C00000C49AE2
S11301E08FE39CE90197F1F700C0000047E06AE261
S11301F0CE010E94A90040E969E2CE010E94A90053
S113020042E068E2CE010E94A90043E06BE2CE0125
S11302100E94A90040E660E6CE010E94A90040E6E3
S113022060E7CE010E94A90040E060E2CE010E9496
S1130230A90040E061E2CE010E94A90040E062E230
S1130240CE010E94A90040E063E2CE010E94A90011
S113025040E064E2CE010E94A90040E065E2CE01E4
S11302600E94A90040E066E2CE010E94A90040E09D
S113027067E2CE010E94A90040E06CE0CE010E943A
S1130280A90040E06DE0CE010E94A90020E040EE0C
S11302906FE0CE010E94C200DF91CF910895CF9309
S11302A0DF93EC010E949600CE010E949F00CE01D4
S11302B00E94E200DF91CF910895AF92BF92CF9256
S11302C0DF92EF92FF920F931F93CF93DF931F92CE
S11302D0CDB7DEB78C016B01C49860EA0E94A4001C
S11302E06FEFC8010E94A40089836FEFC8010E94C8
S11302F0A400C49A898182FF0AC0898184FF09C04D
S1130300898186FD69C06894BB24B2F805C0B12C0C
S113031003C06894BB24B1F8C4986B2D6064C80111
S11303200E94A400F60180819181BC0176956795B5
S11303307695679576956795C8010E94A400F601A5
S113034060816295660F607EC8010E94A40060E02F
S1130350C8010E94A40060E0C8010E94A400F60144
S1130360A380F8E0FA1518F46894AA24A3F8F60117
S11303708281882331F06A2D6064C8010E94A40040
S113038019C06A2DC8010E94A400AA2099F0760120
S1130390F4E0EF0EF11CAA948A2D90E00596C80EA5
S11303A0D91EF70161917F01C8010E94A400EC14D9
S11303B0FD04B9F7C49A0000C498B11005C061E8FF
S11303C0C8010E94A40005C06B2D6068C8010E948A
S11303D0A400C49A81E001C080E00F90DF91CF9126
S11303E01F910F91FF90EF90DF90CF90BF90AF904F
S11303F0089584B3876084BB08950E94F901089529
S113040085B3887F85BB85B3962F9370892B6470E1
S1130410682B65BB08952F923F924F925F926F9223
S11304207F928F929F92AF92BF92CF92DF92EF9280
S1130430FF920F931F93CF93DF935C01862E942E2C
S1130440690100E010E0212C312C422C532C2AC0ED
S1130450C62DD72D682DC5010E9400022196CF3FDD
S1130460D105C1F71016110654F4C42DD52D692DEC
S1130470C5010E9400022196C017D107C1F78FEF72
S1130480E81AF80AEC14FD0421F407C07101602E87
S1130490712E0F3F1105E4F2E5CF0F5F1F4F0F3FA1
S11304A0110521F01C141D048CF3F7CFDF91CF91BB
S11304B01F910F91FF90EF90DF90CF90BF90AF907E
S11304C09F908F907F906F905F904F903F902F9070
S11304D008951F93CF93DF93EC01162F262F30E05E
S11304E046E050E064E070E00E940B02212F30E00F
S11304F042E050E066E070E0CE010E940B02212F42
S113050030E043E050E062E070E0CE010E940B0274
S1130510212F30E041E050E063E070E0CE010E9422
S11305200B02212F30E045E050E061E070E0CE01A5
S11305300E940B02212F30E044E050E065E070E0BF
S1130540CE010E940B02DF91CF911F91089584B3D5
S1130550806384BB0895AD980895AD9A0895EE0F15
S1110560FF1F0590F491E02D0994F894FFCF4D
S11300000C942B000C9453000C9453000C94530048
S11300100C9453000C9453000C9453000C94530010
S11300200C9453000C9453000C9453000C94530000
S11300300C9453000C9453000C9453000C945300F0
S11300400C9453000C9453000C9453000C945300E0
S11300500C945300FB0111241FBECFE5D8E0DEBF92
S1130060CDBF10E0A0E6B0E0EAE1F7E002C0059001
S11300700D92A438B107D9F720E0A4E8B0E001C09C
S11300801D92A938B207E1F710E0C6E5D0E004C03C
S11300902297FE010E948703C435D107C9F70E9445
S11300A055000C948B030C940000CF93DF93CDB7D1
S11300B0DEB72C970FB6F894DEBF0FBECDBFA8985D
S11300C0A09AA99AA19AAA9AA29AEAE6F0E089E4E7
S11300D05D9BFECF8CB981918111FACF83E291E0CF
S11300E09A8389831B8282E08C838FEA8D838EEFCF
S11300F08E8340E050E0BAE060E070E023C08F2FD0
S1130100A898A09AA99AA19AAA9AA29A8F5F8F3FB7
S1130110B9F7121613060CF43FC10AC0A898A09AA6
S1130120A998A19AAA9AA29A019682179307B4F35E
S1130130A15019F0EF3F19F72FC14F5F5F4F4F3FA9
S1130140510561F0E42F9A01AB2FF42FF3CF5D9B9F
S1130150FECF8CB931960DC0F5010BC0E0E6F0E09E
S1130160E12CF12C0F2EF5E0DF2EF02D00E010E055
S11301705F0180818111EBCF85E890E00E948303C9
S1130180BE016F5F7F4F84E890E00E94E1028FE937
S11301909FE00197F1F700C0000085E890E00E941D
S11301A08103A70123C0872FA898A09AA998A19A90
S11301B0AA9AA29A8F5F8F3FB9F7121613060CF40E
S11301C0EDC00AC0A898A09AA99AA19AAA9AA29A3C
S11301D0019682179307B4F3E15019F06F3F19F7B2
S11301E0DDC04F5F5F4F4F3F510549F1642F9A01C6
S11301F0ED2D742FF3CF872FA898A09AA99AA19ACE
S1130200AA9AA29A8F5F8F3FB9F7121613060CF4BD
S1130210C7C00AC0A898A09AA99AA19AAA98A29A13
S1130220019682179307B4F3E15019F06F3F19F761
S1130230B7C04F5F5F4F4F3F510511F42AC0A7016C
S1130240642F9A01ED2D742FF1CF872FA898A09ACF
S1130250A99AA19AAA98A29A8F5F8F3FB9F712160A
S113026013060CF49FC00AC0A89AA09AA99AA19A4E
S1130270AA98A29A019682179307B4F3E15019F051
S11302806F3F19F78FC04F5F5F4F4F3F510511F418
S11302902AC0A701642F9A01ED2D742FF1CF872F67
S11302A0A89AA09AA99AA19AAA98A29A8F5F8F3F16
S11302B0B9F7121613060CF477C00AC0A89AA09ACC
S11302C0A998A19AAA98A29A019682179307B4F3BF
S11302D0E15019F06F3F19F767C04F5F5F4F4F3F11
S11302E0510511F42AC0A701642F9A01ED2D742F32
S11302F0F1CF872FA89AA09AA998A19AAA98A29A0E
S11303008F5F8F3FB9F7121613060CF44FC00AC063
S1130310A89AA09AA998A19AAA9AA29A0196821731
S11303209307B4F3E15019F06F3F19F73FC04F5FE3
S11303305F4F4F3F510511F429C0A701642F9A0163
S1130340ED2D742FF1CF872FA89AA09AA998A19A7E
S1130350AA9AA29A8F5F8F3FB9F71216130644F137
S11303600AC0A898A09AA998A19AAA9AA29A0196B2
S113037082179307B4F3E15019F06F3F21F718C0C7
S11303804F5F5F4F4F3F510511F4E6CEA701642F35
S11303909A01ED2D742FF1CFCB01C0CEC80112CF3D
S11303A0C80138CFC80160CFC80188CFC801B0CF19
S11303B0C801D7CF86E080BD88E08AB987E689B9CD
S11303C0E7E7F0E085E55D9BFECF8CB98191811173
S11303D0FACFBD9AC598BD9ABF9AC798BF9ABC9ADE
S11303E0C49ABC9ABE98C698C698BE9A80E58DB940
S11303F081E08EB90895A29AA19AA09A86E080BD60
S113040088E08AB987E689B9E7E7F0E085E55D9B8E
S1130410FECF8CB981918111FACF86E890E00E94D9
S1130420DA0185E890E00E947D0384E890E00E9470
S1130430D302089587B3806A87BB88B38F7188BB62
S1130440BC9AC49A089580E58DB981E08EB9089567
S11304506FB9779BFECF8FB108950F931F93CF93FE
S1130460DF93EC01062F142FC49862E00E94280247
S1130470602FCE010E942802612FCE010E94280223
S1130480C49ADF91CF911F910F910895FF920F931A
S11304901F93CF93DF93EC01F62E042F122FC498F1
S11304A065E00E9428026F2DCE010E942802602F71
S11304B0CE010E942802612FCE010E942802C49A14
S11304C0DF91CF911F910F91FF900895CF93DF9308
S11304D0EC01C49860EC0E9428028FE99FE0019728
S11304E0F1F700C00000C49A8FE39CE90197F1F78B
S11304F000C0000047E06AE2CE010E942D0240E9FC
S113050069E2CE010E942D0242E068E2CE010E941F
S11305102D0243E06BE2CE010E942D0240E660E62C
S1130520CE010E942D0240E660E7CE010E942D021A
S113053040E060E2CE010E942D0240E061E2CE0183
S11305400E942D0240E062E2CE010E942D0240E0B2
S113055063E2CE010E942D0240E064E2CE010E94DB
S11305602D0240E065E2CE010E942D0240E066E2E9
S1130570CE010E942D0240E067E2CE010E942D02CE
S113058040E06CE0CE010E942D0240E06DE0CE011F
S11305900E942D0220E040EE6FE0CE010E94460250
S11305A0DF91CF910895CF93DF93EC010E941A025B
S11305B0CE010E942302CE010E946602DF91CF91F8
S11305C00895AF92BF92CF92DF92EF92FF920F9372
S11305D01F93CF93DF931F92CDB7DEB78C016B01CE
S11305E0C49860EA0E9428026FEFC8010E942802A2
S11305F089836FEFC8010E942802C49A898182FF0F
S11306000AC0898184FF09C0898186FD69C0689414
S1130610BB24B2F805C0B12C03C06894BB24B1F864
S1130620C4986B2D6064C8010E942802F601808181
S11306309181BC01769567957695679576956795D2
S1130640C8010E942802F60160816295660F607EEF
S1130650C8010E94280260E0C8010E94280260E0EC
S1130660C8010E942802F601A380F8E0FA1518F4E4
S11306706894AA24A3F8F6018281882331F06A2DB4
S11306806064C8010E94280219C06A2DC8010E9432
S11306902802AA2099F07601F4E0EF0EF11CAA9446
S11306A08A2D90E00596C80ED91EF70161917F014D
S11306B0C8010E942802EC14FD04B9F7C49A000092
S11306C0C498B11005C061E8C8010E94280205C0A1
S11306D06B2D6068C8010E942802C49A81E001C0A1
S11306E080E00F90DF91CF911F910F91FF90EF90D9
S11306F0DF90CF90BF90AF90089584B3806384BBA4
S11307000895AD980895AD9A0895EE0FFF1F0590D2
S10D0710F491E02D0994F894FFCF52
S113071A5374756666210D0A00496E697420646F04
S113072A6E65210D0A005561727420646F6E65212D
S107073A0D0A0000A0
S9030000FC
-7
View File
@@ -38,7 +38,6 @@ SUBDIRS :=
C_SRCS += \
../Button.cpp \
../Can.cpp \
../Led.cpp \
../Output.cpp
@@ -51,28 +50,24 @@ ASM_SRCS +=
OBJS += \
Button.o \
Can.o \
Led.o \
Output.o
OBJS_AS_ARGS += \
Button.o \
Can.o \
Led.o \
Output.o
C_DEPS += \
Button.d \
Can.d \
Led.d \
Output.d
C_DEPS_AS_ARGS += \
Button.d \
Can.d \
Led.d \
Output.d
@@ -94,8 +89,6 @@ LIB_DEP+=
./%.o: .././%.cpp
@echo Building file: $<
@echo Invoking: AVR8/GNU C++ Compiler :
-2
View File
@@ -6,7 +6,5 @@ Button.cpp
Can.cpp
Led.cpp
Output.cpp
+66
View File
@@ -0,0 +1,66 @@
/*
* Led.h
*
* Created: 03.11.2013 17:11:58
* Author: BlubbFish
*/
#ifndef LED_H_
#define LED_H_
#include "pin.hpp"
template <typename Port, int pin_red, int pin_green, int pin_blue>
class Led {
public:
Led() {
init();
}
void color(uint8_t mask) {
(mask & (1<<0)) ? blue::make_high() : blue::make_low();
(mask & (1<<1)) ? green::make_high() : green::make_low();
(mask & (1<<2)) ? red::make_high() : red::make_low();
}
void rainbow(uint8_t time) {
fade(RED, YELLOW, time);
fade(YELLOW, GREEN, time);
fade(GREEN, CYAN, time);
fade(CYAN, BLUE, time);
fade(BLUE, MAGENTA, time);
fade(MAGENTA, RED, time);
}
void fade(uint8_t from, uint8_t to, uint8_t dur) {
for (uint8_t i=0;i<0xFF;i++) {
for(uint8_t k=0;k<dur;k++) {
for (uint8_t j=i;j<0xFF;j++) {
color(from);
}
for (int j=0;j<i;j++) {
color(to);
}
}
}
}
static const uint8_t BLACK = 0;
static const uint8_t BLUE = 1;
static const uint8_t GREEN = 2;
static const uint8_t CYAN = 3;
static const uint8_t RED = 4;
static const uint8_t MAGENTA = 5;
static const uint8_t YELLOW = 6;
static const uint8_t WHITE = 7;
private:
void init() {
red::make_output();
green::make_output();
blue::make_output();
}
void uninit();
const typedef avrlib::pin<Port, pin_red> red;
const typedef avrlib::pin<Port, pin_green> green;
const typedef avrlib::pin<Port, pin_blue> blue;
};
#endif /* LED_H_ */
+102
View File
@@ -0,0 +1,102 @@
/*
* Spi.h
*
* Created: 06.11.2013 15:41:34
* Author: netz
*/
#ifndef SPI_H_
#define SPI_H_
#include "config.h"
#include <avr/io.h>
#include <util/delay.h>
#include "pin.hpp"
template <typename Port, int cspin, int misopin, int mosipin, int sckpin, int mode, typename uart>
class Spi {
public:
Spi() {
init();
}
void CSOn() {
cs::make_low();
}
void CSOff() {
cs::make_high();
}
uint8_t send(uint8_t data) {
char t[50];
sprintf(t, "-> 0x%02x", data);
u.send(t);
uint8_t r;
if(mode == 0) {
r = send_hard(data);
}
r = send_soft(data);
sprintf(t, " <- 0x%02x\r\n", r);
u.send(t);
return r;
}
private:
uart u;
const typedef avrlib::pin<Port, cspin> cs;
const typedef avrlib::pin<Port, misopin> miso;
const typedef avrlib::pin<Port, mosipin> mosi;
const typedef avrlib::pin<Port, sckpin> sck;
void init() {
init_port();
if(mode == 0) {
init_spi();
}
}
void init_port() {
mosi::make_output();
mosi::make_low();
sck::make_output();
sck::make_low();
cs::make_output();
cs::make_high();
miso::make_input();
miso::make_low();
}
void init_spi() {
SPCR = (1<<SPE) | (1<<MSTR);
SPSR = (1<<SPI2X);
}
uint8_t send_soft(uint8_t data) {
uint8_t datain=0;
for (uint8_t a=8; a>0; a--) { //das Byte wird Bitweise nacheinander Gesendet MSB zuerst
datain<<=1; //Schieben um das Richtige Bit zusetzen
sck::make_low(); // Clock auf LOW
if (data & 0x80) { //Ist Bit a in Byte gesetzt
mosi::make_high(); //Set Output High
}
else{
mosi::make_low(); //Set Output Low
}
_delay_us(1);
if(miso::read()) //Lesen des Pegels
{
datain |= 1;
}
_delay_us(1);
sck::make_high(); // Clock auf High
_delay_us(2);
data<<=1; //Schiebe um nächstes Bit zusenden
}
return datain;
}
uint8_t send_hard(uint8_t data) {
// Sendet ein Byte
SPDR = data;
// Wartet bis Byte gesendet wurde
loop_until_bit_is_set(SPSR, SPIF);
return SPDR;
}
};
#endif /* SPI_H_ */
+50
View File
@@ -0,0 +1,50 @@
#ifndef AVRLIB_PIN_HPP
#define AVRLIB_PIN_HPP
#include <avr/io.h>
namespace avrlib {
template <typename Port, uint8_t Pin>
struct pin
{
static void set(bool value = true)
{
if (value)
Port::port(Port::port() | (1<<Pin));
else
Port::port(Port::port() & ~(1<<Pin));
}
static void clear() { set(false); }
static void toggle() { Port::port(Port::port() ^ (1<<Pin)); }
static bool get() { return (Port::port() & (1<<Pin)) != 0; }
static bool value() { return (Port::pin() & (1<<Pin)) != 0; }
static void output(bool value)
{
if (value)
Port::dir(Port::dir() | (1<<Pin));
else
Port::dir(Port::dir() & ~(1<<Pin));
}
static bool output() { return (Port::dir() & (1<<Pin)) != 0; }
static void make_output() { output(true); }
static void make_input() { output(false); clear(); }
static void make_low() { clear(); output(true); }
static void make_high() { set(); output(true); }
static void set_value(bool value) { set(value); }
static void set_high() { set(true); }
static void set_low() { set(false); }
static bool read() { return value(); }
static void pullup() { set_high(); }
};
}
#endif
+22
View File
@@ -0,0 +1,22 @@
#ifndef AVRLIB_PORTB_HPP
#define AVRLIB_PORTB_HPP
#include <avr/io.h>
namespace avrlib {
struct portb
{
static uint8_t port() { return PORTB; }
static void port(uint8_t v) { PORTB = v; }
static uint8_t pin() { return PINB; }
static void pin(uint8_t v) { PINB = v; }
static uint8_t dir() { return DDRB; }
static void dir(uint8_t v) { DDRB = v; }
};
}
#endif
+22
View File
@@ -0,0 +1,22 @@
#ifndef AVRLIB_PORTC_HPP
#define AVRLIB_PORTC_HPP
#include <avr/io.h>
namespace avrlib {
struct portc
{
static uint8_t port() { return PORTC; }
static void port(uint8_t v) { PORTC = v; }
static uint8_t pin() { return PINC; }
static void pin(uint8_t v) { PINC = v; }
static uint8_t dir() { return DDRC; }
static void dir(uint8_t v) { DDRC = v; }
};
}
#endif
+45
View File
@@ -0,0 +1,45 @@
/*
* Rs232.h
*
* Created: 04.11.2013 21:31:09
* Author: netz
*/
#ifndef RS232_H_
#define RS232_H_
#include "config.h"
#include <stdio.h>
#include <avr/io.h>
template <uint32_t baudrate>
class Uart {
public:
Uart() {
init();
send("Uart done!\r\n");
}
void send(const char *text) {
while (*text)
{
uart_putchar(*text);
text++;
}
}
private:
void init() {
UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1
UCSRB = /*(1<<RXEN1) | (1<<RXCIE1) | */ (1<<TXEN); //Enable TXEN im Register UCR TX-Data Enable
UBRRL = (F_CPU / (baudrate * 16L) - 1); //Teiler wird gesetzt
}
uint8_t uart_putchar(uint8_t c) {
loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens
UDR = c;
return 0;
}
};
#endif /* RS232_H_ */