From 852bdee368d373e4168ffdf081e443353199cb14 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Tue, 10 Dec 2013 17:09:51 +0000 Subject: [PATCH] 20131210-181002 --- Mainboard/Mainboard.atsuo | Bin 10752 -> 10752 bytes Mainboard/Mainboard/Debug/Mainboard.d | 3 + Mainboard/Mainboard/Debug/Mainboard.elf | Bin 8702 -> 21251 bytes Mainboard/Mainboard/Debug/Mainboard.hex | 139 ++- Mainboard/Mainboard/Debug/Mainboard.lss | 1116 ++++++++++++++++++++-- Mainboard/Mainboard/Debug/Mainboard.map | 248 +++-- Mainboard/Mainboard/Debug/Mainboard.srec | 139 ++- Mainboard/Mainboard/Mainboard.cpp | 47 +- Mainboard/Mainboard/Mainboard.cppproj | 75 +- Mainboard/Mainboard/uart.hpp | 6 +- Zahl/Zahl.atsln | 20 + Zahl/Zahl.atsuo | Bin 0 -> 9728 bytes Zahl/Zahl/Debug/Makefile | 126 +++ Zahl/Zahl/Debug/Zahl.d | 67 ++ Zahl/Zahl/Debug/Zahl.eep | 1 + Zahl/Zahl/Debug/Zahl.elf | Bin 0 -> 11080 bytes Zahl/Zahl/Debug/Zahl.hex | 31 + Zahl/Zahl/Debug/Zahl.lss | 412 ++++++++ Zahl/Zahl/Debug/Zahl.map | 459 +++++++++ Zahl/Zahl/Debug/Zahl.srec | 32 + Zahl/Zahl/Debug/makedep.mk | 6 + Zahl/Zahl/Led.hpp | 90 ++ Zahl/Zahl/Zahl.cpp | 45 + Zahl/Zahl/Zahl.cppproj | 181 ++++ Zahl/Zahl/config.h | 16 + Zahl/Zahl/pin.hpp | 50 + Zahl/Zahl/portb.hpp | 22 + Zahl/Zahl/portc.hpp | 22 + Zahl/Zahl/uart.hpp | 69 ++ 29 files changed, 3188 insertions(+), 234 deletions(-) create mode 100644 Zahl/Zahl.atsln create mode 100644 Zahl/Zahl.atsuo create mode 100644 Zahl/Zahl/Debug/Makefile create mode 100644 Zahl/Zahl/Debug/Zahl.d create mode 100644 Zahl/Zahl/Debug/Zahl.eep create mode 100644 Zahl/Zahl/Debug/Zahl.elf create mode 100644 Zahl/Zahl/Debug/Zahl.hex create mode 100644 Zahl/Zahl/Debug/Zahl.lss create mode 100644 Zahl/Zahl/Debug/Zahl.map create mode 100644 Zahl/Zahl/Debug/Zahl.srec create mode 100644 Zahl/Zahl/Debug/makedep.mk create mode 100644 Zahl/Zahl/Led.hpp create mode 100644 Zahl/Zahl/Zahl.cpp create mode 100644 Zahl/Zahl/Zahl.cppproj create mode 100644 Zahl/Zahl/config.h create mode 100644 Zahl/Zahl/pin.hpp create mode 100644 Zahl/Zahl/portb.hpp create mode 100644 Zahl/Zahl/portc.hpp create mode 100644 Zahl/Zahl/uart.hpp diff --git a/Mainboard/Mainboard.atsuo b/Mainboard/Mainboard.atsuo index e7b77adf3f735977de237f0ccf6aae3ba6a32b13..9907ea98b7e632b62bbf4ec4ae3dd52dd1c82d8a 100644 GIT binary patch delta 478 zcmZn&X$aYn!@{@0SN^s7*K>@_3_u_}xr*f^FQX)o$qvN-fnf4Q7L~~j94wnFSm!WG zdICk=f!G6x{{dyafV4M=Ju&d|CJtv|UIr;3j|qrjdN-FypJ(M|6a)&%p$IGbGfqCt zV#wwU6!l`9{7cD`l~ESRp3JYIv$;gshgot7Q!;}ULkvR!LlHwhLpqR5WXNSuU`U&M zmruMtk)Z_0OJ&Fbsz9(6fTH<8n8T3FkO36WWXJ={mjQKK0QIH=#gl;|d0;)63}rwQ zVi=4W^cYNl*a(O%7|a>Wko4#R_2e;>GU%e3EC4k+2} delta 212 zcmZn&X$aYn!@?J!Q+RUO`*V!U3=9koLX)dlPVzEH0@>_9{2vG=Uu034+`z%Ixq@{L zBkw<;h&xcm1Bm}k47|UI!&#V@Q3}XoLQ=oEMEX1{FM}XZNESs{(Vvl*5oD?yk}#Vy zkkiXB`InOC4zX{lMl28VZb)A80H90P3(z2mk;8 diff --git a/Mainboard/Mainboard/Debug/Mainboard.d b/Mainboard/Mainboard/Debug/Mainboard.d index 371134e..d371458 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.d +++ b/Mainboard/Mainboard/Debug/Mainboard.d @@ -13,6 +13,7 @@ Mainboard.d Mainboard.o: .././Mainboard.cpp .././config.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/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 \ + 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/interrupt.h \ .././portc.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/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 \ @@ -50,6 +51,8 @@ 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: +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/interrupt.h: + .././portc.hpp: .././pin.hpp: diff --git a/Mainboard/Mainboard/Debug/Mainboard.elf b/Mainboard/Mainboard/Debug/Mainboard.elf index 18fbe09bac6f74d56baf62c3d80ee5708fc4e7ff..2f97c452cf5d51f90869aa80a832e37144724936 100644 GIT binary patch literal 21251 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 diff --git a/Mainboard/Mainboard/Debug/Mainboard.hex b/Mainboard/Mainboard/Debug/Mainboard.hex index f05783f..e5c0706 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.hex +++ b/Mainboard/Mainboard/Debug/Mainboard.hex @@ -1,20 +1,129 @@ :100000000C942B000C9453000C9453000C9453004C :100010000C9453000C9453000C9453000C94530014 -:100020000C9453000C9453000C9453000C94530004 +:100020000C9453000C9477000C9453000C945300E0 :100030000C9453000C9453000C9453000C945300F4 :100040000C9453000C9453000C9453000C945300E4 -:100050000C9453006D0011241FBECFE5D4E0DEBF29 -:10006000CDBF10E0A0E6B0E0E8E0F1E002C005900E -:100070000D92A437B107D9F720E0A4E7B0E001C0A2 -:100080001D92A437B207E1F710E0C6E5D0E004C046 -:100090002297FE010E947E00C435D107C9F70E9455 -:1000A00055000C9482000C940000A09A91E085B356 -:1000B000892785BBE0E6F0E003C05D9BFECF8CB9ED -:1000C00081918111FACF2FEF31EE84E02150304041 -:1000D0008040E1F700C00000EACF86E080BD539A7F -:1000E00083E389B9E6E6F0E003C05D9BFECF8CB9FF -:1000F00081918111FACF0895EE0FFF1F0590F491C1 -:08010000E02D0994F894FFCFF3 -:10010800626C610D0A005561727420646F6E65211E -:040118000D0A0000CC +:100050000C945300F80011241FBECFE5D4E0DEBF9E +:10006000CDBF10E0A0E6B0E0EAEDF7E002C00590F9 +:100070000D92AE37B107D9F720E0AEE7B0E001C08E +:100080001D92A238B207E1F710E0C6E5D0E004C047 +:100090002297FE010E940401C435D107C9F70E94CE +:1000A00065000C94EB030C940000FC0103C05D9B05 +:1000B000FECF8CB981918111FACF089585E083BF7D +:1000C00012BE1CBE81E089BF089578940E945E0034 +:1000D000A09A91E085B3892785BB2FEF31EE84E0AC +:1000E000215030408040E1F700C00000F3CF1F9264 +:1000F0000F920FB60F9211240F931F932F933F93DC +:100100004F935F936F937F938F939F93AF93BF931F +:10011000EF93FF93CF93DF93CDB7DEB72C97DEBF7E +:10012000CDBF80918100813220F48F5F8093810068 +:1001300044C01092810080917E001F928F93809125 +:100140007F001F928F93809160001F928F9381E6B2 +:1001500090E09F938F931F928CE08F938E010F5F9F +:100160001F4F1F930F930E940801C8010E94550062 +:1001700080917E008F5F0FB6F894DEBF0FBECDBFBB +:100180008C3318F480937E0007C010927E0080911B +:100190007F008F5F80937F0080917F008C3338F0E9 +:1001A00010927F00809160008F5F8093600080914B +:1001B0006000883110F0109260002C960FB6F89411 +:1001C000DEBF0FBECDBFDF91CF91FF91EF91BF9109 +:1001D000AF919F918F917F916F915F914F913F91DF +:1001E0002F911F910F910F900FBE0F901F90189598 +:1001F00086E080BD539A10BC83E389B982E790E022 +:100200000C945500EE0FFF1F0590F491E02D09941A +:10021000AEE0B0E0EEE0F1E00C94C2030D891E897F +:100220008F89988D26E02C831A83098397FF02C05B +:1002300080E090E801979E838D83CE014B96AC01C0 +:10024000698D7A8DCE0101960E9438014D815E81C3 +:1002500057FD0AC02F813885421753070CF49A01C5 +:10026000F801E20FF31F10822E96E4E00C94DE03F7 +:10027000ACE0B0E0EEE3F1E00C94B4037C016B0180 +:100280008A01FC0117821682838181FFC6C18824FE +:100290008394912C8C0E9D1EF7019381F60193FDA2 +:1002A000859193FF81916F01882309F4B2C1853252 +:1002B00039F493FD859193FF81916F01853229F483 +:1002C000B70190E00E942A03E7CF512C312C20E0A7 +:1002D0002032A8F48B3261F028F4803251F083325E +:1002E00071F40BC08D3239F0803349F4216028C09D +:1002F0002260246025C0286023C0206121C027FD22 +:1003000027C0382F30533A3078F426FF06C0FAE081 +:100310005F9E300D1124532E13C08AE0389E300D9D +:100320001124332E20620CC08E3221F426FD71C1BF +:10033000206406C08C3611F4206802C0883641F46F +:10034000F60193FD859193FF81916F018111C0CFDB +:10035000982F9554933018F09052933028F40C5FF6 +:100360001F4FFFE3F9830DC0833631F0833771F0FF +:10037000833509F05EC023C0F801808189830E5F58 +:100380001F4F44244394512C540115C03801F2E00E +:100390006F0E711CF801A080B18026FF03C0652D8F +:1003A00070E002C06FEF7FEFC5012C870E941F0332 +:1003B0002C0183012C856FE7262E222218C03801DC +:1003C000F2E06F0E711CF801A080B18026FF03C01F +:1003D000652D70E002C06FEF7FEFC5012C870E9492 +:1003E00014032C012C8550E8252E222A830123FC9E +:1003F0001CC006C0B70180E290E00E942A033A9434 +:10040000832D90E048165906A8F30FC0F50127FC8C +:10041000859127FE81915F01B70190E00E942A0338 +:1004200031103A94F1E04F1A51084114510471F718 +:10043000EDC0843611F0893641F5F80127FF07C079 +:1004400060817181828193810C5F1F4F08C0608140 +:100450007181882777FD8095982F0E5F1F4F4FE69B +:10046000B42EB22297FF09C0909580957095619542 +:100470007F4F8F4F9F4FF0E8BF2A2AE030E0A40162 +:100480000E945603A82EA81843C0853731F43FEECA +:10049000B32EB2222AE030E024C099EFB92EB22266 +:1004A0008F36B9F020F4883509F0B3C00DC080371D +:1004B00021F0883709F0ADC002C020E1B22AB4FEB5 +:1004C0000BC084E0B82A08C024FF09C0E6E0BE2AB9 +:1004D00006C028E030E005C020E130E002C020E1A5 +:1004E00032E0F801B7FE07C060817181828193819B +:1004F0000C5F1F4F06C06081718180E090E00E5F4D +:100500001F4FA4010E945603A82EA818FFE7BF2280 +:10051000B6FE0BC02B2D2E7FA51450F4B4FE0AC0DE +:10052000B2FC08C02B2D2E7E05C07A2C2B2D03C0CB +:100530007A2C01C0752C24FF0DC0FE01EA0DF11DBF +:100540008081803311F4297E09C022FF06C0739494 +:10055000739404C0822F867809F0739423FD14C02D +:1005600020FF0FC05A2C731460F4530C5718732CCF +:1005700008C0B70180E290E02C870E942A037394A0 +:100580002C857314B0F304C0731410F4371801C031 +:10059000312C24FF12C0B70180E390E02C870E9429 +:1005A0002A032C8522FF1EC021FF03C088E590E0AE +:1005B00002C088E790E0B7010CC0822F867891F0E6 +:1005C00021FD02C080E201C08BE227FD8DE2B70170 +:1005D00090E00E942A0306C0B70180E390E00E94E9 +:1005E0002A035A94A514C0F3AA94F401EA0DF11D4C +:1005F000B701808190E00E942A03A110F5CF06C0C8 +:10060000B70180E290E00E942A033A943110F8CFBB +:1006100043CEF7012681378102C02FEF3FEFC9019A +:100620002C96E2E10C94D003FC01059061507040DF +:100630000110D8F7809590958E0F9F1F0895FC01AB +:100640006150704001900110D8F7809590958E0F01 +:100650009F1F08950F931F93CF93DF938C01EB019E +:100660008B8181FD03C00FEF1FEF1AC082FF0DC009 +:100670002E813F818C819D812817390764F4E881A0 +:10068000F9810193F983E88306C0E885F985802F15 +:100690000995892B41F78E819F8101969F838E83D7 +:1006A000C801DF91CF911F910F910895FA01AA27F8 +:1006B000283051F1203181F1E8946F936E7F6E5FA5 +:1006C0007F4F8F4F9F4FAF4FB1E03ED0B4E03CD053 +:1006D000670F781F891F9A1FA11D680F791F8A1F36 +:1006E000911DA11D6A0F711D811D911DA11D20D09D +:1006F00009F468943F912AE0269F11243019305D57 +:100700003193DEF6CF010895462F4770405D419347 +:10071000B3E00FD0C9F7F6CF462F4F70405D4A3394 +:1007200018F0495D31FD4052419302D0A9F7EACF5C +:10073000B4E0A6959795879577956795BA95C9F78B +:1007400000976105710508959B01AC010A2E06947E +:100750005795479537952795BA95C9F7620F731F37 +:10076000841F951FA01D08952F923F924F925F9274 +:100770006F927F928F929F92AF92BF92CF92DF92B1 +:10078000EF92FF920F931F93CF93DF93CDB7DEB716 +:10079000CA1BDB0B0FB6F894DEBF0FBECDBF0994AA +:1007A0002A88398848885F846E847D848C849B8401 +:1007B000AA84B984C884DF80EE80FD800C811B810F +:1007C000AA81B981CE0FD11D0FB6F894DEBF0FBE3E +:0A07D000CDBFED010895F894FFCFAE +:1007DA000C74253032643A253032643A253032645A +:0E07EA000A005561727420646F6E65210A006A :00000001FF diff --git a/Mainboard/Mainboard/Debug/Mainboard.lss b/Mainboard/Mainboard/Debug/Mainboard.lss index 63e63db..3932a74 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.lss +++ b/Mainboard/Mainboard/Debug/Mainboard.lss @@ -3,31 +3,33 @@ Mainboard.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00000108 00000000 00000000 00000074 2**1 + 0 .text 000007da 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000014 00800060 00000108 0000017c 2**0 + 1 .data 0000001e 00800060 000007da 0000086e 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .stab 000006cc 00000000 00000000 00000190 2**2 + 2 .bss 00000004 0080007e 0080007e 0000088c 2**0 + ALLOC + 3 .stab 00000c84 00000000 00000000 0000088c 2**2 CONTENTS, READONLY, DEBUGGING - 3 .stabstr 00000082 00000000 00000000 0000085c 2**0 + 4 .stabstr 000001aa 00000000 00000000 00001510 2**0 CONTENTS, READONLY, DEBUGGING - 4 .comment 0000002f 00000000 00000000 000008de 2**0 + 5 .comment 0000002f 00000000 00000000 000016ba 2**0 CONTENTS, READONLY - 5 .debug_aranges 00000028 00000000 00000000 0000090d 2**0 + 6 .debug_aranges 000000a0 00000000 00000000 000016e9 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 0000056a 00000000 00000000 00000935 2**0 + 7 .debug_info 00000f20 00000000 00000000 00001789 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 000002c6 00000000 00000000 00000e9f 2**0 + 8 .debug_abbrev 0000078d 00000000 00000000 000026a9 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 000001e5 00000000 00000000 00001165 2**0 + 9 .debug_line 000007f9 00000000 00000000 00002e36 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 00000034 00000000 00000000 0000134c 2**2 + 10 .debug_frame 00000178 00000000 00000000 00003630 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00000336 00000000 00000000 00001380 2**0 + 11 .debug_str 00000510 00000000 00000000 000037a8 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 0000001f 00000000 00000000 000016b6 2**0 + 12 .debug_loc 000007d2 00000000 00000000 00003cb8 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 00000018 00000000 00000000 000016d5 2**0 + 13 .debug_ranges 00000060 00000000 00000000 0000448a 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -42,7 +44,7 @@ Disassembly of section .text: 18: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> 1c: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> 20: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> - 24: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> + 24: 0c 94 77 00 jmp 0xee ; 0xee <__vector_9> 28: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> 2c: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> 30: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> @@ -56,7 +58,7 @@ Disassembly of section .text: 50: 0c 94 53 00 jmp 0xa6 ; 0xa6 <__bad_interrupt> 00000054 <__ctors_start>: - 54: 6d 00 .word 0x006d ; ???? + 54: f8 00 .word 0x00f8 ; ???? 00000056 <__ctors_end>: 56: 11 24 eor r1, r1 @@ -70,18 +72,18 @@ Disassembly of section .text: 62: 10 e0 ldi r17, 0x00 ; 0 64: a0 e6 ldi r26, 0x60 ; 96 66: b0 e0 ldi r27, 0x00 ; 0 - 68: e8 e0 ldi r30, 0x08 ; 8 - 6a: f1 e0 ldi r31, 0x01 ; 1 + 68: ea ed ldi r30, 0xDA ; 218 + 6a: f7 e0 ldi r31, 0x07 ; 7 6c: 02 c0 rjmp .+4 ; 0x72 <__do_copy_data+0x10> 6e: 05 90 lpm r0, Z+ 70: 0d 92 st X+, r0 - 72: a4 37 cpi r26, 0x74 ; 116 + 72: ae 37 cpi r26, 0x7E ; 126 74: b1 07 cpc r27, r17 76: d9 f7 brne .-10 ; 0x6e <__do_copy_data+0xc> 00000078 <__do_clear_bss>: 78: 20 e0 ldi r18, 0x00 ; 0 - 7a: a4 e7 ldi r26, 0x74 ; 116 + 7a: ae e7 ldi r26, 0x7E ; 126 7c: b0 e0 ldi r27, 0x00 ; 0 7e: 01 c0 rjmp .+2 ; 0x82 <.do_clear_bss_start> @@ -89,7 +91,7 @@ Disassembly of section .text: 80: 1d 92 st X+, r1 00000082 <.do_clear_bss_start>: - 82: a4 37 cpi r26, 0x74 ; 116 + 82: a2 38 cpi r26, 0x82 ; 130 84: b2 07 cpc r27, r18 86: e1 f7 brne .-8 ; 0x80 <.do_clear_bss_loop> @@ -100,132 +102,1036 @@ Disassembly of section .text: 8e: 04 c0 rjmp .+8 ; 0x98 <__do_global_ctors+0x10> 90: 22 97 sbiw r28, 0x02 ; 2 92: fe 01 movw r30, r28 - 94: 0e 94 7e 00 call 0xfc ; 0xfc <__tablejump__> + 94: 0e 94 04 01 call 0x208 ; 0x208 <__tablejump__> 98: c4 35 cpi r28, 0x54 ; 84 9a: d1 07 cpc r29, r17 9c: c9 f7 brne .-14 ; 0x90 <__do_global_ctors+0x8> - 9e: 0e 94 55 00 call 0xaa ; 0xaa
- a2: 0c 94 82 00 jmp 0x104 ; 0x104 <_exit> + 9e: 0e 94 65 00 call 0xca ; 0xca
+ a2: 0c 94 eb 03 jmp 0x7d6 ; 0x7d6 <_exit> 000000a6 <__bad_interrupt>: a6: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> -000000aa
: +000000aa <_ZN4UartILm9600EE4sendEPKc.isra.2>: + public: + Uart() { + init(); + send("Uart done!\n"); + } + void send(const char *text) { + aa: fc 01 movw r30, r24 + ac: 03 c0 rjmp .+6 ; 0xb4 <_ZN4UartILm9600EE4sendEPKc.isra.2+0xa> + UCSRB |= /*(1<>8); + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt + } + uint8_t uart_putchar(uint8_t c) { + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + ae: 5d 9b sbis 0x0b, 5 ; 11 + b0: fe cf rjmp .-4 ; 0xae <_ZN4UartILm9600EE4sendEPKc.isra.2+0x4> + UDR = c; + b2: 8c b9 out 0x0c, r24 ; 12 + Uart() { + init(); + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + b4: 81 91 ld r24, Z+ + b6: 81 11 cpse r24, r1 + b8: fa cf rjmp .-12 ; 0xae <_ZN4UartILm9600EE4sendEPKc.isra.2+0x4> + { + uart_putchar(*text); + text++; + } + } + ba: 08 95 ret + +000000bc <_Z4initv>: + // Clock source: System Clock + // Clock value: 15,625 kHz + // Mode: Normal top=0xFF + // OC0 output: Disconnected + // Timer Period: 16,384 ms + TCCR0=(0<: +} + +int main(void) +{ + sei(); + ca: 78 94 sei + init(); + cc: 0e 94 5e 00 call 0xbc ; 0xbc <_Z4initv> 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; } - aa: a0 9a sbi 0x14, 0 ; 20 + d0: a0 9a sbi 0x14, 0 ; 20 Port::port(Port::port() & ~(1< - UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 - UCSRB |= /*(1< - UDR = c; - be: 8c b9 out 0x0c, r24 ; 12 - Uart() { - init(); - send("Uart done!\r\n"); - } - void send(const char *text) { - while (*text) - c0: 81 91 ld r24, Z+ - c2: 81 11 cpse r24, r1 - c4: fa cf rjmp .-12 ; 0xba + d8: 85 bb out 0x15, r24 ; 21 #else //round up by default __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); #endif __builtin_avr_delay_cycles(__ticks_dc); - c6: 2f ef ldi r18, 0xFF ; 255 - c8: 31 ee ldi r19, 0xE1 ; 225 - ca: 84 e0 ldi r24, 0x04 ; 4 - cc: 21 50 subi r18, 0x01 ; 1 - ce: 30 40 sbci r19, 0x00 ; 0 - d0: 80 40 sbci r24, 0x00 ; 0 - d2: e1 f7 brne .-8 ; 0xcc - d4: 00 c0 rjmp .+0 ; 0xd6 - d6: 00 00 nop - d8: ea cf rjmp .-44 ; 0xae + da: 2f ef ldi r18, 0xFF ; 255 + dc: 31 ee ldi r19, 0xE1 ; 225 + de: 84 e0 ldi r24, 0x04 ; 4 + e0: 21 50 subi r18, 0x01 ; 1 + e2: 30 40 sbci r19, 0x00 ; 0 + e4: 80 40 sbci r24, 0x00 ; 0 + e6: e1 f7 brne .-8 ; 0xe0 + e8: 00 c0 rjmp .+0 ; 0xea + ea: 00 00 nop + ec: f3 cf rjmp .-26 ; 0xd4 -000000da <_GLOBAL__sub_I_u>: - text++; - } +000000ee <__vector_9>: + +uint8_t h = 12; +uint8_t m = 0; +uint8_t s = 0; + +ISR(TIMER0_OVF_vect) { + ee: 1f 92 push r1 + f0: 0f 92 push r0 + f2: 0f b6 in r0, 0x3f ; 63 + f4: 0f 92 push r0 + f6: 11 24 eor r1, r1 + f8: 0f 93 push r16 + fa: 1f 93 push r17 + fc: 2f 93 push r18 + fe: 3f 93 push r19 + 100: 4f 93 push r20 + 102: 5f 93 push r21 + 104: 6f 93 push r22 + 106: 7f 93 push r23 + 108: 8f 93 push r24 + 10a: 9f 93 push r25 + 10c: af 93 push r26 + 10e: bf 93 push r27 + 110: ef 93 push r30 + 112: ff 93 push r31 + 114: cf 93 push r28 + 116: df 93 push r29 + 118: cd b7 in r28, 0x3d ; 61 + 11a: de b7 in r29, 0x3e ; 62 + 11c: 2c 97 sbiw r28, 0x0c ; 12 + 11e: de bf out 0x3e, r29 ; 62 + 120: cd bf out 0x3d, r28 ; 61 + if(timer++ > 32) { + 122: 80 91 81 00 lds r24, 0x0081 + 126: 81 32 cpi r24, 0x21 ; 33 + 128: 20 f4 brcc .+8 ; 0x132 <__vector_9+0x44> + 12a: 8f 5f subi r24, 0xFF ; 255 + 12c: 80 93 81 00 sts 0x0081, r24 + 130: 44 c0 rjmp .+136 ; 0x1ba <__vector_9+0xcc> + timer = 0; + 132: 10 92 81 00 sts 0x0081, r1 + char t[12]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); + 136: 80 91 7e 00 lds r24, 0x007E + 13a: 1f 92 push r1 + 13c: 8f 93 push r24 + 13e: 80 91 7f 00 lds r24, 0x007F + 142: 1f 92 push r1 + 144: 8f 93 push r24 + 146: 80 91 60 00 lds r24, 0x0060 + 14a: 1f 92 push r1 + 14c: 8f 93 push r24 + 14e: 81 e6 ldi r24, 0x61 ; 97 + 150: 90 e0 ldi r25, 0x00 ; 0 + 152: 9f 93 push r25 + 154: 8f 93 push r24 + 156: 1f 92 push r1 + 158: 8c e0 ldi r24, 0x0C ; 12 + 15a: 8f 93 push r24 + 15c: 8e 01 movw r16, r28 + 15e: 0f 5f subi r16, 0xFF ; 255 + 160: 1f 4f sbci r17, 0xFF ; 255 + 162: 1f 93 push r17 + 164: 0f 93 push r16 + 166: 0e 94 08 01 call 0x210 ; 0x210 + u.send(t); + 16a: c8 01 movw r24, r16 + 16c: 0e 94 55 00 call 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2> + s++; + 170: 80 91 7e 00 lds r24, 0x007E + 174: 8f 5f subi r24, 0xFF ; 255 + if(s >= 60) { + 176: 0f b6 in r0, 0x3f ; 63 + 178: f8 94 cli + 17a: de bf out 0x3e, r29 ; 62 + 17c: 0f be out 0x3f, r0 ; 63 + 17e: cd bf out 0x3d, r28 ; 61 + 180: 8c 33 cpi r24, 0x3C ; 60 + 182: 18 f4 brcc .+6 ; 0x18a <__vector_9+0x9c> + if(timer++ > 32) { + timer = 0; + char t[12]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); + u.send(t); + s++; + 184: 80 93 7e 00 sts 0x007E, r24 + 188: 07 c0 rjmp .+14 ; 0x198 <__vector_9+0xaa> + if(s >= 60) { + s = 0; + 18a: 10 92 7e 00 sts 0x007E, r1 + m++; + 18e: 80 91 7f 00 lds r24, 0x007F + 192: 8f 5f subi r24, 0xFF ; 255 + 194: 80 93 7f 00 sts 0x007F, r24 } + if(m >= 60) { + 198: 80 91 7f 00 lds r24, 0x007F + 19c: 8c 33 cpi r24, 0x3C ; 60 + 19e: 38 f0 brcs .+14 ; 0x1ae <__vector_9+0xc0> + m = 0; + 1a0: 10 92 7f 00 sts 0x007F, r1 + h++; + 1a4: 80 91 60 00 lds r24, 0x0060 + 1a8: 8f 5f subi r24, 0xFF ; 255 + 1aa: 80 93 60 00 sts 0x0060, r24 + } + if(h >= 24) { + 1ae: 80 91 60 00 lds r24, 0x0060 + 1b2: 88 31 cpi r24, 0x18 ; 24 + 1b4: 10 f0 brcs .+4 ; 0x1ba <__vector_9+0xcc> + h = 0; + 1b6: 10 92 60 00 sts 0x0060, r1 + } + } + 1ba: 2c 96 adiw r28, 0x0c ; 12 + 1bc: 0f b6 in r0, 0x3f ; 63 + 1be: f8 94 cli + 1c0: de bf out 0x3e, r29 ; 62 + 1c2: 0f be out 0x3f, r0 ; 63 + 1c4: cd bf out 0x3d, r28 ; 61 + 1c6: df 91 pop r29 + 1c8: cf 91 pop r28 + 1ca: ff 91 pop r31 + 1cc: ef 91 pop r30 + 1ce: bf 91 pop r27 + 1d0: af 91 pop r26 + 1d2: 9f 91 pop r25 + 1d4: 8f 91 pop r24 + 1d6: 7f 91 pop r23 + 1d8: 6f 91 pop r22 + 1da: 5f 91 pop r21 + 1dc: 4f 91 pop r20 + 1de: 3f 91 pop r19 + 1e0: 2f 91 pop r18 + 1e2: 1f 91 pop r17 + 1e4: 0f 91 pop r16 + 1e6: 0f 90 pop r0 + 1e8: 0f be out 0x3f, r0 ; 63 + 1ea: 0f 90 pop r0 + 1ec: 1f 90 pop r1 + 1ee: 18 95 reti + +000001f0 <_GLOBAL__sub_I_timer>: private: void init() { UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 - da: 86 e0 ldi r24, 0x06 ; 6 - dc: 80 bd out 0x20, r24 ; 32 + 1f0: 86 e0 ldi r24, 0x06 ; 6 + 1f2: 80 bd out 0x20, r24 ; 32 UCSRB |= /*(1< - } - uint8_t uart_putchar(uint8_t c) { - loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens - ea: 5d 9b sbis 0x0b, 5 ; 11 - ec: fe cf rjmp .-4 ; 0xea <_GLOBAL__sub_I_u+0x10> - UDR = c; - ee: 8c b9 out 0x0c, r24 ; 12 + 1f4: 53 9a sbi 0x0a, 3 ; 10 + UBRRH = (uint8_t)(((F_CPU / 16 / baudrate) - 1)>>8); + 1f6: 10 bc out 0x20, r1 ; 32 + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt + 1f8: 83 e3 ldi r24, 0x33 ; 51 + 1fa: 89 b9 out 0x09, r24 ; 9 +template +class Uart { + public: Uart() { init(); - send("Uart done!\r\n"); - } - void send(const char *text) { - while (*text) - f0: 81 91 ld r24, Z+ - f2: 81 11 cpse r24, r1 - f4: fa cf rjmp .-12 ; 0xea <_GLOBAL__sub_I_u+0x10> - { - led::toggle(); - u.send("bla\r\n"); - _delay_ms(200); - } - f6: 08 95 ret + send("Uart done!\n"); + 1fc: 82 e7 ldi r24, 0x72 ; 114 + 1fe: 90 e0 ldi r25, 0x00 ; 0 + 200: 0c 94 55 00 jmp 0xaa ; 0xaa <_ZN4UartILm9600EE4sendEPKc.isra.2> -000000f8 <__tablejump2__>: - f8: ee 0f add r30, r30 - fa: ff 1f adc r31, r31 +00000204 <__tablejump2__>: + 204: ee 0f add r30, r30 + 206: ff 1f adc r31, r31 -000000fc <__tablejump__>: - fc: 05 90 lpm r0, Z+ - fe: f4 91 lpm r31, Z - 100: e0 2d mov r30, r0 - 102: 09 94 ijmp +00000208 <__tablejump__>: + 208: 05 90 lpm r0, Z+ + 20a: f4 91 lpm r31, Z + 20c: e0 2d mov r30, r0 + 20e: 09 94 ijmp -00000104 <_exit>: - 104: f8 94 cli +00000210 : + 210: ae e0 ldi r26, 0x0E ; 14 + 212: b0 e0 ldi r27, 0x00 ; 0 + 214: ee e0 ldi r30, 0x0E ; 14 + 216: f1 e0 ldi r31, 0x01 ; 1 + 218: 0c 94 c2 03 jmp 0x784 ; 0x784 <__prologue_saves__+0x1c> + 21c: 0d 89 ldd r16, Y+21 ; 0x15 + 21e: 1e 89 ldd r17, Y+22 ; 0x16 + 220: 8f 89 ldd r24, Y+23 ; 0x17 + 222: 98 8d ldd r25, Y+24 ; 0x18 + 224: 26 e0 ldi r18, 0x06 ; 6 + 226: 2c 83 std Y+4, r18 ; 0x04 + 228: 1a 83 std Y+2, r17 ; 0x02 + 22a: 09 83 std Y+1, r16 ; 0x01 + 22c: 97 ff sbrs r25, 7 + 22e: 02 c0 rjmp .+4 ; 0x234 + 230: 80 e0 ldi r24, 0x00 ; 0 + 232: 90 e8 ldi r25, 0x80 ; 128 + 234: 01 97 sbiw r24, 0x01 ; 1 + 236: 9e 83 std Y+6, r25 ; 0x06 + 238: 8d 83 std Y+5, r24 ; 0x05 + 23a: ce 01 movw r24, r28 + 23c: 4b 96 adiw r24, 0x1b ; 27 + 23e: ac 01 movw r20, r24 + 240: 69 8d ldd r22, Y+25 ; 0x19 + 242: 7a 8d ldd r23, Y+26 ; 0x1a + 244: ce 01 movw r24, r28 + 246: 01 96 adiw r24, 0x01 ; 1 + 248: 0e 94 38 01 call 0x270 ; 0x270 + 24c: 4d 81 ldd r20, Y+5 ; 0x05 + 24e: 5e 81 ldd r21, Y+6 ; 0x06 + 250: 57 fd sbrc r21, 7 + 252: 0a c0 rjmp .+20 ; 0x268 + 254: 2f 81 ldd r18, Y+7 ; 0x07 + 256: 38 85 ldd r19, Y+8 ; 0x08 + 258: 42 17 cp r20, r18 + 25a: 53 07 cpc r21, r19 + 25c: 0c f4 brge .+2 ; 0x260 + 25e: 9a 01 movw r18, r20 + 260: f8 01 movw r30, r16 + 262: e2 0f add r30, r18 + 264: f3 1f adc r31, r19 + 266: 10 82 st Z, r1 + 268: 2e 96 adiw r28, 0x0e ; 14 + 26a: e4 e0 ldi r30, 0x04 ; 4 + 26c: 0c 94 de 03 jmp 0x7bc ; 0x7bc <__epilogue_restores__+0x1c> -00000106 <__stop_program>: - 106: ff cf rjmp .-2 ; 0x106 <__stop_program> +00000270 : + 270: ac e0 ldi r26, 0x0C ; 12 + 272: b0 e0 ldi r27, 0x00 ; 0 + 274: ee e3 ldi r30, 0x3E ; 62 + 276: f1 e0 ldi r31, 0x01 ; 1 + 278: 0c 94 b4 03 jmp 0x768 ; 0x768 <__prologue_saves__> + 27c: 7c 01 movw r14, r24 + 27e: 6b 01 movw r12, r22 + 280: 8a 01 movw r16, r20 + 282: fc 01 movw r30, r24 + 284: 17 82 std Z+7, r1 ; 0x07 + 286: 16 82 std Z+6, r1 ; 0x06 + 288: 83 81 ldd r24, Z+3 ; 0x03 + 28a: 81 ff sbrs r24, 1 + 28c: c6 c1 rjmp .+908 ; 0x61a <__stack+0x1bb> + 28e: 88 24 eor r8, r8 + 290: 83 94 inc r8 + 292: 91 2c mov r9, r1 + 294: 8c 0e add r8, r28 + 296: 9d 1e adc r9, r29 + 298: f7 01 movw r30, r14 + 29a: 93 81 ldd r25, Z+3 ; 0x03 + 29c: f6 01 movw r30, r12 + 29e: 93 fd sbrc r25, 3 + 2a0: 85 91 lpm r24, Z+ + 2a2: 93 ff sbrs r25, 3 + 2a4: 81 91 ld r24, Z+ + 2a6: 6f 01 movw r12, r30 + 2a8: 88 23 and r24, r24 + 2aa: 09 f4 brne .+2 ; 0x2ae + 2ac: b2 c1 rjmp .+868 ; 0x612 <__stack+0x1b3> + 2ae: 85 32 cpi r24, 0x25 ; 37 + 2b0: 39 f4 brne .+14 ; 0x2c0 + 2b2: 93 fd sbrc r25, 3 + 2b4: 85 91 lpm r24, Z+ + 2b6: 93 ff sbrs r25, 3 + 2b8: 81 91 ld r24, Z+ + 2ba: 6f 01 movw r12, r30 + 2bc: 85 32 cpi r24, 0x25 ; 37 + 2be: 29 f4 brne .+10 ; 0x2ca + 2c0: b7 01 movw r22, r14 + 2c2: 90 e0 ldi r25, 0x00 ; 0 + 2c4: 0e 94 2a 03 call 0x654 ; 0x654 + 2c8: e7 cf rjmp .-50 ; 0x298 + 2ca: 51 2c mov r5, r1 + 2cc: 31 2c mov r3, r1 + 2ce: 20 e0 ldi r18, 0x00 ; 0 + 2d0: 20 32 cpi r18, 0x20 ; 32 + 2d2: a8 f4 brcc .+42 ; 0x2fe + 2d4: 8b 32 cpi r24, 0x2B ; 43 + 2d6: 61 f0 breq .+24 ; 0x2f0 + 2d8: 28 f4 brcc .+10 ; 0x2e4 + 2da: 80 32 cpi r24, 0x20 ; 32 + 2dc: 51 f0 breq .+20 ; 0x2f2 + 2de: 83 32 cpi r24, 0x23 ; 35 + 2e0: 71 f4 brne .+28 ; 0x2fe + 2e2: 0b c0 rjmp .+22 ; 0x2fa + 2e4: 8d 32 cpi r24, 0x2D ; 45 + 2e6: 39 f0 breq .+14 ; 0x2f6 + 2e8: 80 33 cpi r24, 0x30 ; 48 + 2ea: 49 f4 brne .+18 ; 0x2fe + 2ec: 21 60 ori r18, 0x01 ; 1 + 2ee: 28 c0 rjmp .+80 ; 0x340 + 2f0: 22 60 ori r18, 0x02 ; 2 + 2f2: 24 60 ori r18, 0x04 ; 4 + 2f4: 25 c0 rjmp .+74 ; 0x340 + 2f6: 28 60 ori r18, 0x08 ; 8 + 2f8: 23 c0 rjmp .+70 ; 0x340 + 2fa: 20 61 ori r18, 0x10 ; 16 + 2fc: 21 c0 rjmp .+66 ; 0x340 + 2fe: 27 fd sbrc r18, 7 + 300: 27 c0 rjmp .+78 ; 0x350 + 302: 38 2f mov r19, r24 + 304: 30 53 subi r19, 0x30 ; 48 + 306: 3a 30 cpi r19, 0x0A ; 10 + 308: 78 f4 brcc .+30 ; 0x328 + 30a: 26 ff sbrs r18, 6 + 30c: 06 c0 rjmp .+12 ; 0x31a + 30e: fa e0 ldi r31, 0x0A ; 10 + 310: 5f 9e mul r5, r31 + 312: 30 0d add r19, r0 + 314: 11 24 eor r1, r1 + 316: 53 2e mov r5, r19 + 318: 13 c0 rjmp .+38 ; 0x340 + 31a: 8a e0 ldi r24, 0x0A ; 10 + 31c: 38 9e mul r3, r24 + 31e: 30 0d add r19, r0 + 320: 11 24 eor r1, r1 + 322: 33 2e mov r3, r19 + 324: 20 62 ori r18, 0x20 ; 32 + 326: 0c c0 rjmp .+24 ; 0x340 + 328: 8e 32 cpi r24, 0x2E ; 46 + 32a: 21 f4 brne .+8 ; 0x334 + 32c: 26 fd sbrc r18, 6 + 32e: 71 c1 rjmp .+738 ; 0x612 <__stack+0x1b3> + 330: 20 64 ori r18, 0x40 ; 64 + 332: 06 c0 rjmp .+12 ; 0x340 + 334: 8c 36 cpi r24, 0x6C ; 108 + 336: 11 f4 brne .+4 ; 0x33c + 338: 20 68 ori r18, 0x80 ; 128 + 33a: 02 c0 rjmp .+4 ; 0x340 + 33c: 88 36 cpi r24, 0x68 ; 104 + 33e: 41 f4 brne .+16 ; 0x350 + 340: f6 01 movw r30, r12 + 342: 93 fd sbrc r25, 3 + 344: 85 91 lpm r24, Z+ + 346: 93 ff sbrs r25, 3 + 348: 81 91 ld r24, Z+ + 34a: 6f 01 movw r12, r30 + 34c: 81 11 cpse r24, r1 + 34e: c0 cf rjmp .-128 ; 0x2d0 + 350: 98 2f mov r25, r24 + 352: 95 54 subi r25, 0x45 ; 69 + 354: 93 30 cpi r25, 0x03 ; 3 + 356: 18 f0 brcs .+6 ; 0x35e + 358: 90 52 subi r25, 0x20 ; 32 + 35a: 93 30 cpi r25, 0x03 ; 3 + 35c: 28 f4 brcc .+10 ; 0x368 + 35e: 0c 5f subi r16, 0xFC ; 252 + 360: 1f 4f sbci r17, 0xFF ; 255 + 362: ff e3 ldi r31, 0x3F ; 63 + 364: f9 83 std Y+1, r31 ; 0x01 + 366: 0d c0 rjmp .+26 ; 0x382 + 368: 83 36 cpi r24, 0x63 ; 99 + 36a: 31 f0 breq .+12 ; 0x378 + 36c: 83 37 cpi r24, 0x73 ; 115 + 36e: 71 f0 breq .+28 ; 0x38c + 370: 83 35 cpi r24, 0x53 ; 83 + 372: 09 f0 breq .+2 ; 0x376 + 374: 5e c0 rjmp .+188 ; 0x432 + 376: 23 c0 rjmp .+70 ; 0x3be + 378: f8 01 movw r30, r16 + 37a: 80 81 ld r24, Z + 37c: 89 83 std Y+1, r24 ; 0x01 + 37e: 0e 5f subi r16, 0xFE ; 254 + 380: 1f 4f sbci r17, 0xFF ; 255 + 382: 44 24 eor r4, r4 + 384: 43 94 inc r4 + 386: 51 2c mov r5, r1 + 388: 54 01 movw r10, r8 + 38a: 15 c0 rjmp .+42 ; 0x3b6 + 38c: 38 01 movw r6, r16 + 38e: f2 e0 ldi r31, 0x02 ; 2 + 390: 6f 0e add r6, r31 + 392: 71 1c adc r7, r1 + 394: f8 01 movw r30, r16 + 396: a0 80 ld r10, Z + 398: b1 80 ldd r11, Z+1 ; 0x01 + 39a: 26 ff sbrs r18, 6 + 39c: 03 c0 rjmp .+6 ; 0x3a4 + 39e: 65 2d mov r22, r5 + 3a0: 70 e0 ldi r23, 0x00 ; 0 + 3a2: 02 c0 rjmp .+4 ; 0x3a8 + 3a4: 6f ef ldi r22, 0xFF ; 255 + 3a6: 7f ef ldi r23, 0xFF ; 255 + 3a8: c5 01 movw r24, r10 + 3aa: 2c 87 std Y+12, r18 ; 0x0c + 3ac: 0e 94 1f 03 call 0x63e ; 0x63e + 3b0: 2c 01 movw r4, r24 + 3b2: 83 01 movw r16, r6 + 3b4: 2c 85 ldd r18, Y+12 ; 0x0c + 3b6: 6f e7 ldi r22, 0x7F ; 127 + 3b8: 26 2e mov r2, r22 + 3ba: 22 22 and r2, r18 + 3bc: 18 c0 rjmp .+48 ; 0x3ee + 3be: 38 01 movw r6, r16 + 3c0: f2 e0 ldi r31, 0x02 ; 2 + 3c2: 6f 0e add r6, r31 + 3c4: 71 1c adc r7, r1 + 3c6: f8 01 movw r30, r16 + 3c8: a0 80 ld r10, Z + 3ca: b1 80 ldd r11, Z+1 ; 0x01 + 3cc: 26 ff sbrs r18, 6 + 3ce: 03 c0 rjmp .+6 ; 0x3d6 + 3d0: 65 2d mov r22, r5 + 3d2: 70 e0 ldi r23, 0x00 ; 0 + 3d4: 02 c0 rjmp .+4 ; 0x3da + 3d6: 6f ef ldi r22, 0xFF ; 255 + 3d8: 7f ef ldi r23, 0xFF ; 255 + 3da: c5 01 movw r24, r10 + 3dc: 2c 87 std Y+12, r18 ; 0x0c + 3de: 0e 94 14 03 call 0x628 ; 0x628 + 3e2: 2c 01 movw r4, r24 + 3e4: 2c 85 ldd r18, Y+12 ; 0x0c + 3e6: 50 e8 ldi r21, 0x80 ; 128 + 3e8: 25 2e mov r2, r21 + 3ea: 22 2a or r2, r18 + 3ec: 83 01 movw r16, r6 + 3ee: 23 fc sbrc r2, 3 + 3f0: 1c c0 rjmp .+56 ; 0x42a + 3f2: 06 c0 rjmp .+12 ; 0x400 + 3f4: b7 01 movw r22, r14 + 3f6: 80 e2 ldi r24, 0x20 ; 32 + 3f8: 90 e0 ldi r25, 0x00 ; 0 + 3fa: 0e 94 2a 03 call 0x654 ; 0x654 + 3fe: 3a 94 dec r3 + 400: 83 2d mov r24, r3 + 402: 90 e0 ldi r25, 0x00 ; 0 + 404: 48 16 cp r4, r24 + 406: 59 06 cpc r5, r25 + 408: a8 f3 brcs .-22 ; 0x3f4 + 40a: 0f c0 rjmp .+30 ; 0x42a + 40c: f5 01 movw r30, r10 + 40e: 27 fc sbrc r2, 7 + 410: 85 91 lpm r24, Z+ + 412: 27 fe sbrs r2, 7 + 414: 81 91 ld r24, Z+ + 416: 5f 01 movw r10, r30 + 418: b7 01 movw r22, r14 + 41a: 90 e0 ldi r25, 0x00 ; 0 + 41c: 0e 94 2a 03 call 0x654 ; 0x654 + 420: 31 10 cpse r3, r1 + 422: 3a 94 dec r3 + 424: f1 e0 ldi r31, 0x01 ; 1 + 426: 4f 1a sub r4, r31 + 428: 51 08 sbc r5, r1 + 42a: 41 14 cp r4, r1 + 42c: 51 04 cpc r5, r1 + 42e: 71 f7 brne .-36 ; 0x40c + 430: ed c0 rjmp .+474 ; 0x60c <__stack+0x1ad> + 432: 84 36 cpi r24, 0x64 ; 100 + 434: 11 f0 breq .+4 ; 0x43a + 436: 89 36 cpi r24, 0x69 ; 105 + 438: 41 f5 brne .+80 ; 0x48a <__stack+0x2b> + 43a: f8 01 movw r30, r16 + 43c: 27 ff sbrs r18, 7 + 43e: 07 c0 rjmp .+14 ; 0x44e + 440: 60 81 ld r22, Z + 442: 71 81 ldd r23, Z+1 ; 0x01 + 444: 82 81 ldd r24, Z+2 ; 0x02 + 446: 93 81 ldd r25, Z+3 ; 0x03 + 448: 0c 5f subi r16, 0xFC ; 252 + 44a: 1f 4f sbci r17, 0xFF ; 255 + 44c: 08 c0 rjmp .+16 ; 0x45e + 44e: 60 81 ld r22, Z + 450: 71 81 ldd r23, Z+1 ; 0x01 + 452: 88 27 eor r24, r24 + 454: 77 fd sbrc r23, 7 + 456: 80 95 com r24 + 458: 98 2f mov r25, r24 + 45a: 0e 5f subi r16, 0xFE ; 254 + 45c: 1f 4f sbci r17, 0xFF ; 255 + 45e: 4f e6 ldi r20, 0x6F ; 111 + 460: b4 2e mov r11, r20 + 462: b2 22 and r11, r18 + 464: 97 ff sbrs r25, 7 + 466: 09 c0 rjmp .+18 ; 0x47a <__stack+0x1b> + 468: 90 95 com r25 + 46a: 80 95 com r24 + 46c: 70 95 com r23 + 46e: 61 95 neg r22 + 470: 7f 4f sbci r23, 0xFF ; 255 + 472: 8f 4f sbci r24, 0xFF ; 255 + 474: 9f 4f sbci r25, 0xFF ; 255 + 476: f0 e8 ldi r31, 0x80 ; 128 + 478: bf 2a or r11, r31 + 47a: 2a e0 ldi r18, 0x0A ; 10 + 47c: 30 e0 ldi r19, 0x00 ; 0 + 47e: a4 01 movw r20, r8 + 480: 0e 94 56 03 call 0x6ac ; 0x6ac <__ultoa_invert> + 484: a8 2e mov r10, r24 + 486: a8 18 sub r10, r8 + 488: 43 c0 rjmp .+134 ; 0x510 <__stack+0xb1> + 48a: 85 37 cpi r24, 0x75 ; 117 + 48c: 31 f4 brne .+12 ; 0x49a <__stack+0x3b> + 48e: 3f ee ldi r19, 0xEF ; 239 + 490: b3 2e mov r11, r19 + 492: b2 22 and r11, r18 + 494: 2a e0 ldi r18, 0x0A ; 10 + 496: 30 e0 ldi r19, 0x00 ; 0 + 498: 24 c0 rjmp .+72 ; 0x4e2 <__stack+0x83> + 49a: 99 ef ldi r25, 0xF9 ; 249 + 49c: b9 2e mov r11, r25 + 49e: b2 22 and r11, r18 + 4a0: 8f 36 cpi r24, 0x6F ; 111 + 4a2: b9 f0 breq .+46 ; 0x4d2 <__stack+0x73> + 4a4: 20 f4 brcc .+8 ; 0x4ae <__stack+0x4f> + 4a6: 88 35 cpi r24, 0x58 ; 88 + 4a8: 09 f0 breq .+2 ; 0x4ac <__stack+0x4d> + 4aa: b3 c0 rjmp .+358 ; 0x612 <__stack+0x1b3> + 4ac: 0d c0 rjmp .+26 ; 0x4c8 <__stack+0x69> + 4ae: 80 37 cpi r24, 0x70 ; 112 + 4b0: 21 f0 breq .+8 ; 0x4ba <__stack+0x5b> + 4b2: 88 37 cpi r24, 0x78 ; 120 + 4b4: 09 f0 breq .+2 ; 0x4b8 <__stack+0x59> + 4b6: ad c0 rjmp .+346 ; 0x612 <__stack+0x1b3> + 4b8: 02 c0 rjmp .+4 ; 0x4be <__stack+0x5f> + 4ba: 20 e1 ldi r18, 0x10 ; 16 + 4bc: b2 2a or r11, r18 + 4be: b4 fe sbrs r11, 4 + 4c0: 0b c0 rjmp .+22 ; 0x4d8 <__stack+0x79> + 4c2: 84 e0 ldi r24, 0x04 ; 4 + 4c4: b8 2a or r11, r24 + 4c6: 08 c0 rjmp .+16 ; 0x4d8 <__stack+0x79> + 4c8: 24 ff sbrs r18, 4 + 4ca: 09 c0 rjmp .+18 ; 0x4de <__stack+0x7f> + 4cc: e6 e0 ldi r30, 0x06 ; 6 + 4ce: be 2a or r11, r30 + 4d0: 06 c0 rjmp .+12 ; 0x4de <__stack+0x7f> + 4d2: 28 e0 ldi r18, 0x08 ; 8 + 4d4: 30 e0 ldi r19, 0x00 ; 0 + 4d6: 05 c0 rjmp .+10 ; 0x4e2 <__stack+0x83> + 4d8: 20 e1 ldi r18, 0x10 ; 16 + 4da: 30 e0 ldi r19, 0x00 ; 0 + 4dc: 02 c0 rjmp .+4 ; 0x4e2 <__stack+0x83> + 4de: 20 e1 ldi r18, 0x10 ; 16 + 4e0: 32 e0 ldi r19, 0x02 ; 2 + 4e2: f8 01 movw r30, r16 + 4e4: b7 fe sbrs r11, 7 + 4e6: 07 c0 rjmp .+14 ; 0x4f6 <__stack+0x97> + 4e8: 60 81 ld r22, Z + 4ea: 71 81 ldd r23, Z+1 ; 0x01 + 4ec: 82 81 ldd r24, Z+2 ; 0x02 + 4ee: 93 81 ldd r25, Z+3 ; 0x03 + 4f0: 0c 5f subi r16, 0xFC ; 252 + 4f2: 1f 4f sbci r17, 0xFF ; 255 + 4f4: 06 c0 rjmp .+12 ; 0x502 <__stack+0xa3> + 4f6: 60 81 ld r22, Z + 4f8: 71 81 ldd r23, Z+1 ; 0x01 + 4fa: 80 e0 ldi r24, 0x00 ; 0 + 4fc: 90 e0 ldi r25, 0x00 ; 0 + 4fe: 0e 5f subi r16, 0xFE ; 254 + 500: 1f 4f sbci r17, 0xFF ; 255 + 502: a4 01 movw r20, r8 + 504: 0e 94 56 03 call 0x6ac ; 0x6ac <__ultoa_invert> + 508: a8 2e mov r10, r24 + 50a: a8 18 sub r10, r8 + 50c: ff e7 ldi r31, 0x7F ; 127 + 50e: bf 22 and r11, r31 + 510: b6 fe sbrs r11, 6 + 512: 0b c0 rjmp .+22 ; 0x52a <__stack+0xcb> + 514: 2b 2d mov r18, r11 + 516: 2e 7f andi r18, 0xFE ; 254 + 518: a5 14 cp r10, r5 + 51a: 50 f4 brcc .+20 ; 0x530 <__stack+0xd1> + 51c: b4 fe sbrs r11, 4 + 51e: 0a c0 rjmp .+20 ; 0x534 <__stack+0xd5> + 520: b2 fc sbrc r11, 2 + 522: 08 c0 rjmp .+16 ; 0x534 <__stack+0xd5> + 524: 2b 2d mov r18, r11 + 526: 2e 7e andi r18, 0xEE ; 238 + 528: 05 c0 rjmp .+10 ; 0x534 <__stack+0xd5> + 52a: 7a 2c mov r7, r10 + 52c: 2b 2d mov r18, r11 + 52e: 03 c0 rjmp .+6 ; 0x536 <__stack+0xd7> + 530: 7a 2c mov r7, r10 + 532: 01 c0 rjmp .+2 ; 0x536 <__stack+0xd7> + 534: 75 2c mov r7, r5 + 536: 24 ff sbrs r18, 4 + 538: 0d c0 rjmp .+26 ; 0x554 <__stack+0xf5> + 53a: fe 01 movw r30, r28 + 53c: ea 0d add r30, r10 + 53e: f1 1d adc r31, r1 + 540: 80 81 ld r24, Z + 542: 80 33 cpi r24, 0x30 ; 48 + 544: 11 f4 brne .+4 ; 0x54a <__stack+0xeb> + 546: 29 7e andi r18, 0xE9 ; 233 + 548: 09 c0 rjmp .+18 ; 0x55c <__stack+0xfd> + 54a: 22 ff sbrs r18, 2 + 54c: 06 c0 rjmp .+12 ; 0x55a <__stack+0xfb> + 54e: 73 94 inc r7 + 550: 73 94 inc r7 + 552: 04 c0 rjmp .+8 ; 0x55c <__stack+0xfd> + 554: 82 2f mov r24, r18 + 556: 86 78 andi r24, 0x86 ; 134 + 558: 09 f0 breq .+2 ; 0x55c <__stack+0xfd> + 55a: 73 94 inc r7 + 55c: 23 fd sbrc r18, 3 + 55e: 14 c0 rjmp .+40 ; 0x588 <__stack+0x129> + 560: 20 ff sbrs r18, 0 + 562: 0f c0 rjmp .+30 ; 0x582 <__stack+0x123> + 564: 5a 2c mov r5, r10 + 566: 73 14 cp r7, r3 + 568: 60 f4 brcc .+24 ; 0x582 <__stack+0x123> + 56a: 53 0c add r5, r3 + 56c: 57 18 sub r5, r7 + 56e: 73 2c mov r7, r3 + 570: 08 c0 rjmp .+16 ; 0x582 <__stack+0x123> + 572: b7 01 movw r22, r14 + 574: 80 e2 ldi r24, 0x20 ; 32 + 576: 90 e0 ldi r25, 0x00 ; 0 + 578: 2c 87 std Y+12, r18 ; 0x0c + 57a: 0e 94 2a 03 call 0x654 ; 0x654 + 57e: 73 94 inc r7 + 580: 2c 85 ldd r18, Y+12 ; 0x0c + 582: 73 14 cp r7, r3 + 584: b0 f3 brcs .-20 ; 0x572 <__stack+0x113> + 586: 04 c0 rjmp .+8 ; 0x590 <__stack+0x131> + 588: 73 14 cp r7, r3 + 58a: 10 f4 brcc .+4 ; 0x590 <__stack+0x131> + 58c: 37 18 sub r3, r7 + 58e: 01 c0 rjmp .+2 ; 0x592 <__stack+0x133> + 590: 31 2c mov r3, r1 + 592: 24 ff sbrs r18, 4 + 594: 12 c0 rjmp .+36 ; 0x5ba <__stack+0x15b> + 596: b7 01 movw r22, r14 + 598: 80 e3 ldi r24, 0x30 ; 48 + 59a: 90 e0 ldi r25, 0x00 ; 0 + 59c: 2c 87 std Y+12, r18 ; 0x0c + 59e: 0e 94 2a 03 call 0x654 ; 0x654 + 5a2: 2c 85 ldd r18, Y+12 ; 0x0c + 5a4: 22 ff sbrs r18, 2 + 5a6: 1e c0 rjmp .+60 ; 0x5e4 <__stack+0x185> + 5a8: 21 ff sbrs r18, 1 + 5aa: 03 c0 rjmp .+6 ; 0x5b2 <__stack+0x153> + 5ac: 88 e5 ldi r24, 0x58 ; 88 + 5ae: 90 e0 ldi r25, 0x00 ; 0 + 5b0: 02 c0 rjmp .+4 ; 0x5b6 <__stack+0x157> + 5b2: 88 e7 ldi r24, 0x78 ; 120 + 5b4: 90 e0 ldi r25, 0x00 ; 0 + 5b6: b7 01 movw r22, r14 + 5b8: 0c c0 rjmp .+24 ; 0x5d2 <__stack+0x173> + 5ba: 82 2f mov r24, r18 + 5bc: 86 78 andi r24, 0x86 ; 134 + 5be: 91 f0 breq .+36 ; 0x5e4 <__stack+0x185> + 5c0: 21 fd sbrc r18, 1 + 5c2: 02 c0 rjmp .+4 ; 0x5c8 <__stack+0x169> + 5c4: 80 e2 ldi r24, 0x20 ; 32 + 5c6: 01 c0 rjmp .+2 ; 0x5ca <__stack+0x16b> + 5c8: 8b e2 ldi r24, 0x2B ; 43 + 5ca: 27 fd sbrc r18, 7 + 5cc: 8d e2 ldi r24, 0x2D ; 45 + 5ce: b7 01 movw r22, r14 + 5d0: 90 e0 ldi r25, 0x00 ; 0 + 5d2: 0e 94 2a 03 call 0x654 ; 0x654 + 5d6: 06 c0 rjmp .+12 ; 0x5e4 <__stack+0x185> + 5d8: b7 01 movw r22, r14 + 5da: 80 e3 ldi r24, 0x30 ; 48 + 5dc: 90 e0 ldi r25, 0x00 ; 0 + 5de: 0e 94 2a 03 call 0x654 ; 0x654 + 5e2: 5a 94 dec r5 + 5e4: a5 14 cp r10, r5 + 5e6: c0 f3 brcs .-16 ; 0x5d8 <__stack+0x179> + 5e8: aa 94 dec r10 + 5ea: f4 01 movw r30, r8 + 5ec: ea 0d add r30, r10 + 5ee: f1 1d adc r31, r1 + 5f0: b7 01 movw r22, r14 + 5f2: 80 81 ld r24, Z + 5f4: 90 e0 ldi r25, 0x00 ; 0 + 5f6: 0e 94 2a 03 call 0x654 ; 0x654 + 5fa: a1 10 cpse r10, r1 + 5fc: f5 cf rjmp .-22 ; 0x5e8 <__stack+0x189> + 5fe: 06 c0 rjmp .+12 ; 0x60c <__stack+0x1ad> + 600: b7 01 movw r22, r14 + 602: 80 e2 ldi r24, 0x20 ; 32 + 604: 90 e0 ldi r25, 0x00 ; 0 + 606: 0e 94 2a 03 call 0x654 ; 0x654 + 60a: 3a 94 dec r3 + 60c: 31 10 cpse r3, r1 + 60e: f8 cf rjmp .-16 ; 0x600 <__stack+0x1a1> + 610: 43 ce rjmp .-890 ; 0x298 + 612: f7 01 movw r30, r14 + 614: 26 81 ldd r18, Z+6 ; 0x06 + 616: 37 81 ldd r19, Z+7 ; 0x07 + 618: 02 c0 rjmp .+4 ; 0x61e <__stack+0x1bf> + 61a: 2f ef ldi r18, 0xFF ; 255 + 61c: 3f ef ldi r19, 0xFF ; 255 + 61e: c9 01 movw r24, r18 + 620: 2c 96 adiw r28, 0x0c ; 12 + 622: e2 e1 ldi r30, 0x12 ; 18 + 624: 0c 94 d0 03 jmp 0x7a0 ; 0x7a0 <__epilogue_restores__> + +00000628 : + 628: fc 01 movw r30, r24 + 62a: 05 90 lpm r0, Z+ + 62c: 61 50 subi r22, 0x01 ; 1 + 62e: 70 40 sbci r23, 0x00 ; 0 + 630: 01 10 cpse r0, r1 + 632: d8 f7 brcc .-10 ; 0x62a + 634: 80 95 com r24 + 636: 90 95 com r25 + 638: 8e 0f add r24, r30 + 63a: 9f 1f adc r25, r31 + 63c: 08 95 ret + +0000063e : + 63e: fc 01 movw r30, r24 + 640: 61 50 subi r22, 0x01 ; 1 + 642: 70 40 sbci r23, 0x00 ; 0 + 644: 01 90 ld r0, Z+ + 646: 01 10 cpse r0, r1 + 648: d8 f7 brcc .-10 ; 0x640 + 64a: 80 95 com r24 + 64c: 90 95 com r25 + 64e: 8e 0f add r24, r30 + 650: 9f 1f adc r25, r31 + 652: 08 95 ret + +00000654 : + 654: 0f 93 push r16 + 656: 1f 93 push r17 + 658: cf 93 push r28 + 65a: df 93 push r29 + 65c: 8c 01 movw r16, r24 + 65e: eb 01 movw r28, r22 + 660: 8b 81 ldd r24, Y+3 ; 0x03 + 662: 81 fd sbrc r24, 1 + 664: 03 c0 rjmp .+6 ; 0x66c + 666: 0f ef ldi r16, 0xFF ; 255 + 668: 1f ef ldi r17, 0xFF ; 255 + 66a: 1a c0 rjmp .+52 ; 0x6a0 + 66c: 82 ff sbrs r24, 2 + 66e: 0d c0 rjmp .+26 ; 0x68a + 670: 2e 81 ldd r18, Y+6 ; 0x06 + 672: 3f 81 ldd r19, Y+7 ; 0x07 + 674: 8c 81 ldd r24, Y+4 ; 0x04 + 676: 9d 81 ldd r25, Y+5 ; 0x05 + 678: 28 17 cp r18, r24 + 67a: 39 07 cpc r19, r25 + 67c: 64 f4 brge .+24 ; 0x696 + 67e: e8 81 ld r30, Y + 680: f9 81 ldd r31, Y+1 ; 0x01 + 682: 01 93 st Z+, r16 + 684: f9 83 std Y+1, r31 ; 0x01 + 686: e8 83 st Y, r30 + 688: 06 c0 rjmp .+12 ; 0x696 + 68a: e8 85 ldd r30, Y+8 ; 0x08 + 68c: f9 85 ldd r31, Y+9 ; 0x09 + 68e: 80 2f mov r24, r16 + 690: 09 95 icall + 692: 89 2b or r24, r25 + 694: 41 f7 brne .-48 ; 0x666 + 696: 8e 81 ldd r24, Y+6 ; 0x06 + 698: 9f 81 ldd r25, Y+7 ; 0x07 + 69a: 01 96 adiw r24, 0x01 ; 1 + 69c: 9f 83 std Y+7, r25 ; 0x07 + 69e: 8e 83 std Y+6, r24 ; 0x06 + 6a0: c8 01 movw r24, r16 + 6a2: df 91 pop r29 + 6a4: cf 91 pop r28 + 6a6: 1f 91 pop r17 + 6a8: 0f 91 pop r16 + 6aa: 08 95 ret + +000006ac <__ultoa_invert>: + 6ac: fa 01 movw r30, r20 + 6ae: aa 27 eor r26, r26 + 6b0: 28 30 cpi r18, 0x08 ; 8 + 6b2: 51 f1 breq .+84 ; 0x708 <__ultoa_invert+0x5c> + 6b4: 20 31 cpi r18, 0x10 ; 16 + 6b6: 81 f1 breq .+96 ; 0x718 <__ultoa_invert+0x6c> + 6b8: e8 94 clt + 6ba: 6f 93 push r22 + 6bc: 6e 7f andi r22, 0xFE ; 254 + 6be: 6e 5f subi r22, 0xFE ; 254 + 6c0: 7f 4f sbci r23, 0xFF ; 255 + 6c2: 8f 4f sbci r24, 0xFF ; 255 + 6c4: 9f 4f sbci r25, 0xFF ; 255 + 6c6: af 4f sbci r26, 0xFF ; 255 + 6c8: b1 e0 ldi r27, 0x01 ; 1 + 6ca: 3e d0 rcall .+124 ; 0x748 <__ultoa_invert+0x9c> + 6cc: b4 e0 ldi r27, 0x04 ; 4 + 6ce: 3c d0 rcall .+120 ; 0x748 <__ultoa_invert+0x9c> + 6d0: 67 0f add r22, r23 + 6d2: 78 1f adc r23, r24 + 6d4: 89 1f adc r24, r25 + 6d6: 9a 1f adc r25, r26 + 6d8: a1 1d adc r26, r1 + 6da: 68 0f add r22, r24 + 6dc: 79 1f adc r23, r25 + 6de: 8a 1f adc r24, r26 + 6e0: 91 1d adc r25, r1 + 6e2: a1 1d adc r26, r1 + 6e4: 6a 0f add r22, r26 + 6e6: 71 1d adc r23, r1 + 6e8: 81 1d adc r24, r1 + 6ea: 91 1d adc r25, r1 + 6ec: a1 1d adc r26, r1 + 6ee: 20 d0 rcall .+64 ; 0x730 <__ultoa_invert+0x84> + 6f0: 09 f4 brne .+2 ; 0x6f4 <__ultoa_invert+0x48> + 6f2: 68 94 set + 6f4: 3f 91 pop r19 + 6f6: 2a e0 ldi r18, 0x0A ; 10 + 6f8: 26 9f mul r18, r22 + 6fa: 11 24 eor r1, r1 + 6fc: 30 19 sub r19, r0 + 6fe: 30 5d subi r19, 0xD0 ; 208 + 700: 31 93 st Z+, r19 + 702: de f6 brtc .-74 ; 0x6ba <__ultoa_invert+0xe> + 704: cf 01 movw r24, r30 + 706: 08 95 ret + 708: 46 2f mov r20, r22 + 70a: 47 70 andi r20, 0x07 ; 7 + 70c: 40 5d subi r20, 0xD0 ; 208 + 70e: 41 93 st Z+, r20 + 710: b3 e0 ldi r27, 0x03 ; 3 + 712: 0f d0 rcall .+30 ; 0x732 <__ultoa_invert+0x86> + 714: c9 f7 brne .-14 ; 0x708 <__ultoa_invert+0x5c> + 716: f6 cf rjmp .-20 ; 0x704 <__ultoa_invert+0x58> + 718: 46 2f mov r20, r22 + 71a: 4f 70 andi r20, 0x0F ; 15 + 71c: 40 5d subi r20, 0xD0 ; 208 + 71e: 4a 33 cpi r20, 0x3A ; 58 + 720: 18 f0 brcs .+6 ; 0x728 <__ultoa_invert+0x7c> + 722: 49 5d subi r20, 0xD9 ; 217 + 724: 31 fd sbrc r19, 1 + 726: 40 52 subi r20, 0x20 ; 32 + 728: 41 93 st Z+, r20 + 72a: 02 d0 rcall .+4 ; 0x730 <__ultoa_invert+0x84> + 72c: a9 f7 brne .-22 ; 0x718 <__ultoa_invert+0x6c> + 72e: ea cf rjmp .-44 ; 0x704 <__ultoa_invert+0x58> + 730: b4 e0 ldi r27, 0x04 ; 4 + 732: a6 95 lsr r26 + 734: 97 95 ror r25 + 736: 87 95 ror r24 + 738: 77 95 ror r23 + 73a: 67 95 ror r22 + 73c: ba 95 dec r27 + 73e: c9 f7 brne .-14 ; 0x732 <__ultoa_invert+0x86> + 740: 00 97 sbiw r24, 0x00 ; 0 + 742: 61 05 cpc r22, r1 + 744: 71 05 cpc r23, r1 + 746: 08 95 ret + 748: 9b 01 movw r18, r22 + 74a: ac 01 movw r20, r24 + 74c: 0a 2e mov r0, r26 + 74e: 06 94 lsr r0 + 750: 57 95 ror r21 + 752: 47 95 ror r20 + 754: 37 95 ror r19 + 756: 27 95 ror r18 + 758: ba 95 dec r27 + 75a: c9 f7 brne .-14 ; 0x74e <__ultoa_invert+0xa2> + 75c: 62 0f add r22, r18 + 75e: 73 1f adc r23, r19 + 760: 84 1f adc r24, r20 + 762: 95 1f adc r25, r21 + 764: a0 1d adc r26, r0 + 766: 08 95 ret + +00000768 <__prologue_saves__>: + 768: 2f 92 push r2 + 76a: 3f 92 push r3 + 76c: 4f 92 push r4 + 76e: 5f 92 push r5 + 770: 6f 92 push r6 + 772: 7f 92 push r7 + 774: 8f 92 push r8 + 776: 9f 92 push r9 + 778: af 92 push r10 + 77a: bf 92 push r11 + 77c: cf 92 push r12 + 77e: df 92 push r13 + 780: ef 92 push r14 + 782: ff 92 push r15 + 784: 0f 93 push r16 + 786: 1f 93 push r17 + 788: cf 93 push r28 + 78a: df 93 push r29 + 78c: cd b7 in r28, 0x3d ; 61 + 78e: de b7 in r29, 0x3e ; 62 + 790: ca 1b sub r28, r26 + 792: db 0b sbc r29, r27 + 794: 0f b6 in r0, 0x3f ; 63 + 796: f8 94 cli + 798: de bf out 0x3e, r29 ; 62 + 79a: 0f be out 0x3f, r0 ; 63 + 79c: cd bf out 0x3d, r28 ; 61 + 79e: 09 94 ijmp + +000007a0 <__epilogue_restores__>: + 7a0: 2a 88 ldd r2, Y+18 ; 0x12 + 7a2: 39 88 ldd r3, Y+17 ; 0x11 + 7a4: 48 88 ldd r4, Y+16 ; 0x10 + 7a6: 5f 84 ldd r5, Y+15 ; 0x0f + 7a8: 6e 84 ldd r6, Y+14 ; 0x0e + 7aa: 7d 84 ldd r7, Y+13 ; 0x0d + 7ac: 8c 84 ldd r8, Y+12 ; 0x0c + 7ae: 9b 84 ldd r9, Y+11 ; 0x0b + 7b0: aa 84 ldd r10, Y+10 ; 0x0a + 7b2: b9 84 ldd r11, Y+9 ; 0x09 + 7b4: c8 84 ldd r12, Y+8 ; 0x08 + 7b6: df 80 ldd r13, Y+7 ; 0x07 + 7b8: ee 80 ldd r14, Y+6 ; 0x06 + 7ba: fd 80 ldd r15, Y+5 ; 0x05 + 7bc: 0c 81 ldd r16, Y+4 ; 0x04 + 7be: 1b 81 ldd r17, Y+3 ; 0x03 + 7c0: aa 81 ldd r26, Y+2 ; 0x02 + 7c2: b9 81 ldd r27, Y+1 ; 0x01 + 7c4: ce 0f add r28, r30 + 7c6: d1 1d adc r29, r1 + 7c8: 0f b6 in r0, 0x3f ; 63 + 7ca: f8 94 cli + 7cc: de bf out 0x3e, r29 ; 62 + 7ce: 0f be out 0x3f, r0 ; 63 + 7d0: cd bf out 0x3d, r28 ; 61 + 7d2: ed 01 movw r28, r26 + 7d4: 08 95 ret + +000007d6 <_exit>: + 7d6: f8 94 cli + +000007d8 <__stop_program>: + 7d8: ff cf rjmp .-2 ; 0x7d8 <__stop_program> diff --git a/Mainboard/Mainboard/Debug/Mainboard.map b/Mainboard/Mainboard/Debug/Mainboard.map index 95731b2..f2ae06a 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.map +++ b/Mainboard/Mainboard/Debug/Mainboard.map @@ -10,12 +10,27 @@ c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu- Mainboard.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(snprintf.o) + Mainboard.o (snprintf) +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(snprintf.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(snprintf.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(snprintf.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/crtm16a.o .text 0x00000000 0x0 Mainboard.o - .bss 0x00000000 0x1 Mainboard.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 @@ -80,6 +95,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(snprintf.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(snprintf.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 @@ -196,7 +245,7 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .rela.plt *(.rela.plt) -.text 0x00000000 0x108 +.text 0x00000000 0x7da *(.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/crtm16a.o 0x00000000 __vector_default @@ -267,7 +316,6 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000a6 __vector_7 0x000000a6 __vector_5 0x000000a6 __vector_4 - 0x000000a6 __vector_9 0x000000a6 __vector_2 0x000000a6 __vector_15 0x000000a6 __vector_8 @@ -278,19 +326,51 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 0x000000a6 __vector_20 0x000000aa . = ALIGN (0x2) *(.text.*) + .text._ZN4UartILm9600EE4sendEPKc.isra.2 + 0x000000aa 0x12 Mainboard.o + .text._Z4initv + 0x000000bc 0xe Mainboard.o + 0x000000bc _Z4initv .text.startup.main - 0x000000aa 0x30 Mainboard.o - 0x000000aa main - .text.startup._GLOBAL__sub_I_u - 0x000000da 0x1e Mainboard.o - .text.libgcc 0x000000f8 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) - 0x000000f8 __tablejump2__ - 0x000000fc __tablejump__ - 0x00000104 . = ALIGN (0x2) + 0x000000ca 0x24 Mainboard.o + 0x000000ca main + .text.__vector_9 + 0x000000ee 0x102 Mainboard.o + 0x000000ee __vector_9 + .text.startup._GLOBAL__sub_I_timer + 0x000001f0 0x14 Mainboard.o + .text.libgcc 0x00000204 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) + 0x00000204 __tablejump2__ + 0x00000208 __tablejump__ + .text.avr-libc + 0x00000210 0x60 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(snprintf.o) + 0x00000210 snprintf + .text.avr-libc + 0x00000270 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) + 0x00000270 vfprintf + .text.avr-libc + 0x00000628 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) + 0x00000628 strnlen_P + .text.avr-libc + 0x0000063e 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) + 0x0000063e strnlen + .text.avr-libc + 0x00000654 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) + 0x00000654 fputc + .text.avr-libc + 0x000006ac 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) + 0x000006ac __ultoa_invert + .text.libgcc.prologue + 0x00000768 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) + 0x00000768 __prologue_saves__ + .text.libgcc.prologue + 0x000007a0 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) + 0x000007a0 __epilogue_restores__ + 0x000007d6 . = ALIGN (0x2) *(.fini9) - .fini9 0x00000104 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) - 0x00000104 _exit - 0x00000104 exit + .fini9 0x000007d6 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) + 0x000007d6 _exit + 0x000007d6 exit *(.fini9) *(.fini8) *(.fini8) @@ -309,46 +389,59 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000104 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 0x000007d6 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) - 0x00000108 _etext = . + 0x000007da _etext = . -.data 0x00800060 0x14 load address 0x00000108 +.data 0x00800060 0x1e load address 0x000007da 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/crtm16a.o - .data 0x00800060 0x0 Mainboard.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 0x1 Mainboard.o + 0x00800060 h + .data 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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(snprintf.o) + .data 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x00800061 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 0x13 Mainboard.o + 0x00800061 0x1d Mainboard.o *(.gnu.linkonce.d*) - 0x00800074 . = ALIGN (0x2) - *fill* 0x00800073 0x1 - 0x00800074 _edata = . - 0x00800074 PROVIDE (__data_end, .) + 0x0080007e . = ALIGN (0x2) + 0x0080007e _edata = . + 0x0080007e PROVIDE (__data_end, .) -.bss 0x00800074 0x0 - 0x00800074 PROVIDE (__bss_start, .) +.bss 0x0080007e 0x4 + 0x0080007e PROVIDE (__bss_start, .) *(.bss) + .bss 0x0080007e 0x4 Mainboard.o + 0x0080007e s + 0x0080007f m + 0x00800080 u + 0x00800081 timer *(.bss*) *(COMMON) - 0x00800074 PROVIDE (__bss_end, .) - 0x00000108 __data_load_start = LOADADDR (.data) - 0x0000011c __data_load_end = (__data_load_start + SIZEOF (.data)) + 0x00800082 PROVIDE (__bss_end, .) + 0x000007da __data_load_start = LOADADDR (.data) + 0x000007f8 __data_load_end = (__data_load_start + SIZEOF (.data)) -.noinit 0x00800074 0x0 - 0x00800074 PROVIDE (__noinit_start, .) +.noinit 0x00800082 0x0 + 0x00800082 PROVIDE (__noinit_start, .) *(.noinit*) - 0x00800074 PROVIDE (__noinit_end, .) - 0x00800074 _end = . - 0x00800074 PROVIDE (__heap_start, .) + 0x00800082 PROVIDE (__noinit_end, .) + 0x00800082 _end = . + 0x00800082 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -369,13 +462,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/crtm16a.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/crtm16a.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/crtm16a.o .stab.excl *(.stab.excl) @@ -393,6 +492,9 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 *(.comment) .comment 0x00000000 0x2f Mainboard.o 0x30 (size before relaxing) + .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(snprintf.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) @@ -406,39 +508,66 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x28 +.debug_aranges 0x00000000 0xa0 *(.debug_aranges) .debug_aranges - 0x00000000 0x28 Mainboard.o + 0x00000000 0x40 Mainboard.o + .debug_aranges + 0x00000040 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(snprintf.o) + .debug_aranges + 0x00000060 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 + 0x00000080 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 0x56a +.debug_info 0x00000000 0xf20 *(.debug_info) - .debug_info 0x00000000 0x56a Mainboard.o + .debug_info 0x00000000 0x647 Mainboard.o + .debug_info 0x00000647 0x21c 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(snprintf.o) + .debug_info 0x00000863 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 0x00000dac 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 0x2c6 +.debug_abbrev 0x00000000 0x78d *(.debug_abbrev) - .debug_abbrev 0x00000000 0x2c6 Mainboard.o + .debug_abbrev 0x00000000 0x38d Mainboard.o + .debug_abbrev 0x0000038d 0x139 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(snprintf.o) + .debug_abbrev 0x000004c6 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 0x0000069c 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 0x1e5 +.debug_line 0x00000000 0x7f9 *(.debug_line) - .debug_line 0x00000000 0x1e5 Mainboard.o + .debug_line 0x00000000 0x2c3 Mainboard.o + .debug_line 0x000002c3 0x15e 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(snprintf.o) + .debug_line 0x00000421 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 0x0000071f 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 0x34 +.debug_frame 0x00000000 0x178 *(.debug_frame) - .debug_frame 0x00000000 0x34 Mainboard.o + .debug_frame 0x00000000 0xc4 Mainboard.o + .debug_frame 0x000000c4 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(snprintf.o) + .debug_frame 0x000000f4 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 0x00000140 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 0x336 +.debug_str 0x00000000 0x510 *(.debug_str) - .debug_str 0x00000000 0x336 Mainboard.o - 0x376 (size before relaxing) + .debug_str 0x00000000 0x367 Mainboard.o + 0x3ad (size before relaxing) + .debug_str 0x00000367 0xa4 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(snprintf.o) + 0x130 (size before relaxing) + .debug_str 0x0000040b 0xb8 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 0x000004c3 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 0x1f +.debug_loc 0x00000000 0x7d2 *(.debug_loc) - .debug_loc 0x00000000 0x1f Mainboard.o + .debug_loc 0x00000000 0x14e Mainboard.o + .debug_loc 0x0000014e 0x74 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(snprintf.o) + .debug_loc 0x000001c2 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 0x000006df 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) @@ -446,9 +575,12 @@ LOAD c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8 .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0x18 +.debug_ranges 0x00000000 0x60 *(.debug_ranges) - .debug_ranges 0x00000000 0x18 Mainboard.o + .debug_ranges 0x00000000 0x30 Mainboard.o + .debug_ranges 0x00000030 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(snprintf.o) + .debug_ranges 0x00000040 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 0x00000050 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) diff --git a/Mainboard/Mainboard/Debug/Mainboard.srec b/Mainboard/Mainboard/Debug/Mainboard.srec index 5ef38d0..d623819 100644 --- a/Mainboard/Mainboard/Debug/Mainboard.srec +++ b/Mainboard/Mainboard/Debug/Mainboard.srec @@ -1,21 +1,130 @@ S01100004D61696E626F6172642E7372656386 S11300000C942B000C9453000C9453000C94530048 S11300100C9453000C9453000C9453000C94530010 -S11300200C9453000C9453000C9453000C94530000 +S11300200C9453000C9477000C9453000C945300DC S11300300C9453000C9453000C9453000C945300F0 S11300400C9453000C9453000C9453000C945300E0 -S11300500C9453006D0011241FBECFE5D4E0DEBF25 -S1130060CDBF10E0A0E6B0E0E8E0F1E002C005900A -S11300700D92A437B107D9F720E0A4E7B0E001C09E -S11300801D92A437B207E1F710E0C6E5D0E004C042 -S11300902297FE010E947E00C435D107C9F70E9451 -S11300A055000C9482000C940000A09A91E085B352 -S11300B0892785BBE0E6F0E003C05D9BFECF8CB9E9 -S11300C081918111FACF2FEF31EE84E0215030403D -S11300D08040E1F700C00000EACF86E080BD539A7B -S11300E083E389B9E6E6F0E003C05D9BFECF8CB9FB -S11300F081918111FACF0895EE0FFF1F0590F491BD -S10B0100E02D0994F894FFCFEF -S1130108626C610D0A005561727420646F6E65211A -S10701180D0A0000C8 +S11300500C945300F80011241FBECFE5D4E0DEBF9A +S1130060CDBF10E0A0E6B0E0EAEDF7E002C00590F5 +S11300700D92AE37B107D9F720E0AEE7B0E001C08A +S11300801D92A238B207E1F710E0C6E5D0E004C043 +S11300902297FE010E940401C435D107C9F70E94CA +S11300A065000C94EB030C940000FC0103C05D9B01 +S11300B0FECF8CB981918111FACF089585E083BF79 +S11300C012BE1CBE81E089BF089578940E945E0030 +S11300D0A09A91E085B3892785BB2FEF31EE84E0A8 +S11300E0215030408040E1F700C00000F3CF1F9260 +S11300F00F920FB60F9211240F931F932F933F93D8 +S11301004F935F936F937F938F939F93AF93BF931B +S1130110EF93FF93CF93DF93CDB7DEB72C97DEBF7A +S1130120CDBF80918100813220F48F5F8093810064 +S113013044C01092810080917E001F928F93809121 +S11301407F001F928F93809160001F928F9381E6AE +S113015090E09F938F931F928CE08F938E010F5F9B +S11301601F4F1F930F930E940801C8010E9455005E +S113017080917E008F5F0FB6F894DEBF0FBECDBFB7 +S11301808C3318F480937E0007C010927E00809117 +S11301907F008F5F80937F0080917F008C3338F0E5 +S11301A010927F00809160008F5F80936000809147 +S11301B06000883110F0109260002C960FB6F8940D +S11301C0DEBF0FBECDBFDF91CF91FF91EF91BF9105 +S11301D0AF919F918F917F916F915F914F913F91DB +S11301E02F911F910F910F900FBE0F901F90189594 +S11301F086E080BD539A10BC83E389B982E790E01E +S11302000C945500EE0FFF1F0590F491E02D099416 +S1130210AEE0B0E0EEE0F1E00C94C2030D891E897B +S11302208F89988D26E02C831A83098397FF02C057 +S113023080E090E801979E838D83CE014B96AC01BC +S1130240698D7A8DCE0101960E9438014D815E81BF +S113025057FD0AC02F813885421753070CF49A01C1 +S1130260F801E20FF31F10822E96E4E00C94DE03F3 +S1130270ACE0B0E0EEE3F1E00C94B4037C016B017C +S11302808A01FC0117821682838181FFC6C18824FA +S11302908394912C8C0E9D1EF7019381F60193FD9E +S11302A0859193FF81916F01882309F4B2C185324E +S11302B039F493FD859193FF81916F01853229F47F +S11302C0B70190E00E942A03E7CF512C312C20E0A3 +S11302D02032A8F48B3261F028F4803251F083325A +S11302E071F40BC08D3239F0803349F4216028C099 +S11302F02260246025C0286023C0206121C027FD1E +S113030027C0382F30533A3078F426FF06C0FAE07D +S11303105F9E300D1124532E13C08AE0389E300D99 +S11303201124332E20620CC08E3221F426FD71C1BB +S1130330206406C08C3611F4206802C0883641F46B +S1130340F60193FD859193FF81916F018111C0CFD7 +S1130350982F9554933018F09052933028F40C5FF2 +S11303601F4FFFE3F9830DC0833631F0833771F0FB +S1130370833509F05EC023C0F801808189830E5F54 +S11303801F4F44244394512C540115C03801F2E00A +S11303906F0E711CF801A080B18026FF03C0652D8B +S11303A070E002C06FEF7FEFC5012C870E941F032E +S11303B02C0183012C856FE7262E222218C03801D8 +S11303C0F2E06F0E711CF801A080B18026FF03C01B +S11303D0652D70E002C06FEF7FEFC5012C870E948E +S11303E014032C012C8550E8252E222A830123FC9A +S11303F01CC006C0B70180E290E00E942A033A9430 +S1130400832D90E048165906A8F30FC0F50127FC88 +S1130410859127FE81915F01B70190E00E942A0334 +S113042031103A94F1E04F1A51084114510471F714 +S1130430EDC0843611F0893641F5F80127FF07C075 +S113044060817181828193810C5F1F4F08C060813C +S11304507181882777FD8095982F0E5F1F4F4FE697 +S1130460B42EB22297FF09C090958095709561953E +S11304707F4F8F4F9F4FF0E8BF2A2AE030E0A4015E +S11304800E945603A82EA81843C0853731F43FEEC6 +S1130490B32EB2222AE030E024C099EFB92EB22262 +S11304A08F36B9F020F4883509F0B3C00DC0803719 +S11304B021F0883709F0ADC002C020E1B22AB4FEB1 +S11304C00BC084E0B82A08C024FF09C0E6E0BE2AB5 +S11304D006C028E030E005C020E130E002C020E1A1 +S11304E032E0F801B7FE07C0608171818281938197 +S11304F00C5F1F4F06C06081718180E090E00E5F49 +S11305001F4FA4010E945603A82EA818FFE7BF227C +S1130510B6FE0BC02B2D2E7FA51450F4B4FE0AC0DA +S1130520B2FC08C02B2D2E7E05C07A2C2B2D03C0C7 +S11305307A2C01C0752C24FF0DC0FE01EA0DF11DBB +S11305408081803311F4297E09C022FF06C0739490 +S1130550739404C0822F867809F0739423FD14C029 +S113056020FF0FC05A2C731460F4530C5718732CCB +S113057008C0B70180E290E02C870E942A0373949C +S11305802C857314B0F304C0731410F4371801C02D +S1130590312C24FF12C0B70180E390E02C870E9425 +S11305A02A032C8522FF1EC021FF03C088E590E0AA +S11305B002C088E790E0B7010CC0822F867891F0E2 +S11305C021FD02C080E201C08BE227FD8DE2B7016C +S11305D090E00E942A0306C0B70180E390E00E94E5 +S11305E02A035A94A514C0F3AA94F401EA0DF11D48 +S11305F0B701808190E00E942A03A110F5CF06C0C4 +S1130600B70180E290E00E942A033A943110F8CFB7 +S113061043CEF7012681378102C02FEF3FEFC90196 +S11306202C96E2E10C94D003FC01059061507040DB +S11306300110D8F7809590958E0F9F1F0895FC01A7 +S11306406150704001900110D8F7809590958E0FFD +S11306509F1F08950F931F93CF93DF938C01EB019A +S11306608B8181FD03C00FEF1FEF1AC082FF0DC005 +S11306702E813F818C819D812817390764F4E8819C +S1130680F9810193F983E88306C0E885F985802F11 +S11306900995892B41F78E819F8101969F838E83D3 +S11306A0C801DF91CF911F910F910895FA01AA27F4 +S11306B0283051F1203181F1E8946F936E7F6E5FA1 +S11306C07F4F8F4F9F4FAF4FB1E03ED0B4E03CD04F +S11306D0670F781F891F9A1FA11D680F791F8A1F32 +S11306E0911DA11D6A0F711D811D911DA11D20D099 +S11306F009F468943F912AE0269F11243019305D53 +S11307003193DEF6CF010895462F4770405D419343 +S1130710B3E00FD0C9F7F6CF462F4F70405D4A3390 +S113072018F0495D31FD4052419302D0A9F7EACF58 +S1130730B4E0A6959795879577956795BA95C9F787 +S113074000976105710508959B01AC010A2E06947A +S11307505795479537952795BA95C9F7620F731F33 +S1130760841F951FA01D08952F923F924F925F9270 +S11307706F927F928F929F92AF92BF92CF92DF92AD +S1130780EF92FF920F931F93CF93DF93CDB7DEB712 +S1130790CA1BDB0B0FB6F894DEBF0FBECDBF0994A6 +S11307A02A88398848885F846E847D848C849B84FD +S11307B0AA84B984C884DF80EE80FD800C811B810B +S11307C0AA81B981CE0FD11D0FB6F894DEBF0FBE3A +S10D07D0CDBFED010895F894FFCFAA +S11307DA0C74253032643A253032643A2530326456 +S11107EA0A005561727420646F6E65210A0066 S9030000FC diff --git a/Mainboard/Mainboard/Mainboard.cpp b/Mainboard/Mainboard/Mainboard.cpp index 02c0cfc..e6ecbfe 100644 --- a/Mainboard/Mainboard/Mainboard.cpp +++ b/Mainboard/Mainboard/Mainboard.cpp @@ -11,19 +11,62 @@ #include +uint8_t timer = 0; ///////////////////////// UART //////////////////////////////////// typedef Uart<9600> uartclass; uartclass u; typedef avrlib::pin led; +void init() +{ + // Timer/Counter 0 initialization + // Clock source: System Clock + // Clock value: 15,625 kHz + // Mode: Normal top=0xFF + // OC0 output: Disconnected + // Timer Period: 16,384 ms + TCCR0=(0< 32) { + timer = 0; + char t[12]; + snprintf(t, sizeof(t), "t%02d:%02d:%02d\n", h, m, s); + u.send(t); + s++; + if(s >= 60) { + s = 0; + m++; + } + if(m >= 60) { + m = 0; + h++; + } + if(h >= 24) { + h = 0; + } + } } \ No newline at end of file diff --git a/Mainboard/Mainboard/Mainboard.cppproj b/Mainboard/Mainboard/Mainboard.cppproj index 6f43766..0deb0eb 100644 --- a/Mainboard/Mainboard/Mainboard.cppproj +++ b/Mainboard/Mainboard/Mainboard.cppproj @@ -18,7 +18,8 @@ Native true false - exception_table + + 0 true 0x20000000 @@ -104,42 +105,42 @@ - True - True - True - True - True - True - - - DEBUG - - - Optimize (-O1) - True - True - Default (-g2) - True - True - True - - - DEBUG - - - Optimize for size (-Os) - True - True - Default (-g2) - True - - - libm - - - <segmentname>=<address>, for example .boot=0xff - Default (-Wa,-g) - + True + True + True + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + Optimize for size (-Os) + True + True + Default (-g2) + True + + + libm + + + <segmentname>=<address>, for example .boot=0xff + Default (-Wa,-g) + diff --git a/Mainboard/Mainboard/uart.hpp b/Mainboard/Mainboard/uart.hpp index e85fd29..09d3e76 100644 --- a/Mainboard/Mainboard/uart.hpp +++ b/Mainboard/Mainboard/uart.hpp @@ -12,13 +12,14 @@ #include "config.h" #include #include +#include template class Uart { public: Uart() { init(); - send("Uart done!\r\n"); + send("Uart done!\n"); } void send(const char *text) { while (*text) @@ -31,7 +32,8 @@ class Uart { void init() { UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 UCSRB |= /*(1<>8); + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt } uint8_t uart_putchar(uint8_t c) { loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens diff --git a/Zahl/Zahl.atsln b/Zahl/Zahl.atsln new file mode 100644 index 0000000..fc2ae70 --- /dev/null +++ b/Zahl/Zahl.atsln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Atmel Studio Solution File, Format Version 11.00 +Project("{E66E83B9-2572-4076-B26E-6BE79FF3018A}") = "Zahl", "Zahl\Zahl.cppproj", "{9FF39802-3DEB-4AA7-8272-69FB38CC4A40}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|AVR = Debug|AVR + Release|AVR = Release|AVR + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {9FF39802-3DEB-4AA7-8272-69FB38CC4A40}.Debug|AVR.ActiveCfg = Debug|AVR + {9FF39802-3DEB-4AA7-8272-69FB38CC4A40}.Debug|AVR.Build.0 = Debug|AVR + {9FF39802-3DEB-4AA7-8272-69FB38CC4A40}.Release|AVR.ActiveCfg = Release|AVR + {9FF39802-3DEB-4AA7-8272-69FB38CC4A40}.Release|AVR.Build.0 = Release|AVR + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Zahl/Zahl.atsuo b/Zahl/Zahl.atsuo new file mode 100644 index 0000000000000000000000000000000000000000..ab08e0a81c953c1d9c13f1a7730e9d4f4989f77f GIT binary patch literal 9728 zcmeHMO>7%Q6dtz?w59yC&{BR{43z%H#&(>y{Cw@jy;r{pEeF%*G$POt5N&ZxJPY(ZO8w$Bw;|yF z26&-z%?Ioz?U%eGLK8(XEe3^w+!2TIuR|tPUu^KgEn->dA@Fcal%oN=Y^KlT+9Dkl z$At+kXd(wGG%*SEgJK4f7|@0VY5a-!#9a@zp!oFL8Sk}f{Zf9G=>xd_IhT}?en72% z`U1sIU!cnCP`)4O0k3XDSsQipFw!GPk0NbC+KluV68k@n{0XEdk+vW`g|roE8`5^9 z9Z2Nc<>e7CSJ=!GUR~15JG?yQ<=tKm*4tF2fsfz4c=19y(R+UE&5K7`)^ICW5dD^> zg)~oG3rssR-Pw$t+g8l>X+=jjbwjtZho=hJF>T76`-|pgW(ao29;;-Uds$p05u7?< zPFlm&@$zUfqmP#+hYEU8w;ateY->o%O>2{SYj{*I6!F{>k45FLHJmP)PN|^xSbE7R zXl848s5EXGx##thBlfgz^^C{b^6mM~d^|qU9@E;iJ0+MxTv0k;hhugHAlCK#<*b`&dKNy zC51MvoW5&N7W4x94Lf#0=Q!_zpEKZXhNRCcdOlEx-^rmS2yKS{*$77Z4XQCn9~xN; z;XxVTjEfTd9z9<{9DxsXfIfw%M!t{z!=C@6?+J>}7>4|$YWzOPphJdfXvKy;xF`C_ zvE9QbHpzXf|3A0B{T@p-KKDQBKIjgx75I$B=%a(;lV9yWG(z@M#`tfTe+$8^r8D|6 zGgl_>Er_&jntG0_myj#CM5N)Z;&yi*|458&nE{L(?gi(m&da}>EA)k zVKfe~=9A~jDjF73SMj0-4~w-%}?l<%?1+&d#w31cp_qryGe^+zGhVswEgaY5*2Y(7!Ho1c8hXvA zD9)eiUL+`f`S`icOpITR(baPvqn?!OkG{@53C_o64egJ(ifVIJ)`s!;vge>yi$9@> zkT@U8bjR>J)ip5C)|HASB5j%ezDTmSw=sdPHon~a^Fy%m)+AfGAN z$7X}a@3XU~Qg~GYzeq;{Nbz_k9!aG-W04qWAl2F4*_BD04vCQRZpOaHu~ZNuryQJ8TVaH?sFx1Dsb;+gy@m?8$#?BN${T%UGNhFq78XU#6&_w zP|o1)rVphgcJ*HD(-E{Kkh8Tz_UHpw3Z5h_d6MXP8aw+0ylW+{d;d|6$`w}0Q|X<^ zyHeg8ETwF_G2W#f?VP`#g_cIeA!r~kV?FoO(}$Uu0P38^dzM^=Lo(vxDTjAmLFM2H zqgU<)1|l&XvzUjEay8E#aQ?`sy+-sx7`|u`(eGRwtV&VHI3s_`dX*QcB@5bCFMI3v zcdqoj_uQF+aV_=rbNg!Xu`VcIz5cc8{bZ}fUtPBaw!<6TY3!g}xzjSn9>v;9fJp8tX{pxk7Bhpq9?Hb@C?B_K<+_}_}N~*|D|E?w8J9S0?#-n=1JlI zM%;hOyGO<}&EP9P!Z>IKvM};vG~{|4#ykE*eBN);#|FjU30@V|9!5MxR1K?MM^f^* zQJ3G%gDV&HPh3TAt^a?y{`W)c6B66Pm`zAC0BPuhsD(iIa@@`0^OVb*Z`vPE96Wmr zdiwB-yVM8~|1TK76`cpY7gXwd1X7eRYUkGXh=N>K^*Z)D_@ifa*7t>^! z#RPyxn_&`p%-hzYOD6gKLnx zAvM#;0-G6s4A|=YCtbwuQyL4&0k!p4Lgg8c7x6+CZAjPkDt7~_H=QZ_1EQ3Z-^g~CO<|g15>#t^5|0F z^QxC7H;xU{m0;~xyB_(-zPtas*E7G&MkZh7RiQ#wxs>40(%^IHE9}44oxQMs&oj=s z_j`W5{Kf~D)YZDeW$uk0_Xvx`Z)AV86+eRg$!~l7u2&(LPp5XYo$%Tl;q$!VN6P;B zO))5bCwPOdKg#My96xat`SGf@E)>-GRo!B8h0T1y@8K144))K_@4R%N6@C`lwDD|v z^xW9aFTc3@($qB-+|&SC68j&Np^vivGacVQ^!NH5qurmxU-{$Al`(a-Rs(&(qrKgs HN(27@2!gr_ literal 0 HcmV?d00001 diff --git a/Zahl/Zahl/Debug/Makefile b/Zahl/Zahl/Debug/Makefile new file mode 100644 index 0000000..a8a6fe7 --- /dev/null +++ b/Zahl/Zahl/Debug/Makefile @@ -0,0 +1,126 @@ +################################################################################ +# Automatically-generated file. Do not edit! +################################################################################ + +SHELL := cmd.exe +RM := rm -rf + +USER_OBJS := + +LIBS := +PROJ := + +O_SRCS := +C_SRCS := +S_SRCS := +S_UPPER_SRCS := +OBJ_SRCS := +ASM_SRCS := +PREPROCESSING_SRCS := +OBJS := +OBJS_AS_ARGS := +C_DEPS := +C_DEPS_AS_ARGS := +EXECUTABLES := +OUTPUT_FILE_PATH := +OUTPUT_FILE_PATH_AS_ARGS := +AVR_APP_PATH :=$$$AVR_APP_PATH$$$ +QUOTE := " +ADDITIONAL_DEPENDENCIES:= +OUTPUT_FILE_DEP:= +LIB_DEP:= + +# Every subdirectory with source files must be described here +SUBDIRS := + + +# Add inputs and outputs from these tool invocations to the build variables +C_SRCS += \ +../Zahl.cpp + + +PREPROCESSING_SRCS += + + +ASM_SRCS += + + +OBJS += \ +Zahl.o + + +OBJS_AS_ARGS += \ +Zahl.o + + +C_DEPS += \ +Zahl.d + + +C_DEPS_AS_ARGS += \ +Zahl.d + + +OUTPUT_FILE_PATH +=Zahl.elf + +OUTPUT_FILE_PATH_AS_ARGS +=Zahl.elf + +ADDITIONAL_DEPENDENCIES:= + +OUTPUT_FILE_DEP:= ./makedep.mk + +LIB_DEP+= + +# AVR32/GNU C Compiler + + + +./%.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 -Os -ffunction-sections -fpack-struct -fshort-enums -g2 -Wall -mmcu=attiny2313 -c -std=c++11 -MD -MP -MF "$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -MT"$(@:%.o=%.o)" -o"$@" "$<" + @echo Finished building: $< + + + +# AVR32/GNU Preprocessing Assembler + + + +# AVR32/GNU Assembler + + + + +ifneq ($(MAKECMDGOALS),clean) +ifneq ($(strip $(C_DEPS)),) +-include $(C_DEPS) +endif +endif + +# Add inputs and outputs from these tool invocations to the build variables + +# All Target +all: $(OUTPUT_FILE_PATH) $(ADDITIONAL_DEPENDENCIES) + +$(OUTPUT_FILE_PATH): $(OBJS) $(USER_OBJS) $(OUTPUT_FILE_DEP) $(LIB_DEP) + @echo Building target: $@ + @echo Invoking: AVR8/GNU Linker : + $(QUOTE)C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-g++.exe$(QUOTE) -o$(OUTPUT_FILE_PATH_AS_ARGS) $(OBJS_AS_ARGS) $(USER_OBJS) $(LIBS) -Wl,-Map="Zahl.map" -Wl,--start-group -Wl,-lm -Wl,--end-group -Wl,--gc-sections -mmcu=attiny2313 + @echo Finished building target: $@ + "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O ihex -R .eeprom -R .fuse -R .lock -R .signature "Zahl.elf" "Zahl.hex" + "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -j .eeprom --set-section-flags=.eeprom=alloc,load --change-section-lma .eeprom=0 --no-change-warnings -O ihex "Zahl.elf" "Zahl.eep" || exit 0 + "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objdump.exe" -h -S "Zahl.elf" > "Zahl.lss" + "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-objcopy.exe" -O srec -R .eeprom -R .fuse -R .lock -R .signature "Zahl.elf" "Zahl.srec" + "C:\Program Files (x86)\Atmel\Atmel Toolchain\AVR8 GCC\Native\3.4.2.876\avr8-gnu-toolchain\bin\avr-size.exe" "Zahl.elf" + + + + + + +# Other Targets +clean: + -$(RM) $(OBJS_AS_ARGS)$(C_DEPS_AS_ARGS) $(EXECUTABLES) + rm -rf "Zahl.elf" "Zahl.a" "Zahl.hex" "Zahl.lss" "Zahl.eep" "Zahl.map" "Zahl.srec" + \ No newline at end of file diff --git a/Zahl/Zahl/Debug/Zahl.d b/Zahl/Zahl/Debug/Zahl.d new file mode 100644 index 0000000..039f47b --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.d @@ -0,0 +1,67 @@ +Zahl.d Zahl.o: .././Zahl.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 \ + 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/stdint.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/stdint.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/iotn2313.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/portpins.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/common.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 \ + 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/interrupt.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.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 \ + .././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 \ + .././portb.hpp + +.././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: + +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/stdint.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/stdint.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/iotn2313.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/portpins.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/common.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: + +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/interrupt.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.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: + +.././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: + +.././portb.hpp: diff --git a/Zahl/Zahl/Debug/Zahl.eep b/Zahl/Zahl/Debug/Zahl.eep new file mode 100644 index 0000000..1996e8f --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.eep @@ -0,0 +1 @@ +:00000001FF diff --git a/Zahl/Zahl/Debug/Zahl.elf b/Zahl/Zahl/Debug/Zahl.elf new file mode 100644 index 0000000000000000000000000000000000000000..305c14c504d55e034d79c29188550a74816b0f68 GIT binary patch literal 11080 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 ZS}2hP(~+sxLV}3a7mDZO literal 0 HcmV?d00001 diff --git a/Zahl/Zahl/Debug/Zahl.hex b/Zahl/Zahl/Debug/Zahl.hex new file mode 100644 index 0000000..6ec5137 --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.hex @@ -0,0 +1,31 @@ +:1000000013C035C034C033C032C031C054C02FC05B +:100010002EC02DC02CC02BC02AC029C028C027C08C +:1000200026C025C024C09D0011241FBECFEDCDBF2A +:1000300010E0A0E6B0E0E4EAF1E002C005900D9225 +:10004000A438B107D9F720E0A4E8B0E001C01D92C0 +:10005000A43AB207E1F710E0C8E2D0E003C022976B +:10006000FE019AD0C632D107D1F702D099C0C8CFCD +:100070007894109284008CEA8093850090E002C00E +:1000800080E0982FE0E7F0E003C05D9BFECF8CB9E5 +:1000900081918111FACF892F8F5F909384002FE790 +:1000A00034E89EE1215030409040E1F700C000006C +:1000B000803130F7E6CF1F920F920FB60F921124C6 +:1000C0002F933F934F935F936F938F939F93EF93F0 +:1000D000FF9380E00CC0E0918400F0E0EC57FF4F0C +:1000E000928198BB96E09A95F1F700C08F5F90914E +:1000F0008500891780F360E04FEF50E006C018BA22 +:10010000E6E0EA95F1F700C06F5F262F30E08091BE +:100110008500FA01E81BF1092E173F0784F3FF91D0 +:10012000EF919F918F916F915F914F913F912F919F +:100130000F900FBE0F901F9018951092960010927E +:100140009700789486E083B988E08AB912B881E88C +:1001500089B9E7E7F0E003C05D9BFECF8CB98191E0 +:100160008111FACF109284001092850080E1E0E6C0 +:10017000F0E0A6E8B0E001900D928A95E1F78FE7F4 +:1001800087BB10BE83E083BF12BE16BE1CBE82E0DA +:1001900089BF0895EE0FFF1F0590F491E02D09949B +:0401A000F894FFCF01 +:1001A4007B036E4F175D7D0B7F5F3F7578677C3CEB +:1001B400626C612E2E0A005561727420646F6E6544 +:0401C400210A00000C +:00000001FF diff --git a/Zahl/Zahl/Debug/Zahl.lss b/Zahl/Zahl/Debug/Zahl.lss new file mode 100644 index 0000000..9f3d19c --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.lss @@ -0,0 +1,412 @@ + +Zahl.elf: file format elf32-avr + +Sections: +Idx Name Size VMA LMA File off Algn + 0 .text 000001a4 00000000 00000000 00000094 2**1 + CONTENTS, ALLOC, LOAD, READONLY, CODE + 1 .data 00000024 00800060 000001a4 00000238 2**0 + CONTENTS, ALLOC, LOAD, DATA + 2 .bss 00000020 00800084 00800084 0000025c 2**0 + ALLOC + 3 .stab 000006b4 00000000 00000000 0000025c 2**2 + CONTENTS, READONLY, DEBUGGING + 4 .stabstr 00000082 00000000 00000000 00000910 2**0 + CONTENTS, READONLY, DEBUGGING + 5 .comment 0000002f 00000000 00000000 00000992 2**0 + CONTENTS, READONLY + 6 .debug_aranges 00000030 00000000 00000000 000009c1 2**0 + CONTENTS, READONLY, DEBUGGING + 7 .debug_info 00000961 00000000 00000000 000009f1 2**0 + CONTENTS, READONLY, DEBUGGING + 8 .debug_abbrev 00000333 00000000 00000000 00001352 2**0 + CONTENTS, READONLY, DEBUGGING + 9 .debug_line 00000230 00000000 00000000 00001685 2**0 + CONTENTS, READONLY, DEBUGGING + 10 .debug_frame 0000007c 00000000 00000000 000018b8 2**2 + CONTENTS, READONLY, DEBUGGING + 11 .debug_str 00000441 00000000 00000000 00001934 2**0 + CONTENTS, READONLY, DEBUGGING + 12 .debug_loc 00000299 00000000 00000000 00001d75 2**0 + CONTENTS, READONLY, DEBUGGING + 13 .debug_ranges 00000020 00000000 00000000 0000200e 2**0 + CONTENTS, READONLY, DEBUGGING + +Disassembly of section .text: + +00000000 <__vectors>: + 0: 13 c0 rjmp .+38 ; 0x28 <__ctors_end> + 2: 35 c0 rjmp .+106 ; 0x6e <__bad_interrupt> + 4: 34 c0 rjmp .+104 ; 0x6e <__bad_interrupt> + 6: 33 c0 rjmp .+102 ; 0x6e <__bad_interrupt> + 8: 32 c0 rjmp .+100 ; 0x6e <__bad_interrupt> + a: 31 c0 rjmp .+98 ; 0x6e <__bad_interrupt> + c: 54 c0 rjmp .+168 ; 0xb6 <__vector_6> + e: 2f c0 rjmp .+94 ; 0x6e <__bad_interrupt> + 10: 2e c0 rjmp .+92 ; 0x6e <__bad_interrupt> + 12: 2d c0 rjmp .+90 ; 0x6e <__bad_interrupt> + 14: 2c c0 rjmp .+88 ; 0x6e <__bad_interrupt> + 16: 2b c0 rjmp .+86 ; 0x6e <__bad_interrupt> + 18: 2a c0 rjmp .+84 ; 0x6e <__bad_interrupt> + 1a: 29 c0 rjmp .+82 ; 0x6e <__bad_interrupt> + 1c: 28 c0 rjmp .+80 ; 0x6e <__bad_interrupt> + 1e: 27 c0 rjmp .+78 ; 0x6e <__bad_interrupt> + 20: 26 c0 rjmp .+76 ; 0x6e <__bad_interrupt> + 22: 25 c0 rjmp .+74 ; 0x6e <__bad_interrupt> + 24: 24 c0 rjmp .+72 ; 0x6e <__bad_interrupt> + +00000026 <__ctors_start>: + 26: 9d 00 .word 0x009d ; ???? + +00000028 <__ctors_end>: + 28: 11 24 eor r1, r1 + 2a: 1f be out 0x3f, r1 ; 63 + 2c: cf ed ldi r28, 0xDF ; 223 + 2e: cd bf out 0x3d, r28 ; 61 + +00000030 <__do_copy_data>: + 30: 10 e0 ldi r17, 0x00 ; 0 + 32: a0 e6 ldi r26, 0x60 ; 96 + 34: b0 e0 ldi r27, 0x00 ; 0 + 36: e4 ea ldi r30, 0xA4 ; 164 + 38: f1 e0 ldi r31, 0x01 ; 1 + 3a: 02 c0 rjmp .+4 ; 0x40 <__SREG__+0x1> + 3c: 05 90 lpm r0, Z+ + 3e: 0d 92 st X+, r0 + 40: a4 38 cpi r26, 0x84 ; 132 + 42: b1 07 cpc r27, r17 + 44: d9 f7 brne .-10 ; 0x3c <__do_copy_data+0xc> + +00000046 <__do_clear_bss>: + 46: 20 e0 ldi r18, 0x00 ; 0 + 48: a4 e8 ldi r26, 0x84 ; 132 + 4a: b0 e0 ldi r27, 0x00 ; 0 + 4c: 01 c0 rjmp .+2 ; 0x50 <.do_clear_bss_start> + +0000004e <.do_clear_bss_loop>: + 4e: 1d 92 st X+, r1 + +00000050 <.do_clear_bss_start>: + 50: a4 3a cpi r26, 0xA4 ; 164 + 52: b2 07 cpc r27, r18 + 54: e1 f7 brne .-8 ; 0x4e <.do_clear_bss_loop> + +00000056 <__do_global_ctors>: + 56: 10 e0 ldi r17, 0x00 ; 0 + 58: c8 e2 ldi r28, 0x28 ; 40 + 5a: d0 e0 ldi r29, 0x00 ; 0 + 5c: 03 c0 rjmp .+6 ; 0x64 <__do_global_ctors+0xe> + 5e: 22 97 sbiw r28, 0x02 ; 2 + 60: fe 01 movw r30, r28 + 62: 9a d0 rcall .+308 ; 0x198 <__tablejump__> + 64: c6 32 cpi r28, 0x26 ; 38 + 66: d1 07 cpc r29, r17 + 68: d1 f7 brne .-12 ; 0x5e <__do_global_ctors+0x8> + 6a: 02 d0 rcall .+4 ; 0x70
+ 6c: 99 c0 rjmp .+306 ; 0x1a0 <_exit> + +0000006e <__bad_interrupt>: + 6e: c8 cf rjmp .-112 ; 0x0 <__vectors> + +00000070
: +typedef Led ledclass; +ledclass l; + +int main(void) +{ + sei(); + 70: 78 94 sei + public: + Led() { + init(); + } + void setNum(uint8_t number) { + this->diget = number; + 72: 10 92 84 00 sts 0x0084, r1 + } + void setDim(uint8_t dimmer) { + this->dim = dimmer; + 76: 8c ea ldi r24, 0xAC ; 172 + 78: 80 93 85 00 sts 0x0085, r24 + l.setNum(0); + l.setDim(0xAC); + uint8_t i = 0; + 7c: 90 e0 ldi r25, 0x00 ; 0 + 7e: 02 c0 rjmp .+4 ; 0x84 + { + u.send("bla..\n"); + l.setNum(i++); + _delay_ms(500); + if(i > 15) { + i = 0; + 80: 80 e0 ldi r24, 0x00 ; 0 + 82: 98 2f mov r25, r24 + 84: e0 e7 ldi r30, 0x70 ; 112 + 86: f0 e0 ldi r31, 0x00 ; 0 + 88: 03 c0 rjmp .+6 ; 0x90 + UCSRB = /*(1<>8); + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt + } + uint8_t uart_putchar(uint8_t c) { + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 8a: 5d 9b sbis 0x0b, 5 ; 11 + 8c: fe cf rjmp .-4 ; 0x8a + UDR = c; + 8e: 8c b9 out 0x0c, r24 ; 12 + sei(); + init(); + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 90: 81 91 ld r24, Z+ + 92: 81 11 cpse r24, r1 + 94: fa cf rjmp .-12 ; 0x8a + l.setDim(0xAC); + uint8_t i = 0; + while(1) + { + u.send("bla..\n"); + l.setNum(i++); + 96: 89 2f mov r24, r25 + 98: 8f 5f subi r24, 0xFF ; 255 + public: + Led() { + init(); + } + void setNum(uint8_t number) { + this->diget = number; + 9a: 90 93 84 00 sts 0x0084, r25 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + 9e: 2f e7 ldi r18, 0x7F ; 127 + a0: 34 e8 ldi r19, 0x84 ; 132 + a2: 9e e1 ldi r25, 0x1E ; 30 + a4: 21 50 subi r18, 0x01 ; 1 + a6: 30 40 sbci r19, 0x00 ; 0 + a8: 90 40 sbci r25, 0x00 ; 0 + aa: e1 f7 brne .-8 ; 0xa4 + ac: 00 c0 rjmp .+0 ; 0xae + ae: 00 00 nop + _delay_ms(500); + if(i > 15) { + b0: 80 31 cpi r24, 0x10 ; 16 + b2: 30 f7 brcc .-52 ; 0x80 + b4: e6 cf rjmp .-52 ; 0x82 + +000000b6 <__vector_6>: + i = 0; + } + } +} + +ISR(TIMER0_OVF_vect) { + b6: 1f 92 push r1 + b8: 0f 92 push r0 + ba: 0f b6 in r0, 0x3f ; 63 + bc: 0f 92 push r0 + be: 11 24 eor r1, r1 + c0: 2f 93 push r18 + c2: 3f 93 push r19 + c4: 4f 93 push r20 + c6: 5f 93 push r21 + c8: 6f 93 push r22 + ca: 8f 93 push r24 + cc: 9f 93 push r25 + ce: ef 93 push r30 + d0: ff 93 push r31 + // Timer(s)/Counter(s) Interrupt(s) initialization + TIMSK=(0<dim;k++) { + d2: 80 e0 ldi r24, 0x00 ; 0 + d4: 0c c0 rjmp .+24 ; 0xee <__stack+0xf> + Port::port(segs[this->diget]); + d6: e0 91 84 00 lds r30, 0x0084 + da: f0 e0 ldi r31, 0x00 ; 0 + dc: ec 57 subi r30, 0x7C ; 124 + de: ff 4f sbci r31, 0xFF ; 255 + e0: 92 81 ldd r25, Z+2 ; 0x02 +namespace avrlib { + + struct portb + { + static uint8_t port() { return PORTB; } + static void port(uint8_t v) { PORTB = v; } + e2: 98 bb out 0x18, r25 ; 24 + #else + //round up by default + __ticks_dc = (uint32_t)(ceil(fabs(__tmp))); + #endif + + __builtin_avr_delay_cycles(__ticks_dc); + e4: 96 e0 ldi r25, 0x06 ; 6 + e6: 9a 95 dec r25 + e8: f1 f7 brne .-4 ; 0xe6 <__stack+0x7> + ea: 00 c0 rjmp .+0 ; 0xec <__stack+0xd> + // Timer(s)/Counter(s) Interrupt(s) initialization + TIMSK=(0<dim;k++) { + ec: 8f 5f subi r24, 0xFF ; 255 + ee: 90 91 85 00 lds r25, 0x0085 + f2: 89 17 cp r24, r25 + f4: 80 f3 brcs .-32 ; 0xd6 <__vector_6+0x20> + f6: 60 e0 ldi r22, 0x00 ; 0 + Port::port(segs[this->diget]); + _delay_us(1); + } + for(uint8_t k=0;k<255-this->dim;k++) { + f8: 4f ef ldi r20, 0xFF ; 255 + fa: 50 e0 ldi r21, 0x00 ; 0 + fc: 06 c0 rjmp .+12 ; 0x10a <__stack+0x2b> + fe: 18 ba out 0x18, r1 ; 24 + 100: e6 e0 ldi r30, 0x06 ; 6 + 102: ea 95 dec r30 + 104: f1 f7 brne .-4 ; 0x102 <__stack+0x23> + 106: 00 c0 rjmp .+0 ; 0x108 <__stack+0x29> + 108: 6f 5f subi r22, 0xFF ; 255 + 10a: 26 2f mov r18, r22 + 10c: 30 e0 ldi r19, 0x00 ; 0 + 10e: 80 91 85 00 lds r24, 0x0085 + 112: fa 01 movw r30, r20 + 114: e8 1b sub r30, r24 + 116: f1 09 sbc r31, r1 + 118: 2e 17 cp r18, r30 + 11a: 3f 07 cpc r19, r31 + 11c: 84 f3 brlt .-32 ; 0xfe <__stack+0x1f> + l.timer(); +} + 11e: ff 91 pop r31 + 120: ef 91 pop r30 + 122: 9f 91 pop r25 + 124: 8f 91 pop r24 + 126: 6f 91 pop r22 + 128: 5f 91 pop r21 + 12a: 4f 91 pop r20 + 12c: 3f 91 pop r19 + 12e: 2f 91 pop r18 + 130: 0f 90 pop r0 + 132: 0f be out 0x3f, r0 ; 63 + 134: 0f 90 pop r0 + 136: 1f 90 pop r1 + 138: 18 95 reti + +0000013a <_GLOBAL__sub_I_u>: +#include + +template +class Uart { + public: + Uart() { + 13a: 10 92 96 00 sts 0x0096, r1 + 13e: 10 92 97 00 sts 0x0097, r1 + sei(); + 142: 78 94 sei + uint8_t number = 0; + static const uint8_t UART_MAXSTRLEN = 12; + uint8_t uart_str_count = 0; + uint8_t uart_string[UART_MAXSTRLEN]; + void init() { + UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 + 144: 86 e0 ldi r24, 0x06 ; 6 + 146: 83 b9 out 0x03, r24 ; 3 + UCSRB = /*(1<>8); + 14c: 12 b8 out 0x02, r1 ; 2 + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 1; //Teiler wird gesetzt + 14e: 81 e8 ldi r24, 0x81 ; 129 + 150: 89 b9 out 0x09, r24 ; 9 + 152: e7 e7 ldi r30, 0x77 ; 119 + 154: f0 e0 ldi r31, 0x00 ; 0 + 156: 03 c0 rjmp .+6 ; 0x15e <_GLOBAL__sub_I_u+0x24> + } + uint8_t uart_putchar(uint8_t c) { + loop_until_bit_is_set(UCSRA, UDRE); //Ausgabe des Zeichens + 158: 5d 9b sbis 0x0b, 5 ; 11 + 15a: fe cf rjmp .-4 ; 0x158 <_GLOBAL__sub_I_u+0x1e> + UDR = c; + 15c: 8c b9 out 0x0c, r24 ; 12 + sei(); + init(); + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + 15e: 81 91 ld r24, Z+ + 160: 81 11 cpse r24, r1 + 162: fa cf rjmp .-12 ; 0x158 <_GLOBAL__sub_I_u+0x1e> +#include + +template +class Led { + public: + Led() { + 164: 10 92 84 00 sts 0x0084, r1 + 168: 10 92 85 00 sts 0x0085, r1 + 16c: 80 e1 ldi r24, 0x10 ; 16 + 16e: e0 e6 ldi r30, 0x60 ; 96 + 170: f0 e0 ldi r31, 0x00 ; 0 + 172: a6 e8 ldi r26, 0x86 ; 134 + 174: b0 e0 ldi r27, 0x00 ; 0 + 176: 01 90 ld r0, Z+ + 178: 0d 92 st X+, r0 + 17a: 8a 95 dec r24 + 17c: e1 f7 brne .-8 ; 0x176 <_GLOBAL__sub_I_u+0x3c> + + 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; } + 17e: 8f e7 ldi r24, 0x7F ; 127 + 180: 87 bb out 0x17, r24 ; 23 + // Clock value: 312,500 kHz + // Mode: Normal top=0xFF + // OC0A output: Disconnected + // OC0B output: Disconnected + // Timer Period: 0,8192 ms + TCCR0A=(0<: + 194: ee 0f add r30, r30 + 196: ff 1f adc r31, r31 + +00000198 <__tablejump__>: + 198: 05 90 lpm r0, Z+ + 19a: f4 91 lpm r31, Z + 19c: e0 2d mov r30, r0 + 19e: 09 94 ijmp + +000001a0 <_exit>: + 1a0: f8 94 cli + +000001a2 <__stop_program>: + 1a2: ff cf rjmp .-2 ; 0x1a2 <__stop_program> diff --git a/Zahl/Zahl/Debug/Zahl.map b/Zahl/Zahl/Debug/Zahl.map new file mode 100644 index 0000000..13afb5e --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.map @@ -0,0 +1,459 @@ +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/avr25/tiny-stack\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/avr25/tiny-stack/crttn2313.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/avr25/tiny-stack\libgcc.a(_copy_data.o) + Zahl.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/avr25/tiny-stack\libgcc.a(_clear_bss.o) + Zahl.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/avr25/tiny-stack\libgcc.a(_ctors.o) + Zahl.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/avr25/tiny-stack\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/avr25/tiny-stack\libgcc.a(_ctors.o) (__tablejump__) + +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/avr25/tiny-stack/crttn2313.o + .text 0x00000000 0x0 Zahl.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/avr25/tiny-stack\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/avr25/tiny-stack\libgcc.a(_exit.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/avr25/tiny-stack\libgcc.a(_exit.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/avr25/tiny-stack\libgcc.a(_exit.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/avr25/tiny-stack\libgcc.a(_exit.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/avr25/tiny-stack\libgcc.a(_exit.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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_clear_bss.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_ctors.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/avr25/tiny-stack\libgcc.a(_tablejump.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/avr25/tiny-stack\libgcc.a(_tablejump.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/avr25/tiny-stack\libgcc.a(_tablejump.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/avr25/tiny-stack\libgcc.a(_tablejump.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/avr25/tiny-stack\libgcc.a(_tablejump.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/avr25/tiny-stack\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/avr25/tiny-stack\libgcc.a(_tablejump.o) + +Memory Configuration + +Name Origin Length Attributes +text 0x00000000 0x00002000 xr +data 0x00800060 0x0000ffa0 rw !x +eeprom 0x00810000 0x00010000 rw !x +fuse 0x00820000 0x00000400 rw !x +lock 0x00830000 0x00000400 rw !x +signature 0x00840000 0x00000400 rw !x +user_signatures 0x00850000 0x00000400 rw !x +*default* 0x00000000 0xffffffff + +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/avr25/tiny-stack/crttn2313.o +LOAD Zahl.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/avr25/tiny-stack\libm.a +END 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/avr25/tiny-stack\libgcc.a +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/avr25/tiny-stack\libm.a +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/avr25/tiny-stack\libgcc.a +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/avr25/tiny-stack\libc.a +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/avr25/tiny-stack\libgcc.a + +.hash + *(.hash) + +.dynsym + *(.dynsym) + +.dynstr + *(.dynstr) + +.gnu.version + *(.gnu.version) + +.gnu.version_d + *(.gnu.version_d) + +.gnu.version_r + *(.gnu.version_r) + +.rel.init + *(.rel.init) + +.rela.init + *(.rela.init) + +.rel.text + *(.rel.text) + *(.rel.text.*) + *(.rel.gnu.linkonce.t*) + +.rela.text + *(.rela.text) + *(.rela.text.*) + *(.rela.gnu.linkonce.t*) + +.rel.fini + *(.rel.fini) + +.rela.fini + *(.rela.fini) + +.rel.rodata + *(.rel.rodata) + *(.rel.rodata.*) + *(.rel.gnu.linkonce.r*) + +.rela.rodata + *(.rela.rodata) + *(.rela.rodata.*) + *(.rela.gnu.linkonce.r*) + +.rel.data + *(.rel.data) + *(.rel.data.*) + *(.rel.gnu.linkonce.d*) + +.rela.data + *(.rela.data) + *(.rela.data.*) + *(.rela.gnu.linkonce.d*) + +.rel.ctors + *(.rel.ctors) + +.rela.ctors + *(.rela.ctors) + +.rel.dtors + *(.rel.dtors) + +.rela.dtors + *(.rela.dtors) + +.rel.got + *(.rel.got) + +.rela.got + *(.rela.got) + +.rel.bss + *(.rel.bss) + +.rela.bss + *(.rela.bss) + +.rel.plt + *(.rel.plt) + +.rela.plt + *(.rela.plt) + +.text 0x00000000 0x1a4 + *(.vectors) + .vectors 0x00000000 0x26 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/avr25/tiny-stack/crttn2313.o + 0x00000000 __vector_default + 0x00000000 __vectors + *(.vectors) + *(.progmem.gcc*) + *(.progmem*) + 0x00000026 . = ALIGN (0x2) + 0x00000026 __trampolines_start = . + *(.trampolines) + .trampolines 0x00000026 0x0 linker stubs + *(.trampolines*) + 0x00000026 __trampolines_end = . + *(.jumptables) + *(.jumptables*) + *(.lowtext) + *(.lowtext*) + 0x00000026 __ctors_start = . + *(.ctors) + .ctors 0x00000026 0x2 Zahl.o + 0x00000028 __ctors_end = . + 0x00000028 __dtors_start = . + *(.dtors) + 0x00000028 __dtors_end = . + SORT(*)(.ctors) + SORT(*)(.dtors) + *(.init0) + .init0 0x00000028 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/avr25/tiny-stack/crttn2313.o + 0x00000028 __init + *(.init0) + *(.init1) + *(.init1) + *(.init2) + .init2 0x00000028 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/avr25/tiny-stack/crttn2313.o + *(.init2) + *(.init3) + *(.init3) + *(.init4) + .init4 0x00000030 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/avr25/tiny-stack\libgcc.a(_copy_data.o) + 0x00000030 __do_copy_data + .init4 0x00000046 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/avr25/tiny-stack\libgcc.a(_clear_bss.o) + 0x00000046 __do_clear_bss + *(.init4) + *(.init5) + *(.init5) + *(.init6) + .init6 0x00000056 0x14 c:/program files (x86)/atmel/atmel toolchain/avr8 gcc/native/3.4.2.876/avr8-gnu-toolchain/bin/../lib/gcc/avr/4.7.2/avr25/tiny-stack\libgcc.a(_ctors.o) + 0x00000056 __do_global_ctors + *(.init6) + *(.init7) + *(.init7) + *(.init8) + *(.init8) + *(.init9) + .init9 0x0000006a 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/avr25/tiny-stack/crttn2313.o + *(.init9) + *(.text) + .text 0x0000006e 0x2 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/avr25/tiny-stack/crttn2313.o + 0x0000006e __vector_1 + 0x0000006e __vector_12 + 0x0000006e __bad_interrupt + 0x0000006e __vector_3 + 0x0000006e __vector_11 + 0x0000006e __vector_13 + 0x0000006e __vector_17 + 0x0000006e __vector_7 + 0x0000006e __vector_5 + 0x0000006e __vector_4 + 0x0000006e __vector_9 + 0x0000006e __vector_2 + 0x0000006e __vector_15 + 0x0000006e __vector_8 + 0x0000006e __vector_14 + 0x0000006e __vector_10 + 0x0000006e __vector_16 + 0x0000006e __vector_18 + 0x00000070 . = ALIGN (0x2) + *(.text.*) + .text.startup.main + 0x00000070 0x46 Zahl.o + 0x00000070 main + .text.__vector_6 + 0x000000b6 0x84 Zahl.o + 0x000000b6 __vector_6 + .text.startup._GLOBAL__sub_I_u + 0x0000013a 0x5a Zahl.o + .text.libgcc 0x00000194 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/avr25/tiny-stack\libgcc.a(_tablejump.o) + 0x00000194 __tablejump2__ + 0x00000198 __tablejump__ + 0x000001a0 . = ALIGN (0x2) + *(.fini9) + .fini9 0x000001a0 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/avr25/tiny-stack\libgcc.a(_exit.o) + 0x000001a0 _exit + 0x000001a0 exit + *(.fini9) + *(.fini8) + *(.fini8) + *(.fini7) + *(.fini7) + *(.fini6) + *(.fini6) + *(.fini5) + *(.fini5) + *(.fini4) + *(.fini4) + *(.fini3) + *(.fini3) + *(.fini2) + *(.fini2) + *(.fini1) + *(.fini1) + *(.fini0) + .fini0 0x000001a0 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/avr25/tiny-stack\libgcc.a(_exit.o) + *(.fini0) + 0x000001a4 _etext = . + +.data 0x00800060 0x24 load address 0x000001a4 + 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/avr25/tiny-stack/crttn2313.o + .data 0x00800060 0x0 Zahl.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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\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/avr25/tiny-stack\libgcc.a(_tablejump.o) + *(.data*) + *(.rodata) + .rodata 0x00800060 0x10 Zahl.o + *(.rodata*) + .rodata.str1.1 + 0x00800070 0x13 Zahl.o + *(.gnu.linkonce.d*) + 0x00800084 . = ALIGN (0x2) + *fill* 0x00800083 0x1 + 0x00800084 _edata = . + 0x00800084 PROVIDE (__data_end, .) + +.bss 0x00800084 0x20 + 0x00800084 PROVIDE (__bss_start, .) + *(.bss) + .bss 0x00800084 0x20 Zahl.o + 0x00800084 l + 0x00800096 u + *(.bss*) + *(COMMON) + 0x008000a4 PROVIDE (__bss_end, .) + 0x000001a4 __data_load_start = LOADADDR (.data) + 0x000001c8 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x008000a4 0x0 + 0x008000a4 PROVIDE (__noinit_start, .) + *(.noinit*) + 0x008000a4 PROVIDE (__noinit_end, .) + 0x008000a4 _end = . + 0x008000a4 PROVIDE (__heap_start, .) + +.eeprom 0x00810000 0x0 + *(.eeprom*) + 0x00810000 __eeprom_end = . + +.fuse + *(.fuse) + *(.lfuse) + *(.hfuse) + *(.efuse) + +.lock + *(.lock*) + +.signature + *(.signature*) + +.user_signatures + *(.user_signatures*) + +.stab 0x00000000 0x6b4 + *(.stab) + .stab 0x00000000 0x6b4 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/avr25/tiny-stack/crttn2313.o + +.stabstr 0x00000000 0x82 + *(.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/avr25/tiny-stack/crttn2313.o + +.stab.excl + *(.stab.excl) + +.stab.exclstr + *(.stab.exclstr) + +.stab.index + *(.stab.index) + +.stab.indexstr + *(.stab.indexstr) + +.comment 0x00000000 0x2f + *(.comment) + .comment 0x00000000 0x2f Zahl.o + 0x30 (size before relaxing) + +.debug + *(.debug) + +.line + *(.line) + +.debug_srcinfo + *(.debug_srcinfo) + +.debug_sfnames + *(.debug_sfnames) + +.debug_aranges 0x00000000 0x30 + *(.debug_aranges) + .debug_aranges + 0x00000000 0x30 Zahl.o + +.debug_pubnames + *(.debug_pubnames) + +.debug_info 0x00000000 0x961 + *(.debug_info) + .debug_info 0x00000000 0x961 Zahl.o + *(.gnu.linkonce.wi.*) + +.debug_abbrev 0x00000000 0x333 + *(.debug_abbrev) + .debug_abbrev 0x00000000 0x333 Zahl.o + +.debug_line 0x00000000 0x230 + *(.debug_line) + .debug_line 0x00000000 0x230 Zahl.o + +.debug_frame 0x00000000 0x7c + *(.debug_frame) + .debug_frame 0x00000000 0x7c Zahl.o + +.debug_str 0x00000000 0x441 + *(.debug_str) + .debug_str 0x00000000 0x441 Zahl.o + 0x47a (size before relaxing) + +.debug_loc 0x00000000 0x299 + *(.debug_loc) + .debug_loc 0x00000000 0x299 Zahl.o + +.debug_macinfo + *(.debug_macinfo) + +.debug_pubtypes + *(.debug_pubtypes) + +.debug_ranges 0x00000000 0x20 + *(.debug_ranges) + .debug_ranges 0x00000000 0x20 Zahl.o + +.debug_macro + *(.debug_macro) +OUTPUT(Zahl.elf elf32-avr) +LOAD linker stubs diff --git a/Zahl/Zahl/Debug/Zahl.srec b/Zahl/Zahl/Debug/Zahl.srec new file mode 100644 index 0000000..ae8941d --- /dev/null +++ b/Zahl/Zahl/Debug/Zahl.srec @@ -0,0 +1,32 @@ +S00C00005A61686C2E7372656389 +S113000013C035C034C033C032C031C054C02FC057 +S11300102EC02DC02CC02BC02AC029C028C027C088 +S113002026C025C024C09D0011241FBECFEDCDBF26 +S113003010E0A0E6B0E0E4EAF1E002C005900D9221 +S1130040A438B107D9F720E0A4E8B0E001C01D92BC +S1130050A43AB207E1F710E0C8E2D0E003C0229767 +S1130060FE019AD0C632D107D1F702D099C0C8CFC9 +S11300707894109284008CEA8093850090E002C00A +S113008080E0982FE0E7F0E003C05D9BFECF8CB9E1 +S113009081918111FACF892F8F5F909384002FE78C +S11300A034E89EE1215030409040E1F700C0000068 +S11300B0803130F7E6CF1F920F920FB60F921124C2 +S11300C02F933F934F935F936F938F939F93EF93EC +S11300D0FF9380E00CC0E0918400F0E0EC57FF4F08 +S11300E0928198BB96E09A95F1F700C08F5F90914A +S11300F08500891780F360E04FEF50E006C018BA1E +S1130100E6E0EA95F1F700C06F5F262F30E08091BA +S11301108500FA01E81BF1092E173F0784F3FF91CC +S1130120EF919F918F916F915F914F913F912F919B +S11301300F900FBE0F901F9018951092960010927A +S11301409700789486E083B988E08AB912B881E888 +S113015089B9E7E7F0E003C05D9BFECF8CB98191DC +S11301608111FACF109284001092850080E1E0E6BC +S1130170F0E0A6E8B0E001900D928A95E1F78FE7F0 +S113018087BB10BE83E083BF12BE16BE1CBE82E0D6 +S113019089BF0895EE0FFF1F0590F491E02D099497 +S10701A0F894FFCFFD +S11301A47B036E4F175D7D0B7F5F3F7578677C3CE7 +S11301B4626C612E2E0A005561727420646F6E6540 +S10701C4210A000008 +S9030000FC diff --git a/Zahl/Zahl/Debug/makedep.mk b/Zahl/Zahl/Debug/makedep.mk new file mode 100644 index 0000000..f0abe8c --- /dev/null +++ b/Zahl/Zahl/Debug/makedep.mk @@ -0,0 +1,6 @@ +################################################################################ +# Automatically-generated file. Do not edit or delete the file +################################################################################ + +Zahl.cpp + diff --git a/Zahl/Zahl/Led.hpp b/Zahl/Zahl/Led.hpp new file mode 100644 index 0000000..213bd08 --- /dev/null +++ b/Zahl/Zahl/Led.hpp @@ -0,0 +1,90 @@ +/* + * Led.h + * + * Created: 03.11.2013 17:11:58 + * Author: BlubbFish + */ + +#ifndef LED_H_ +#define LED_H_ + +#include "config.h" +#include "pin.hpp" +#include +#include + +template +class Led { + public: + Led() { + init(); + } + void setNum(uint8_t number) { + this->diget = number; + } + void setDim(uint8_t dimmer) { + this->dim = dimmer; + } + void intoff() { + TCCR0A = 0; + TCCR0B = 0; + TIMSK = 0; + } + void inton() { + // Timer/Counter 0 initialization + // Clock source: System Clock + // Clock value: 312,500 kHz + // Mode: Normal top=0xFF + // OC0A output: Disconnected + // OC0B output: Disconnected + // Timer Period: 0,8192 ms + TCCR0A=(0<dim;k++) { + Port::port(segs[this->diget]); + _delay_us(1); + } + for(uint8_t k=0;k<255-this->dim;k++) { + Port::port(0); + _delay_us(1); + } + } + private: + void init() { + Port::dir(0b01111111); + inton(); + } + uint8_t diget = 0; + uint8_t dim = 0; + uint8_t segs[16] = { + 0b01111011, //0 + 0b00000011, //1 + 0b01101110, //2 + 0b01001111, //3 + 0b00010111, //4 + 0b01011101, //5 + 0b01111101, //6 + 0b00001011, //7 + 0b01111111, //8 + 0b01011111, //9 + 0b00111111, //A + 0b01110101, //B + 0b01111000, //C + 0b01100111, //D + 0b01111100, //E + 0b00111100 //F + }; +}; + + + +#endif /* LED_H_ */ \ No newline at end of file diff --git a/Zahl/Zahl/Zahl.cpp b/Zahl/Zahl/Zahl.cpp new file mode 100644 index 0000000..26fb46f --- /dev/null +++ b/Zahl/Zahl/Zahl.cpp @@ -0,0 +1,45 @@ +/* + * Zahl.cpp + * + * Created: 09.12.2013 23:15:37 + * Author: netz + */ +#include "config.h" + +#include "Led.hpp" +#include "uart.hpp" +#include "portb.hpp" + + +///////////////////////// UART //////////////////////////////////// +typedef Uart<9600, 9> uartclass; +uartclass u; +///////////////////////// LED ///////////////////////////////////// +typedef Led ledclass; +ledclass l; + +int main(void) +{ + sei(); + l.setNum(0); + l.setDim(0xAC); + uint8_t i = 0; + while(1) + { + u.send("bla..\n"); + l.setNum(i++); + _delay_ms(500); + if(i > 15) { + i = 0; + } + } +} + +ISR(TIMER0_OVF_vect) { + l.timer(); +} + +/*ISR(USART_RX_vect) { + //u.interrupt(); + PORTB ^= 0xFF; +}*/ \ No newline at end of file diff --git a/Zahl/Zahl/Zahl.cppproj b/Zahl/Zahl/Zahl.cppproj new file mode 100644 index 0000000..2c82faa --- /dev/null +++ b/Zahl/Zahl/Zahl.cppproj @@ -0,0 +1,181 @@ + + + + 2.0 + 6.1 + com.Atmel.AVRGCC8.CPP + {9ff39802-3deb-4aa7-8272-69fb38cc4a40} + ATtiny2313 + none + Executable + CPP + $(MSBuildProjectName) + .elf + $(MSBuildProjectDirectory)\$(Configuration) + Zahl + Zahl + Zahl + Native + true + false + exception_table + 0 + true + 0x20000000 + true + + 0 + + + + + + + + + + + + ISP + com.atmel.avrdbg.tool.ispmk2 + + com.atmel.avrdbg.tool.ispmk2 + AVRISP mkII + 0000000000000 + + 127.0.0.1 + 62426 + False + + + ISP + + 249000 + 1000000 + 150000 + false + false + 0 + 0 + 0 + 0 + + + + + com.atmel.avrdbg.tool.simulator + Simulator + + + + 127.0.0.1 + 62426 + False + + + + + + + True + True + True + True + True + True + + + NDEBUG + + + Optimize for size (-Os) + True + True + True + True + True + + + NDEBUG + + + Optimize for size (-Os) + True + True + True + + + libm + + + <segmentname>=<address>, for example .boot=0xff + + + + + + + True + True + True + True + True + True + + + DEBUG + + + Optimize (-O1) + True + True + Default (-g2) + True + True + True + + + DEBUG + + + Optimize for size (-Os) + True + True + Default (-g2) + True + -std=c++11 + + + libm + + + <segmentname>=<address>, for example .boot=0xff + Default (-Wa,-g) + + + + + + compile + + + compile + + + compile + + + compile + + + compile + + + compile + + + compile + + + + \ No newline at end of file diff --git a/Zahl/Zahl/config.h b/Zahl/Zahl/config.h new file mode 100644 index 0000000..868121c --- /dev/null +++ b/Zahl/Zahl/config.h @@ -0,0 +1,16 @@ +/* + * config.h + * + * Created: 02.12.2013 21:49:03 + * Author: netz + */ + + +#ifndef CONFIG_H_ +#define CONFIG_H_ + + +#define F_CPU 20000000 + + +#endif /* CONFIG_H_ */ \ No newline at end of file diff --git a/Zahl/Zahl/pin.hpp b/Zahl/Zahl/pin.hpp new file mode 100644 index 0000000..c14f338 --- /dev/null +++ b/Zahl/Zahl/pin.hpp @@ -0,0 +1,50 @@ +#ifndef AVRLIB_PIN_HPP +#define AVRLIB_PIN_HPP + +#include + +namespace avrlib { + + template + struct pin + { + static void set(bool value = true) + { + if (value) + Port::port(Port::port() | (1< + +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 diff --git a/Zahl/Zahl/portc.hpp b/Zahl/Zahl/portc.hpp new file mode 100644 index 0000000..017e95b --- /dev/null +++ b/Zahl/Zahl/portc.hpp @@ -0,0 +1,22 @@ +#ifndef AVRLIB_PORTC_HPP +#define AVRLIB_PORTC_HPP + +#include + +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 diff --git a/Zahl/Zahl/uart.hpp b/Zahl/Zahl/uart.hpp new file mode 100644 index 0000000..cdf383f --- /dev/null +++ b/Zahl/Zahl/uart.hpp @@ -0,0 +1,69 @@ +/* + * Rs232.h + * + * Created: 04.11.2013 21:31:09 + * Author: netz + */ + +#ifndef RS232_H_ +#define RS232_H_ + + +#include "config.h" +#include +#include +#include + +template +class Uart { + public: + Uart() { + sei(); + init(); + send("Uart done!\n"); + } + void send(const char *text) { + while (*text) + { + uart_putchar(*text); + text++; + } + } + /* USART_RX_vect */ + void interrupt() { + uint8_t nextChar; + nextChar = UDR; + if( nextChar != '\n' && nextChar != '\r' && uart_str_count < UART_MAXSTRLEN ) { + uart_string[uart_str_count] = nextChar; + uart_str_count++; + } else { + if(uart_string[0] == 't') { + number = uart_string[diget]; + } + uart_str_count = 0; + } + } + uint8_t getDig() { + return number; + } + private: + uint8_t number = 0; + static const uint8_t UART_MAXSTRLEN = 12; + uint8_t uart_str_count = 0; + uint8_t uart_string[UART_MAXSTRLEN]; + void init() { + UCSRC = (1 << UCSZ1) | (1 << UCSZ0); //8N1 + UCSRB = /*(1<>8); + UBRRL = (uint8_t)(F_CPU / 16 / baudrate) - 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_ */ \ No newline at end of file