20131113-192703

This commit is contained in:
BlubbFish 2013-11-13 18:27:00 +00:00
parent 0d42ffca71
commit 7c7e3f1b19
15 changed files with 2916 additions and 2425 deletions

Binary file not shown.

View File

@ -10,13 +10,16 @@
#include "Led.hpp"
#include "uart.hpp"
#include "Spi.hpp"
#include "Output.h"
#include "Can.h"
#include "Output.hpp"
#include "Can.hpp"
#include "portc.hpp"
#include "portb.hpp"
#include <util/delay.h>
//////////////////// OUTPUT ///////////////////////////////////////
typedef Output<avrlib::portc, PINC4, PINC5> outclass;
outclass o;
//////////////////// LED //////////////////////////////////////////
typedef Led<avrlib::portc, PINC2, PINC1, PINC0> ledclass;
ledclass l;
@ -26,12 +29,12 @@ uartclass u;
///////////////////////// SPI /////////////////////////////////////
typedef Spi<avrlib::portb, PINB4, PINB6, PINB5, PINB7, 0, uartclass> spiclass;
spiclass s;
Output o;
Can c;
///////////////////////// CAN /////////////////////////////////////
typedef Can<spiclass, uartclass> canclass;
canclass c;
int main(void)
{
{
l.color(l.YELLOW);
u.send("Init done!\r\n");
@ -46,12 +49,12 @@ int main(void)
while(1)
{
u.send("Stuff!\r\n");
o.AudioOn();
//o.AudioOn();
c.can_send_message(&m);
_delay_ms(1);
o.AudioOff();
//_delay_ms(1);
//o.AudioOff();
l.rainbow(5);
_delay_ms(10000);
}
}

View File

@ -115,52 +115,49 @@
<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 most (-O3)</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 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.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>
<Compile Include="Button.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="Can.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="Can.h">
<Compile Include="Can.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="config.h">
@ -172,10 +169,7 @@
<Compile Include="mcp2515_defs.h">
<SubType>compile</SubType>
</Compile>
<Compile Include="Output.cpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="Output.h">
<Compile Include="Output.hpp">
<SubType>compile</SubType>
</Compile>
<Compile Include="pin.hpp">

310
Button/Button/Can.hpp Normal file
View File

@ -0,0 +1,310 @@
/*
* Can.h
*
* Created: 03.11.2013 21:52:03
* Author: netz
*/
#include "config.h"
#include <util/delay.h>
#include "mcp2515_defs.h"
#ifndef CAN_H_
#define CAN_H_
typedef struct
{
uint16_t id;
uint8_t rtr;
uint8_t length;
uint8_t data[8];
} CANMessage;
template <typename spiclass, typename uart>
class Can {
public:
Can() {
init_can();
}
uint8_t can_send_message(CANMessage *p_message) {
uint8_t status, address;
// Status des MCP2515 auslesen
s.CSOn();
s.send(SPI_READ_STATUS);
status = s.send(0xff);
s.send(0xff);
s.CSOff();
/* Statusbyte:
*
* Bit Funktion
* 2 TXB0CNTRL.TXREQ
* 4 TXB1CNTRL.TXREQ
* 6 TXB2CNTRL.TXREQ
*/
if (bit_is_clear(status, 2)) {
address = 0x00;
}
else if (bit_is_clear(status, 4)) {
address = 0x02;
}
else if (bit_is_clear(status, 6)) {
address = 0x04;
}
else {
/* Alle Puffer sind belegt,
Nachricht kann nicht verschickt werden */
return 0;
}
s.CSOn(); // CS Low
s.send(SPI_WRITE_TX | address);
// Standard ID einstellen
s.send((uint8_t) (p_message->id>>3));
s.send((uint8_t) (p_message->id<<5));
// Extended ID
s.send(0x00);
s.send(0x00);
uint8_t length = p_message->length;
if (length > 8) {
length = 8;
}
// Ist die Nachricht ein "Remote Transmit Request" ?
if (p_message->rtr)
{
/* Ein RTR hat zwar eine Laenge,
aber enthaelt keine Daten */
// Nachrichten Laenge + RTR einstellen
s.send((1<<RTR) | length);
}
else
{
// Nachrichten Laenge einstellen
s.send(length);
// Daten
for (uint8_t i=0;i<length;i++) {
s.send(p_message->data[i]);
}
}
s.CSOff(); // CS auf High
asm volatile ("nop");
/* CAN Nachricht verschicken
die letzten drei Bit im RTS Kommando geben an welcher
Puffer gesendet werden soll */
s.CSOn(); // CS wieder Low
if (address == 0x00) {
s.send(SPI_RTS | 0x01);
} else {
s.send(SPI_RTS | address);
}
s.CSOff(); // CS auf High
return 1;
}
uint8_t can_get_message(CANMessage *p_message) {
// Status auslesen
uint8_t status = mcp2515_read_rx_status();
if (bit_is_set(status, 6))
{
// Nachricht in Puffer 0
s.CSOn(); // CS Low
s.send(SPI_READ_RX);
}
else if (bit_is_set(status, 7))
{
// Nachricht in Puffer 1
s.CSOn(); // CS Low
s.send(SPI_READ_RX | 0x04);
}
else {
/* Fehler: Keine neue Nachricht vorhanden */
return 0xff;
}
// Standard ID auslesen
p_message->id = (uint16_t) s.send(0xff) << 3;
p_message->id |= (uint16_t) s.send(0xff) >> 5;
s.send(0xff);
s.send(0xff);
// Laenge auslesen
uint8_t length = s.send(0xff) & 0x0f;
p_message->length = length;
// Daten auslesen
for (uint8_t i=0;i<length;i++) {
p_message->data[i] = s.send(0xff);
}
s.CSOff();
if (bit_is_set(status,3)) {
p_message->rtr = 1;
} else {
p_message->rtr = 0;
}
// Interrupt Flag loeschen
if (bit_is_set(status,6)) {
mcp2515_bit_modify(CANINTF, (1<<RX0IF), 0);
} else {
mcp2515_bit_modify(CANINTF, (1<<RX1IF), 0);
}
return (status & 0x07);
}
private:
spiclass s;
uart u;
void init_can() {
// MCP2515 per Software Reset zuruecksetzten,
// danach ist der MCP2515 im Configuration Mode
s.CSOn();
s.send( SPI_RESET );
_delay_ms(1);
s.CSOff();
// etwas warten bis sich der MCP2515 zurueckgesetzt hat
_delay_ms(10);
/*
* Einstellen des Bit Timings
*
* Fosc = 16MHz
* BRP = 7 (teilen durch 8)
* TQ = 2 * (BRP + 1) / Fosc (=> 1 uS)
*
* Sync Seg = 1TQ
* Prop Seg = (PRSEG + 1) * TQ = 1 TQ
* Phase Seg1 = (PHSEG1 + 1) * TQ = 3 TQ
* Phase Seg2 = (PHSEG2 + 1) * TQ = 3 TQ
*
* Bus speed = 1 / (Total # of TQ) * TQ
* = 1 / 8 * TQ = 125 kHz
*/
// BRP = 7
mcp2515_write_register( CNF1, (1<<BRP0)|(1<<BRP1)|(1<<BRP2) );
// Prop Seg und Phase Seg1 einstellen
mcp2515_write_register( CNF2, (1<<BTLMODE)|(1<<PHSEG11) );
// Wake-up Filter deaktivieren, Phase Seg2 einstellen
mcp2515_write_register( CNF3, (1<<PHSEG21) );
// Aktivieren der Rx Buffer Interrupts
mcp2515_write_register( CANINTE, (1<<RX1IE)|(1<<RX0IE) );
/*
* Einstellen der Filter
*/
// Buffer 0 : Empfangen aller Nachrichten
mcp2515_write_register( RXB0CTRL, (1<<RXM1)|(1<<RXM0) );
// Buffer 1 : Empfangen aller Nachrichten
mcp2515_write_register( RXB1CTRL, (1<<RXM1)|(1<<RXM0) );
// Alle Bits der Empfangsmaske loeschen,
// damit werden alle Nachrichten empfangen
mcp2515_write_register( RXM0SIDH, 0 ); //return;
mcp2515_write_register( RXM0SIDL, 0 ); //return;
mcp2515_write_register( RXM0EID8, 0 );
mcp2515_write_register( RXM0EID0, 0 );
mcp2515_write_register( RXM1SIDH, 0 ); //return;
mcp2515_write_register( RXM1SIDL, 0 ); //return;
mcp2515_write_register( RXM1EID8, 0 );
mcp2515_write_register( RXM1EID0, 0 );
/*
* Einstellen der Pin Funktionen
*/
// Deaktivieren der Pins RXnBF Pins (High Impedance State)
mcp2515_write_register( BFPCTRL, 0 ); return;
// TXnRTS Bits als Inputs schalten
mcp2515_write_register( TXRTSCTRL, 0 );
// Device zurueck in den normalen Modus versetzten
mcp2515_bit_modify( CANCTRL, 0xE0, 0);
}
void mcp2515_write_register( uint8_t adress, uint8_t data ) {
// /CS des MCP2515 auf Low ziehen
s.CSOn();
s.send(SPI_WRITE);
s.send(adress);
s.send(data);
// /CS Leitung wieder freigeben
s.CSOff();
}
uint8_t mcp2515_read_register(uint8_t adress) {
uint8_t data;
// /CS des MCP2515 auf Low ziehen
s.CSOn();
s.send(SPI_READ);
s.send(adress);
data = s.send(0xff);
// /CS Leitung wieder freigeben
s.CSOff();
return data;
}
void mcp2515_bit_modify(uint8_t adress, uint8_t mask, uint8_t data) {
// /CS des MCP2515 auf Low ziehen
s.CSOn();
s.send(SPI_BIT_MODIFY);
s.send(adress);
s.send(mask);
s.send(data);
// /CS Leitung wieder freigeben
s.CSOff();
}
uint8_t mcp2515_read_rx_status(void) {
uint8_t data;
// /CS des MCP2515 auf Low ziehen
s.CSOn();
s.send(SPI_RX_STATUS);
data = s.send(0xff);
// Die Daten werden noch einmal wiederholt gesendet,
// man braucht also nur eins der beiden Bytes auswerten.
s.send(0xff);
// /CS Leitung wieder freigeben
s.CSOff();
return data;
}
};
#endif /* CAN_H_ */

View File

@ -19,7 +19,7 @@ Button.d Button.o: .././Button.cpp .././config.h .././Led.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 \
.././Output.h .././Can.h .././mcp2515_defs.h .././portc.hpp \
.././Output.hpp .././Can.hpp .././mcp2515_defs.h .././portc.hpp \
.././portb.hpp
.././config.h:
@ -66,9 +66,9 @@ 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:
.././Output.hpp:
.././Can.h:
.././Can.hpp:
.././mcp2515_defs.h:

Binary file not shown.

View File

@ -3,116 +3,187 @@
: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
:100050000C945300B30211241FBECFE5D8E0DEBFDD
:10006000CDBF10E0A0E6B0E0E8E7FBE002C00590FD
:100070000D92AA39B107D9F720E0AAE9B0E001C092
:100080001D92A03AB207E1F710E0C6E5D0E004C047
:100090002297FE010E94E102C435D107C9F70E94F0
:1000A0003E020C94BA050C940000FC0103C05D9B59
:1000B000FECF8CB981918111FACF0895BD9A089530
:1000C000BF9A089580FF02C0A89A01C0A898A09A7C
:1000D00081FF02C0A99A01C0A998A19A82FF02C01B
:1000E000AA9A01C0AA98A29A0895BF92CF92DF92CD
:1000F000EF92FF920F931F93CF93DF93D82EC62ECC
:10010000B42EC0E0D0E019C01E2D8D2D0E946200DB
:100110001F5F1F3FD1F700E010E005C08C2D0E944B
:1001200062000F5F1F4F0C171D07C4F3F394FB1001
:10013000EBCF2196CF3FD10519F0EC2EF12CF7CF64
:10014000DF91CF911F910F91FF90EF90DF90CF90B3
:10015000BF900895EF92FF920F931F93CF93DF9379
:10016000CDB7DEB7E2970FB6F894DEBF0FBECDBFB6
:10017000E62E1F926F9380E690E09F938F938E01FF
:100180000F5F1F4F1F930F930E94E502C8010E944B
:100190005500EFB80F900F900F900F900F900F90A9
:1001A000779BFECF8FB118E0F12CFF0CC7980E940F
:1001B0006000E7FE02C0C59A01C0C5980E945E00BB
:1001C00085E08A95F1F70000B69B02C081E0F82A2D
:1001D00085E08A95F1F70000C79A0E9460008AE0E6
:1001E0008A95F1F700C0EE0C1150F9F61F92FF92BC
:1001F0002AE630E03F932F938E010F5F1F4F1F932E
:100200000F930E94E502C8010E9455000F900F90C5
:100210000F900F900F900F908F2DE2960FB6F894DD
:10022000DEBF0FBECDBFDF91CF911F910F91FF9029
:10023000EF900895C498BC9A0895C49ABC9A089502
:10024000FF920F931F93CF93DF931F92CDB7DEB72B
:10025000F82E092F162F49830E941A0162E08F2D74
:10026000902F0E94AA00612F8F2D902F0E94AA002C
:100270004981642F8F2D902F0E94AA000F90DF914B
:10028000CF911F910F91FF900C941D01CF93DF939D
:10029000EC010E941A0160ECCE010E94AA008FE9D5
:1002A0009FE00197F1F700C000000E941D018FE35D
:1002B0009CE90197F1F700C0000047E06AE2CE0137
:1002C0000E94200140E969E2CE010E94200142E043
:1002D00068E2CE010E94200143E06BE2CE010E9461
:1002E000200140E660E6CE010E94200140E660E782
:1002F000CE010E94200140E060E2CE010E94200178
:1003000040E061E2CE010E94200140E062E2CE01C5
:100310000E94200140E063E2CE010E94200140E003
:1003200064E2CE010E94200140E065E2CE010E941D
:10033000200140E066E2CE010E94200140E067E239
:10034000CE010E94200140E06CE0CE01DF91CF9110
:100350000C942001AF92BF92CF92DF92EF92FF9266
:100360000F931F93CF93DF931F92CDB7DEB76C012E
:100370008B010E941A0160EAC6010E94AA006FEF79
:10038000C6010E94AA0089836FEFC6010E94AA00DD
:100390000E941D01898182FF09C0898184FF08C0F4
:1003A000898186FD5EC034E0B32E04C0B12C02C04A
:1003B00022E0B22E0E941A016B2D6064C6010E94D9
:1003C000AA00F8016081718193E0769567959A950E
:1003D000E1F7C6010E94AA00F80160816295660FEC
:1003E000607EC6010E94AA0060E0C6010E94AA00C9
:1003F00060E0C6010E94AA00F801A380F8E0FA15A7
:1004000010F488E0A82EF80182816A2D882329F053
:100410006064C6010E94AA0012C0C6010E94AA0020
:10042000E12CF12C0AC0F801EE0DFF1D6481C6011C
:100430000E94AA00FFEFEF1AFF0AEA14A0F30E943D
:100440001D0100000E941A01B11002C061E802C043
:100450006B2D6068C6010E94AA000E941D0181E008
:1004600001C080E00F90DF91CF911F910F91FF901D
:10047000EF90DF90CF90BF90AF900895CF93DF9330
:10048000CDB7DEB72C970FB6F894DEBF0FBECDBF49
:1004900086E00E94620087E790E00E94550083E2B8
:1004A00091E09A8389831B8282E08C838FEA8D831B
:1004B0008EEF8E834AE064E086E00E94750084E857
:1004C00090E00E945500BE016F5F7F4F8AE990E087
:1004D0000E94AA0145E066E084E00E94750045E0C4
:1004E00062E086E00E94750045E063E082E00E94E1
:1004F000750045E061E083E00E94750045E065E03D
:1005000081E00E94750045E064E085E00E9475008E
:100510002AEA36EE86E991E0215030408040904052
:10052000D9F70000CCCF87E689B988E08AB986E898
:1005300080BD8DE890E00E9455000E945E00C59845
:100540000E945E000E946000C7980E946000BC9AF2
:100550000E941D01BE98C698C698BE9A80E58DB9C6
:1005600081E08EB908951F93CF93DF93A59AAD983C
:10057000A59AA49AAC98A49AA29AA19AA09A17E6CE
:1005800019B9D8E0DAB9C6E8C0BD8DE890E00E949C
:1005900055008CE990E00E9493028AE990E00E9465
:1005A000930219B9DAB9C0BD8DE890E00E945500F8
:1005B0008AE990E0DF91CF911F910C944601EE0FF4
:1005C000FF1F0590F491E02D0994AEE0B0E0EBEE52
:1005D000F2E00C9491050D891E8986E08C831A83C4
:1005E00009838FEF9FE79E838D83CE014996AC01EF
:1005F0006F89788DCE0101960E940703EF81F885FF
:10060000E00FF11F10822E96E4E00C94AD05ACE0F3
:10061000B0E0EDE0F3E00C9483057C016B018A010E
:10062000FC0117821682838181FFC6C188248394CE
:10063000912C8C0E9D1EF7019381F60193FD8591FF
:1006400093FF81916F01882309F4B2C1853239F497
:1006500093FD859193FF81916F01853229F4B70154
:1006600090E00E94F904E7CF512C312C20E0203299
:10067000A8F48B3261F028F4803251F0833271F4A7
:100680000BC08D3239F0803349F4216028C02260DC
:10069000246025C0286023C0206121C027FD27C019
:1006A000382F30533A3078F426FF06C0FAE05F9EC8
:1006B000300D1124532E13C08AE0389E300D1124C2
:1006C000332E20620CC08E3221F426FD71C12064CD
:1006D00006C08C3611F4206802C0883641F4F60159
:1006E00093FD859193FF81916F018111C0CF982F68
:1006F0009554933018F09052933028F40C5F1F4FAC
:10070000FFE3F9830DC0833631F0833771F0833511
:1007100009F05EC023C0F801808189830E5F1F4FFE
:1007200044244394512C540115C03801F2E06F0E5B
:10073000711CF801A080B18026FF03C0652D70E018
:1007400002C06FEF7FEFC5012C870E94EE042C01E1
:1007500083012C856FE7262E222218C03801F2E093
:100760006F0E711CF801A080B18026FF03C0652DBB
:1007700070E002C06FEF7FEFC5012C870E94E30499
:100780002C012C8550E8252E222A830123FC1CC035
:1007900006C0B70180E290E00E94F9043A94832DEC
:1007A00090E048165906A8F30FC0F50127FC859183
:1007B00027FE81915F01B70190E00E94F90431109A
:1007C0003A94F1E04F1A51084114510471F7EDC009
:1007D000843611F0893641F5F80127FF07C06081A2
:1007E0007181828193810C5F1F4F08C0608171818C
:1007F000882777FD8095982F0E5F1F4F4FE6B42E08
:10080000B22297FF09C090958095709561957F4FB2
:100810008F4F9F4FF0E8BF2A2AE030E0A4010E94EA
:100820002505A82EA81843C0853731F43FEEB32E16
:10083000B2222AE030E024C099EFB92EB2228F36DE
:10084000B9F020F4883509F0B3C00DC0803721F02D
:10085000883709F0ADC002C020E1B22AB4FE0BC057
:1008600084E0B82A08C024FF09C0E6E0BE2A06C01A
:1008700028E030E005C020E130E002C020E132E0B5
:10088000F801B7FE07C060817181828193810C5F9E
:100890001F4F06C06081718180E090E00E5F1F4FA6
:1008A000A4010E942505A82EA818FFE7BF22B6FEC6
:1008B0000BC02B2D2E7FA51450F4B4FE0AC0B2FC41
:1008C00008C02B2D2E7E05C07A2C2B2D03C07A2C30
:1008D00001C0752C24FF0DC0FE01EA0DF11D8081C1
:1008E000803311F4297E09C022FF06C073947394EB
:1008F00004C0822F867809F0739423FD14C020FF72
:100900000FC05A2C731460F4530C5718732C08C082
:10091000B70180E290E02C870E94F90473942C8543
:100920007314B0F304C0731410F4371801C0312CE1
:1009300024FF12C0B70180E390E02C870E94F904E5
:100940002C8522FF1EC021FF03C088E590E002C075
:1009500088E790E0B7010CC0822F867891F021FDE6
:1009600002C080E201C08BE227FD8DE2B70190E07A
:100970000E94F90406C0B70180E390E00E94F904E8
:100980005A94A514C0F3AA94F401EA0DF11DB7011D
:10099000808190E00E94F904A110F5CF06C0B70154
:1009A00080E290E00E94F9043A943110F8CF43CEEF
:1009B000F7012681378102C02FEF3FEFC9012C9646
:1009C000E2E10C949F05FC0105906150704001101C
:1009D000D8F7809590958E0F9F1F0895FC01615068
:1009E000704001900110D8F7809590958E0F9F1F51
:1009F00008950F931F93CF93DF938C01EB018B81AD
:100A000081FD03C00FEF1FEF1AC082FF0DC02E81C2
:100A10003F818C819D812817390764F4E881F98131
:100A20000193F983E88306C0E885F985802F09954D
:100A3000892B41F78E819F8101969F838E83C80108
:100A4000DF91CF911F910F910895FA01AA272830C5
:100A500051F1203181F1E8946F936E7F6E5F7F4F8B
:100A60008F4F9F4FAF4FB1E03ED0B4E03CD0670F07
:100A7000781F891F9A1FA11D680F791F8A1F911D5A
:100A8000A11D6A0F711D811D911DA11D20D009F4AA
:100A900068943F912AE0269F11243019305D3193EC
:100AA000DEF6CF010895462F4770405D4193B3E0D5
:100AB0000FD0C9F7F6CF462F4F70405D4A3318F07C
:100AC000495D31FD4052419302D0A9F7EACFB4E02D
:100AD000A6959795879577956795BA95C9F70097E5
:100AE0006105710508959B01AC010A2E0694579586
:100AF000479537952795BA95C9F7620F731F841FDD
:100B0000951FA01D08952F923F924F925F926F9272
:100B10007F928F929F92AF92BF92CF92DF92EF928D
:100B2000FF920F931F93CF93DF93CDB7DEB7CA1B0E
:100B3000DB0B0FB6F894DEBF0FBECDBF09942A8839
:100B4000398848885F846E847D848C849B84AA84E1
:100B5000B984C884DF80EE80FD800C811B81AA816E
:100B6000B981CE0FD11D0FB6F894DEBF0FBECDBF39
:080B7000ED010895F894FFCF98
:100B78002D3E2030782530327800203C2D203078EA
:100B8800253032780D0A00496E697420646F6E65ED
:100B9800210D0A005374756666210D0A00556172AD
:0A0BA8007420646F6E65210D0A00D1
:00000001FF

File diff suppressed because it is too large Load Diff

View File

@ -10,26 +10,34 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-
Button.o (__do_global_ctors)
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)
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) (__tablejump__)
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\libc.a(sprintf.o)
Button.o (sprintf)
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\libc.a(vfprintf_std.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\libc.a(sprintf.o) (vfprintf)
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\libc.a(strnlen_P.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\libc.a(vfprintf_std.o) (strnlen_P)
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\libc.a(strnlen.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\libc.a(vfprintf_std.o) (strnlen)
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\libc.a(fputc.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\libc.a(vfprintf_std.o) (fputc)
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\libc.a(ultoa_invert.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\libc.a(vfprintf_std.o) (__ultoa_invert)
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(_prologue.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\libc.a(sprintf.o) (__prologue_saves__)
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(_epilogue.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\libc.a(sprintf.o) (__epilogue_restores__)
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
.group 0x00000000 0x8 Button.o
.group 0x00000000 0x8 Button.o
.group 0x00000000 0x8 Button.o
.group 0x00000000 0x8 Button.o
.group 0x00000000 0x8 Button.o
.group 0x00000000 0x8 Button.o
.text 0x00000000 0x0 Button.o
.text 0x00000000 0x0 Can.o
.bss 0x00000000 0x0 Can.o
.text._ZN3Can21mcp2515_read_registerEh
0x00000000 0x2c Can.o
.text._ZN3Can22mcp2515_read_rx_statusEv
0x00000000 0x2e Can.o
.text._ZN3Can15can_get_messageEP10CANMessage
0x00000000 0x124 Can.o
.text 0x00000000 0x0 Output.o
.bss 0x00000000 0x0 Output.o
.text._ZN6Output8MotorOffEv
0x00000000 0x4 Output.o
.text._ZN6Output7MotorOnEv
0x00000000 0x4 Output.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(_exit.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(_exit.o)
.text.libgcc.mul
@ -94,6 +102,40 @@ 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(_tablejump.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(_tablejump.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/../../../../avr/lib/avr5\libc.a(sprintf.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/../../../../avr/lib/avr5\libc.a(sprintf.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/../../../../avr/lib/avr5\libc.a(vfprintf_std.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/../../../../avr/lib/avr5\libc.a(vfprintf_std.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/../../../../avr/lib/avr5\libc.a(strnlen_P.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/../../../../avr/lib/avr5\libc.a(strnlen_P.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/../../../../avr/lib/avr5\libc.a(strnlen.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/../../../../avr/lib/avr5\libc.a(strnlen.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/../../../../avr/lib/avr5\libc.a(fputc.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/../../../../avr/lib/avr5\libc.a(fputc.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/../../../../avr/lib/avr5\libc.a(ultoa_invert.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/../../../../avr/lib/avr5\libc.a(ultoa_invert.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(_prologue.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(_prologue.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(_prologue.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(_prologue.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(_prologue.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(_prologue.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(_prologue.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(_epilogue.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(_epilogue.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(_epilogue.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(_epilogue.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(_epilogue.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(_epilogue.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(_epilogue.o)
Memory Configuration
@ -111,8 +153,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 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
END GROUP
@ -212,7 +252,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.rela.plt
*(.rela.plt)
.text 0x00000000 0x71a
.text 0x00000000 0xb78
*(.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
@ -294,57 +334,75 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
0x000000a6 __vector_20
0x000000aa . = ALIGN (0x2)
*(.text.*)
.text.main 0x000000aa 0x30a Button.o
0x000000aa main
.text._ZN4UartILm9600EE4sendEPKc.isra.2
0x000000aa 0x12 Button.o
.text._ZN6avrlib3pinINS_5portbELh5EE6outputEb.part.21
0x000000bc 0x4 Button.o
.text._ZN6avrlib3pinINS_5portbELh7EE6outputEb.part.22
0x000000c0 0x4 Button.o
.text._ZN3LedIN6avrlib5portcELi2ELi1ELi0EE5colorEh.isra.11
0x000000c4 0x26 Button.o
.text._ZN3LedIN6avrlib5portcELi2ELi1ELi0EE4fadeEhhh.isra.12
0x000000ea 0x6a Button.o
.text._ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEE4sendEh
0x00000154 0xe0 Button.o
0x00000154 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEE4sendEh
.text._ZN6avrlib3pinINS_5portbELh4EE8make_lowEv
0x00000234 0x6 Button.o
0x00000234 _ZN6avrlib3pinINS_5portbELh4EE8make_lowEv
.text._ZN6avrlib3pinINS_5portbELh4EE9make_highEv
0x0000023a 0x6 Button.o
0x0000023a _ZN6avrlib3pinINS_5portbELh4EE9make_highEv
.text._ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E22mcp2515_write_registerEhh
0x00000240 0x4c Button.o
0x00000240 _ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E22mcp2515_write_registerEhh
.text._ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E8init_canEv
0x0000028c 0xc8 Button.o
0x0000028c _ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E8init_canEv
.text._ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E16can_send_messageEP10CANMessage
0x00000354 0x128 Button.o
0x00000354 _ZN3CanI3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEES4_E16can_send_messageEP10CANMessage
.text.startup.main
0x0000047c 0xaa Button.o
0x0000047c main
.text._ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC2Ev
0x000003b4 0x42 Button.o
0x000003b4 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC1Ev
0x000003b4 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC2Ev
.text._GLOBAL__sub_I_l
0x000003f6 0x3e Button.o
.text._ZN3Can8init_pinEv
0x00000434 0x12 Can.o
0x00000434 _ZN3Can8init_pinEv
.text._ZN3Can8init_spiEv
0x00000446 0xa Can.o
0x00000446 _ZN3Can8init_spiEv
.text._ZN3Can8spi_putcEh
0x00000450 0xa Can.o
0x00000450 _ZN3Can8spi_putcEh
.text._ZN3Can22mcp2515_write_registerEhh
0x0000045a 0x32 Can.o
0x0000045a _ZN3Can22mcp2515_write_registerEhh
.text._ZN3Can18mcp2515_bit_modifyEhhh
0x0000048c 0x40 Can.o
0x0000048c _ZN3Can18mcp2515_bit_modifyEhhh
.text._ZN3Can8init_canEv
0x000004cc 0xda Can.o
0x000004cc _ZN3Can8init_canEv
.text._ZN3CanC2Ev
0x000005a6 0x1c Can.o
0x000005a6 _ZN3CanC2Ev
0x000005a6 _ZN3CanC1Ev
.text._ZN3Can16can_send_messageEP10CANMessage
0x000005c2 0x138 Can.o
0x000005c2 _ZN3Can16can_send_messageEP10CANMessage
.text._ZN6OutputC2Ev
0x000006fa 0x8 Output.o
0x000006fa _ZN6OutputC2Ev
0x000006fa _ZN6OutputC1Ev
.text._ZN6Output8AudioOffEv
0x00000702 0x4 Output.o
0x00000702 _ZN6Output8AudioOffEv
.text._ZN6Output7AudioOnEv
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)
0x00000526 0x40 Button.o
0x00000526 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC1Ev
0x00000526 _ZN3SpiIN6avrlib5portbELi4ELi6ELi5ELi7ELi0E4UartILm9600EEEC2Ev
.text.startup._GLOBAL__sub_I_o
0x00000566 0x58 Button.o
.text.libgcc 0x000005be 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)
0x000005be __tablejump2__
0x000005c2 __tablejump__
.text.avr-libc
0x000005ca 0x44 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\libc.a(sprintf.o)
0x000005ca sprintf
.text.avr-libc
0x0000060e 0x3b8 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\libc.a(vfprintf_std.o)
0x0000060e vfprintf
.text.avr-libc
0x000009c6 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/../../../../avr/lib/avr5\libc.a(strnlen_P.o)
0x000009c6 strnlen_P
.text.avr-libc
0x000009dc 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/../../../../avr/lib/avr5\libc.a(strnlen.o)
0x000009dc strnlen
.text.avr-libc
0x000009f2 0x58 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\libc.a(fputc.o)
0x000009f2 fputc
.text.avr-libc
0x00000a4a 0xbc 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\libc.a(ultoa_invert.o)
0x00000a4a __ultoa_invert
.text.libgcc.prologue
0x00000b06 0x38 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(_prologue.o)
0x00000b06 __prologue_saves__
.text.libgcc.prologue
0x00000b3e 0x36 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(_epilogue.o)
0x00000b3e __epilogue_restores__
0x00000b74 . = ALIGN (0x2)
*(.fini9)
.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 0x00000b74 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)
0x00000b74 _exit
0x00000b74 exit
*(.fini9)
*(.fini8)
*(.fini8)
@ -363,54 +421,59 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.fini1)
*(.fini1)
*(.fini0)
.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 0x00000b74 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)
0x0000071a _etext = .
0x00000b78 _etext = .
.data 0x00800060 0x24 load address 0x0000071a
.data 0x00800060 0x3a load address 0x00000b78
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 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 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\libc.a(sprintf.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/../../../../avr/lib/avr5\libc.a(vfprintf_std.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/../../../../avr/lib/avr5\libc.a(strnlen_P.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/../../../../avr/lib/avr5\libc.a(strnlen.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/../../../../avr/lib/avr5\libc.a(fputc.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/../../../../avr/lib/avr5\libc.a(ultoa_invert.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(_prologue.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(_epilogue.o)
*(.data*)
*(.rodata)
*(.rodata*)
.rodata.str1.1
0x00800060 0x23 Button.o
0x00800060 0x3a Button.o
*(.gnu.linkonce.d*)
0x00800084 . = ALIGN (0x2)
*fill* 0x00800083 0x1
0x00800084 _edata = .
0x00800084 PROVIDE (__data_end, .)
0x0080009a . = ALIGN (0x2)
0x0080009a _edata = .
0x0080009a PROVIDE (__data_end, .)
.bss 0x00800084 0x5
0x00800084 PROVIDE (__bss_start, .)
.bss 0x0080009a 0x6
0x0080009a PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800084 0x5 Button.o
0x00800084 c
0x00800085 o
0x00800086 s
0x00800087 u
0x00800088 l
.bss 0x0080009a 0x6 Button.o
0x0080009a c
0x0080009c s
0x0080009d u
0x0080009e l
0x0080009f o
*(.bss*)
*(COMMON)
0x00800089 PROVIDE (__bss_end, .)
0x0000071a __data_load_start = LOADADDR (.data)
0x0000073e __data_load_end = (__data_load_start + SIZEOF (.data))
0x008000a0 PROVIDE (__bss_end, .)
0x00000b78 __data_load_start = LOADADDR (.data)
0x00000bb2 __data_load_end = (__data_load_start + SIZEOF (.data))
.noinit 0x00800089 0x0
0x00800089 PROVIDE (__noinit_start, .)
.noinit 0x008000a0 0x0
0x008000a0 PROVIDE (__noinit_start, .)
*(.noinit*)
0x00800089 PROVIDE (__noinit_end, .)
0x00800089 _end = .
0x00800089 PROVIDE (__heap_start, .)
0x008000a0 PROVIDE (__noinit_end, .)
0x008000a0 _end = .
0x008000a0 PROVIDE (__heap_start, .)
.eeprom 0x00810000 0x0
*(.eeprom*)
@ -431,13 +494,19 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.user_signatures
*(.user_signatures*)
.stab 0x00000000 0x6cc
.stab 0x00000000 0xc84
*(.stab)
.stab 0x00000000 0x6cc 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
.stab 0x000006cc 0x9c 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\libc.a(strnlen_P.o)
0xa8 (size before relaxing)
.stab 0x00000768 0x9c 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\libc.a(strnlen.o)
0xa8 (size before relaxing)
.stab 0x00000804 0x480 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\libc.a(ultoa_invert.o)
0x48c (size before relaxing)
.stabstr 0x00000000 0x82
.stabstr 0x00000000 0x1aa
*(.stabstr)
.stabstr 0x00000000 0x82 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
.stabstr 0x00000000 0x1aa 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
.stab.excl
*(.stab.excl)
@ -455,8 +524,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
*(.comment)
.comment 0x00000000 0x2f Button.o
0x30 (size before relaxing)
.comment 0x00000000 0x30 Can.o
.comment 0x00000000 0x30 Output.o
.comment 0x00000000 0x30 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\libc.a(sprintf.o)
.comment 0x00000000 0x30 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\libc.a(vfprintf_std.o)
.comment 0x00000000 0x30 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\libc.a(fputc.o)
.debug
*(.debug)
@ -470,57 +540,66 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_sfnames
*(.debug_sfnames)
.debug_aranges 0x00000000 0xe0
.debug_aranges 0x00000000 0xe8
*(.debug_aranges)
.debug_aranges
0x00000000 0x30 Button.o
0x00000000 0x88 Button.o
.debug_aranges
0x00000030 0x70 Can.o
0x00000088 0x20 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\libc.a(sprintf.o)
.debug_aranges
0x000000a0 0x40 Output.o
0x000000a8 0x20 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\libc.a(vfprintf_std.o)
.debug_aranges
0x000000c8 0x20 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\libc.a(fputc.o)
.debug_pubnames
*(.debug_pubnames)
.debug_info 0x00000000 0x40d0
.debug_info 0x00000000 0x3726
*(.debug_info)
.debug_info 0x00000000 0x312e Button.o
.debug_info 0x0000312e 0xdae Can.o
.debug_info 0x00003edc 0x1f4 Output.o
.debug_info 0x00000000 0x2e65 Button.o
.debug_info 0x00002e65 0x204 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\libc.a(sprintf.o)
.debug_info 0x00003069 0x549 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\libc.a(vfprintf_std.o)
.debug_info 0x000035b2 0x174 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\libc.a(fputc.o)
*(.gnu.linkonce.wi.*)
.debug_abbrev 0x00000000 0x841
.debug_abbrev 0x00000000 0x938
*(.debug_abbrev)
.debug_abbrev 0x00000000 0x429 Button.o
.debug_abbrev 0x00000429 0x2fa Can.o
.debug_abbrev 0x00000723 0x11e Output.o
.debug_abbrev 0x00000000 0x547 Button.o
.debug_abbrev 0x00000547 0x12a 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\libc.a(sprintf.o)
.debug_abbrev 0x00000671 0x1d6 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\libc.a(vfprintf_std.o)
.debug_abbrev 0x00000847 0xf1 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\libc.a(fputc.o)
.debug_line 0x00000000 0x723
.debug_line 0x00000000 0x9b9
*(.debug_line)
.debug_line 0x00000000 0x3cc Button.o
.debug_line 0x000003cc 0x2ce Can.o
.debug_line 0x0000069a 0x89 Output.o
.debug_line 0x00000000 0x493 Button.o
.debug_line 0x00000493 0x14e 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\libc.a(sprintf.o)
.debug_line 0x000005e1 0x2fe 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\libc.a(vfprintf_std.o)
.debug_line 0x000008df 0xda 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\libc.a(fputc.o)
.debug_frame 0x00000000 0x254
.debug_frame 0x00000000 0x280
*(.debug_frame)
.debug_frame 0x00000000 0x54 Button.o
.debug_frame 0x00000054 0x19c Can.o
.debug_frame 0x000001f0 0x64 Output.o
.debug_frame 0x00000000 0x1cc Button.o
.debug_frame 0x000001cc 0x30 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\libc.a(sprintf.o)
.debug_frame 0x000001fc 0x4c 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\libc.a(vfprintf_std.o)
.debug_frame 0x00000248 0x38 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\libc.a(fputc.o)
.debug_str 0x00000000 0x10df
.debug_str 0x00000000 0x179d
*(.debug_str)
.debug_str 0x00000000 0x108e Button.o
0x10f0 (size before relaxing)
.debug_str 0x0000108e 0x32 Can.o
0x33e (size before relaxing)
.debug_str 0x000010c0 0x1f Output.o
0x150 (size before relaxing)
.debug_str 0x00000000 0x15ee Button.o
0x165c (size before relaxing)
.debug_str 0x000015ee 0xa3 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\libc.a(sprintf.o)
0x127 (size before relaxing)
.debug_str 0x00001691 0xbf 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\libc.a(vfprintf_std.o)
0x198 (size before relaxing)
.debug_str 0x00001750 0x4d 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\libc.a(fputc.o)
0xf8 (size before relaxing)
.debug_loc 0x00000000 0xf51
.debug_loc 0x00000000 0xce9
*(.debug_loc)
.debug_loc 0x00000000 0x80a Button.o
.debug_loc 0x0000080a 0x721 Can.o
.debug_loc 0x00000f2b 0x26 Output.o
.debug_loc 0x00000000 0x6b8 Button.o
.debug_loc 0x000006b8 0x21 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\libc.a(sprintf.o)
.debug_loc 0x000006d9 0x51d 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\libc.a(vfprintf_std.o)
.debug_loc 0x00000bf6 0xf3 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\libc.a(fputc.o)
.debug_macinfo
*(.debug_macinfo)
@ -528,11 +607,12 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8
.debug_pubtypes
*(.debug_pubtypes)
.debug_ranges 0x00000000 0x5e0
.debug_ranges 0x00000000 0x128
*(.debug_ranges)
.debug_ranges 0x00000000 0x550 Button.o
.debug_ranges 0x00000550 0x60 Can.o
.debug_ranges 0x000005b0 0x30 Output.o
.debug_ranges 0x00000000 0xf8 Button.o
.debug_ranges 0x000000f8 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/../../../../avr/lib/avr5\libc.a(sprintf.o)
.debug_ranges 0x00000108 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/../../../../avr/lib/avr5\libc.a(vfprintf_std.o)
.debug_ranges 0x00000118 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/../../../../avr/lib/avr5\libc.a(fputc.o)
.debug_macro
*(.debug_macro)

View File

@ -4,116 +4,187 @@ 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
S11300500C945300B30211241FBECFE5D8E0DEBFD9
S1130060CDBF10E0A0E6B0E0E8E7FBE002C00590F9
S11300700D92AA39B107D9F720E0AAE9B0E001C08E
S11300801D92A03AB207E1F710E0C6E5D0E004C043
S11300902297FE010E94E102C435D107C9F70E94EC
S11300A03E020C94BA050C940000FC0103C05D9B55
S11300B0FECF8CB981918111FACF0895BD9A08952C
S11300C0BF9A089580FF02C0A89A01C0A898A09A78
S11300D081FF02C0A99A01C0A998A19A82FF02C017
S11300E0AA9A01C0AA98A29A0895BF92CF92DF92C9
S11300F0EF92FF920F931F93CF93DF93D82EC62EC8
S1130100B42EC0E0D0E019C01E2D8D2D0E946200D7
S11301101F5F1F3FD1F700E010E005C08C2D0E9447
S113012062000F5F1F4F0C171D07C4F3F394FB10FD
S1130130EBCF2196CF3FD10519F0EC2EF12CF7CF60
S1130140DF91CF911F910F91FF90EF90DF90CF90AF
S1130150BF900895EF92FF920F931F93CF93DF9375
S1130160CDB7DEB7E2970FB6F894DEBF0FBECDBFB2
S1130170E62E1F926F9380E690E09F938F938E01FB
S11301800F5F1F4F1F930F930E94E502C8010E9447
S11301905500EFB80F900F900F900F900F900F90A5
S11301A0779BFECF8FB118E0F12CFF0CC7980E940B
S11301B06000E7FE02C0C59A01C0C5980E945E00B7
S11301C085E08A95F1F70000B69B02C081E0F82A29
S11301D085E08A95F1F70000C79A0E9460008AE0E2
S11301E08A95F1F700C0EE0C1150F9F61F92FF92B8
S11301F02AE630E03F932F938E010F5F1F4F1F932A
S11302000F930E94E502C8010E9455000F900F90C1
S11302100F900F900F900F908F2DE2960FB6F894D9
S1130220DEBF0FBECDBFDF91CF911F910F91FF9025
S1130230EF900895C498BC9A0895C49ABC9A0895FE
S1130240FF920F931F93CF93DF931F92CDB7DEB727
S1130250F82E092F162F49830E941A0162E08F2D70
S1130260902F0E94AA00612F8F2D902F0E94AA0028
S11302704981642F8F2D902F0E94AA000F90DF9147
S1130280CF911F910F91FF900C941D01CF93DF9399
S1130290EC010E941A0160ECCE010E94AA008FE9D1
S11302A09FE00197F1F700C000000E941D018FE359
S11302B09CE90197F1F700C0000047E06AE2CE0133
S11302C00E94200140E969E2CE010E94200142E03F
S11302D068E2CE010E94200143E06BE2CE010E945D
S11302E0200140E660E6CE010E94200140E660E77E
S11302F0CE010E94200140E060E2CE010E94200174
S113030040E061E2CE010E94200140E062E2CE01C1
S11303100E94200140E063E2CE010E94200140E0FF
S113032064E2CE010E94200140E065E2CE010E9419
S1130330200140E066E2CE010E94200140E067E235
S1130340CE010E94200140E06CE0CE01DF91CF910C
S11303500C942001AF92BF92CF92DF92EF92FF9262
S11303600F931F93CF93DF931F92CDB7DEB76C012A
S11303708B010E941A0160EAC6010E94AA006FEF75
S1130380C6010E94AA0089836FEFC6010E94AA00D9
S11303900E941D01898182FF09C0898184FF08C0F0
S11303A0898186FD5EC034E0B32E04C0B12C02C046
S11303B022E0B22E0E941A016B2D6064C6010E94D5
S11303C0AA00F8016081718193E0769567959A950A
S11303D0E1F7C6010E94AA00F80160816295660FE8
S11303E0607EC6010E94AA0060E0C6010E94AA00C5
S11303F060E0C6010E94AA00F801A380F8E0FA15A3
S113040010F488E0A82EF80182816A2D882329F04F
S11304106064C6010E94AA0012C0C6010E94AA001C
S1130420E12CF12C0AC0F801EE0DFF1D6481C60118
S11304300E94AA00FFEFEF1AFF0AEA14A0F30E9439
S11304401D0100000E941A01B11002C061E802C03F
S11304506B2D6068C6010E94AA000E941D0181E004
S113046001C080E00F90DF91CF911F910F91FF9019
S1130470EF90DF90CF90BF90AF900895CF93DF932C
S1130480CDB7DEB72C970FB6F894DEBF0FBECDBF45
S113049086E00E94620087E790E00E94550083E2B4
S11304A091E09A8389831B8282E08C838FEA8D8317
S11304B08EEF8E834AE064E086E00E94750084E853
S11304C090E00E945500BE016F5F7F4F8AE990E083
S11304D00E94AA0145E066E084E00E94750045E0C0
S11304E062E086E00E94750045E063E082E00E94DD
S11304F0750045E061E083E00E94750045E065E039
S113050081E00E94750045E064E085E00E9475008A
S11305102AEA36EE86E991E021503040804090404E
S1130520D9F70000CCCF87E689B988E08AB986E894
S113053080BD8DE890E00E9455000E945E00C59841
S11305400E945E000E946000C7980E946000BC9AEE
S11305500E941D01BE98C698C698BE9A80E58DB9C2
S113056081E08EB908951F93CF93DF93A59AAD9838
S1130570A59AA49AAC98A49AA29AA19AA09A17E6CA
S113058019B9D8E0DAB9C6E8C0BD8DE890E00E9498
S113059055008CE990E00E9493028AE990E00E9461
S11305A0930219B9DAB9C0BD8DE890E00E945500F4
S11305B08AE990E0DF91CF911F910C944601EE0FF0
S11305C0FF1F0590F491E02D0994AEE0B0E0EBEE4E
S11305D0F2E00C9491050D891E8986E08C831A83C0
S11305E009838FEF9FE79E838D83CE014996AC01EB
S11305F06F89788DCE0101960E940703EF81F885FB
S1130600E00FF11F10822E96E4E00C94AD05ACE0EF
S1130610B0E0EDE0F3E00C9483057C016B018A010A
S1130620FC0117821682838181FFC6C188248394CA
S1130630912C8C0E9D1EF7019381F60193FD8591FB
S113064093FF81916F01882309F4B2C1853239F493
S113065093FD859193FF81916F01853229F4B70150
S113066090E00E94F904E7CF512C312C20E0203295
S1130670A8F48B3261F028F4803251F0833271F4A3
S11306800BC08D3239F0803349F4216028C02260D8
S1130690246025C0286023C0206121C027FD27C015
S11306A0382F30533A3078F426FF06C0FAE05F9EC4
S11306B0300D1124532E13C08AE0389E300D1124BE
S11306C0332E20620CC08E3221F426FD71C12064C9
S11306D006C08C3611F4206802C0883641F4F60155
S11306E093FD859193FF81916F018111C0CF982F64
S11306F09554933018F09052933028F40C5F1F4FA8
S1130700FFE3F9830DC0833631F0833771F083350D
S113071009F05EC023C0F801808189830E5F1F4FFA
S113072044244394512C540115C03801F2E06F0E57
S1130730711CF801A080B18026FF03C0652D70E014
S113074002C06FEF7FEFC5012C870E94EE042C01DD
S113075083012C856FE7262E222218C03801F2E08F
S11307606F0E711CF801A080B18026FF03C0652DB7
S113077070E002C06FEF7FEFC5012C870E94E30495
S11307802C012C8550E8252E222A830123FC1CC031
S113079006C0B70180E290E00E94F9043A94832DE8
S11307A090E048165906A8F30FC0F50127FC85917F
S11307B027FE81915F01B70190E00E94F904311096
S11307C03A94F1E04F1A51084114510471F7EDC005
S11307D0843611F0893641F5F80127FF07C060819E
S11307E07181828193810C5F1F4F08C06081718188
S11307F0882777FD8095982F0E5F1F4F4FE6B42E04
S1130800B22297FF09C090958095709561957F4FAE
S11308108F4F9F4FF0E8BF2A2AE030E0A4010E94E6
S11308202505A82EA81843C0853731F43FEEB32E12
S1130830B2222AE030E024C099EFB92EB2228F36DA
S1130840B9F020F4883509F0B3C00DC0803721F029
S1130850883709F0ADC002C020E1B22AB4FE0BC053
S113086084E0B82A08C024FF09C0E6E0BE2A06C016
S113087028E030E005C020E130E002C020E132E0B1
S1130880F801B7FE07C060817181828193810C5F9A
S11308901F4F06C06081718180E090E00E5F1F4FA2
S11308A0A4010E942505A82EA818FFE7BF22B6FEC2
S11308B00BC02B2D2E7FA51450F4B4FE0AC0B2FC3D
S11308C008C02B2D2E7E05C07A2C2B2D03C07A2C2C
S11308D001C0752C24FF0DC0FE01EA0DF11D8081BD
S11308E0803311F4297E09C022FF06C073947394E7
S11308F004C0822F867809F0739423FD14C020FF6E
S11309000FC05A2C731460F4530C5718732C08C07E
S1130910B70180E290E02C870E94F90473942C853F
S11309207314B0F304C0731410F4371801C0312CDD
S113093024FF12C0B70180E390E02C870E94F904E1
S11309402C8522FF1EC021FF03C088E590E002C071
S113095088E790E0B7010CC0822F867891F021FDE2
S113096002C080E201C08BE227FD8DE2B70190E076
S11309700E94F90406C0B70180E390E00E94F904E4
S11309805A94A514C0F3AA94F401EA0DF11DB70119
S1130990808190E00E94F904A110F5CF06C0B70150
S11309A080E290E00E94F9043A943110F8CF43CEEB
S11309B0F7012681378102C02FEF3FEFC9012C9642
S11309C0E2E10C949F05FC01059061507040011018
S11309D0D8F7809590958E0F9F1F0895FC01615064
S11309E0704001900110D8F7809590958E0F9F1F4D
S11309F008950F931F93CF93DF938C01EB018B81A9
S1130A0081FD03C00FEF1FEF1AC082FF0DC02E81BE
S1130A103F818C819D812817390764F4E881F9812D
S1130A200193F983E88306C0E885F985802F099549
S1130A30892B41F78E819F8101969F838E83C80104
S1130A40DF91CF911F910F910895FA01AA272830C1
S1130A5051F1203181F1E8946F936E7F6E5F7F4F87
S1130A608F4F9F4FAF4FB1E03ED0B4E03CD0670F03
S1130A70781F891F9A1FA11D680F791F8A1F911D56
S1130A80A11D6A0F711D811D911DA11D20D009F4A6
S1130A9068943F912AE0269F11243019305D3193E8
S1130AA0DEF6CF010895462F4770405D4193B3E0D1
S1130AB00FD0C9F7F6CF462F4F70405D4A3318F078
S1130AC0495D31FD4052419302D0A9F7EACFB4E029
S1130AD0A6959795879577956795BA95C9F70097E1
S1130AE06105710508959B01AC010A2E0694579582
S1130AF0479537952795BA95C9F7620F731F841FD9
S1130B00951FA01D08952F923F924F925F926F926E
S1130B107F928F929F92AF92BF92CF92DF92EF9289
S1130B20FF920F931F93CF93DF93CDB7DEB7CA1B0A
S1130B30DB0B0FB6F894DEBF0FBECDBF09942A8835
S1130B40398848885F846E847D848C849B84AA84DD
S1130B50B984C884DF80EE80FD800C811B81AA816A
S1130B60B981CE0FD11D0FB6F894DEBF0FBECDBF35
S10B0B70ED010895F894FFCF94
S1130B782D3E2030782530327800203C2D203078E6
S1130B88253032780D0A00496E697420646F6E65E9
S1130B98210D0A005374756666210D0A00556172A9
S10D0BA87420646F6E65210D0A00CD
S9030000FC

View File

@ -36,9 +36,7 @@ SUBDIRS :=
# Add inputs and outputs from these tool invocations to the build variables
C_SRCS += \
../Button.cpp \
../Can.cpp \
../Output.cpp
../Button.cpp
PREPROCESSING_SRCS +=
@ -48,27 +46,19 @@ ASM_SRCS +=
OBJS += \
Button.o \
Can.o \
Output.o
Button.o
OBJS_AS_ARGS += \
Button.o \
Can.o \
Output.o
Button.o
C_DEPS += \
Button.d \
Can.d \
Output.d
Button.d
C_DEPS_AS_ARGS += \
Button.d \
Can.d \
Output.d
Button.d
OUTPUT_FILE_PATH +=Button.elf
@ -85,14 +75,10 @@ LIB_DEP+=
./%.o: .././%.cpp
@echo Building file: $<
@echo Invoking: AVR8/GNU C++ Compiler :
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -O1 -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega32a -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
$(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -funsigned-char -funsigned-bitfields -DDEBUG -Os -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=atmega32a -c -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<"
@echo Finished building: $<

View File

@ -4,7 +4,3 @@
Button.cpp
Can.cpp
Output.cpp

View File

@ -5,7 +5,7 @@
* Author: netz
*/
#include "Output.h"
/*#include "Output.h"
#define OUTPUTPORT PORTC
#define OUTPUTDDR DDRC
#define OUTPUTM PINC4
@ -13,6 +13,7 @@
Output::Output() {
OUTPUTDDR |= (1<<OUTPUTA) | (1<<OUTPUTM);
AudioOff();
}
void Output::AudioOff() {
@ -29,4 +30,4 @@ void Output::MotorOff() {
void Output::MotorOn() {
OUTPUTPORT |= (1<<OUTPUTM);
}
} */

43
Button/Button/Output.hpp Normal file
View File

@ -0,0 +1,43 @@
/*
* Output.h
*
* Created: 03.11.2013 19:13:56
* Author: netz
*/
#ifndef OUTPUT_H_
#define OUTPUT_H_
#include "pin.hpp"
template <typename Port, int pin_motor, int pin_audio>
class Output {
public:
Output() {
init();
}
void AudioOn() {
audio::make_high();
}
void AudioOff() {
audio::make_low();
}
void MotorOn() {
motor::make_high();
}
void MotorOff() {
motor::make_low();
}
private:
void init() {
audio::make_output();
AudioOff();
motor::make_output();
MotorOff();
}
const typedef avrlib::pin<Port, pin_motor> motor;
const typedef avrlib::pin<Port, pin_audio> audio;
};
#endif /* OUTPUT_H_ */

View File

@ -29,9 +29,9 @@ class Uart {
}
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
UCSRB = /*(1<<RXEN1) | (1<<RXCIE1) | */ (1<<TXEN); //Enable TXEN im Register UCR TX-Data Enable
UCSRC = (1<<URSEL) | (3<<UCSZ0); //8N1
}
uint8_t uart_putchar(uint8_t c) {
loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens