diff --git a/.gitignore b/.gitignore index 487e9f47fdc967dbb5e20191c9a0a90bee3b31d8..42e6204b0ab36b01dd9511b4e93422a01aebb6d4 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,6 @@ -jake/ \ No newline at end of file +jake/ +**.elf +**.hex +**.lss +**.map +**.srec \ No newline at end of file diff --git a/circuit/xmega-128a4u-switch/xmega-128a4u-switch_01/eagle.epf b/circuit/xmega-128a4u-switch/xmega-128a4u-switch_01/eagle.epf index ab0b6b40f4720aa063a60820beea45563c34ac8f..a7bfc32af255140221e9af5ea8e45c3054709e4b 100644 --- a/circuit/xmega-128a4u-switch/xmega-128a4u-switch_01/eagle.epf +++ b/circuit/xmega-128a4u-switch/xmega-128a4u-switch_01/eagle.epf @@ -351,8 +351,8 @@ UsedLibrary="D:/Dropbox (Personal)/CBA/doc/libraries/eagle/fab.lbr" [Win_1] Type="Schematic Editor" -Loc="0 0 3839 2065" -State=1 +Loc="0 0 1919 1039" +State=3 Number=2 File="xmega-128a4u-switch.sch" View="15.0064 -41.1611 192.2 109.557" @@ -399,12 +399,12 @@ Sheet="1" [Win_2] Type="Board Editor" -Loc="0 0 3839 2065" -State=1 +Loc="0 0 1919 1016" +State=3 Number=1 File="xmega-128a4u-switch.brd" -View="9.03818 1.12622 69.223 49.2745" -WireWidths=" 0.0762 0.1016 0.127 0.15 0.2 0.2032 0.254 0.4064 0.508 0.6096 0.8128 1.016 1.27 2.54 0.1524 0.3048" +View="27.2798 4.87803 53.4537 24.2277" +WireWidths=" 0.0762 0.1016 0.127 0.15 0.2 0.2032 0.254 0.3048 0.4064 0.508 0.6096 0.8128 1.016 1.27 2.54 0.1524" PadDiameters=" 0.254 0.3048 0.4064 0.6096 0.8128 1.016 1.27 1.4224 1.6764 1.778 1.9304 2.1844 2.54 3.81 6.4516 0" PadDrills=" 0.2 0.25 0.3 0.35 0.4 0.45 0.5 0.55 0.65 0.7 0.75 0.8 0.85 0.9 1 0.6" ViaDiameters=" 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1 1.05 1.1 1.15 1.2 1.3 0" @@ -445,12 +445,12 @@ Layer=1 [Win_3] Type="Control Panel" -Loc="-11 -11 3828 2054" +Loc="0 0 1919 1016" State=1 Number=0 [Desktop] -Screen="3840 2160" +Screen="1920 1080" Window="Win_1" Window="Win_2" Window="Win_3" diff --git a/embedded/atxmega-a4u-wakeup/.vs/atxmega-a4u-wakeup/v14/.atsuo b/embedded/atxmega-a4u-wakeup/.vs/atxmega-a4u-wakeup/v14/.atsuo index 6c0cf447deec825e592e26bdf5fecb278f762af2..51ddd42b4eefcc47e56749b44a00db5c81469c18 100644 Binary files a/embedded/atxmega-a4u-wakeup/.vs/atxmega-a4u-wakeup/v14/.atsuo and b/embedded/atxmega-a4u-wakeup/.vs/atxmega-a4u-wakeup/v14/.atsuo differ diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.elf b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.elf index fcef40a505c89f9767e76b8f309b58b75ae77038..89887a1997380b99591a908483561754bd7a01da 100644 Binary files a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.elf and b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.elf differ diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.hex b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.hex index a0e361c49626498dce43eaf14486bf23b909b538..873308464897f825e40693e95528309733321e2d 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.hex +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.hex @@ -4,8 +4,8 @@ :100030000C9424010C9424010C9424010C942401AC :100040000C9424010C9424010C9424010C9424019C :100050000C9424010C9424010C9424010C9424018C -:100060000C9424010C9424010C9424010C9424017C -:100070000C9482010C94B9010C9424010C94240179 +:100060000C9424010C94AA010C94E1010C94240139 +:100070000C9418020C944F020C9424010C9424014B :100080000C9424010C9424010C9424010C9424015C :100090000C9424010C9424010C9424010C9424014C :1000A0000C9424010C9424010C9424010C9424013C @@ -20,8 +20,8 @@ :100130000C9424010C9424010C9424010C942401AB :100140000C9424010C9424010C9424010C9424019B :100150000C9424010C9424010C9424010C9424018B -:100160000C94F0010C9427020C9424010C942401AB -:100170000C9424010C9424010C9424010C9424016B +:100160000C9486020C94BD020C9424010C9424017E +:100170000C94F4020C9424010C9424010C9424019A :100180000C9424010C9424010C9424010C9424015B :100190000C9424010C9424010C9424010C9424014B :1001A0000C9424010C9424010C9424010C9424013B @@ -31,126 +31,153 @@ :1001E0000C9424010C9424010C9424010C942401FB :1001F0000C9424010C9424010C94240111241FBE9E :10020000CFEFCDBFDFE3DEBF00E00CBF18BE19BEED -:100210001ABE1BBE20E2A6E0B0E201C01D92AE30C5 -:10022000B207E1F710E2A0E0B0E2E6E9F9E000E0B1 -:100230000BBF02C007900D92A630B107D9F71BBEC5 -:100240000E9432010C94C9040C940000E0EAF0E032 -:1002500082818FEF82830895E0EAF0E082818760F7 -:1002600082830895E0E5F0E088E1858380E1808382 -:10027000818184FFFDCF88ED84BF84E080934000BE -:1002800000E220E840E460E476E080EB98E00E9441 -:10029000CA0280930620909307200E94000300E189 -:1002A00028E044E060E676E080EA99E00E94CA0235 -:1002B00080930820909309200E94000380E180939E -:1002C0004106E0EAF0E0828187608283789400E46E -:1002D00016E0C0E10E942601E0910620F09107207F -:1002E0008585882351F0CF010E944503682F8091B6 -:1002F0000820909109200E949A03F801C7830E9468 -:100300002C01E8CF1F920F920FB60F92112408B65E -:100310000F9218BE09B60F9219BE0BB60F921BBEF4 -:100320002F933F934F935F936F937F938F939F93FD -:10033000AF93BF93EF93FF93809106209091072096 -:100340000E943603FF91EF91BF91AF919F918F91E2 -:100350007F916F915F914F913F912F910F900BBEC5 -:100360000F9009BE0F9008BE0F900FBE0F901F9008 -:1003700018951F920F920FB60F92112408B60F9284 -:1003800018BE09B60F9219BE0BB60F921BBE2F9363 -:100390003F934F935F936F937F938F939F93AF930D -:1003A000BF93EF93FF9380910620909107200E94C6 -:1003B0007903FF91EF91BF91AF919F918F917F91C1 -:1003C0006F915F914F913F912F910F900BBE0F90C6 -:1003D00009BE0F9008BE0F900FBE0F901F9018958A -:1003E0001F920F920FB60F92112408B60F9218BEEB -:1003F00009B60F9219BE0BB60F921BBE2F933F93F7 -:100400004F935F936F937F938F939F93AF93BF931C -:10041000EF93FF9380910820909109200E9436036A -:10042000FF91EF91BF91AF919F918F917F916F91CC -:100430005F914F913F912F910F900BBE0F9009BE8E -:100440000F9008BE0F900FBE0F901F9018951F922F -:100450000F920FB60F92112408B60F9218BE09B66C -:100460000F9219BE0BB60F921BBE2F933F934F9363 -:100470005F936F937F938F939F93AF93BF93EF930C -:10048000FF9380910820909109200E947903FF91A9 -:10049000EF91BF91AF919F918F917F916F915F91FC -:1004A0004F913F912F910F900BBE0F9009BE0F906F -:1004B00008BE0F900FBE0F901F901895CF92DF923D -:1004C000EF92FF92CF93DF936B017C0188E090E085 -:1004D0000E94A803EC01892BD1F0D701C601019637 -:1004E000A11DB11D8C839D83AE83BF830E94A80391 -:1004F00088839983892B29F01A821B828C2F9D2F48 -:1005000008C0CE010E94400480E090E002C080E07C -:1005100090E0DF91CF91FF90EF90DF90CF90089522 -:10052000FC018281A081B181A80FB11D6C93428131 -:100530004F5F428350E060E070E084819581A68146 -:10054000B7810197A109B109481759076A077B07C5 -:1005500008F0128208950F931F93FC014381A0813C -:10056000B181A40FB11D8C914F5F438350E060E0D7 -:1005700070E004811581268137810150110921091C -:100580003109401751076207730708F013821F9162 -:100590000F910895AF92BF92CF92DF92FF920F9387 -:1005A0001F93CF93DF935C016B01F42E122F8EE02B -:1005B00090E00E94A803EC01A882B982CA82DB8283 -:1005C000FC821D830E8360E170E080E090E00E9479 -:1005D0005E028F83988760E170E080E090E00E9487 -:1005E0005E0289879A871C861D86CE01DF91CF9196 -:1005F0001F910F91FF90DF90CF90BF90AF90089523 -:10060000FC01A081B1818BE916968C93A081B18108 -:1006100017961C92A081B18113968C9113978061DB -:1006200013968C93A081B18188E114968C93A0815C -:10063000B18183E015968C93A281B3818581159653 -:100640008C93A281B381858111968C93A281B38111 -:10065000848112968C93A281B381848116968C93A7 -:10066000A281B381868111968C930895CF93DF93F5 -:10067000EC01E881F98160818F8198850E94900268 -:1006800081E08D87DF91CF910895CF93DF93EC01C7 -:100690008F8198850E94AB02EF81F885238192813A -:1006A000291302C01D8602C091E09D87DF91CF9182 -:1006B0000895FC016487662371F0A081B1811396CF -:1006C0008C911397816013968C93A281B38186815C -:1006D00015968C930895A081B18113968C911397F0 -:1006E0008C7F13968C93A281B381868116968C930E -:1006F00008950F931F93CF93DF93EC010881198125 -:1007000089859A850E94AB02F8018083E985FA8584 -:1007100093818281981305C060E0CE010E94590345 -:1007200004C061E0CE010E945903DF91CF911F9177 -:100730000F910895CF93DF93EC0189859A850E94EC -:10074000900261E0CE010E945903DF91CF9108959C -:100750000F931F93CF93DF938230910510F482E0C3 -:1007600090E0E0910C20F0910D2020E030E0A0E03E -:10077000B0E0309719F1408151810281138148170F -:100780005907C8F08417950769F4109731F012964D -:100790000C93129713961C9327C000930C20109370 -:1007A0000D2022C02115310519F04217530718F406 -:1007B0009A01BD01EF01DF01F801DBCF2115310501 -:1007C000F9F0281B390B2430310580F48A819B8194 -:1007D0006115710521F0FB018283938304C080932E -:1007E0000C2090930D20FE01329644C0FE01E20FD2 -:1007F000F31F8193919322503109288339833AC0A2 -:1008000020910A2030910B20232B41F420910220CB -:100810003091032020930A2030930B202091002058 -:10082000309101202115310541F42DB73EB740919B -:10083000042050910520241B350BE0910A20F091F3 -:100840000B20E217F307A0F42E1B3F0B28173907E4 -:1008500078F0AC014E5F5F4F2417350748F04E0F1C -:100860005F1F40930A2050930B208193919302C005 -:10087000E0E0F0E0CF01DF91CF911F910F9108955B -:10088000CF93DF93009709F481C0FC013297128265 -:100890001382A0910C20B0910D20109781F420813B -:1008A0003181820F931F20910A2030910B2028174D -:1008B000390751F5E0930A20F0930B2067C0ED0152 -:1008C00020E030E0CE17DF0740F44A815B819E01D3 -:1008D00041155105F1F0EA01F5CFC283D383408180 -:1008E0005181840F951FC817D90759F488819981C0 -:1008F000840F951F0296808391838A819B818283D6 -:1009000093832115310529F4E0930C20F0930D20F9 -:100910003DC0E901EA83FB8349915991C40FD51F7A -:10092000EC17FD0761F480819181840F951F029679 -:10093000E90188839983828193818A839B83E0E0A4 -:10094000F0E012968D919C911397009719F0FD019C -:10095000DC01F7CF8D919C9111979D012E5F3F4F48 -:10096000820F931F20910A2030910B2028173907FE -:1009700069F4309729F410920C2010920D2002C0D7 -:1009800012821382A0930A20B0930B20DF91CF91A3 -:060990000895F894FFCF6A -:0609960000000E2020000D +:100210001ABE1BBE10E2A0E0B0E2EEE4FBE000E09C +:100220000BBF02C007900D92A630B107D9F71BBED5 +:1002300020E2A6E0B0E201C01D92A231B207E1F7D0 +:100240000E9426010C94A5050C940000E0E5F0E066 +:1002500088E1858380E18083818184FFFDCF88ED03 +:1002600084BF84E08093400000E128E044E060E443 +:1002700076E080EA98E00E949803809308209093AB +:1002800009200E94CF0300E220E840E460E476E029 +:1002900080EB98E00E9498038093062090930720BB +:1002A0000E94CF0300E128E044E060E676E080EAC7 +:1002B00099E00E94980380930C2090930D200E9457 +:1002C000CF0300E220E840E460E676E080EB99E0CE +:1002D0000E94980380930A2090930B200E94CF03E2 +:1002E000E0EAF0E082818760828378948091082040 +:1002F000909109200E94050480910C2090910D207E +:100300000E9405042FE78AE196E02150804090404A +:10031000E1F700C00000EACFCF93DF931F92CDB783 +:10032000DEB7BE016F5F7F4F0E9437046981809105 +:100330000A2090910B200E9476042FE78AE196E034 +:10034000215080409040E1F700C000000F90DF9105 +:10035000CF9108951F920F920FB60F92112408B6F5 +:100360000F9218BE09B60F9219BE0BB60F921BBEA4 +:100370002F933F934F935F936F937F938F939F93AD +:10038000AF93BF93EF93FF93809108209091092042 +:100390000E940E04FF91EF91BF91AF919F918F91B9 +:1003A0007F916F915F914F913F912F910F900BBE75 +:1003B0000F9009BE0F9008BE0F900FBE0F901F90B8 +:1003C00018951F920F920FB60F92112408B60F9234 +:1003D00018BE09B60F9219BE0BB60F921BBE2F9313 +:1003E0003F934F935F936F937F938F939F93AF93BD +:1003F000BF93EF93FF9380910820909109200E9472 +:100400005604FF91EF91BF91AF919F918F917F9192 +:100410006F915F914F913F912F910F900BBE0F9075 +:1004200009BE0F9008BE0F900FBE0F901F90189539 +:100430001F920F920FB60F92112408B60F9218BE9A +:1004400009B60F9219BE0BB60F921BBE2F933F93A6 +:100450004F935F936F937F938F939F93AF93BF93CC +:10046000EF93FF9380910620909107200E940E0445 +:10047000FF91EF91BF91AF919F918F917F916F917C +:100480005F914F913F912F910F900BBE0F9009BE3E +:100490000F9008BE0F900FBE0F901F9018951F92DF +:1004A0000F920FB60F92112408B60F9218BE09B61C +:1004B0000F9219BE0BB60F921BBE2F933F934F9313 +:1004C0005F936F937F938F939F93AF93BF93EF93BC +:1004D000FF9380910620909107200E945604FF917F +:1004E000EF91BF91AF919F918F917F916F915F91AC +:1004F0004F913F912F910F900BBE0F9009BE0F901F +:1005000008BE0F900FBE0F901F9018951F920F926C +:100510000FB60F92112408B60F9218BE09B60F92AB +:1005200019BE0BB60F921BBE2F933F934F935F9351 +:100530006F937F938F939F93AF93BF93EF93FF93AB +:1005400080910C2090910D200E940E04FF91EF915C +:10055000BF91AF919F918F917F916F915F914F91DB +:100560003F912F910F900BBE0F9009BE0F9008BEC8 +:100570000F900FBE0F901F9018951F920F920FB6FD +:100580000F92112408B60F9218BE09B60F9219BE29 +:100590000BB60F921BBE2F933F934F935F936F93B6 +:1005A0007F938F939F93AF93BF93EF93FF9380912C +:1005B0000C2090910D200E945604FF91EF91BF9165 +:1005C000AF919F918F917F916F915F914F913F91EB +:1005D0002F910F900BBE0F9009BE0F9008BE0F9089 +:1005E0000FBE0F901F9018951F920F920FB60F928B +:1005F000112408B60F9218BE09B60F9219BE0BB699 +:100600000F921BBE2F933F934F935F936F937F93F4 +:100610008F939F93AF93BF93EF93FF9380910A20A3 +:1006200090910B200E945604FF91EF91BF91AF91E2 +:100630009F918F917F916F915F914F913F912F91FA +:100640000F900BBE0F9009BE0F9008BE0F900FBE0B +:100650000F901F901895CF92DF92EF92FF92CF9359 +:10066000DF936B017C0188E090E00E948404EC0140 +:10067000892BD1F0D701C6010196A11DB11D8C8334 +:100680009D83AE83BF830E94840488839983892BD2 +:1006900029F01A821B828C2F9D2F08C0CE010E9448 +:1006A0001C0580E090E002C080E090E0DF91CF91F7 +:1006B000FF90EF90DF90CF900895FC018281A081A0 +:1006C000B181A80FB11D6C9342814F5F428350E00E +:1006D00060E070E084819581A681B7814817590751 +:1006E0006A077B0708F0128208950F931F93FC019D +:1006F0004381A081B181A40FB11D8C914F5F4383D1 +:1007000050E060E070E00481158126813781401758 +:1007100051076207730708F013821F910F91089524 +:10072000FC0181E023819281291301C080E00895BA +:10073000AF92BF92CF92DF92FF920F931F93CF930E +:10074000DF935C016B01F42E122F8EE090E00E948B +:100750008404EC01A882B982CA82DB82FC821D83F8 +:100760000E8360E170E080E090E00E942B038F83B5 +:10077000988760E170E080E090E00E942B03898719 +:100780009A871B861C861D86CE01DF91CF911F9113 +:100790000F91FF90DF90CF90BF90AF900895FC0134 +:1007A000A081B1818BE916968C93A081B1811796B7 +:1007B0001C92A081B18113968C911397806113963E +:1007C0008C93A081B18188E114968C93A081B18132 +:1007D00083E015968C93A281B381858115968C93C5 +:1007E000A281B381858111968C93A281B38184818A +:1007F00012968C93A281B381848116968C93A281E8 +:10080000B381868111968C930895DC011296ED9147 +:10081000FC91139716968C9187830895CF93DF935D +:10082000EC01EA81FB818E818783E881F9819081E7 +:100830008D85882319F0813031F011C09E3779F40D +:1008400081E08D870CC09E3729F41D86CE010E9461 +:100850008C0105C060818F8198850E945D038C8525 +:10086000813011F081E08C87DF91CF91089581E58F +:10087000FB01808380E00895FC0183858617A9F041 +:10088000662351F0A081B18113968C9113978160FA +:1008900013968C9363870895A081B18113968C91F0 +:1008A00013978C7F13968C93138608950F931F9341 +:1008B000CF93DF93EC01EA81FB818E8187830881EE +:1008C000198189859A850E947503F801808389853D +:1008D0009A850E949003811104C060E0CE010E94BD +:1008E0003C04DF91CF911F910F910895CF93DF9337 +:1008F000EC0189859A850E945D0361E0CE010E942A +:100900003C04DF91CF9108950F931F93CF93DF9312 +:100910008230910510F482E090E0E0911020F09197 +:10092000112020E030E0A0E0B0E0309719F14081E4 +:1009300051810281138148175907C8F08417950720 +:1009400069F4109731F012960C93129713961C933A +:1009500027C0009310201093112022C021153105CB +:1009600019F04217530718F49A01BD01EF01DF0196 +:10097000F801DBCF21153105F9F0281B390B2430A4 +:10098000310580F48A819B816115710521F0FB019D +:100990008283938304C08093102090931120FE01E2 +:1009A000329644C0FE01E20FF31F819391932250CF +:1009B0003109288339833AC020910E2030910F20CD +:1009C000232B41F4209102203091032020930E200C +:1009D00030930F2020910020309101202115310506 +:1009E00041F42DB73EB74091042050910520241BBF +:1009F000350BE0910E20F0910F20E217F307A0F4E1 +:100A00002E1B3F0B2817390778F0AC014E5F5F4F64 +:100A10002417350748F04E0F5F1F40930E20509368 +:100A20000F208193919302C0E0E0F0E0CF01DF91CD +:100A3000CF911F910F910895CF93DF93009709F401 +:100A400081C0FC01329712821382A0911020B091D4 +:100A50001120109781F420813181820F931F209102 +:100A60000E2030910F202817390751F5E0930E2002 +:100A7000F0930F2067C0ED0120E030E0CE17DF07D4 +:100A800040F44A815B819E0141155105F1F0EA0174 +:100A9000F5CFC283D38340815181840F951FC8173E +:100AA000D90759F488819981840F951F0296808314 +:100AB00091838A819B81828393832115310529F457 +:100AC000E0931020F09311203DC0E901EA83FB83FD +:100AD00049915991C40FD51FEC17FD0761F480812E +:100AE0009181840F951F0296E90188839983828101 +:100AF00093818A839B83E0E0F0E012968D919C9134 +:100B00001397009719F0FD01DC01F7CF8D919C91AF +:100B100011979D012E5F3F4F820F931F20910E2052 +:100B200030910F202817390769F4309729F4109273 +:100B300010201092112002C012821382A0930E2066 +:0E0B4000B0930F20DF91CF910895F894FFCF6E +:060B4E000000122020004F :00000001FF diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.lss b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.lss index 08a6f06ae3ad319aa2c53bdf5b8ef00c4e26ed5b..5fbbbe0f4c69961d0beb2089c19ee1cb8da7d02a 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.lss +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.lss @@ -3,31 +3,31 @@ atxmega-a4u-wakeup.elf: file format elf32-avr Sections: Idx Name Size VMA LMA File off Algn - 0 .text 00000996 00000000 00000000 00000094 2**1 + 0 .text 00000b4e 00000000 00000000 00000094 2**1 CONTENTS, ALLOC, LOAD, READONLY, CODE - 1 .data 00000006 00802000 00000996 00000a2a 2**0 + 1 .data 00000006 00802000 00000b4e 00000be2 2**0 CONTENTS, ALLOC, LOAD, DATA - 2 .bss 00000008 00802006 00802006 00000a30 2**0 + 2 .bss 0000000c 00802006 00802006 00000be8 2**0 ALLOC - 3 .comment 00000030 00000000 00000000 00000a30 2**0 + 3 .comment 00000030 00000000 00000000 00000be8 2**0 CONTENTS, READONLY - 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 00000a60 2**2 + 4 .note.gnu.avr.deviceinfo 00000040 00000000 00000000 00000c18 2**2 CONTENTS, READONLY - 5 .debug_aranges 00000110 00000000 00000000 00000aa0 2**0 + 5 .debug_aranges 00000138 00000000 00000000 00000c58 2**0 CONTENTS, READONLY, DEBUGGING - 6 .debug_info 00003e75 00000000 00000000 00000bb0 2**0 + 6 .debug_info 00004072 00000000 00000000 00000d90 2**0 CONTENTS, READONLY, DEBUGGING - 7 .debug_abbrev 00002bca 00000000 00000000 00004a25 2**0 + 7 .debug_abbrev 00002c94 00000000 00000000 00004e02 2**0 CONTENTS, READONLY, DEBUGGING - 8 .debug_line 00000b13 00000000 00000000 000075ef 2**0 + 8 .debug_line 00000c49 00000000 00000000 00007a96 2**0 CONTENTS, READONLY, DEBUGGING - 9 .debug_frame 0000038c 00000000 00000000 00008104 2**2 + 9 .debug_frame 000004b8 00000000 00000000 000086e0 2**2 CONTENTS, READONLY, DEBUGGING - 10 .debug_str 00002311 00000000 00000000 00008490 2**0 + 10 .debug_str 000023a2 00000000 00000000 00008b98 2**0 CONTENTS, READONLY, DEBUGGING - 11 .debug_loc 00000b72 00000000 00000000 0000a7a1 2**0 + 11 .debug_loc 00000d9c 00000000 00000000 0000af3a 2**0 CONTENTS, READONLY, DEBUGGING - 12 .debug_ranges 000000e0 00000000 00000000 0000b313 2**0 + 12 .debug_ranges 00000108 00000000 00000000 0000bcd6 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: @@ -58,11 +58,11 @@ Disassembly of section .text: 58: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 5c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 60: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> - 64: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> - 68: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> + 64: 0c 94 aa 01 jmp 0x354 ; 0x354 <__vector_25> + 68: 0c 94 e1 01 jmp 0x3c2 ; 0x3c2 <__vector_26> 6c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> - 70: 0c 94 82 01 jmp 0x304 ; 0x304 <__vector_28> - 74: 0c 94 b9 01 jmp 0x372 ; 0x372 <__vector_29> + 70: 0c 94 18 02 jmp 0x430 ; 0x430 <__vector_28> + 74: 0c 94 4f 02 jmp 0x49e ; 0x49e <__vector_29> 78: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 7c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 80: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> @@ -121,11 +121,11 @@ Disassembly of section .text: 154: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 158: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 15c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> - 160: 0c 94 f0 01 jmp 0x3e0 ; 0x3e0 <__vector_88> - 164: 0c 94 27 02 jmp 0x44e ; 0x44e <__vector_89> + 160: 0c 94 86 02 jmp 0x50c ; 0x50c <__vector_88> + 164: 0c 94 bd 02 jmp 0x57a ; 0x57a <__vector_89> 168: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 16c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> - 170: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> + 170: 0c 94 f4 02 jmp 0x5e8 ; 0x5e8 <__vector_92> 174: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 178: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> 17c: 0c 94 24 01 jmp 0x248 ; 0x248 <__bad_interrupt> @@ -175,1046 +175,1239 @@ Disassembly of section .text: 210: 1a be out 0x3a, r1 ; 58 212: 1b be out 0x3b, r1 ; 59 -00000214 <__do_clear_bss>: - 214: 20 e2 ldi r18, 0x20 ; 32 - 216: a6 e0 ldi r26, 0x06 ; 6 +00000214 <__do_copy_data>: + 214: 10 e2 ldi r17, 0x20 ; 32 + 216: a0 e0 ldi r26, 0x00 ; 0 218: b0 e2 ldi r27, 0x20 ; 32 - 21a: 01 c0 rjmp .+2 ; 0x21e <.do_clear_bss_start> + 21a: ee e4 ldi r30, 0x4E ; 78 + 21c: fb e0 ldi r31, 0x0B ; 11 + 21e: 00 e0 ldi r16, 0x00 ; 0 + 220: 0b bf out 0x3b, r16 ; 59 + 222: 02 c0 rjmp .+4 ; 0x228 <__do_copy_data+0x14> + 224: 07 90 elpm r0, Z+ + 226: 0d 92 st X+, r0 + 228: a6 30 cpi r26, 0x06 ; 6 + 22a: b1 07 cpc r27, r17 + 22c: d9 f7 brne .-10 ; 0x224 <__do_copy_data+0x10> + 22e: 1b be out 0x3b, r1 ; 59 -0000021c <.do_clear_bss_loop>: - 21c: 1d 92 st X+, r1 +00000230 <__do_clear_bss>: + 230: 20 e2 ldi r18, 0x20 ; 32 + 232: a6 e0 ldi r26, 0x06 ; 6 + 234: b0 e2 ldi r27, 0x20 ; 32 + 236: 01 c0 rjmp .+2 ; 0x23a <.do_clear_bss_start> -0000021e <.do_clear_bss_start>: - 21e: ae 30 cpi r26, 0x0E ; 14 - 220: b2 07 cpc r27, r18 - 222: e1 f7 brne .-8 ; 0x21c <.do_clear_bss_loop> +00000238 <.do_clear_bss_loop>: + 238: 1d 92 st X+, r1 -00000224 <__do_copy_data>: - 224: 10 e2 ldi r17, 0x20 ; 32 - 226: a0 e0 ldi r26, 0x00 ; 0 - 228: b0 e2 ldi r27, 0x20 ; 32 - 22a: e6 e9 ldi r30, 0x96 ; 150 - 22c: f9 e0 ldi r31, 0x09 ; 9 - 22e: 00 e0 ldi r16, 0x00 ; 0 - 230: 0b bf out 0x3b, r16 ; 59 - 232: 02 c0 rjmp .+4 ; 0x238 <__do_copy_data+0x14> - 234: 07 90 elpm r0, Z+ - 236: 0d 92 st X+, r0 - 238: a6 30 cpi r26, 0x06 ; 6 - 23a: b1 07 cpc r27, r17 - 23c: d9 f7 brne .-10 ; 0x234 <__do_copy_data+0x10> - 23e: 1b be out 0x3b, r1 ; 59 - 240: 0e 94 32 01 call 0x264 ; 0x264 <main> - 244: 0c 94 c9 04 jmp 0x992 ; 0x992 <_exit> +0000023a <.do_clear_bss_start>: + 23a: a2 31 cpi r26, 0x12 ; 18 + 23c: b2 07 cpc r27, r18 + 23e: e1 f7 brne .-8 ; 0x238 <.do_clear_bss_loop> + 240: 0e 94 26 01 call 0x24c ; 0x24c <main> + 244: 0c 94 a5 05 jmp 0xb4a ; 0xb4a <_exit> 00000248 <__bad_interrupt>: 248: 0c 94 00 00 jmp 0 ; 0x0 <__vectors> -0000024c <nointerrupts>: - tp_write(tp, 75); - tp_write(tp, 69); - tp_write(tp, 84); - tp_write(tp, 38); - tp_write(tp, 0x0A); // write wakes up txdref +0000024c <main>: + tp_txISR(tp3); +} + +IRS(USARTD1_RXC_vect){ + tp_rxISR(tp4); } - 24c: e0 ea ldi r30, 0xA0 ; 160 + 24c: e0 e5 ldi r30, 0x50 ; 80 24e: f0 e0 ldi r31, 0x00 ; 0 - 250: 82 81 ldd r24, Z+2 ; 0x02 - 252: 8f ef ldi r24, 0xFF ; 255 - 254: 82 83 std Z+2, r24 ; 0x02 - 256: 08 95 ret + 250: 88 e1 ldi r24, 0x18 ; 24 + 252: 85 83 std Z+5, r24 ; 0x05 + 254: 80 e1 ldi r24, 0x10 ; 16 + 256: 80 83 st Z, r24 + 258: 81 81 ldd r24, Z+1 ; 0x01 + 25a: 84 ff sbrs r24, 4 + 25c: fd cf rjmp .-6 ; 0x258 <main+0xc> + 25e: 88 ed ldi r24, 0xD8 ; 216 + 260: 84 bf out 0x34, r24 ; 52 + 262: 84 e0 ldi r24, 0x04 ; 4 + 264: 80 93 40 00 sts 0x0040, r24 ; 0x800040 <__TEXT_REGION_LENGTH__+0x700040> + 268: 00 e1 ldi r16, 0x10 ; 16 + 26a: 28 e0 ldi r18, 0x08 ; 8 + 26c: 44 e0 ldi r20, 0x04 ; 4 + 26e: 60 e4 ldi r22, 0x40 ; 64 + 270: 76 e0 ldi r23, 0x06 ; 6 + 272: 80 ea ldi r24, 0xA0 ; 160 + 274: 98 e0 ldi r25, 0x08 ; 8 + 276: 0e 94 98 03 call 0x730 ; 0x730 <tp_new> + 27a: 80 93 08 20 sts 0x2008, r24 ; 0x802008 <tp1> + 27e: 90 93 09 20 sts 0x2009, r25 ; 0x802009 <tp1+0x1> + 282: 0e 94 cf 03 call 0x79e ; 0x79e <tp_init> + 286: 00 e2 ldi r16, 0x20 ; 32 + 288: 20 e8 ldi r18, 0x80 ; 128 + 28a: 40 e4 ldi r20, 0x40 ; 64 + 28c: 60 e4 ldi r22, 0x40 ; 64 + 28e: 76 e0 ldi r23, 0x06 ; 6 + 290: 80 eb ldi r24, 0xB0 ; 176 + 292: 98 e0 ldi r25, 0x08 ; 8 + 294: 0e 94 98 03 call 0x730 ; 0x730 <tp_new> + 298: 80 93 06 20 sts 0x2006, r24 ; 0x802006 <__data_end> + 29c: 90 93 07 20 sts 0x2007, r25 ; 0x802007 <__data_end+0x1> + 2a0: 0e 94 cf 03 call 0x79e ; 0x79e <tp_init> + 2a4: 00 e1 ldi r16, 0x10 ; 16 + 2a6: 28 e0 ldi r18, 0x08 ; 8 + 2a8: 44 e0 ldi r20, 0x04 ; 4 + 2aa: 60 e6 ldi r22, 0x60 ; 96 + 2ac: 76 e0 ldi r23, 0x06 ; 6 + 2ae: 80 ea ldi r24, 0xA0 ; 160 + 2b0: 99 e0 ldi r25, 0x09 ; 9 + 2b2: 0e 94 98 03 call 0x730 ; 0x730 <tp_new> + 2b6: 80 93 0c 20 sts 0x200C, r24 ; 0x80200c <tp3> + 2ba: 90 93 0d 20 sts 0x200D, r25 ; 0x80200d <tp3+0x1> + 2be: 0e 94 cf 03 call 0x79e ; 0x79e <tp_init> + 2c2: 00 e2 ldi r16, 0x20 ; 32 + 2c4: 20 e8 ldi r18, 0x80 ; 128 + 2c6: 40 e4 ldi r20, 0x40 ; 64 + 2c8: 60 e6 ldi r22, 0x60 ; 96 + 2ca: 76 e0 ldi r23, 0x06 ; 6 + 2cc: 80 eb ldi r24, 0xB0 ; 176 + 2ce: 99 e0 ldi r25, 0x09 ; 9 + 2d0: 0e 94 98 03 call 0x730 ; 0x730 <tp_new> + 2d4: 80 93 0a 20 sts 0x200A, r24 ; 0x80200a <tp4> + 2d8: 90 93 0b 20 sts 0x200B, r25 ; 0x80200b <tp4+0x1> + 2dc: 0e 94 cf 03 call 0x79e ; 0x79e <tp_init> + 2e0: e0 ea ldi r30, 0xA0 ; 160 + 2e2: f0 e0 ldi r31, 0x00 ; 0 + 2e4: 82 81 ldd r24, Z+2 ; 0x02 + 2e6: 87 60 ori r24, 0x07 ; 7 + 2e8: 82 83 std Z+2, r24 ; 0x02 + 2ea: 78 94 sei + 2ec: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp1> + 2f0: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp1+0x1> + 2f4: 0e 94 05 04 call 0x80a ; 0x80a <tp_statflash> + 2f8: 80 91 0c 20 lds r24, 0x200C ; 0x80200c <tp3> + 2fc: 90 91 0d 20 lds r25, 0x200D ; 0x80200d <tp3+0x1> + 300: 0e 94 05 04 call 0x80a ; 0x80a <tp_statflash> + 304: 2f e7 ldi r18, 0x7F ; 127 + 306: 8a e1 ldi r24, 0x1A ; 26 + 308: 96 e0 ldi r25, 0x06 ; 6 + 30a: 21 50 subi r18, 0x01 ; 1 + 30c: 80 40 sbci r24, 0x00 ; 0 + 30e: 90 40 sbci r25, 0x00 ; 0 + 310: e1 f7 brne .-8 ; 0x30a <main+0xbe> + 312: 00 c0 rjmp .+0 ; 0x314 <main+0xc8> + 314: 00 00 nop + 316: ea cf rjmp .-44 ; 0x2ec <main+0xa0> -00000258 <interrupts>: - 258: e0 ea ldi r30, 0xA0 ; 160 - 25a: f0 e0 ldi r31, 0x00 ; 0 - 25c: 82 81 ldd r24, Z+2 ; 0x02 - 25e: 87 60 ori r24, 0x07 ; 7 - 260: 82 83 std Z+2, r24 ; 0x02 - 262: 08 95 ret +00000318 <handoff>: + 318: cf 93 push r28 + 31a: df 93 push r29 + 31c: 1f 92 push r1 + 31e: cd b7 in r28, 0x3d ; 61 + 320: de b7 in r29, 0x3e ; 62 + 322: be 01 movw r22, r28 + 324: 6f 5f subi r22, 0xFF ; 255 + 326: 7f 4f sbci r23, 0xFF ; 255 + 328: 0e 94 37 04 call 0x86e ; 0x86e <tp_read> + 32c: 69 81 ldd r22, Y+1 ; 0x01 + 32e: 80 91 0a 20 lds r24, 0x200A ; 0x80200a <tp4> + 332: 90 91 0b 20 lds r25, 0x200B ; 0x80200b <tp4+0x1> + 336: 0e 94 76 04 call 0x8ec ; 0x8ec <tp_write> + 33a: 2f e7 ldi r18, 0x7F ; 127 + 33c: 8a e1 ldi r24, 0x1A ; 26 + 33e: 96 e0 ldi r25, 0x06 ; 6 + 340: 21 50 subi r18, 0x01 ; 1 + 342: 80 40 sbci r24, 0x00 ; 0 + 344: 90 40 sbci r25, 0x00 ; 0 + 346: e1 f7 brne .-8 ; 0x340 <handoff+0x28> + 348: 00 c0 rjmp .+0 ; 0x34a <handoff+0x32> + 34a: 00 00 nop + 34c: 0f 90 pop r0 + 34e: df 91 pop r29 + 350: cf 91 pop r28 + 352: 08 95 ret -00000264 <main>: - 264: e0 e5 ldi r30, 0x50 ; 80 - 266: f0 e0 ldi r31, 0x00 ; 0 - 268: 88 e1 ldi r24, 0x18 ; 24 - 26a: 85 83 std Z+5, r24 ; 0x05 - 26c: 80 e1 ldi r24, 0x10 ; 16 - 26e: 80 83 st Z, r24 - 270: 81 81 ldd r24, Z+1 ; 0x01 - 272: 84 ff sbrs r24, 4 - 274: fd cf rjmp .-6 ; 0x270 <main+0xc> - 276: 88 ed ldi r24, 0xD8 ; 216 - 278: 84 bf out 0x34, r24 ; 52 - 27a: 84 e0 ldi r24, 0x04 ; 4 - 27c: 80 93 40 00 sts 0x0040, r24 ; 0x800040 <__TEXT_REGION_LENGTH__+0x700040> - 280: 00 e2 ldi r16, 0x20 ; 32 - 282: 20 e8 ldi r18, 0x80 ; 128 - 284: 40 e4 ldi r20, 0x40 ; 64 - 286: 60 e4 ldi r22, 0x40 ; 64 - 288: 76 e0 ldi r23, 0x06 ; 6 - 28a: 80 eb ldi r24, 0xB0 ; 176 - 28c: 98 e0 ldi r25, 0x08 ; 8 - 28e: 0e 94 ca 02 call 0x594 ; 0x594 <tp_new> - 292: 80 93 06 20 sts 0x2006, r24 ; 0x802006 <__data_end> - 296: 90 93 07 20 sts 0x2007, r25 ; 0x802007 <__data_end+0x1> - 29a: 0e 94 00 03 call 0x600 ; 0x600 <tp_init> - 29e: 00 e1 ldi r16, 0x10 ; 16 - 2a0: 28 e0 ldi r18, 0x08 ; 8 - 2a2: 44 e0 ldi r20, 0x04 ; 4 - 2a4: 60 e6 ldi r22, 0x60 ; 96 - 2a6: 76 e0 ldi r23, 0x06 ; 6 - 2a8: 80 ea ldi r24, 0xA0 ; 160 - 2aa: 99 e0 ldi r25, 0x09 ; 9 - 2ac: 0e 94 ca 02 call 0x594 ; 0x594 <tp_new> - 2b0: 80 93 08 20 sts 0x2008, r24 ; 0x802008 <tp3> - 2b4: 90 93 09 20 sts 0x2009, r25 ; 0x802009 <tp3+0x1> - 2b8: 0e 94 00 03 call 0x600 ; 0x600 <tp_init> - 2bc: 80 e1 ldi r24, 0x10 ; 16 - 2be: 80 93 41 06 sts 0x0641, r24 ; 0x800641 <__TEXT_REGION_LENGTH__+0x700641> - 2c2: e0 ea ldi r30, 0xA0 ; 160 - 2c4: f0 e0 ldi r31, 0x00 ; 0 - 2c6: 82 81 ldd r24, Z+2 ; 0x02 - 2c8: 87 60 ori r24, 0x07 ; 7 - 2ca: 82 83 std Z+2, r24 ; 0x02 - 2cc: 78 94 sei - 2ce: 00 e4 ldi r16, 0x40 ; 64 - 2d0: 16 e0 ldi r17, 0x06 ; 6 - 2d2: c0 e1 ldi r28, 0x10 ; 16 - 2d4: 0e 94 26 01 call 0x24c ; 0x24c <nointerrupts> - 2d8: e0 91 06 20 lds r30, 0x2006 ; 0x802006 <__data_end> - 2dc: f0 91 07 20 lds r31, 0x2007 ; 0x802007 <__data_end+0x1> - 2e0: 85 85 ldd r24, Z+13 ; 0x0d - 2e2: 88 23 and r24, r24 - 2e4: 51 f0 breq .+20 ; 0x2fa <main+0x96> - 2e6: cf 01 movw r24, r30 - 2e8: 0e 94 45 03 call 0x68a ; 0x68a <tp_read> - 2ec: 68 2f mov r22, r24 - 2ee: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp3> - 2f2: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp3+0x1> - 2f6: 0e 94 9a 03 call 0x734 ; 0x734 <tp_write> - 2fa: f8 01 movw r30, r16 - 2fc: c7 83 std Z+7, r28 ; 0x07 - 2fe: 0e 94 2c 01 call 0x258 ; 0x258 <interrupts> - 302: e8 cf rjmp .-48 ; 0x2d4 <main+0x70> +00000354 <__vector_25>: + 354: 1f 92 push r1 + 356: 0f 92 push r0 + 358: 0f b6 in r0, 0x3f ; 63 + 35a: 0f 92 push r0 + 35c: 11 24 eor r1, r1 + 35e: 08 b6 in r0, 0x38 ; 56 + 360: 0f 92 push r0 + 362: 18 be out 0x38, r1 ; 56 + 364: 09 b6 in r0, 0x39 ; 57 + 366: 0f 92 push r0 + 368: 19 be out 0x39, r1 ; 57 + 36a: 0b b6 in r0, 0x3b ; 59 + 36c: 0f 92 push r0 + 36e: 1b be out 0x3b, r1 ; 59 + 370: 2f 93 push r18 + 372: 3f 93 push r19 + 374: 4f 93 push r20 + 376: 5f 93 push r21 + 378: 6f 93 push r22 + 37a: 7f 93 push r23 + 37c: 8f 93 push r24 + 37e: 9f 93 push r25 + 380: af 93 push r26 + 382: bf 93 push r27 + 384: ef 93 push r30 + 386: ff 93 push r31 + 388: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp1> + 38c: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp1+0x1> + 390: 0e 94 0e 04 call 0x81c ; 0x81c <tp_rxISR> + 394: ff 91 pop r31 + 396: ef 91 pop r30 + 398: bf 91 pop r27 + 39a: af 91 pop r26 + 39c: 9f 91 pop r25 + 39e: 8f 91 pop r24 + 3a0: 7f 91 pop r23 + 3a2: 6f 91 pop r22 + 3a4: 5f 91 pop r21 + 3a6: 4f 91 pop r20 + 3a8: 3f 91 pop r19 + 3aa: 2f 91 pop r18 + 3ac: 0f 90 pop r0 + 3ae: 0b be out 0x3b, r0 ; 59 + 3b0: 0f 90 pop r0 + 3b2: 09 be out 0x39, r0 ; 57 + 3b4: 0f 90 pop r0 + 3b6: 08 be out 0x38, r0 ; 56 + 3b8: 0f 90 pop r0 + 3ba: 0f be out 0x3f, r0 ; 63 + 3bc: 0f 90 pop r0 + 3be: 1f 90 pop r1 + 3c0: 18 95 reti -00000304 <__vector_28>: +000003c2 <__vector_26>: + 3c2: 1f 92 push r1 + 3c4: 0f 92 push r0 + 3c6: 0f b6 in r0, 0x3f ; 63 + 3c8: 0f 92 push r0 + 3ca: 11 24 eor r1, r1 + 3cc: 08 b6 in r0, 0x38 ; 56 + 3ce: 0f 92 push r0 + 3d0: 18 be out 0x38, r1 ; 56 + 3d2: 09 b6 in r0, 0x39 ; 57 + 3d4: 0f 92 push r0 + 3d6: 19 be out 0x39, r1 ; 57 + 3d8: 0b b6 in r0, 0x3b ; 59 + 3da: 0f 92 push r0 + 3dc: 1b be out 0x3b, r1 ; 59 + 3de: 2f 93 push r18 + 3e0: 3f 93 push r19 + 3e2: 4f 93 push r20 + 3e4: 5f 93 push r21 + 3e6: 6f 93 push r22 + 3e8: 7f 93 push r23 + 3ea: 8f 93 push r24 + 3ec: 9f 93 push r25 + 3ee: af 93 push r26 + 3f0: bf 93 push r27 + 3f2: ef 93 push r30 + 3f4: ff 93 push r31 + 3f6: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp1> + 3fa: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp1+0x1> + 3fe: 0e 94 56 04 call 0x8ac ; 0x8ac <tp_txISR> + 402: ff 91 pop r31 + 404: ef 91 pop r30 + 406: bf 91 pop r27 + 408: af 91 pop r26 + 40a: 9f 91 pop r25 + 40c: 8f 91 pop r24 + 40e: 7f 91 pop r23 + 410: 6f 91 pop r22 + 412: 5f 91 pop r21 + 414: 4f 91 pop r20 + 416: 3f 91 pop r19 + 418: 2f 91 pop r18 + 41a: 0f 90 pop r0 + 41c: 0b be out 0x3b, r0 ; 59 + 41e: 0f 90 pop r0 + 420: 09 be out 0x39, r0 ; 57 + 422: 0f 90 pop r0 + 424: 08 be out 0x38, r0 ; 56 + 426: 0f 90 pop r0 + 428: 0f be out 0x3f, r0 ; 63 + 42a: 0f 90 pop r0 + 42c: 1f 90 pop r1 + 42e: 18 95 reti -// hookup ISRs to port-abstracted interrupt functions -ISR(USARTC1_RXC_vect){ - 304: 1f 92 push r1 - 306: 0f 92 push r0 - 308: 0f b6 in r0, 0x3f ; 63 - 30a: 0f 92 push r0 - 30c: 11 24 eor r1, r1 - 30e: 08 b6 in r0, 0x38 ; 56 - 310: 0f 92 push r0 - 312: 18 be out 0x38, r1 ; 56 - 314: 09 b6 in r0, 0x39 ; 57 - 316: 0f 92 push r0 - 318: 19 be out 0x39, r1 ; 57 - 31a: 0b b6 in r0, 0x3b ; 59 - 31c: 0f 92 push r0 - 31e: 1b be out 0x3b, r1 ; 59 - 320: 2f 93 push r18 - 322: 3f 93 push r19 - 324: 4f 93 push r20 - 326: 5f 93 push r21 - 328: 6f 93 push r22 - 32a: 7f 93 push r23 - 32c: 8f 93 push r24 - 32e: 9f 93 push r25 - 330: af 93 push r26 - 332: bf 93 push r27 - 334: ef 93 push r30 - 336: ff 93 push r31 - tp_rxISR(tp2); - 338: 80 91 06 20 lds r24, 0x2006 ; 0x802006 <__data_end> - 33c: 90 91 07 20 lds r25, 0x2007 ; 0x802007 <__data_end+0x1> - 340: 0e 94 36 03 call 0x66c ; 0x66c <tp_rxISR> -} - 344: ff 91 pop r31 - 346: ef 91 pop r30 - 348: bf 91 pop r27 - 34a: af 91 pop r26 - 34c: 9f 91 pop r25 - 34e: 8f 91 pop r24 - 350: 7f 91 pop r23 - 352: 6f 91 pop r22 - 354: 5f 91 pop r21 - 356: 4f 91 pop r20 - 358: 3f 91 pop r19 - 35a: 2f 91 pop r18 - 35c: 0f 90 pop r0 - 35e: 0b be out 0x3b, r0 ; 59 - 360: 0f 90 pop r0 - 362: 09 be out 0x39, r0 ; 57 - 364: 0f 90 pop r0 - 366: 08 be out 0x38, r0 ; 56 - 368: 0f 90 pop r0 - 36a: 0f be out 0x3f, r0 ; 63 - 36c: 0f 90 pop r0 - 36e: 1f 90 pop r1 - 370: 18 95 reti +00000430 <__vector_28>: + 430: 1f 92 push r1 + 432: 0f 92 push r0 + 434: 0f b6 in r0, 0x3f ; 63 + 436: 0f 92 push r0 + 438: 11 24 eor r1, r1 + 43a: 08 b6 in r0, 0x38 ; 56 + 43c: 0f 92 push r0 + 43e: 18 be out 0x38, r1 ; 56 + 440: 09 b6 in r0, 0x39 ; 57 + 442: 0f 92 push r0 + 444: 19 be out 0x39, r1 ; 57 + 446: 0b b6 in r0, 0x3b ; 59 + 448: 0f 92 push r0 + 44a: 1b be out 0x3b, r1 ; 59 + 44c: 2f 93 push r18 + 44e: 3f 93 push r19 + 450: 4f 93 push r20 + 452: 5f 93 push r21 + 454: 6f 93 push r22 + 456: 7f 93 push r23 + 458: 8f 93 push r24 + 45a: 9f 93 push r25 + 45c: af 93 push r26 + 45e: bf 93 push r27 + 460: ef 93 push r30 + 462: ff 93 push r31 + 464: 80 91 06 20 lds r24, 0x2006 ; 0x802006 <__data_end> + 468: 90 91 07 20 lds r25, 0x2007 ; 0x802007 <__data_end+0x1> + 46c: 0e 94 0e 04 call 0x81c ; 0x81c <tp_rxISR> + 470: ff 91 pop r31 + 472: ef 91 pop r30 + 474: bf 91 pop r27 + 476: af 91 pop r26 + 478: 9f 91 pop r25 + 47a: 8f 91 pop r24 + 47c: 7f 91 pop r23 + 47e: 6f 91 pop r22 + 480: 5f 91 pop r21 + 482: 4f 91 pop r20 + 484: 3f 91 pop r19 + 486: 2f 91 pop r18 + 488: 0f 90 pop r0 + 48a: 0b be out 0x3b, r0 ; 59 + 48c: 0f 90 pop r0 + 48e: 09 be out 0x39, r0 ; 57 + 490: 0f 90 pop r0 + 492: 08 be out 0x38, r0 ; 56 + 494: 0f 90 pop r0 + 496: 0f be out 0x3f, r0 ; 63 + 498: 0f 90 pop r0 + 49a: 1f 90 pop r1 + 49c: 18 95 reti -00000372 <__vector_29>: +0000049e <__vector_29>: + 49e: 1f 92 push r1 + 4a0: 0f 92 push r0 + 4a2: 0f b6 in r0, 0x3f ; 63 + 4a4: 0f 92 push r0 + 4a6: 11 24 eor r1, r1 + 4a8: 08 b6 in r0, 0x38 ; 56 + 4aa: 0f 92 push r0 + 4ac: 18 be out 0x38, r1 ; 56 + 4ae: 09 b6 in r0, 0x39 ; 57 + 4b0: 0f 92 push r0 + 4b2: 19 be out 0x39, r1 ; 57 + 4b4: 0b b6 in r0, 0x3b ; 59 + 4b6: 0f 92 push r0 + 4b8: 1b be out 0x3b, r1 ; 59 + 4ba: 2f 93 push r18 + 4bc: 3f 93 push r19 + 4be: 4f 93 push r20 + 4c0: 5f 93 push r21 + 4c2: 6f 93 push r22 + 4c4: 7f 93 push r23 + 4c6: 8f 93 push r24 + 4c8: 9f 93 push r25 + 4ca: af 93 push r26 + 4cc: bf 93 push r27 + 4ce: ef 93 push r30 + 4d0: ff 93 push r31 + 4d2: 80 91 06 20 lds r24, 0x2006 ; 0x802006 <__data_end> + 4d6: 90 91 07 20 lds r25, 0x2007 ; 0x802007 <__data_end+0x1> + 4da: 0e 94 56 04 call 0x8ac ; 0x8ac <tp_txISR> + 4de: ff 91 pop r31 + 4e0: ef 91 pop r30 + 4e2: bf 91 pop r27 + 4e4: af 91 pop r26 + 4e6: 9f 91 pop r25 + 4e8: 8f 91 pop r24 + 4ea: 7f 91 pop r23 + 4ec: 6f 91 pop r22 + 4ee: 5f 91 pop r21 + 4f0: 4f 91 pop r20 + 4f2: 3f 91 pop r19 + 4f4: 2f 91 pop r18 + 4f6: 0f 90 pop r0 + 4f8: 0b be out 0x3b, r0 ; 59 + 4fa: 0f 90 pop r0 + 4fc: 09 be out 0x39, r0 ; 57 + 4fe: 0f 90 pop r0 + 500: 08 be out 0x38, r0 ; 56 + 502: 0f 90 pop r0 + 504: 0f be out 0x3f, r0 ; 63 + 506: 0f 90 pop r0 + 508: 1f 90 pop r1 + 50a: 18 95 reti -ISR(USARTC1_DRE_vect){ - 372: 1f 92 push r1 - 374: 0f 92 push r0 - 376: 0f b6 in r0, 0x3f ; 63 - 378: 0f 92 push r0 - 37a: 11 24 eor r1, r1 - 37c: 08 b6 in r0, 0x38 ; 56 - 37e: 0f 92 push r0 - 380: 18 be out 0x38, r1 ; 56 - 382: 09 b6 in r0, 0x39 ; 57 - 384: 0f 92 push r0 - 386: 19 be out 0x39, r1 ; 57 - 388: 0b b6 in r0, 0x3b ; 59 - 38a: 0f 92 push r0 - 38c: 1b be out 0x3b, r1 ; 59 - 38e: 2f 93 push r18 - 390: 3f 93 push r19 - 392: 4f 93 push r20 - 394: 5f 93 push r21 - 396: 6f 93 push r22 - 398: 7f 93 push r23 - 39a: 8f 93 push r24 - 39c: 9f 93 push r25 - 39e: af 93 push r26 - 3a0: bf 93 push r27 - 3a2: ef 93 push r30 - 3a4: ff 93 push r31 - tp_txISR(tp2); - 3a6: 80 91 06 20 lds r24, 0x2006 ; 0x802006 <__data_end> - 3aa: 90 91 07 20 lds r25, 0x2007 ; 0x802007 <__data_end+0x1> - 3ae: 0e 94 79 03 call 0x6f2 ; 0x6f2 <tp_txISR> -} - 3b2: ff 91 pop r31 - 3b4: ef 91 pop r30 - 3b6: bf 91 pop r27 - 3b8: af 91 pop r26 - 3ba: 9f 91 pop r25 - 3bc: 8f 91 pop r24 - 3be: 7f 91 pop r23 - 3c0: 6f 91 pop r22 - 3c2: 5f 91 pop r21 - 3c4: 4f 91 pop r20 - 3c6: 3f 91 pop r19 - 3c8: 2f 91 pop r18 - 3ca: 0f 90 pop r0 - 3cc: 0b be out 0x3b, r0 ; 59 - 3ce: 0f 90 pop r0 - 3d0: 09 be out 0x39, r0 ; 57 - 3d2: 0f 90 pop r0 - 3d4: 08 be out 0x38, r0 ; 56 - 3d6: 0f 90 pop r0 - 3d8: 0f be out 0x3f, r0 ; 63 - 3da: 0f 90 pop r0 - 3dc: 1f 90 pop r1 - 3de: 18 95 reti +0000050c <__vector_88>: + 50c: 1f 92 push r1 + 50e: 0f 92 push r0 + 510: 0f b6 in r0, 0x3f ; 63 + 512: 0f 92 push r0 + 514: 11 24 eor r1, r1 + 516: 08 b6 in r0, 0x38 ; 56 + 518: 0f 92 push r0 + 51a: 18 be out 0x38, r1 ; 56 + 51c: 09 b6 in r0, 0x39 ; 57 + 51e: 0f 92 push r0 + 520: 19 be out 0x39, r1 ; 57 + 522: 0b b6 in r0, 0x3b ; 59 + 524: 0f 92 push r0 + 526: 1b be out 0x3b, r1 ; 59 + 528: 2f 93 push r18 + 52a: 3f 93 push r19 + 52c: 4f 93 push r20 + 52e: 5f 93 push r21 + 530: 6f 93 push r22 + 532: 7f 93 push r23 + 534: 8f 93 push r24 + 536: 9f 93 push r25 + 538: af 93 push r26 + 53a: bf 93 push r27 + 53c: ef 93 push r30 + 53e: ff 93 push r31 + 540: 80 91 0c 20 lds r24, 0x200C ; 0x80200c <tp3> + 544: 90 91 0d 20 lds r25, 0x200D ; 0x80200d <tp3+0x1> + 548: 0e 94 0e 04 call 0x81c ; 0x81c <tp_rxISR> + 54c: ff 91 pop r31 + 54e: ef 91 pop r30 + 550: bf 91 pop r27 + 552: af 91 pop r26 + 554: 9f 91 pop r25 + 556: 8f 91 pop r24 + 558: 7f 91 pop r23 + 55a: 6f 91 pop r22 + 55c: 5f 91 pop r21 + 55e: 4f 91 pop r20 + 560: 3f 91 pop r19 + 562: 2f 91 pop r18 + 564: 0f 90 pop r0 + 566: 0b be out 0x3b, r0 ; 59 + 568: 0f 90 pop r0 + 56a: 09 be out 0x39, r0 ; 57 + 56c: 0f 90 pop r0 + 56e: 08 be out 0x38, r0 ; 56 + 570: 0f 90 pop r0 + 572: 0f be out 0x3f, r0 ; 63 + 574: 0f 90 pop r0 + 576: 1f 90 pop r1 + 578: 18 95 reti -000003e0 <__vector_88>: +0000057a <__vector_89>: + 57a: 1f 92 push r1 + 57c: 0f 92 push r0 + 57e: 0f b6 in r0, 0x3f ; 63 + 580: 0f 92 push r0 + 582: 11 24 eor r1, r1 + 584: 08 b6 in r0, 0x38 ; 56 + 586: 0f 92 push r0 + 588: 18 be out 0x38, r1 ; 56 + 58a: 09 b6 in r0, 0x39 ; 57 + 58c: 0f 92 push r0 + 58e: 19 be out 0x39, r1 ; 57 + 590: 0b b6 in r0, 0x3b ; 59 + 592: 0f 92 push r0 + 594: 1b be out 0x3b, r1 ; 59 + 596: 2f 93 push r18 + 598: 3f 93 push r19 + 59a: 4f 93 push r20 + 59c: 5f 93 push r21 + 59e: 6f 93 push r22 + 5a0: 7f 93 push r23 + 5a2: 8f 93 push r24 + 5a4: 9f 93 push r25 + 5a6: af 93 push r26 + 5a8: bf 93 push r27 + 5aa: ef 93 push r30 + 5ac: ff 93 push r31 + 5ae: 80 91 0c 20 lds r24, 0x200C ; 0x80200c <tp3> + 5b2: 90 91 0d 20 lds r25, 0x200D ; 0x80200d <tp3+0x1> + 5b6: 0e 94 56 04 call 0x8ac ; 0x8ac <tp_txISR> + 5ba: ff 91 pop r31 + 5bc: ef 91 pop r30 + 5be: bf 91 pop r27 + 5c0: af 91 pop r26 + 5c2: 9f 91 pop r25 + 5c4: 8f 91 pop r24 + 5c6: 7f 91 pop r23 + 5c8: 6f 91 pop r22 + 5ca: 5f 91 pop r21 + 5cc: 4f 91 pop r20 + 5ce: 3f 91 pop r19 + 5d0: 2f 91 pop r18 + 5d2: 0f 90 pop r0 + 5d4: 0b be out 0x3b, r0 ; 59 + 5d6: 0f 90 pop r0 + 5d8: 09 be out 0x39, r0 ; 57 + 5da: 0f 90 pop r0 + 5dc: 08 be out 0x38, r0 ; 56 + 5de: 0f 90 pop r0 + 5e0: 0f be out 0x3f, r0 ; 63 + 5e2: 0f 90 pop r0 + 5e4: 1f 90 pop r1 + 5e6: 18 95 reti -ISR(USARTD0_RXC_vect){ - 3e0: 1f 92 push r1 - 3e2: 0f 92 push r0 - 3e4: 0f b6 in r0, 0x3f ; 63 - 3e6: 0f 92 push r0 - 3e8: 11 24 eor r1, r1 - 3ea: 08 b6 in r0, 0x38 ; 56 - 3ec: 0f 92 push r0 - 3ee: 18 be out 0x38, r1 ; 56 - 3f0: 09 b6 in r0, 0x39 ; 57 - 3f2: 0f 92 push r0 - 3f4: 19 be out 0x39, r1 ; 57 - 3f6: 0b b6 in r0, 0x3b ; 59 - 3f8: 0f 92 push r0 - 3fa: 1b be out 0x3b, r1 ; 59 - 3fc: 2f 93 push r18 - 3fe: 3f 93 push r19 - 400: 4f 93 push r20 - 402: 5f 93 push r21 - 404: 6f 93 push r22 - 406: 7f 93 push r23 - 408: 8f 93 push r24 - 40a: 9f 93 push r25 - 40c: af 93 push r26 - 40e: bf 93 push r27 - 410: ef 93 push r30 - 412: ff 93 push r31 - tp_rxISR(tp3); - 414: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp3> - 418: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp3+0x1> - 41c: 0e 94 36 03 call 0x66c ; 0x66c <tp_rxISR> -} - 420: ff 91 pop r31 - 422: ef 91 pop r30 - 424: bf 91 pop r27 - 426: af 91 pop r26 - 428: 9f 91 pop r25 - 42a: 8f 91 pop r24 - 42c: 7f 91 pop r23 - 42e: 6f 91 pop r22 - 430: 5f 91 pop r21 - 432: 4f 91 pop r20 - 434: 3f 91 pop r19 - 436: 2f 91 pop r18 - 438: 0f 90 pop r0 - 43a: 0b be out 0x3b, r0 ; 59 - 43c: 0f 90 pop r0 - 43e: 09 be out 0x39, r0 ; 57 - 440: 0f 90 pop r0 - 442: 08 be out 0x38, r0 ; 56 - 444: 0f 90 pop r0 - 446: 0f be out 0x3f, r0 ; 63 - 448: 0f 90 pop r0 - 44a: 1f 90 pop r1 - 44c: 18 95 reti - -0000044e <__vector_89>: +000005e8 <__vector_92>: -ISR(USARTD0_DRE_vect){ - 44e: 1f 92 push r1 - 450: 0f 92 push r0 - 452: 0f b6 in r0, 0x3f ; 63 - 454: 0f 92 push r0 - 456: 11 24 eor r1, r1 - 458: 08 b6 in r0, 0x38 ; 56 - 45a: 0f 92 push r0 - 45c: 18 be out 0x38, r1 ; 56 - 45e: 09 b6 in r0, 0x39 ; 57 - 460: 0f 92 push r0 - 462: 19 be out 0x39, r1 ; 57 - 464: 0b b6 in r0, 0x3b ; 59 - 466: 0f 92 push r0 - 468: 1b be out 0x3b, r1 ; 59 - 46a: 2f 93 push r18 - 46c: 3f 93 push r19 - 46e: 4f 93 push r20 - 470: 5f 93 push r21 - 472: 6f 93 push r22 - 474: 7f 93 push r23 - 476: 8f 93 push r24 - 478: 9f 93 push r25 - 47a: af 93 push r26 - 47c: bf 93 push r27 - 47e: ef 93 push r30 - 480: ff 93 push r31 - tp_txISR(tp3); - 482: 80 91 08 20 lds r24, 0x2008 ; 0x802008 <tp3> - 486: 90 91 09 20 lds r25, 0x2009 ; 0x802009 <tp3+0x1> - 48a: 0e 94 79 03 call 0x6f2 ; 0x6f2 <tp_txISR> - 48e: ff 91 pop r31 - 490: ef 91 pop r30 - 492: bf 91 pop r27 - 494: af 91 pop r26 - 496: 9f 91 pop r25 - 498: 8f 91 pop r24 - 49a: 7f 91 pop r23 - 49c: 6f 91 pop r22 - 49e: 5f 91 pop r21 - 4a0: 4f 91 pop r20 - 4a2: 3f 91 pop r19 - 4a4: 2f 91 pop r18 - 4a6: 0f 90 pop r0 - 4a8: 0b be out 0x3b, r0 ; 59 - 4aa: 0f 90 pop r0 - 4ac: 09 be out 0x39, r0 ; 57 - 4ae: 0f 90 pop r0 - 4b0: 08 be out 0x38, r0 ; 56 - 4b2: 0f 90 pop r0 - 4b4: 0f be out 0x3f, r0 ; 63 - 4b6: 0f 90 pop r0 - 4b8: 1f 90 pop r1 - 4ba: 18 95 reti +ISR(USARTD1_DRE_vect){ + 5e8: 1f 92 push r1 + 5ea: 0f 92 push r0 + 5ec: 0f b6 in r0, 0x3f ; 63 + 5ee: 0f 92 push r0 + 5f0: 11 24 eor r1, r1 + 5f2: 08 b6 in r0, 0x38 ; 56 + 5f4: 0f 92 push r0 + 5f6: 18 be out 0x38, r1 ; 56 + 5f8: 09 b6 in r0, 0x39 ; 57 + 5fa: 0f 92 push r0 + 5fc: 19 be out 0x39, r1 ; 57 + 5fe: 0b b6 in r0, 0x3b ; 59 + 600: 0f 92 push r0 + 602: 1b be out 0x3b, r1 ; 59 + 604: 2f 93 push r18 + 606: 3f 93 push r19 + 608: 4f 93 push r20 + 60a: 5f 93 push r21 + 60c: 6f 93 push r22 + 60e: 7f 93 push r23 + 610: 8f 93 push r24 + 612: 9f 93 push r25 + 614: af 93 push r26 + 616: bf 93 push r27 + 618: ef 93 push r30 + 61a: ff 93 push r31 + tp_txISR(tp4); + 61c: 80 91 0a 20 lds r24, 0x200A ; 0x80200a <tp4> + 620: 90 91 0b 20 lds r25, 0x200B ; 0x80200b <tp4+0x1> + 624: 0e 94 56 04 call 0x8ac ; 0x8ac <tp_txISR> + 628: ff 91 pop r31 + 62a: ef 91 pop r30 + 62c: bf 91 pop r27 + 62e: af 91 pop r26 + 630: 9f 91 pop r25 + 632: 8f 91 pop r24 + 634: 7f 91 pop r23 + 636: 6f 91 pop r22 + 638: 5f 91 pop r21 + 63a: 4f 91 pop r20 + 63c: 3f 91 pop r19 + 63e: 2f 91 pop r18 + 640: 0f 90 pop r0 + 642: 0b be out 0x3b, r0 ; 59 + 644: 0f 90 pop r0 + 646: 09 be out 0x39, r0 ; 57 + 648: 0f 90 pop r0 + 64a: 08 be out 0x38, r0 ; 56 + 64c: 0f 90 pop r0 + 64e: 0f be out 0x3f, r0 ; 63 + 650: 0f 90 pop r0 + 652: 1f 90 pop r1 + 654: 18 95 reti -000004bc <rb_new>: +00000656 <rb_new>: return rb; } void rb_reset(ringbuffer_t rb){ rb->head = 0; rb->tail = 0; - 4bc: cf 92 push r12 - 4be: df 92 push r13 - 4c0: ef 92 push r14 - 4c2: ff 92 push r15 - 4c4: cf 93 push r28 - 4c6: df 93 push r29 - 4c8: 6b 01 movw r12, r22 - 4ca: 7c 01 movw r14, r24 - 4cc: 88 e0 ldi r24, 0x08 ; 8 - 4ce: 90 e0 ldi r25, 0x00 ; 0 - 4d0: 0e 94 a8 03 call 0x750 ; 0x750 <malloc> - 4d4: ec 01 movw r28, r24 - 4d6: 89 2b or r24, r25 - 4d8: d1 f0 breq .+52 ; 0x50e <rb_new+0x52> - 4da: d7 01 movw r26, r14 - 4dc: c6 01 movw r24, r12 - 4de: 01 96 adiw r24, 0x01 ; 1 - 4e0: a1 1d adc r26, r1 - 4e2: b1 1d adc r27, r1 - 4e4: 8c 83 std Y+4, r24 ; 0x04 - 4e6: 9d 83 std Y+5, r25 ; 0x05 - 4e8: ae 83 std Y+6, r26 ; 0x06 - 4ea: bf 83 std Y+7, r27 ; 0x07 - 4ec: 0e 94 a8 03 call 0x750 ; 0x750 <malloc> - 4f0: 88 83 st Y, r24 - 4f2: 99 83 std Y+1, r25 ; 0x01 - 4f4: 89 2b or r24, r25 - 4f6: 29 f0 breq .+10 ; 0x502 <rb_new+0x46> - 4f8: 1a 82 std Y+2, r1 ; 0x02 - 4fa: 1b 82 std Y+3, r1 ; 0x03 - 4fc: 8c 2f mov r24, r28 - 4fe: 9d 2f mov r25, r29 - 500: 08 c0 rjmp .+16 ; 0x512 <rb_new+0x56> - 502: ce 01 movw r24, r28 - 504: 0e 94 40 04 call 0x880 ; 0x880 <free> - 508: 80 e0 ldi r24, 0x00 ; 0 - 50a: 90 e0 ldi r25, 0x00 ; 0 - 50c: 02 c0 rjmp .+4 ; 0x512 <rb_new+0x56> - 50e: 80 e0 ldi r24, 0x00 ; 0 - 510: 90 e0 ldi r25, 0x00 ; 0 - 512: df 91 pop r29 - 514: cf 91 pop r28 - 516: ff 90 pop r15 - 518: ef 90 pop r14 - 51a: df 90 pop r13 - 51c: cf 90 pop r12 - 51e: 08 95 ret + 656: cf 92 push r12 + 658: df 92 push r13 + 65a: ef 92 push r14 + 65c: ff 92 push r15 + 65e: cf 93 push r28 + 660: df 93 push r29 + 662: 6b 01 movw r12, r22 + 664: 7c 01 movw r14, r24 + 666: 88 e0 ldi r24, 0x08 ; 8 + 668: 90 e0 ldi r25, 0x00 ; 0 + 66a: 0e 94 84 04 call 0x908 ; 0x908 <malloc> + 66e: ec 01 movw r28, r24 + 670: 89 2b or r24, r25 + 672: d1 f0 breq .+52 ; 0x6a8 <rb_new+0x52> + 674: d7 01 movw r26, r14 + 676: c6 01 movw r24, r12 + 678: 01 96 adiw r24, 0x01 ; 1 + 67a: a1 1d adc r26, r1 + 67c: b1 1d adc r27, r1 + 67e: 8c 83 std Y+4, r24 ; 0x04 + 680: 9d 83 std Y+5, r25 ; 0x05 + 682: ae 83 std Y+6, r26 ; 0x06 + 684: bf 83 std Y+7, r27 ; 0x07 + 686: 0e 94 84 04 call 0x908 ; 0x908 <malloc> + 68a: 88 83 st Y, r24 + 68c: 99 83 std Y+1, r25 ; 0x01 + 68e: 89 2b or r24, r25 + 690: 29 f0 breq .+10 ; 0x69c <rb_new+0x46> + 692: 1a 82 std Y+2, r1 ; 0x02 + 694: 1b 82 std Y+3, r1 ; 0x03 + 696: 8c 2f mov r24, r28 + 698: 9d 2f mov r25, r29 + 69a: 08 c0 rjmp .+16 ; 0x6ac <rb_new+0x56> + 69c: ce 01 movw r24, r28 + 69e: 0e 94 1c 05 call 0xa38 ; 0xa38 <free> + 6a2: 80 e0 ldi r24, 0x00 ; 0 + 6a4: 90 e0 ldi r25, 0x00 ; 0 + 6a6: 02 c0 rjmp .+4 ; 0x6ac <rb_new+0x56> + 6a8: 80 e0 ldi r24, 0x00 ; 0 + 6aa: 90 e0 ldi r25, 0x00 ; 0 + 6ac: df 91 pop r29 + 6ae: cf 91 pop r28 + 6b0: ff 90 pop r15 + 6b2: ef 90 pop r14 + 6b4: df 90 pop r13 + 6b6: cf 90 pop r12 + 6b8: 08 95 ret -00000520 <rb_write>: +000006ba <rb_write>: } void rb_write(ringbuffer_t rb, uint8_t data){ - 520: fc 01 movw r30, r24 + 6ba: fc 01 movw r30, r24 // write to head rb->buf[rb->head] = data; - 522: 82 81 ldd r24, Z+2 ; 0x02 - 524: a0 81 ld r26, Z - 526: b1 81 ldd r27, Z+1 ; 0x01 - 528: a8 0f add r26, r24 - 52a: b1 1d adc r27, r1 - 52c: 6c 93 st X, r22 + 6bc: 82 81 ldd r24, Z+2 ; 0x02 + 6be: a0 81 ld r26, Z + 6c0: b1 81 ldd r27, Z+1 ; 0x01 + 6c2: a8 0f add r26, r24 + 6c4: b1 1d adc r27, r1 + 6c6: 6c 93 st X, r22 rb->head += 1; - 52e: 42 81 ldd r20, Z+2 ; 0x02 - 530: 4f 5f subi r20, 0xFF ; 255 - 532: 42 83 std Z+2, r20 ; 0x02 - if(rb->head >= rb->size - 1){ - 534: 50 e0 ldi r21, 0x00 ; 0 - 536: 60 e0 ldi r22, 0x00 ; 0 - 538: 70 e0 ldi r23, 0x00 ; 0 - 53a: 84 81 ldd r24, Z+4 ; 0x04 - 53c: 95 81 ldd r25, Z+5 ; 0x05 - 53e: a6 81 ldd r26, Z+6 ; 0x06 - 540: b7 81 ldd r27, Z+7 ; 0x07 - 542: 01 97 sbiw r24, 0x01 ; 1 - 544: a1 09 sbc r26, r1 - 546: b1 09 sbc r27, r1 - 548: 48 17 cp r20, r24 - 54a: 59 07 cpc r21, r25 - 54c: 6a 07 cpc r22, r26 - 54e: 7b 07 cpc r23, r27 - 550: 08 f0 brcs .+2 ; 0x554 <rb_write+0x34> + 6c8: 42 81 ldd r20, Z+2 ; 0x02 + 6ca: 4f 5f subi r20, 0xFF ; 255 + 6cc: 42 83 std Z+2, r20 ; 0x02 + if(rb->head >= rb->size){ + 6ce: 50 e0 ldi r21, 0x00 ; 0 + 6d0: 60 e0 ldi r22, 0x00 ; 0 + 6d2: 70 e0 ldi r23, 0x00 ; 0 + 6d4: 84 81 ldd r24, Z+4 ; 0x04 + 6d6: 95 81 ldd r25, Z+5 ; 0x05 + 6d8: a6 81 ldd r26, Z+6 ; 0x06 + 6da: b7 81 ldd r27, Z+7 ; 0x07 + 6dc: 48 17 cp r20, r24 + 6de: 59 07 cpc r21, r25 + 6e0: 6a 07 cpc r22, r26 + 6e2: 7b 07 cpc r23, r27 + 6e4: 08 f0 brcs .+2 ; 0x6e8 <rb_write+0x2e> rb->head = 0; - 552: 12 82 std Z+2, r1 ; 0x02 - 554: 08 95 ret + 6e6: 12 82 std Z+2, r1 ; 0x02 + 6e8: 08 95 ret -00000556 <rb_read>: +000006ea <rb_read>: } // increment head and check wrap - } uint8_t rb_read(ringbuffer_t rb){ - 556: 0f 93 push r16 - 558: 1f 93 push r17 - 55a: fc 01 movw r30, r24 + 6ea: 0f 93 push r16 + 6ec: 1f 93 push r17 + 6ee: fc 01 movw r30, r24 // pull data from tail uint8_t data = rb->buf[rb->tail]; - 55c: 43 81 ldd r20, Z+3 ; 0x03 - 55e: a0 81 ld r26, Z - 560: b1 81 ldd r27, Z+1 ; 0x01 - 562: a4 0f add r26, r20 - 564: b1 1d adc r27, r1 - 566: 8c 91 ld r24, X + 6f0: 43 81 ldd r20, Z+3 ; 0x03 + 6f2: a0 81 ld r26, Z + 6f4: b1 81 ldd r27, Z+1 ; 0x01 + 6f6: a4 0f add r26, r20 + 6f8: b1 1d adc r27, r1 + 6fa: 8c 91 ld r24, X // increment tail and check wrap rb->tail += 1; - 568: 4f 5f subi r20, 0xFF ; 255 - 56a: 43 83 std Z+3, r20 ; 0x03 - if(rb->tail >= rb->size -1){ - 56c: 50 e0 ldi r21, 0x00 ; 0 - 56e: 60 e0 ldi r22, 0x00 ; 0 - 570: 70 e0 ldi r23, 0x00 ; 0 - 572: 04 81 ldd r16, Z+4 ; 0x04 - 574: 15 81 ldd r17, Z+5 ; 0x05 - 576: 26 81 ldd r18, Z+6 ; 0x06 - 578: 37 81 ldd r19, Z+7 ; 0x07 - 57a: 01 50 subi r16, 0x01 ; 1 - 57c: 11 09 sbc r17, r1 - 57e: 21 09 sbc r18, r1 - 580: 31 09 sbc r19, r1 - 582: 40 17 cp r20, r16 - 584: 51 07 cpc r21, r17 - 586: 62 07 cpc r22, r18 - 588: 73 07 cpc r23, r19 - 58a: 08 f0 brcs .+2 ; 0x58e <rb_read+0x38> + 6fc: 4f 5f subi r20, 0xFF ; 255 + 6fe: 43 83 std Z+3, r20 ; 0x03 + if(rb->tail >= rb->size){ + 700: 50 e0 ldi r21, 0x00 ; 0 + 702: 60 e0 ldi r22, 0x00 ; 0 + 704: 70 e0 ldi r23, 0x00 ; 0 + 706: 04 81 ldd r16, Z+4 ; 0x04 + 708: 15 81 ldd r17, Z+5 ; 0x05 + 70a: 26 81 ldd r18, Z+6 ; 0x06 + 70c: 37 81 ldd r19, Z+7 ; 0x07 + 70e: 40 17 cp r20, r16 + 710: 51 07 cpc r21, r17 + 712: 62 07 cpc r22, r18 + 714: 73 07 cpc r23, r19 + 716: 08 f0 brcs .+2 ; 0x71a <rb_read+0x30> rb->tail = 0; - 58c: 13 82 std Z+3, r1 ; 0x03 + 718: 13 82 std Z+3, r1 ; 0x03 } return data; } - 58e: 1f 91 pop r17 - 590: 0f 91 pop r16 - 592: 08 95 ret + 71a: 1f 91 pop r17 + 71c: 0f 91 pop r16 + 71e: 08 95 ret -00000594 <tp_new>: +00000720 <rb_hasdata>: + +uint8_t rb_hasdata(ringbuffer_t rb){ + 720: fc 01 movw r30, r24 + 722: 81 e0 ldi r24, 0x01 ; 1 + 724: 23 81 ldd r18, Z+3 ; 0x03 + 726: 92 81 ldd r25, Z+2 ; 0x02 + 728: 29 13 cpse r18, r25 + 72a: 01 c0 rjmp .+2 ; 0x72e <rb_hasdata+0xe> + 72c: 80 e0 ldi r24, 0x00 ; 0 + if (rb->tail == rb->head){ + return 0; + } else { + return 1; } - return data; -} + 72e: 08 95 ret +00000730 <tp_new>: void tp_setRxStatus(tinyport_t tp, uint8_t state){ - tp->rxstate = state; - 594: af 92 push r10 - 596: bf 92 push r11 - 598: cf 92 push r12 - 59a: df 92 push r13 - 59c: ff 92 push r15 - 59e: 0f 93 push r16 - 5a0: 1f 93 push r17 - 5a2: cf 93 push r28 - 5a4: df 93 push r29 - 5a6: 5c 01 movw r10, r24 - 5a8: 6b 01 movw r12, r22 - 5aa: f4 2e mov r15, r20 - 5ac: 12 2f mov r17, r18 - 5ae: 8e e0 ldi r24, 0x0E ; 14 - 5b0: 90 e0 ldi r25, 0x00 ; 0 - 5b2: 0e 94 a8 03 call 0x750 ; 0x750 <malloc> - 5b6: ec 01 movw r28, r24 - 5b8: a8 82 st Y, r10 - 5ba: b9 82 std Y+1, r11 ; 0x01 - 5bc: ca 82 std Y+2, r12 ; 0x02 - 5be: db 82 std Y+3, r13 ; 0x03 - 5c0: fc 82 std Y+4, r15 ; 0x04 - 5c2: 1d 83 std Y+5, r17 ; 0x05 - 5c4: 0e 83 std Y+6, r16 ; 0x06 - 5c6: 60 e1 ldi r22, 0x10 ; 16 - 5c8: 70 e0 ldi r23, 0x00 ; 0 - 5ca: 80 e0 ldi r24, 0x00 ; 0 - 5cc: 90 e0 ldi r25, 0x00 ; 0 - 5ce: 0e 94 5e 02 call 0x4bc ; 0x4bc <rb_new> - 5d2: 8f 83 std Y+7, r24 ; 0x07 - 5d4: 98 87 std Y+8, r25 ; 0x08 - 5d6: 60 e1 ldi r22, 0x10 ; 16 - 5d8: 70 e0 ldi r23, 0x00 ; 0 - 5da: 80 e0 ldi r24, 0x00 ; 0 - 5dc: 90 e0 ldi r25, 0x00 ; 0 - 5de: 0e 94 5e 02 call 0x4bc ; 0x4bc <rb_new> - 5e2: 89 87 std Y+9, r24 ; 0x09 - 5e4: 9a 87 std Y+10, r25 ; 0x0a - 5e6: 1c 86 std Y+12, r1 ; 0x0c - 5e8: 1d 86 std Y+13, r1 ; 0x0d - 5ea: ce 01 movw r24, r28 - 5ec: df 91 pop r29 - 5ee: cf 91 pop r28 - 5f0: 1f 91 pop r17 - 5f2: 0f 91 pop r16 - 5f4: ff 90 pop r15 - 5f6: df 90 pop r13 - 5f8: cf 90 pop r12 - 5fa: bf 90 pop r11 - 5fc: af 90 pop r10 - 5fe: 08 95 ret + if(state == tp->rxstate){ + // nothing + // nothing changes? always listening + } else { + tp->rxstate = state; + 730: af 92 push r10 + 732: bf 92 push r11 + 734: cf 92 push r12 + 736: df 92 push r13 + 738: ff 92 push r15 + 73a: 0f 93 push r16 + 73c: 1f 93 push r17 + 73e: cf 93 push r28 + 740: df 93 push r29 + 742: 5c 01 movw r10, r24 + 744: 6b 01 movw r12, r22 + 746: f4 2e mov r15, r20 + 748: 12 2f mov r17, r18 + 74a: 8e e0 ldi r24, 0x0E ; 14 + 74c: 90 e0 ldi r25, 0x00 ; 0 + 74e: 0e 94 84 04 call 0x908 ; 0x908 <malloc> + 752: ec 01 movw r28, r24 + 754: a8 82 st Y, r10 + 756: b9 82 std Y+1, r11 ; 0x01 + 758: ca 82 std Y+2, r12 ; 0x02 + 75a: db 82 std Y+3, r13 ; 0x03 + 75c: fc 82 std Y+4, r15 ; 0x04 + 75e: 1d 83 std Y+5, r17 ; 0x05 + 760: 0e 83 std Y+6, r16 ; 0x06 + 762: 60 e1 ldi r22, 0x10 ; 16 + 764: 70 e0 ldi r23, 0x00 ; 0 + 766: 80 e0 ldi r24, 0x00 ; 0 + 768: 90 e0 ldi r25, 0x00 ; 0 + 76a: 0e 94 2b 03 call 0x656 ; 0x656 <rb_new> + 76e: 8f 83 std Y+7, r24 ; 0x07 + 770: 98 87 std Y+8, r25 ; 0x08 + 772: 60 e1 ldi r22, 0x10 ; 16 + 774: 70 e0 ldi r23, 0x00 ; 0 + 776: 80 e0 ldi r24, 0x00 ; 0 + 778: 90 e0 ldi r25, 0x00 ; 0 + 77a: 0e 94 2b 03 call 0x656 ; 0x656 <rb_new> + 77e: 89 87 std Y+9, r24 ; 0x09 + 780: 9a 87 std Y+10, r25 ; 0x0a + 782: 1b 86 std Y+11, r1 ; 0x0b + 784: 1c 86 std Y+12, r1 ; 0x0c + 786: 1d 86 std Y+13, r1 ; 0x0d + 788: ce 01 movw r24, r28 + 78a: df 91 pop r29 + 78c: cf 91 pop r28 + 78e: 1f 91 pop r17 + 790: 0f 91 pop r16 + 792: ff 90 pop r15 + 794: df 90 pop r13 + 796: cf 90 pop r12 + 798: bf 90 pop r11 + 79a: af 90 pop r10 + 79c: 08 95 ret -00000600 <tp_init>: - 600: fc 01 movw r30, r24 - 602: a0 81 ld r26, Z - 604: b1 81 ldd r27, Z+1 ; 0x01 - 606: 8b e9 ldi r24, 0x9B ; 155 - 608: 16 96 adiw r26, 0x06 ; 6 - 60a: 8c 93 st X, r24 - 60c: a0 81 ld r26, Z - 60e: b1 81 ldd r27, Z+1 ; 0x01 - 610: 17 96 adiw r26, 0x07 ; 7 - 612: 1c 92 st X, r1 - 614: a0 81 ld r26, Z - 616: b1 81 ldd r27, Z+1 ; 0x01 - 618: 13 96 adiw r26, 0x03 ; 3 - 61a: 8c 91 ld r24, X - 61c: 13 97 sbiw r26, 0x03 ; 3 - 61e: 80 61 ori r24, 0x10 ; 16 - 620: 13 96 adiw r26, 0x03 ; 3 - 622: 8c 93 st X, r24 - 624: a0 81 ld r26, Z - 626: b1 81 ldd r27, Z+1 ; 0x01 - 628: 88 e1 ldi r24, 0x18 ; 24 - 62a: 14 96 adiw r26, 0x04 ; 4 - 62c: 8c 93 st X, r24 - 62e: a0 81 ld r26, Z - 630: b1 81 ldd r27, Z+1 ; 0x01 - 632: 83 e0 ldi r24, 0x03 ; 3 - 634: 15 96 adiw r26, 0x05 ; 5 - 636: 8c 93 st X, r24 - 638: a2 81 ldd r26, Z+2 ; 0x02 - 63a: b3 81 ldd r27, Z+3 ; 0x03 - 63c: 85 81 ldd r24, Z+5 ; 0x05 - 63e: 15 96 adiw r26, 0x05 ; 5 - 640: 8c 93 st X, r24 - 642: a2 81 ldd r26, Z+2 ; 0x02 - 644: b3 81 ldd r27, Z+3 ; 0x03 - 646: 85 81 ldd r24, Z+5 ; 0x05 - 648: 11 96 adiw r26, 0x01 ; 1 - 64a: 8c 93 st X, r24 - 64c: a2 81 ldd r26, Z+2 ; 0x02 - 64e: b3 81 ldd r27, Z+3 ; 0x03 - 650: 84 81 ldd r24, Z+4 ; 0x04 - 652: 12 96 adiw r26, 0x02 ; 2 - 654: 8c 93 st X, r24 - 656: a2 81 ldd r26, Z+2 ; 0x02 - 658: b3 81 ldd r27, Z+3 ; 0x03 - 65a: 84 81 ldd r24, Z+4 ; 0x04 - 65c: 16 96 adiw r26, 0x06 ; 6 - 65e: 8c 93 st X, r24 - 660: a2 81 ldd r26, Z+2 ; 0x02 - 662: b3 81 ldd r27, Z+3 ; 0x03 - 664: 86 81 ldd r24, Z+6 ; 0x06 - 666: 11 96 adiw r26, 0x01 ; 1 - 668: 8c 93 st X, r24 - 66a: 08 95 ret +0000079e <tp_init>: + 79e: fc 01 movw r30, r24 + 7a0: a0 81 ld r26, Z + 7a2: b1 81 ldd r27, Z+1 ; 0x01 + 7a4: 8b e9 ldi r24, 0x9B ; 155 + 7a6: 16 96 adiw r26, 0x06 ; 6 + 7a8: 8c 93 st X, r24 + 7aa: a0 81 ld r26, Z + 7ac: b1 81 ldd r27, Z+1 ; 0x01 + 7ae: 17 96 adiw r26, 0x07 ; 7 + 7b0: 1c 92 st X, r1 + 7b2: a0 81 ld r26, Z + 7b4: b1 81 ldd r27, Z+1 ; 0x01 + 7b6: 13 96 adiw r26, 0x03 ; 3 + 7b8: 8c 91 ld r24, X + 7ba: 13 97 sbiw r26, 0x03 ; 3 + 7bc: 80 61 ori r24, 0x10 ; 16 + 7be: 13 96 adiw r26, 0x03 ; 3 + 7c0: 8c 93 st X, r24 + 7c2: a0 81 ld r26, Z + 7c4: b1 81 ldd r27, Z+1 ; 0x01 + 7c6: 88 e1 ldi r24, 0x18 ; 24 + 7c8: 14 96 adiw r26, 0x04 ; 4 + 7ca: 8c 93 st X, r24 + 7cc: a0 81 ld r26, Z + 7ce: b1 81 ldd r27, Z+1 ; 0x01 + 7d0: 83 e0 ldi r24, 0x03 ; 3 + 7d2: 15 96 adiw r26, 0x05 ; 5 + 7d4: 8c 93 st X, r24 + 7d6: a2 81 ldd r26, Z+2 ; 0x02 + 7d8: b3 81 ldd r27, Z+3 ; 0x03 + 7da: 85 81 ldd r24, Z+5 ; 0x05 + 7dc: 15 96 adiw r26, 0x05 ; 5 + 7de: 8c 93 st X, r24 + 7e0: a2 81 ldd r26, Z+2 ; 0x02 + 7e2: b3 81 ldd r27, Z+3 ; 0x03 + 7e4: 85 81 ldd r24, Z+5 ; 0x05 + 7e6: 11 96 adiw r26, 0x01 ; 1 + 7e8: 8c 93 st X, r24 + 7ea: a2 81 ldd r26, Z+2 ; 0x02 + 7ec: b3 81 ldd r27, Z+3 ; 0x03 + 7ee: 84 81 ldd r24, Z+4 ; 0x04 + 7f0: 12 96 adiw r26, 0x02 ; 2 + 7f2: 8c 93 st X, r24 + 7f4: a2 81 ldd r26, Z+2 ; 0x02 + 7f6: b3 81 ldd r27, Z+3 ; 0x03 + 7f8: 84 81 ldd r24, Z+4 ; 0x04 + 7fa: 16 96 adiw r26, 0x06 ; 6 + 7fc: 8c 93 st X, r24 + 7fe: a2 81 ldd r26, Z+2 ; 0x02 + 800: b3 81 ldd r27, Z+3 ; 0x03 + 802: 86 81 ldd r24, Z+6 ; 0x06 + 804: 11 96 adiw r26, 0x01 ; 1 + 806: 8c 93 st X, r24 + 808: 08 95 ret -0000066c <tp_rxISR>: - 66c: cf 93 push r28 - 66e: df 93 push r29 - 670: ec 01 movw r28, r24 - 672: e8 81 ld r30, Y - 674: f9 81 ldd r31, Y+1 ; 0x01 - 676: 60 81 ld r22, Z - 678: 8f 81 ldd r24, Y+7 ; 0x07 - 67a: 98 85 ldd r25, Y+8 ; 0x08 - 67c: 0e 94 90 02 call 0x520 ; 0x520 <rb_write> - 680: 81 e0 ldi r24, 0x01 ; 1 - 682: 8d 87 std Y+13, r24 ; 0x0d - 684: df 91 pop r29 - 686: cf 91 pop r28 - 688: 08 95 ret +0000080a <tp_statflash>: + 80a: dc 01 movw r26, r24 + 80c: 12 96 adiw r26, 0x02 ; 2 + 80e: ed 91 ld r30, X+ + 810: fc 91 ld r31, X + 812: 13 97 sbiw r26, 0x03 ; 3 + 814: 16 96 adiw r26, 0x06 ; 6 + 816: 8c 91 ld r24, X + 818: 87 83 std Z+7, r24 ; 0x07 + 81a: 08 95 ret -0000068a <tp_read>: - 68a: cf 93 push r28 - 68c: df 93 push r29 - 68e: ec 01 movw r28, r24 - 690: 8f 81 ldd r24, Y+7 ; 0x07 - 692: 98 85 ldd r25, Y+8 ; 0x08 - 694: 0e 94 ab 02 call 0x556 ; 0x556 <rb_read> - 698: ef 81 ldd r30, Y+7 ; 0x07 - 69a: f8 85 ldd r31, Y+8 ; 0x08 - 69c: 23 81 ldd r18, Z+3 ; 0x03 - 69e: 92 81 ldd r25, Z+2 ; 0x02 - 6a0: 29 13 cpse r18, r25 - 6a2: 02 c0 rjmp .+4 ; 0x6a8 <tp_read+0x1e> - 6a4: 1d 86 std Y+13, r1 ; 0x0d - 6a6: 02 c0 rjmp .+4 ; 0x6ac <tp_read+0x22> - 6a8: 91 e0 ldi r25, 0x01 ; 1 - 6aa: 9d 87 std Y+13, r25 ; 0x0d - 6ac: df 91 pop r29 - 6ae: cf 91 pop r28 - 6b0: 08 95 ret +0000081c <tp_rxISR>: + 81c: cf 93 push r28 + 81e: df 93 push r29 + 820: ec 01 movw r28, r24 + 822: ea 81 ldd r30, Y+2 ; 0x02 + 824: fb 81 ldd r31, Y+3 ; 0x03 + 826: 8e 81 ldd r24, Y+6 ; 0x06 + 828: 87 83 std Z+7, r24 ; 0x07 + 82a: e8 81 ld r30, Y + 82c: f9 81 ldd r31, Y+1 ; 0x01 + 82e: 90 81 ld r25, Z + 830: 8d 85 ldd r24, Y+13 ; 0x0d + 832: 88 23 and r24, r24 + 834: 19 f0 breq .+6 ; 0x83c <tp_rxISR+0x20> + 836: 81 30 cpi r24, 0x01 ; 1 + 838: 31 f0 breq .+12 ; 0x846 <tp_rxISR+0x2a> + 83a: 11 c0 rjmp .+34 ; 0x85e <tp_rxISR+0x42> + 83c: 9e 37 cpi r25, 0x7E ; 126 + 83e: 79 f4 brne .+30 ; 0x85e <tp_rxISR+0x42> + 840: 81 e0 ldi r24, 0x01 ; 1 + 842: 8d 87 std Y+13, r24 ; 0x0d + 844: 0c c0 rjmp .+24 ; 0x85e <tp_rxISR+0x42> + 846: 9e 37 cpi r25, 0x7E ; 126 + 848: 29 f4 brne .+10 ; 0x854 <tp_rxISR+0x38> + 84a: 1d 86 std Y+13, r1 ; 0x0d + 84c: ce 01 movw r24, r28 + 84e: 0e 94 8c 01 call 0x318 ; 0x318 <handoff> + 852: 05 c0 rjmp .+10 ; 0x85e <tp_rxISR+0x42> + 854: 60 81 ld r22, Z + 856: 8f 81 ldd r24, Y+7 ; 0x07 + 858: 98 85 ldd r25, Y+8 ; 0x08 + 85a: 0e 94 5d 03 call 0x6ba ; 0x6ba <rb_write> + 85e: 8c 85 ldd r24, Y+12 ; 0x0c + 860: 81 30 cpi r24, 0x01 ; 1 + 862: 11 f0 breq .+4 ; 0x868 <tp_rxISR+0x4c> + 864: 81 e0 ldi r24, 0x01 ; 1 + 866: 8c 87 std Y+12, r24 ; 0x0c + 868: df 91 pop r29 + 86a: cf 91 pop r28 + 86c: 08 95 ret + +0000086e <tp_read>: + 86e: 81 e5 ldi r24, 0x51 ; 81 + 870: fb 01 movw r30, r22 + 872: 80 83 st Z, r24 + 874: 80 e0 ldi r24, 0x00 ; 0 + 876: 08 95 ret -000006b2 <tp_setTxStatus>: +00000878 <tp_setTxStatus>: void tp_write(tinyport_t tp, uint8_t data){ rb_write(tp->rbtx, data); - tp_setTxStatus(tp, TP_RX_STATE_HASDATA); + tp_setTxStatus(tp, TP_TX_STATE_TRANSMIT); // available } void tp_setTxStatus(tinyport_t tp, uint8_t state){ - 6b2: fc 01 movw r30, r24 - tp->txstate = state; - 6b4: 64 87 std Z+12, r22 ; 0x0c - if(state){ - 6b6: 66 23 and r22, r22 - 6b8: 71 f0 breq .+28 ; 0x6d6 <tp_setTxStatus+0x24> + 878: fc 01 movw r30, r24 + if(state == tp->txstate){ // if already set, + 87a: 83 85 ldd r24, Z+11 ; 0x0b + 87c: 86 17 cp r24, r22 + 87e: a9 f0 breq .+42 ; 0x8aa <tp_setTxStatus+0x32> + // do nothing + } else if(state) { // if set to hi - have things to tx + 880: 66 23 and r22, r22 + 882: 51 f0 breq .+20 ; 0x898 <tp_setTxStatus+0x20> tp->uart->CTRLA |= USART_DREINTLVL_LO_gc; // now ready for out transmit - this would happen elsewhere - when there is tx to tx - 6ba: a0 81 ld r26, Z - 6bc: b1 81 ldd r27, Z+1 ; 0x01 - 6be: 13 96 adiw r26, 0x03 ; 3 - 6c0: 8c 91 ld r24, X - 6c2: 13 97 sbiw r26, 0x03 ; 3 - 6c4: 81 60 ori r24, 0x01 ; 1 - 6c6: 13 96 adiw r26, 0x03 ; 3 - 6c8: 8c 93 st X, r24 -void tp_statflash(tinyport_t tp){ - tp->port->OUTTGL = tp->pinSTAT_bm; -} - -void tp_stathi(tinyport_t tp){ - tp->port->OUTSET = tp->pinSTAT_bm; - 6ca: a2 81 ldd r26, Z+2 ; 0x02 - 6cc: b3 81 ldd r27, Z+3 ; 0x03 - 6ce: 86 81 ldd r24, Z+6 ; 0x06 - 6d0: 15 96 adiw r26, 0x05 ; 5 - 6d2: 8c 93 st X, r24 - 6d4: 08 95 ret - tp->txstate = state; - if(state){ - tp->uart->CTRLA |= USART_DREINTLVL_LO_gc; // now ready for out transmit - this would happen elsewhere - when there is tx to tx - tp_stathi(tp); - } else { + 884: a0 81 ld r26, Z + 886: b1 81 ldd r27, Z+1 ; 0x01 + 888: 13 96 adiw r26, 0x03 ; 3 + 88a: 8c 91 ld r24, X + 88c: 13 97 sbiw r26, 0x03 ; 3 + 88e: 81 60 ori r24, 0x01 ; 1 + 890: 13 96 adiw r26, 0x03 ; 3 + 892: 8c 93 st X, r24 + tp->txstate = state; + 894: 63 87 std Z+11, r22 ; 0x0b + 896: 08 95 ret + } else { // if lo - buffer is empty, donot tx tp->uart->CTRLA = (tp->uart->CTRLA & ~ USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc; // turn off interrupt - 6d6: a0 81 ld r26, Z - 6d8: b1 81 ldd r27, Z+1 ; 0x01 - 6da: 13 96 adiw r26, 0x03 ; 3 - 6dc: 8c 91 ld r24, X - 6de: 13 97 sbiw r26, 0x03 ; 3 - 6e0: 8c 7f andi r24, 0xFC ; 252 - 6e2: 13 96 adiw r26, 0x03 ; 3 - 6e4: 8c 93 st X, r24 -void tp_stathi(tinyport_t tp){ - tp->port->OUTSET = tp->pinSTAT_bm; + 898: a0 81 ld r26, Z + 89a: b1 81 ldd r27, Z+1 ; 0x01 + 89c: 13 96 adiw r26, 0x03 ; 3 + 89e: 8c 91 ld r24, X + 8a0: 13 97 sbiw r26, 0x03 ; 3 + 8a2: 8c 7f andi r24, 0xFC ; 252 + 8a4: 13 96 adiw r26, 0x03 ; 3 + 8a6: 8c 93 st X, r24 + tp->txstate = state; + 8a8: 13 86 std Z+11, r1 ; 0x0b + 8aa: 08 95 ret + +000008ac <tp_txISR>: + } } -void tp_statlo(tinyport_t tp){ - tp->port->OUTCLR = tp->pinSTAT_bm; - 6e6: a2 81 ldd r26, Z+2 ; 0x02 - 6e8: b3 81 ldd r27, Z+3 ; 0x03 - 6ea: 86 81 ldd r24, Z+6 ; 0x06 - 6ec: 16 96 adiw r26, 0x06 ; 6 - 6ee: 8c 93 st X, r24 - 6f0: 08 95 ret +// https://lost-contact.mit.edu/afs/sur5r.net/service/drivers+doc/Atmel/ATXMEGA/AVR1307/code/doxygen/usart__driver_8c.html#7fdb922f6b858bef8515e23229efd970 -000006f2 <tp_txISR>: - } +void tp_txISR(tinyport_t tp){ + 8ac: 0f 93 push r16 + 8ae: 1f 93 push r17 + 8b0: cf 93 push r28 + 8b2: df 93 push r29 + 8b4: ec 01 movw r28, r24 + // stat pin + tp->port->DIRSET = tp->pinSTAT_bm; } +void tp_statflash(tinyport_t tp){ + tp->port->OUTTGL = tp->pinSTAT_bm; + 8b6: ea 81 ldd r30, Y+2 ; 0x02 + 8b8: fb 81 ldd r31, Y+3 ; 0x03 + 8ba: 8e 81 ldd r24, Y+6 ; 0x06 + 8bc: 87 83 std Z+7, r24 ; 0x07 + // https://lost-contact.mit.edu/afs/sur5r.net/service/drivers+doc/Atmel/ATXMEGA/AVR1307/code/doxygen/usart__driver_8c.html#7fdb922f6b858bef8515e23229efd970 void tp_txISR(tinyport_t tp){ - 6f2: 0f 93 push r16 - 6f4: 1f 93 push r17 - 6f6: cf 93 push r28 - 6f8: df 93 push r29 - 6fa: ec 01 movw r28, r24 + tp_statflash(tp); tp->uart->DATA = rb_read(tp->rbtx); - 6fc: 08 81 ld r16, Y - 6fe: 19 81 ldd r17, Y+1 ; 0x01 - 700: 89 85 ldd r24, Y+9 ; 0x09 - 702: 9a 85 ldd r25, Y+10 ; 0x0a - 704: 0e 94 ab 02 call 0x556 ; 0x556 <rb_read> - 708: f8 01 movw r30, r16 - 70a: 80 83 st Z, r24 - uint8_t tail = tp->rbtx->tail; - 70c: e9 85 ldd r30, Y+9 ; 0x09 - 70e: fa 85 ldd r31, Y+10 ; 0x0a - uint8_t head = tp->rbtx->head; - if(tail == head){ - 710: 93 81 ldd r25, Z+3 ; 0x03 - 712: 82 81 ldd r24, Z+2 ; 0x02 - 714: 98 13 cpse r25, r24 - 716: 05 c0 rjmp .+10 ; 0x722 <tp_txISR+0x30> - tp_setTxStatus(tp, TP_TX_STATE_EMPTY); - 718: 60 e0 ldi r22, 0x00 ; 0 - 71a: ce 01 movw r24, r28 - 71c: 0e 94 59 03 call 0x6b2 ; 0x6b2 <tp_setTxStatus> - 720: 04 c0 rjmp .+8 ; 0x72a <tp_txISR+0x38> - } else { - tp_setTxStatus(tp, TP_TX_STATE_HASDATA); - 722: 61 e0 ldi r22, 0x01 ; 1 - 724: ce 01 movw r24, r28 - 726: 0e 94 59 03 call 0x6b2 ; 0x6b2 <tp_setTxStatus> - if(!(rb_hasdata(tp->rbtx))){ // if buffer empty, turn off DREF interrupt + 8be: 08 81 ld r16, Y + 8c0: 19 81 ldd r17, Y+1 ; 0x01 + 8c2: 89 85 ldd r24, Y+9 ; 0x09 + 8c4: 9a 85 ldd r25, Y+10 ; 0x0a + 8c6: 0e 94 75 03 call 0x6ea ; 0x6ea <rb_read> + 8ca: f8 01 movw r30, r16 + 8cc: 80 83 st Z, r24 + if(!(rb_hasdata(tp->rbtx))){ // if no data left to tx, + 8ce: 89 85 ldd r24, Y+9 ; 0x09 + 8d0: 9a 85 ldd r25, Y+10 ; 0x0a + 8d2: 0e 94 90 03 call 0x720 ; 0x720 <rb_hasdata> + 8d6: 81 11 cpse r24, r1 + 8d8: 04 c0 rjmp .+8 ; 0x8e2 <tp_txISR+0x36> tp_setTxStatus(tp, TP_TX_STATE_EMPTY); + 8da: 60 e0 ldi r22, 0x00 ; 0 + 8dc: ce 01 movw r24, r28 + 8de: 0e 94 3c 04 call 0x878 ; 0x878 <tp_setTxStatus> } - */ - // handle buffer-ready status, enable interrupt } - 72a: df 91 pop r29 - 72c: cf 91 pop r28 - 72e: 1f 91 pop r17 - 730: 0f 91 pop r16 - 732: 08 95 ret + 8e2: df 91 pop r29 + 8e4: cf 91 pop r28 + 8e6: 1f 91 pop r17 + 8e8: 0f 91 pop r16 + 8ea: 08 95 ret -00000734 <tp_write>: +000008ec <tp_write>: void tp_write(tinyport_t tp, uint8_t data){ - 734: cf 93 push r28 - 736: df 93 push r29 - 738: ec 01 movw r28, r24 + 8ec: cf 93 push r28 + 8ee: df 93 push r29 + 8f0: ec 01 movw r28, r24 rb_write(tp->rbtx, data); - 73a: 89 85 ldd r24, Y+9 ; 0x09 - 73c: 9a 85 ldd r25, Y+10 ; 0x0a - 73e: 0e 94 90 02 call 0x520 ; 0x520 <rb_write> - tp_setTxStatus(tp, TP_RX_STATE_HASDATA); - 742: 61 e0 ldi r22, 0x01 ; 1 - 744: ce 01 movw r24, r28 - 746: 0e 94 59 03 call 0x6b2 ; 0x6b2 <tp_setTxStatus> + 8f2: 89 85 ldd r24, Y+9 ; 0x09 + 8f4: 9a 85 ldd r25, Y+10 ; 0x0a + 8f6: 0e 94 5d 03 call 0x6ba ; 0x6ba <rb_write> + tp_setTxStatus(tp, TP_TX_STATE_TRANSMIT); // available + 8fa: 61 e0 ldi r22, 0x01 ; 1 + 8fc: ce 01 movw r24, r28 + 8fe: 0e 94 3c 04 call 0x878 ; 0x878 <tp_setTxStatus> } - 74a: df 91 pop r29 - 74c: cf 91 pop r28 - 74e: 08 95 ret + 902: df 91 pop r29 + 904: cf 91 pop r28 + 906: 08 95 ret -00000750 <malloc>: - 750: 0f 93 push r16 - 752: 1f 93 push r17 - 754: cf 93 push r28 - 756: df 93 push r29 - 758: 82 30 cpi r24, 0x02 ; 2 - 75a: 91 05 cpc r25, r1 - 75c: 10 f4 brcc .+4 ; 0x762 <malloc+0x12> - 75e: 82 e0 ldi r24, 0x02 ; 2 - 760: 90 e0 ldi r25, 0x00 ; 0 - 762: e0 91 0c 20 lds r30, 0x200C ; 0x80200c <__flp> - 766: f0 91 0d 20 lds r31, 0x200D ; 0x80200d <__flp+0x1> - 76a: 20 e0 ldi r18, 0x00 ; 0 - 76c: 30 e0 ldi r19, 0x00 ; 0 - 76e: a0 e0 ldi r26, 0x00 ; 0 - 770: b0 e0 ldi r27, 0x00 ; 0 - 772: 30 97 sbiw r30, 0x00 ; 0 - 774: 19 f1 breq .+70 ; 0x7bc <malloc+0x6c> - 776: 40 81 ld r20, Z - 778: 51 81 ldd r21, Z+1 ; 0x01 - 77a: 02 81 ldd r16, Z+2 ; 0x02 - 77c: 13 81 ldd r17, Z+3 ; 0x03 - 77e: 48 17 cp r20, r24 - 780: 59 07 cpc r21, r25 - 782: c8 f0 brcs .+50 ; 0x7b6 <malloc+0x66> - 784: 84 17 cp r24, r20 - 786: 95 07 cpc r25, r21 - 788: 69 f4 brne .+26 ; 0x7a4 <malloc+0x54> - 78a: 10 97 sbiw r26, 0x00 ; 0 - 78c: 31 f0 breq .+12 ; 0x79a <malloc+0x4a> - 78e: 12 96 adiw r26, 0x02 ; 2 - 790: 0c 93 st X, r16 - 792: 12 97 sbiw r26, 0x02 ; 2 - 794: 13 96 adiw r26, 0x03 ; 3 - 796: 1c 93 st X, r17 - 798: 27 c0 rjmp .+78 ; 0x7e8 <malloc+0x98> - 79a: 00 93 0c 20 sts 0x200C, r16 ; 0x80200c <__flp> - 79e: 10 93 0d 20 sts 0x200D, r17 ; 0x80200d <__flp+0x1> - 7a2: 22 c0 rjmp .+68 ; 0x7e8 <malloc+0x98> - 7a4: 21 15 cp r18, r1 - 7a6: 31 05 cpc r19, r1 - 7a8: 19 f0 breq .+6 ; 0x7b0 <malloc+0x60> - 7aa: 42 17 cp r20, r18 - 7ac: 53 07 cpc r21, r19 - 7ae: 18 f4 brcc .+6 ; 0x7b6 <malloc+0x66> - 7b0: 9a 01 movw r18, r20 - 7b2: bd 01 movw r22, r26 - 7b4: ef 01 movw r28, r30 - 7b6: df 01 movw r26, r30 - 7b8: f8 01 movw r30, r16 - 7ba: db cf rjmp .-74 ; 0x772 <malloc+0x22> - 7bc: 21 15 cp r18, r1 - 7be: 31 05 cpc r19, r1 - 7c0: f9 f0 breq .+62 ; 0x800 <malloc+0xb0> - 7c2: 28 1b sub r18, r24 - 7c4: 39 0b sbc r19, r25 - 7c6: 24 30 cpi r18, 0x04 ; 4 - 7c8: 31 05 cpc r19, r1 - 7ca: 80 f4 brcc .+32 ; 0x7ec <malloc+0x9c> - 7cc: 8a 81 ldd r24, Y+2 ; 0x02 - 7ce: 9b 81 ldd r25, Y+3 ; 0x03 - 7d0: 61 15 cp r22, r1 - 7d2: 71 05 cpc r23, r1 - 7d4: 21 f0 breq .+8 ; 0x7de <malloc+0x8e> - 7d6: fb 01 movw r30, r22 - 7d8: 82 83 std Z+2, r24 ; 0x02 - 7da: 93 83 std Z+3, r25 ; 0x03 - 7dc: 04 c0 rjmp .+8 ; 0x7e6 <malloc+0x96> - 7de: 80 93 0c 20 sts 0x200C, r24 ; 0x80200c <__flp> - 7e2: 90 93 0d 20 sts 0x200D, r25 ; 0x80200d <__flp+0x1> - 7e6: fe 01 movw r30, r28 - 7e8: 32 96 adiw r30, 0x02 ; 2 - 7ea: 44 c0 rjmp .+136 ; 0x874 <malloc+0x124> - 7ec: fe 01 movw r30, r28 - 7ee: e2 0f add r30, r18 - 7f0: f3 1f adc r31, r19 - 7f2: 81 93 st Z+, r24 - 7f4: 91 93 st Z+, r25 - 7f6: 22 50 subi r18, 0x02 ; 2 - 7f8: 31 09 sbc r19, r1 - 7fa: 28 83 st Y, r18 - 7fc: 39 83 std Y+1, r19 ; 0x01 - 7fe: 3a c0 rjmp .+116 ; 0x874 <malloc+0x124> - 800: 20 91 0a 20 lds r18, 0x200A ; 0x80200a <__brkval> - 804: 30 91 0b 20 lds r19, 0x200B ; 0x80200b <__brkval+0x1> - 808: 23 2b or r18, r19 - 80a: 41 f4 brne .+16 ; 0x81c <malloc+0xcc> - 80c: 20 91 02 20 lds r18, 0x2002 ; 0x802002 <__malloc_heap_start> - 810: 30 91 03 20 lds r19, 0x2003 ; 0x802003 <__malloc_heap_start+0x1> - 814: 20 93 0a 20 sts 0x200A, r18 ; 0x80200a <__brkval> - 818: 30 93 0b 20 sts 0x200B, r19 ; 0x80200b <__brkval+0x1> - 81c: 20 91 00 20 lds r18, 0x2000 ; 0x802000 <__data_start> - 820: 30 91 01 20 lds r19, 0x2001 ; 0x802001 <__data_start+0x1> - 824: 21 15 cp r18, r1 - 826: 31 05 cpc r19, r1 - 828: 41 f4 brne .+16 ; 0x83a <malloc+0xea> - 82a: 2d b7 in r18, 0x3d ; 61 - 82c: 3e b7 in r19, 0x3e ; 62 - 82e: 40 91 04 20 lds r20, 0x2004 ; 0x802004 <__malloc_margin> - 832: 50 91 05 20 lds r21, 0x2005 ; 0x802005 <__malloc_margin+0x1> - 836: 24 1b sub r18, r20 - 838: 35 0b sbc r19, r21 - 83a: e0 91 0a 20 lds r30, 0x200A ; 0x80200a <__brkval> - 83e: f0 91 0b 20 lds r31, 0x200B ; 0x80200b <__brkval+0x1> - 842: e2 17 cp r30, r18 - 844: f3 07 cpc r31, r19 - 846: a0 f4 brcc .+40 ; 0x870 <malloc+0x120> - 848: 2e 1b sub r18, r30 - 84a: 3f 0b sbc r19, r31 - 84c: 28 17 cp r18, r24 - 84e: 39 07 cpc r19, r25 - 850: 78 f0 brcs .+30 ; 0x870 <malloc+0x120> - 852: ac 01 movw r20, r24 - 854: 4e 5f subi r20, 0xFE ; 254 - 856: 5f 4f sbci r21, 0xFF ; 255 - 858: 24 17 cp r18, r20 - 85a: 35 07 cpc r19, r21 - 85c: 48 f0 brcs .+18 ; 0x870 <malloc+0x120> - 85e: 4e 0f add r20, r30 - 860: 5f 1f adc r21, r31 - 862: 40 93 0a 20 sts 0x200A, r20 ; 0x80200a <__brkval> - 866: 50 93 0b 20 sts 0x200B, r21 ; 0x80200b <__brkval+0x1> - 86a: 81 93 st Z+, r24 - 86c: 91 93 st Z+, r25 - 86e: 02 c0 rjmp .+4 ; 0x874 <malloc+0x124> - 870: e0 e0 ldi r30, 0x00 ; 0 - 872: f0 e0 ldi r31, 0x00 ; 0 - 874: cf 01 movw r24, r30 - 876: df 91 pop r29 - 878: cf 91 pop r28 - 87a: 1f 91 pop r17 - 87c: 0f 91 pop r16 - 87e: 08 95 ret +00000908 <malloc>: + 908: 0f 93 push r16 + 90a: 1f 93 push r17 + 90c: cf 93 push r28 + 90e: df 93 push r29 + 910: 82 30 cpi r24, 0x02 ; 2 + 912: 91 05 cpc r25, r1 + 914: 10 f4 brcc .+4 ; 0x91a <malloc+0x12> + 916: 82 e0 ldi r24, 0x02 ; 2 + 918: 90 e0 ldi r25, 0x00 ; 0 + 91a: e0 91 10 20 lds r30, 0x2010 ; 0x802010 <__flp> + 91e: f0 91 11 20 lds r31, 0x2011 ; 0x802011 <__flp+0x1> + 922: 20 e0 ldi r18, 0x00 ; 0 + 924: 30 e0 ldi r19, 0x00 ; 0 + 926: a0 e0 ldi r26, 0x00 ; 0 + 928: b0 e0 ldi r27, 0x00 ; 0 + 92a: 30 97 sbiw r30, 0x00 ; 0 + 92c: 19 f1 breq .+70 ; 0x974 <malloc+0x6c> + 92e: 40 81 ld r20, Z + 930: 51 81 ldd r21, Z+1 ; 0x01 + 932: 02 81 ldd r16, Z+2 ; 0x02 + 934: 13 81 ldd r17, Z+3 ; 0x03 + 936: 48 17 cp r20, r24 + 938: 59 07 cpc r21, r25 + 93a: c8 f0 brcs .+50 ; 0x96e <malloc+0x66> + 93c: 84 17 cp r24, r20 + 93e: 95 07 cpc r25, r21 + 940: 69 f4 brne .+26 ; 0x95c <malloc+0x54> + 942: 10 97 sbiw r26, 0x00 ; 0 + 944: 31 f0 breq .+12 ; 0x952 <malloc+0x4a> + 946: 12 96 adiw r26, 0x02 ; 2 + 948: 0c 93 st X, r16 + 94a: 12 97 sbiw r26, 0x02 ; 2 + 94c: 13 96 adiw r26, 0x03 ; 3 + 94e: 1c 93 st X, r17 + 950: 27 c0 rjmp .+78 ; 0x9a0 <malloc+0x98> + 952: 00 93 10 20 sts 0x2010, r16 ; 0x802010 <__flp> + 956: 10 93 11 20 sts 0x2011, r17 ; 0x802011 <__flp+0x1> + 95a: 22 c0 rjmp .+68 ; 0x9a0 <malloc+0x98> + 95c: 21 15 cp r18, r1 + 95e: 31 05 cpc r19, r1 + 960: 19 f0 breq .+6 ; 0x968 <malloc+0x60> + 962: 42 17 cp r20, r18 + 964: 53 07 cpc r21, r19 + 966: 18 f4 brcc .+6 ; 0x96e <malloc+0x66> + 968: 9a 01 movw r18, r20 + 96a: bd 01 movw r22, r26 + 96c: ef 01 movw r28, r30 + 96e: df 01 movw r26, r30 + 970: f8 01 movw r30, r16 + 972: db cf rjmp .-74 ; 0x92a <malloc+0x22> + 974: 21 15 cp r18, r1 + 976: 31 05 cpc r19, r1 + 978: f9 f0 breq .+62 ; 0x9b8 <malloc+0xb0> + 97a: 28 1b sub r18, r24 + 97c: 39 0b sbc r19, r25 + 97e: 24 30 cpi r18, 0x04 ; 4 + 980: 31 05 cpc r19, r1 + 982: 80 f4 brcc .+32 ; 0x9a4 <malloc+0x9c> + 984: 8a 81 ldd r24, Y+2 ; 0x02 + 986: 9b 81 ldd r25, Y+3 ; 0x03 + 988: 61 15 cp r22, r1 + 98a: 71 05 cpc r23, r1 + 98c: 21 f0 breq .+8 ; 0x996 <malloc+0x8e> + 98e: fb 01 movw r30, r22 + 990: 82 83 std Z+2, r24 ; 0x02 + 992: 93 83 std Z+3, r25 ; 0x03 + 994: 04 c0 rjmp .+8 ; 0x99e <malloc+0x96> + 996: 80 93 10 20 sts 0x2010, r24 ; 0x802010 <__flp> + 99a: 90 93 11 20 sts 0x2011, r25 ; 0x802011 <__flp+0x1> + 99e: fe 01 movw r30, r28 + 9a0: 32 96 adiw r30, 0x02 ; 2 + 9a2: 44 c0 rjmp .+136 ; 0xa2c <malloc+0x124> + 9a4: fe 01 movw r30, r28 + 9a6: e2 0f add r30, r18 + 9a8: f3 1f adc r31, r19 + 9aa: 81 93 st Z+, r24 + 9ac: 91 93 st Z+, r25 + 9ae: 22 50 subi r18, 0x02 ; 2 + 9b0: 31 09 sbc r19, r1 + 9b2: 28 83 st Y, r18 + 9b4: 39 83 std Y+1, r19 ; 0x01 + 9b6: 3a c0 rjmp .+116 ; 0xa2c <malloc+0x124> + 9b8: 20 91 0e 20 lds r18, 0x200E ; 0x80200e <__brkval> + 9bc: 30 91 0f 20 lds r19, 0x200F ; 0x80200f <__brkval+0x1> + 9c0: 23 2b or r18, r19 + 9c2: 41 f4 brne .+16 ; 0x9d4 <malloc+0xcc> + 9c4: 20 91 02 20 lds r18, 0x2002 ; 0x802002 <__malloc_heap_start> + 9c8: 30 91 03 20 lds r19, 0x2003 ; 0x802003 <__malloc_heap_start+0x1> + 9cc: 20 93 0e 20 sts 0x200E, r18 ; 0x80200e <__brkval> + 9d0: 30 93 0f 20 sts 0x200F, r19 ; 0x80200f <__brkval+0x1> + 9d4: 20 91 00 20 lds r18, 0x2000 ; 0x802000 <__data_start> + 9d8: 30 91 01 20 lds r19, 0x2001 ; 0x802001 <__data_start+0x1> + 9dc: 21 15 cp r18, r1 + 9de: 31 05 cpc r19, r1 + 9e0: 41 f4 brne .+16 ; 0x9f2 <malloc+0xea> + 9e2: 2d b7 in r18, 0x3d ; 61 + 9e4: 3e b7 in r19, 0x3e ; 62 + 9e6: 40 91 04 20 lds r20, 0x2004 ; 0x802004 <__malloc_margin> + 9ea: 50 91 05 20 lds r21, 0x2005 ; 0x802005 <__malloc_margin+0x1> + 9ee: 24 1b sub r18, r20 + 9f0: 35 0b sbc r19, r21 + 9f2: e0 91 0e 20 lds r30, 0x200E ; 0x80200e <__brkval> + 9f6: f0 91 0f 20 lds r31, 0x200F ; 0x80200f <__brkval+0x1> + 9fa: e2 17 cp r30, r18 + 9fc: f3 07 cpc r31, r19 + 9fe: a0 f4 brcc .+40 ; 0xa28 <malloc+0x120> + a00: 2e 1b sub r18, r30 + a02: 3f 0b sbc r19, r31 + a04: 28 17 cp r18, r24 + a06: 39 07 cpc r19, r25 + a08: 78 f0 brcs .+30 ; 0xa28 <malloc+0x120> + a0a: ac 01 movw r20, r24 + a0c: 4e 5f subi r20, 0xFE ; 254 + a0e: 5f 4f sbci r21, 0xFF ; 255 + a10: 24 17 cp r18, r20 + a12: 35 07 cpc r19, r21 + a14: 48 f0 brcs .+18 ; 0xa28 <malloc+0x120> + a16: 4e 0f add r20, r30 + a18: 5f 1f adc r21, r31 + a1a: 40 93 0e 20 sts 0x200E, r20 ; 0x80200e <__brkval> + a1e: 50 93 0f 20 sts 0x200F, r21 ; 0x80200f <__brkval+0x1> + a22: 81 93 st Z+, r24 + a24: 91 93 st Z+, r25 + a26: 02 c0 rjmp .+4 ; 0xa2c <malloc+0x124> + a28: e0 e0 ldi r30, 0x00 ; 0 + a2a: f0 e0 ldi r31, 0x00 ; 0 + a2c: cf 01 movw r24, r30 + a2e: df 91 pop r29 + a30: cf 91 pop r28 + a32: 1f 91 pop r17 + a34: 0f 91 pop r16 + a36: 08 95 ret -00000880 <free>: - 880: cf 93 push r28 - 882: df 93 push r29 - 884: 00 97 sbiw r24, 0x00 ; 0 - 886: 09 f4 brne .+2 ; 0x88a <free+0xa> - 888: 81 c0 rjmp .+258 ; 0x98c <free+0x10c> - 88a: fc 01 movw r30, r24 - 88c: 32 97 sbiw r30, 0x02 ; 2 - 88e: 12 82 std Z+2, r1 ; 0x02 - 890: 13 82 std Z+3, r1 ; 0x03 - 892: a0 91 0c 20 lds r26, 0x200C ; 0x80200c <__flp> - 896: b0 91 0d 20 lds r27, 0x200D ; 0x80200d <__flp+0x1> - 89a: 10 97 sbiw r26, 0x00 ; 0 - 89c: 81 f4 brne .+32 ; 0x8be <free+0x3e> - 89e: 20 81 ld r18, Z - 8a0: 31 81 ldd r19, Z+1 ; 0x01 - 8a2: 82 0f add r24, r18 - 8a4: 93 1f adc r25, r19 - 8a6: 20 91 0a 20 lds r18, 0x200A ; 0x80200a <__brkval> - 8aa: 30 91 0b 20 lds r19, 0x200B ; 0x80200b <__brkval+0x1> - 8ae: 28 17 cp r18, r24 - 8b0: 39 07 cpc r19, r25 - 8b2: 51 f5 brne .+84 ; 0x908 <free+0x88> - 8b4: e0 93 0a 20 sts 0x200A, r30 ; 0x80200a <__brkval> - 8b8: f0 93 0b 20 sts 0x200B, r31 ; 0x80200b <__brkval+0x1> - 8bc: 67 c0 rjmp .+206 ; 0x98c <free+0x10c> - 8be: ed 01 movw r28, r26 - 8c0: 20 e0 ldi r18, 0x00 ; 0 - 8c2: 30 e0 ldi r19, 0x00 ; 0 - 8c4: ce 17 cp r28, r30 - 8c6: df 07 cpc r29, r31 - 8c8: 40 f4 brcc .+16 ; 0x8da <free+0x5a> - 8ca: 4a 81 ldd r20, Y+2 ; 0x02 - 8cc: 5b 81 ldd r21, Y+3 ; 0x03 - 8ce: 9e 01 movw r18, r28 - 8d0: 41 15 cp r20, r1 - 8d2: 51 05 cpc r21, r1 - 8d4: f1 f0 breq .+60 ; 0x912 <free+0x92> - 8d6: ea 01 movw r28, r20 - 8d8: f5 cf rjmp .-22 ; 0x8c4 <free+0x44> - 8da: c2 83 std Z+2, r28 ; 0x02 - 8dc: d3 83 std Z+3, r29 ; 0x03 - 8de: 40 81 ld r20, Z - 8e0: 51 81 ldd r21, Z+1 ; 0x01 - 8e2: 84 0f add r24, r20 - 8e4: 95 1f adc r25, r21 - 8e6: c8 17 cp r28, r24 - 8e8: d9 07 cpc r29, r25 - 8ea: 59 f4 brne .+22 ; 0x902 <free+0x82> - 8ec: 88 81 ld r24, Y - 8ee: 99 81 ldd r25, Y+1 ; 0x01 - 8f0: 84 0f add r24, r20 - 8f2: 95 1f adc r25, r21 - 8f4: 02 96 adiw r24, 0x02 ; 2 - 8f6: 80 83 st Z, r24 - 8f8: 91 83 std Z+1, r25 ; 0x01 - 8fa: 8a 81 ldd r24, Y+2 ; 0x02 - 8fc: 9b 81 ldd r25, Y+3 ; 0x03 - 8fe: 82 83 std Z+2, r24 ; 0x02 - 900: 93 83 std Z+3, r25 ; 0x03 - 902: 21 15 cp r18, r1 - 904: 31 05 cpc r19, r1 - 906: 29 f4 brne .+10 ; 0x912 <free+0x92> - 908: e0 93 0c 20 sts 0x200C, r30 ; 0x80200c <__flp> - 90c: f0 93 0d 20 sts 0x200D, r31 ; 0x80200d <__flp+0x1> - 910: 3d c0 rjmp .+122 ; 0x98c <free+0x10c> - 912: e9 01 movw r28, r18 - 914: ea 83 std Y+2, r30 ; 0x02 - 916: fb 83 std Y+3, r31 ; 0x03 - 918: 49 91 ld r20, Y+ - 91a: 59 91 ld r21, Y+ - 91c: c4 0f add r28, r20 - 91e: d5 1f adc r29, r21 - 920: ec 17 cp r30, r28 - 922: fd 07 cpc r31, r29 - 924: 61 f4 brne .+24 ; 0x93e <free+0xbe> - 926: 80 81 ld r24, Z - 928: 91 81 ldd r25, Z+1 ; 0x01 - 92a: 84 0f add r24, r20 - 92c: 95 1f adc r25, r21 - 92e: 02 96 adiw r24, 0x02 ; 2 - 930: e9 01 movw r28, r18 - 932: 88 83 st Y, r24 - 934: 99 83 std Y+1, r25 ; 0x01 - 936: 82 81 ldd r24, Z+2 ; 0x02 - 938: 93 81 ldd r25, Z+3 ; 0x03 - 93a: 8a 83 std Y+2, r24 ; 0x02 - 93c: 9b 83 std Y+3, r25 ; 0x03 - 93e: e0 e0 ldi r30, 0x00 ; 0 - 940: f0 e0 ldi r31, 0x00 ; 0 - 942: 12 96 adiw r26, 0x02 ; 2 - 944: 8d 91 ld r24, X+ - 946: 9c 91 ld r25, X - 948: 13 97 sbiw r26, 0x03 ; 3 - 94a: 00 97 sbiw r24, 0x00 ; 0 - 94c: 19 f0 breq .+6 ; 0x954 <free+0xd4> - 94e: fd 01 movw r30, r26 - 950: dc 01 movw r26, r24 - 952: f7 cf rjmp .-18 ; 0x942 <free+0xc2> - 954: 8d 91 ld r24, X+ - 956: 9c 91 ld r25, X - 958: 11 97 sbiw r26, 0x01 ; 1 - 95a: 9d 01 movw r18, r26 - 95c: 2e 5f subi r18, 0xFE ; 254 - 95e: 3f 4f sbci r19, 0xFF ; 255 - 960: 82 0f add r24, r18 - 962: 93 1f adc r25, r19 - 964: 20 91 0a 20 lds r18, 0x200A ; 0x80200a <__brkval> - 968: 30 91 0b 20 lds r19, 0x200B ; 0x80200b <__brkval+0x1> - 96c: 28 17 cp r18, r24 - 96e: 39 07 cpc r19, r25 - 970: 69 f4 brne .+26 ; 0x98c <free+0x10c> - 972: 30 97 sbiw r30, 0x00 ; 0 - 974: 29 f4 brne .+10 ; 0x980 <free+0x100> - 976: 10 92 0c 20 sts 0x200C, r1 ; 0x80200c <__flp> - 97a: 10 92 0d 20 sts 0x200D, r1 ; 0x80200d <__flp+0x1> - 97e: 02 c0 rjmp .+4 ; 0x984 <free+0x104> - 980: 12 82 std Z+2, r1 ; 0x02 - 982: 13 82 std Z+3, r1 ; 0x03 - 984: a0 93 0a 20 sts 0x200A, r26 ; 0x80200a <__brkval> - 988: b0 93 0b 20 sts 0x200B, r27 ; 0x80200b <__brkval+0x1> - 98c: df 91 pop r29 - 98e: cf 91 pop r28 - 990: 08 95 ret +00000a38 <free>: + a38: cf 93 push r28 + a3a: df 93 push r29 + a3c: 00 97 sbiw r24, 0x00 ; 0 + a3e: 09 f4 brne .+2 ; 0xa42 <free+0xa> + a40: 81 c0 rjmp .+258 ; 0xb44 <free+0x10c> + a42: fc 01 movw r30, r24 + a44: 32 97 sbiw r30, 0x02 ; 2 + a46: 12 82 std Z+2, r1 ; 0x02 + a48: 13 82 std Z+3, r1 ; 0x03 + a4a: a0 91 10 20 lds r26, 0x2010 ; 0x802010 <__flp> + a4e: b0 91 11 20 lds r27, 0x2011 ; 0x802011 <__flp+0x1> + a52: 10 97 sbiw r26, 0x00 ; 0 + a54: 81 f4 brne .+32 ; 0xa76 <free+0x3e> + a56: 20 81 ld r18, Z + a58: 31 81 ldd r19, Z+1 ; 0x01 + a5a: 82 0f add r24, r18 + a5c: 93 1f adc r25, r19 + a5e: 20 91 0e 20 lds r18, 0x200E ; 0x80200e <__brkval> + a62: 30 91 0f 20 lds r19, 0x200F ; 0x80200f <__brkval+0x1> + a66: 28 17 cp r18, r24 + a68: 39 07 cpc r19, r25 + a6a: 51 f5 brne .+84 ; 0xac0 <free+0x88> + a6c: e0 93 0e 20 sts 0x200E, r30 ; 0x80200e <__brkval> + a70: f0 93 0f 20 sts 0x200F, r31 ; 0x80200f <__brkval+0x1> + a74: 67 c0 rjmp .+206 ; 0xb44 <free+0x10c> + a76: ed 01 movw r28, r26 + a78: 20 e0 ldi r18, 0x00 ; 0 + a7a: 30 e0 ldi r19, 0x00 ; 0 + a7c: ce 17 cp r28, r30 + a7e: df 07 cpc r29, r31 + a80: 40 f4 brcc .+16 ; 0xa92 <free+0x5a> + a82: 4a 81 ldd r20, Y+2 ; 0x02 + a84: 5b 81 ldd r21, Y+3 ; 0x03 + a86: 9e 01 movw r18, r28 + a88: 41 15 cp r20, r1 + a8a: 51 05 cpc r21, r1 + a8c: f1 f0 breq .+60 ; 0xaca <free+0x92> + a8e: ea 01 movw r28, r20 + a90: f5 cf rjmp .-22 ; 0xa7c <free+0x44> + a92: c2 83 std Z+2, r28 ; 0x02 + a94: d3 83 std Z+3, r29 ; 0x03 + a96: 40 81 ld r20, Z + a98: 51 81 ldd r21, Z+1 ; 0x01 + a9a: 84 0f add r24, r20 + a9c: 95 1f adc r25, r21 + a9e: c8 17 cp r28, r24 + aa0: d9 07 cpc r29, r25 + aa2: 59 f4 brne .+22 ; 0xaba <free+0x82> + aa4: 88 81 ld r24, Y + aa6: 99 81 ldd r25, Y+1 ; 0x01 + aa8: 84 0f add r24, r20 + aaa: 95 1f adc r25, r21 + aac: 02 96 adiw r24, 0x02 ; 2 + aae: 80 83 st Z, r24 + ab0: 91 83 std Z+1, r25 ; 0x01 + ab2: 8a 81 ldd r24, Y+2 ; 0x02 + ab4: 9b 81 ldd r25, Y+3 ; 0x03 + ab6: 82 83 std Z+2, r24 ; 0x02 + ab8: 93 83 std Z+3, r25 ; 0x03 + aba: 21 15 cp r18, r1 + abc: 31 05 cpc r19, r1 + abe: 29 f4 brne .+10 ; 0xaca <free+0x92> + ac0: e0 93 10 20 sts 0x2010, r30 ; 0x802010 <__flp> + ac4: f0 93 11 20 sts 0x2011, r31 ; 0x802011 <__flp+0x1> + ac8: 3d c0 rjmp .+122 ; 0xb44 <free+0x10c> + aca: e9 01 movw r28, r18 + acc: ea 83 std Y+2, r30 ; 0x02 + ace: fb 83 std Y+3, r31 ; 0x03 + ad0: 49 91 ld r20, Y+ + ad2: 59 91 ld r21, Y+ + ad4: c4 0f add r28, r20 + ad6: d5 1f adc r29, r21 + ad8: ec 17 cp r30, r28 + ada: fd 07 cpc r31, r29 + adc: 61 f4 brne .+24 ; 0xaf6 <free+0xbe> + ade: 80 81 ld r24, Z + ae0: 91 81 ldd r25, Z+1 ; 0x01 + ae2: 84 0f add r24, r20 + ae4: 95 1f adc r25, r21 + ae6: 02 96 adiw r24, 0x02 ; 2 + ae8: e9 01 movw r28, r18 + aea: 88 83 st Y, r24 + aec: 99 83 std Y+1, r25 ; 0x01 + aee: 82 81 ldd r24, Z+2 ; 0x02 + af0: 93 81 ldd r25, Z+3 ; 0x03 + af2: 8a 83 std Y+2, r24 ; 0x02 + af4: 9b 83 std Y+3, r25 ; 0x03 + af6: e0 e0 ldi r30, 0x00 ; 0 + af8: f0 e0 ldi r31, 0x00 ; 0 + afa: 12 96 adiw r26, 0x02 ; 2 + afc: 8d 91 ld r24, X+ + afe: 9c 91 ld r25, X + b00: 13 97 sbiw r26, 0x03 ; 3 + b02: 00 97 sbiw r24, 0x00 ; 0 + b04: 19 f0 breq .+6 ; 0xb0c <free+0xd4> + b06: fd 01 movw r30, r26 + b08: dc 01 movw r26, r24 + b0a: f7 cf rjmp .-18 ; 0xafa <free+0xc2> + b0c: 8d 91 ld r24, X+ + b0e: 9c 91 ld r25, X + b10: 11 97 sbiw r26, 0x01 ; 1 + b12: 9d 01 movw r18, r26 + b14: 2e 5f subi r18, 0xFE ; 254 + b16: 3f 4f sbci r19, 0xFF ; 255 + b18: 82 0f add r24, r18 + b1a: 93 1f adc r25, r19 + b1c: 20 91 0e 20 lds r18, 0x200E ; 0x80200e <__brkval> + b20: 30 91 0f 20 lds r19, 0x200F ; 0x80200f <__brkval+0x1> + b24: 28 17 cp r18, r24 + b26: 39 07 cpc r19, r25 + b28: 69 f4 brne .+26 ; 0xb44 <free+0x10c> + b2a: 30 97 sbiw r30, 0x00 ; 0 + b2c: 29 f4 brne .+10 ; 0xb38 <free+0x100> + b2e: 10 92 10 20 sts 0x2010, r1 ; 0x802010 <__flp> + b32: 10 92 11 20 sts 0x2011, r1 ; 0x802011 <__flp+0x1> + b36: 02 c0 rjmp .+4 ; 0xb3c <free+0x104> + b38: 12 82 std Z+2, r1 ; 0x02 + b3a: 13 82 std Z+3, r1 ; 0x03 + b3c: a0 93 0e 20 sts 0x200E, r26 ; 0x80200e <__brkval> + b40: b0 93 0f 20 sts 0x200F, r27 ; 0x80200f <__brkval+0x1> + b44: df 91 pop r29 + b46: cf 91 pop r28 + b48: 08 95 ret -00000992 <_exit>: - 992: f8 94 cli +00000b4a <_exit>: + b4a: f8 94 cli -00000994 <__stop_program>: - 994: ff cf rjmp .-2 ; 0x994 <__stop_program> +00000b4c <__stop_program>: + b4c: ff cf rjmp .-2 ; 0xb4c <__stop_program> diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.map b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.map index 84619e3a7ec47747a079183344307d731ac39260..4c23ba088c2496b2d4a7d886be9bdde429702fa9 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.map +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.map @@ -2,18 +2,20 @@ Archive member included to satisfy reference by file (symbol) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o (exit) +c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + main.o (__do_copy_data) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) main.o (__do_clear_bss) c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) ringbuffer.o (malloc) -c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) (__do_copy_data) Allocating common symbols Common symbol size file tp2 0x2 main.o +tp1 0x2 main.o __brkval 0x2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) +tp4 0x2 main.o __flp 0x2 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) tp3 0x2 main.o @@ -24,27 +26,30 @@ Discarded input sections .text 0x00000000 0x0 main.o .data 0x00000000 0x0 main.o .bss 0x00000000 0x0 main.o + .text.nointerrupts + 0x00000000 0xc main.o + .text.interrupts + 0x00000000 0xc main.o .text.fakepacket 0x00000000 0x7a main.o + .text.IRS 0x00000000 0xe main.o + .data.psize 0x00000000 0x1 main.o + .bss.pcount 0x00000000 0x1 main.o .text 0x00000000 0x0 ringbuffer.o .data 0x00000000 0x0 ringbuffer.o .bss 0x00000000 0x0 ringbuffer.o .text.rb_reset 0x00000000 0x8 ringbuffer.o - .text.rb_hasdata - 0x00000000 0x10 ringbuffer.o .text 0x00000000 0x0 tinyport.o .data 0x00000000 0x0 tinyport.o .bss 0x00000000 0x0 tinyport.o - .text.tp_statflash - 0x00000000 0x12 tinyport.o .text.tp_stathi 0x00000000 0x12 tinyport.o .text.tp_statlo 0x00000000 0x12 tinyport.o .text.tp_test 0x00000000 0x3c tinyport.o .text.tp_setRxStatus - 0x00000000 0x6 tinyport.o + 0x00000000 0xa tinyport.o .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) @@ -61,6 +66,22 @@ Discarded input sections 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) .text.libgcc.fixed 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) + .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.mul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.div + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.prologue + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.builtins + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.fmul + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + .text.libgcc.fixed + 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) @@ -79,22 +100,6 @@ Discarded input sections 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) - .text 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .data 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .bss 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.mul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.div - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.prologue - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.builtins - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.fmul - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - .text.libgcc.fixed - 0x00000000 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) Memory Configuration @@ -221,7 +226,7 @@ END GROUP .rela.plt *(.rela.plt) -.text 0x00000000 0x996 +.text 0x00000000 0xb4e *(.vectors) .vectors 0x00000000 0x1fc C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o 0x00000000 __vector_default @@ -262,10 +267,10 @@ END GROUP *(.init3) *(.init3) *(.init4) - .init4 0x00000214 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) - 0x00000214 __do_clear_bss - .init4 0x00000224 0x1c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) - 0x00000224 __do_copy_data + .init4 0x00000214 0x1c c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_copy_data.o) + 0x00000214 __do_copy_data + .init4 0x00000230 0x10 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_clear_bss.o) + 0x00000230 __do_clear_bss *(.init4) *(.init5) *(.init5) @@ -309,7 +314,6 @@ END GROUP 0x00000248 __vector_6 0x00000248 __vector_110 0x00000248 __vector_31 - 0x00000248 __vector_92 0x00000248 __vector_35 0x00000248 __vector_78 0x00000248 __vector_74 @@ -324,7 +328,6 @@ END GROUP 0x00000248 __vector_30 0x00000248 __vector_73 0x00000248 __vector_45 - 0x00000248 __vector_25 0x00000248 __vector_93 0x00000248 __vector_61 0x00000248 __vector_11 @@ -381,7 +384,6 @@ END GROUP 0x00000248 __vector_94 0x00000248 __vector_126 0x00000248 __vector_8 - 0x00000248 __vector_26 0x00000248 __vector_48 0x00000248 __vector_124 0x00000248 __vector_116 @@ -405,60 +407,71 @@ END GROUP 0x00000248 __vector_120 0x0000024c . = ALIGN (0x2) *(.text.*) - .text.nointerrupts - 0x0000024c 0xc main.o - 0x0000024c nointerrupts - .text.interrupts - 0x00000258 0xc main.o - 0x00000258 interrupts - .text.main 0x00000264 0xa0 main.o - 0x00000264 main + .text.main 0x0000024c 0xcc main.o + 0x0000024c main + .text.handoff 0x00000318 0x3c main.o + 0x00000318 handoff + .text.__vector_25 + 0x00000354 0x6e main.o + 0x00000354 __vector_25 + .text.__vector_26 + 0x000003c2 0x6e main.o + 0x000003c2 __vector_26 .text.__vector_28 - 0x00000304 0x6e main.o - 0x00000304 __vector_28 + 0x00000430 0x6e main.o + 0x00000430 __vector_28 .text.__vector_29 - 0x00000372 0x6e main.o - 0x00000372 __vector_29 + 0x0000049e 0x6e main.o + 0x0000049e __vector_29 .text.__vector_88 - 0x000003e0 0x6e main.o - 0x000003e0 __vector_88 + 0x0000050c 0x6e main.o + 0x0000050c __vector_88 .text.__vector_89 - 0x0000044e 0x6e main.o - 0x0000044e __vector_89 - .text.rb_new 0x000004bc 0x64 ringbuffer.o - 0x000004bc rb_new + 0x0000057a 0x6e main.o + 0x0000057a __vector_89 + .text.__vector_92 + 0x000005e8 0x6e main.o + 0x000005e8 __vector_92 + .text.rb_new 0x00000656 0x64 ringbuffer.o + 0x00000656 rb_new .text.rb_write - 0x00000520 0x36 ringbuffer.o - 0x00000520 rb_write - .text.rb_read 0x00000556 0x3e ringbuffer.o - 0x00000556 rb_read - .text.tp_new 0x00000594 0x6c tinyport.o - 0x00000594 tp_new - .text.tp_init 0x00000600 0x6c tinyport.o - 0x00000600 tp_init + 0x000006ba 0x30 ringbuffer.o + 0x000006ba rb_write + .text.rb_read 0x000006ea 0x36 ringbuffer.o + 0x000006ea rb_read + .text.rb_hasdata + 0x00000720 0x10 ringbuffer.o + 0x00000720 rb_hasdata + .text.tp_new 0x00000730 0x6e tinyport.o + 0x00000730 tp_new + .text.tp_init 0x0000079e 0x6c tinyport.o + 0x0000079e tp_init + .text.tp_statflash + 0x0000080a 0x12 tinyport.o + 0x0000080a tp_statflash .text.tp_rxISR - 0x0000066c 0x1e tinyport.o - 0x0000066c tp_rxISR - .text.tp_read 0x0000068a 0x28 tinyport.o - 0x0000068a tp_read + 0x0000081c 0x52 tinyport.o + 0x0000081c tp_rxISR + .text.tp_read 0x0000086e 0xa tinyport.o + 0x0000086e tp_read .text.tp_setTxStatus - 0x000006b2 0x40 tinyport.o - 0x000006b2 tp_setTxStatus + 0x00000878 0x34 tinyport.o + 0x00000878 tp_setTxStatus .text.tp_txISR - 0x000006f2 0x42 tinyport.o - 0x000006f2 tp_txISR + 0x000008ac 0x40 tinyport.o + 0x000008ac tp_txISR .text.tp_write - 0x00000734 0x1c tinyport.o - 0x00000734 tp_write + 0x000008ec 0x1c tinyport.o + 0x000008ec tp_write .text.avr-libc - 0x00000750 0x242 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) - 0x00000750 malloc - 0x00000880 free - 0x00000992 . = ALIGN (0x2) + 0x00000908 0x242 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) + 0x00000908 malloc + 0x00000a38 free + 0x00000b4a . = ALIGN (0x2) *(.fini9) - .fini9 0x00000992 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) - 0x00000992 _exit - 0x00000992 exit + .fini9 0x00000b4a 0x0 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) + 0x00000b4a _exit + 0x00000b4a exit *(.fini9) *(.fini8) *(.fini8) @@ -477,11 +490,11 @@ END GROUP *(.fini1) *(.fini1) *(.fini0) - .fini0 0x00000992 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) + .fini0 0x00000b4a 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/avrxmega7\libgcc.a(_exit.o) *(.fini0) - 0x00000996 _etext = . + 0x00000b4e _etext = . -.data 0x00802000 0x6 load address 0x00000996 +.data 0x00802000 0x6 load address 0x00000b4e 0x00802000 PROVIDE (__data_start, .) *(.data) .data 0x00802000 0x6 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) @@ -496,27 +509,29 @@ END GROUP 0x00802006 _edata = . 0x00802006 PROVIDE (__data_end, .) -.bss 0x00802006 0x8 +.bss 0x00802006 0xc 0x00802006 PROVIDE (__bss_start, .) *(.bss) *(.bss*) *(COMMON) - COMMON 0x00802006 0x4 main.o + COMMON 0x00802006 0x8 main.o 0x00802006 tp2 - 0x00802008 tp3 - COMMON 0x0080200a 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) - 0x0080200a __brkval - 0x0080200c __flp - 0x0080200e PROVIDE (__bss_end, .) - 0x00000996 __data_load_start = LOADADDR (.data) - 0x0000099c __data_load_end = (__data_load_start + SIZEOF (.data)) - -.noinit 0x0080200e 0x0 + 0x00802008 tp1 + 0x0080200a tp4 + 0x0080200c tp3 + COMMON 0x0080200e 0x4 c:/program files (x86)/atmel/studio/7.0/toolchain/avr8/avr8-gnu-toolchain/bin/../lib/gcc/avr/5.4.0/../../../../avr/lib/avrxmega7\libc.a(malloc.o) + 0x0080200e __brkval + 0x00802010 __flp + 0x00802012 PROVIDE (__bss_end, .) + 0x00000b4e __data_load_start = LOADADDR (.data) + 0x00000b54 __data_load_end = (__data_load_start + SIZEOF (.data)) + +.noinit 0x00802012 0x0 [!provide] PROVIDE (__noinit_start, .) *(.noinit*) [!provide] PROVIDE (__noinit_end, .) - 0x0080200e _end = . - 0x0080200e PROVIDE (__heap_start, .) + 0x00802012 _end = . + 0x00802012 PROVIDE (__heap_start, .) .eeprom 0x00810000 0x0 *(.eeprom*) @@ -583,60 +598,60 @@ END GROUP .debug_sfnames *(.debug_sfnames) -.debug_aranges 0x00000000 0x110 +.debug_aranges 0x00000000 0x138 *(.debug_aranges) .debug_aranges - 0x00000000 0x58 main.o + 0x00000000 0x80 main.o .debug_aranges - 0x00000058 0x40 ringbuffer.o + 0x00000080 0x40 ringbuffer.o .debug_aranges - 0x00000098 0x78 tinyport.o + 0x000000c0 0x78 tinyport.o .debug_pubnames *(.debug_pubnames) -.debug_info 0x00000000 0x3e75 +.debug_info 0x00000000 0x4072 *(.debug_info .gnu.linkonce.wi.*) .debug_info 0x00000000 0x284f C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o - .debug_info 0x0000284f 0xa0b main.o - .debug_info 0x0000325a 0x281 ringbuffer.o - .debug_info 0x000034db 0x99a tinyport.o + .debug_info 0x0000284f 0xc39 main.o + .debug_info 0x00003488 0x281 ringbuffer.o + .debug_info 0x00003709 0x969 tinyport.o -.debug_abbrev 0x00000000 0x2bca +.debug_abbrev 0x00000000 0x2c94 *(.debug_abbrev) .debug_abbrev 0x00000000 0x262c C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o - .debug_abbrev 0x0000262c 0x1ac main.o - .debug_abbrev 0x000027d8 0x1a9 ringbuffer.o - .debug_abbrev 0x00002981 0x249 tinyport.o + .debug_abbrev 0x0000262c 0x246 main.o + .debug_abbrev 0x00002872 0x1a9 ringbuffer.o + .debug_abbrev 0x00002a1b 0x279 tinyport.o -.debug_line 0x00000000 0xb13 +.debug_line 0x00000000 0xc49 *(.debug_line .debug_line.* .debug_line_end) .debug_line 0x00000000 0x3b5 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o - .debug_line 0x000003b5 0x2a3 main.o - .debug_line 0x00000658 0x18b ringbuffer.o - .debug_line 0x000007e3 0x330 tinyport.o + .debug_line 0x000003b5 0x3af main.o + .debug_line 0x00000764 0x18b ringbuffer.o + .debug_line 0x000008ef 0x35a tinyport.o -.debug_frame 0x00000000 0x38c +.debug_frame 0x00000000 0x4b8 *(.debug_frame) - .debug_frame 0x00000000 0x1c0 main.o - .debug_frame 0x000001c0 0x90 ringbuffer.o - .debug_frame 0x00000250 0x13c tinyport.o + .debug_frame 0x00000000 0x2f8 main.o + .debug_frame 0x000002f8 0x90 ringbuffer.o + .debug_frame 0x00000388 0x130 tinyport.o -.debug_str 0x00000000 0x2311 +.debug_str 0x00000000 0x23a2 *(.debug_str) .debug_str 0x00000000 0x1aa8 C:/Program Files (x86)/Atmel/Studio/7.0/Packs/atmel/XMEGAA_DFP/1.1.68/gcc/dev/atxmega128a4u/avrxmega7/crtatxmega128a4u.o - .debug_str 0x00001aa8 0x52b main.o - 0x586 (size before relaxing) - .debug_str 0x00001fd3 0x5f ringbuffer.o + .debug_str 0x00001aa8 0x5c9 main.o + 0x623 (size before relaxing) + .debug_str 0x00002071 0x5f ringbuffer.o 0x218 (size before relaxing) - .debug_str 0x00002032 0x2df tinyport.o - 0x666 (size before relaxing) + .debug_str 0x000020d0 0x2d2 tinyport.o + 0x680 (size before relaxing) -.debug_loc 0x00000000 0xb72 +.debug_loc 0x00000000 0xd9c *(.debug_loc) - .debug_loc 0x00000000 0x3af main.o - .debug_loc 0x000003af 0x1cd ringbuffer.o - .debug_loc 0x0000057c 0x5f6 tinyport.o + .debug_loc 0x00000000 0x6ce main.o + .debug_loc 0x000006ce 0x1cd ringbuffer.o + .debug_loc 0x0000089b 0x501 tinyport.o .debug_macinfo *(.debug_macinfo) @@ -656,11 +671,11 @@ END GROUP .debug_pubtypes *(.debug_pubtypes) -.debug_ranges 0x00000000 0xe0 +.debug_ranges 0x00000000 0x108 *(.debug_ranges) - .debug_ranges 0x00000000 0x48 main.o - .debug_ranges 0x00000048 0x30 ringbuffer.o - .debug_ranges 0x00000078 0x68 tinyport.o + .debug_ranges 0x00000000 0x70 main.o + .debug_ranges 0x00000070 0x30 ringbuffer.o + .debug_ranges 0x000000a0 0x68 tinyport.o .debug_macro *(.debug_macro) diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.srec b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.srec index d745ab0cde52baf3fb8cff85d0ba192b630f349a..4dfc915df0fd95df68b579b7f2c6e5775b6f8df6 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.srec +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/atxmega-a4u-wakeup.srec @@ -5,8 +5,8 @@ S11300200C9424010C9424010C9424010C942401B8 S11300300C9424010C9424010C9424010C942401A8 S11300400C9424010C9424010C9424010C94240198 S11300500C9424010C9424010C9424010C94240188 -S11300600C9424010C9424010C9424010C94240178 -S11300700C9482010C94B9010C9424010C94240175 +S11300600C9424010C94AA010C94E1010C94240135 +S11300700C9418020C944F020C9424010C94240147 S11300800C9424010C9424010C9424010C94240158 S11300900C9424010C9424010C9424010C94240148 S11300A00C9424010C9424010C9424010C94240138 @@ -21,8 +21,8 @@ S11301200C9424010C9424010C9424010C942401B7 S11301300C9424010C9424010C9424010C942401A7 S11301400C9424010C9424010C9424010C94240197 S11301500C9424010C9424010C9424010C94240187 -S11301600C94F0010C9427020C9424010C942401A7 -S11301700C9424010C9424010C9424010C94240167 +S11301600C9486020C94BD020C9424010C9424017A +S11301700C94F4020C9424010C9424010C94240196 S11301800C9424010C9424010C9424010C94240157 S11301900C9424010C9424010C9424010C94240147 S11301A00C9424010C9424010C9424010C94240137 @@ -32,126 +32,153 @@ S11301D00C9424010C9424010C9424010C94240107 S11301E00C9424010C9424010C9424010C942401F7 S11301F00C9424010C9424010C94240111241FBE9A S1130200CFEFCDBFDFE3DEBF00E00CBF18BE19BEE9 -S11302101ABE1BBE20E2A6E0B0E201C01D92AE30C1 -S1130220B207E1F710E2A0E0B0E2E6E9F9E000E0AD -S11302300BBF02C007900D92A630B107D9F71BBEC1 -S11302400E9432010C94C9040C940000E0EAF0E02E -S113025082818FEF82830895E0EAF0E082818760F3 -S113026082830895E0E5F0E088E1858380E180837E -S1130270818184FFFDCF88ED84BF84E080934000BA -S113028000E220E840E460E476E080EB98E00E943D -S1130290CA0280930620909307200E94000300E185 -S11302A028E044E060E676E080EA99E00E94CA0231 -S11302B080930820909309200E94000380E180939A -S11302C04106E0EAF0E0828187608283789400E46A -S11302D016E0C0E10E942601E0910620F09107207B -S11302E08585882351F0CF010E944503682F8091B2 -S11302F00820909109200E949A03F801C7830E9464 -S11303002C01E8CF1F920F920FB60F92112408B65A -S11303100F9218BE09B60F9219BE0BB60F921BBEF0 -S11303202F933F934F935F936F937F938F939F93F9 -S1130330AF93BF93EF93FF93809106209091072092 -S11303400E943603FF91EF91BF91AF919F918F91DE -S11303507F916F915F914F913F912F910F900BBEC1 -S11303600F9009BE0F9008BE0F900FBE0F901F9004 -S113037018951F920F920FB60F92112408B60F9280 -S113038018BE09B60F9219BE0BB60F921BBE2F935F -S11303903F934F935F936F937F938F939F93AF9309 -S11303A0BF93EF93FF9380910620909107200E94C2 -S11303B07903FF91EF91BF91AF919F918F917F91BD -S11303C06F915F914F913F912F910F900BBE0F90C2 -S11303D009BE0F9008BE0F900FBE0F901F90189586 -S11303E01F920F920FB60F92112408B60F9218BEE7 -S11303F009B60F9219BE0BB60F921BBE2F933F93F3 -S11304004F935F936F937F938F939F93AF93BF9318 -S1130410EF93FF9380910820909109200E94360366 -S1130420FF91EF91BF91AF919F918F917F916F91C8 -S11304305F914F913F912F910F900BBE0F9009BE8A -S11304400F9008BE0F900FBE0F901F9018951F922B -S11304500F920FB60F92112408B60F9218BE09B668 -S11304600F9219BE0BB60F921BBE2F933F934F935F -S11304705F936F937F938F939F93AF93BF93EF9308 -S1130480FF9380910820909109200E947903FF91A5 -S1130490EF91BF91AF919F918F917F916F915F91F8 -S11304A04F913F912F910F900BBE0F9009BE0F906B -S11304B008BE0F900FBE0F901F901895CF92DF9239 -S11304C0EF92FF92CF93DF936B017C0188E090E081 -S11304D00E94A803EC01892BD1F0D701C601019633 -S11304E0A11DB11D8C839D83AE83BF830E94A8038D -S11304F088839983892B29F01A821B828C2F9D2F44 -S113050008C0CE010E94400480E090E002C080E078 -S113051090E0DF91CF91FF90EF90DF90CF9008951E -S1130520FC018281A081B181A80FB11D6C9342812D -S11305304F5F428350E060E070E084819581A68142 -S1130540B7810197A109B109481759076A077B07C1 -S113055008F0128208950F931F93FC014381A08138 -S1130560B181A40FB11D8C914F5F438350E060E0D3 -S113057070E0048115812681378101501109210918 -S11305803109401751076207730708F013821F915E -S11305900F910895AF92BF92CF92DF92FF920F9383 -S11305A01F93CF93DF935C016B01F42E122F8EE027 -S11305B090E00E94A803EC01A882B982CA82DB827F -S11305C0FC821D830E8360E170E080E090E00E9475 -S11305D05E028F83988760E170E080E090E00E9483 -S11305E05E0289879A871C861D86CE01DF91CF9192 -S11305F01F910F91FF90DF90CF90BF90AF9008951F -S1130600FC01A081B1818BE916968C93A081B18104 -S113061017961C92A081B18113968C9113978061D7 -S113062013968C93A081B18188E114968C93A08158 -S1130630B18183E015968C93A281B381858115964F -S11306408C93A281B381858111968C93A281B3810D -S1130650848112968C93A281B381848116968C93A3 -S1130660A281B381868111968C930895CF93DF93F1 -S1130670EC01E881F98160818F8198850E94900264 -S113068081E08D87DF91CF910895CF93DF93EC01C3 -S11306908F8198850E94AB02EF81F8852381928136 -S11306A0291302C01D8602C091E09D87DF91CF917E -S11306B00895FC016487662371F0A081B1811396CB -S11306C08C911397816013968C93A281B381868158 -S11306D015968C930895A081B18113968C911397EC -S11306E08C7F13968C93A281B381868116968C930A -S11306F008950F931F93CF93DF93EC010881198121 -S113070089859A850E94AB02F8018083E985FA8580 -S113071093818281981305C060E0CE010E94590341 -S113072004C061E0CE010E945903DF91CF911F9173 -S11307300F910895CF93DF93EC0189859A850E94E8 -S1130740900261E0CE010E945903DF91CF91089598 -S11307500F931F93CF93DF938230910510F482E0BF -S113076090E0E0910C20F0910D2020E030E0A0E03A -S1130770B0E0309719F1408151810281138148170B -S11307805907C8F08417950769F4109731F0129649 -S11307900C93129713961C9327C000930C2010936C -S11307A00D2022C02115310519F04217530718F402 -S11307B09A01BD01EF01DF01F801DBCF21153105FD -S11307C0F9F0281B390B2430310580F48A819B8190 -S11307D06115710521F0FB018283938304C080932A -S11307E00C2090930D20FE01329644C0FE01E20FCE -S11307F0F31F8193919322503109288339833AC09E -S113080020910A2030910B20232B41F420910220C7 -S11308103091032020930A2030930B202091002054 -S1130820309101202115310541F42DB73EB7409197 -S1130830042050910520241B350BE0910A20F091EF -S11308400B20E217F307A0F42E1B3F0B28173907E0 -S113085078F0AC014E5F5F4F2417350748F04E0F18 -S11308605F1F40930A2050930B208193919302C001 -S1130870E0E0F0E0CF01DF91CF911F910F91089557 -S1130880CF93DF93009709F481C0FC013297128261 -S11308901382A0910C20B0910D20109781F4208137 -S11308A03181820F931F20910A2030910B20281749 -S11308B0390751F5E0930A20F0930B2067C0ED014E -S11308C020E030E0CE17DF0740F44A815B819E01CF -S11308D041155105F1F0EA01F5CFC283D38340817C -S11308E05181840F951FC817D90759F488819981BC -S11308F0840F951F0296808391838A819B818283D2 -S113090093832115310529F4E0930C20F0930D20F5 -S11309103DC0E901EA83FB8349915991C40FD51F76 -S1130920EC17FD0761F480819181840F951F029675 -S1130930E90188839983828193818A839B83E0E0A0 -S1130940F0E012968D919C911397009719F0FD0198 -S1130950DC01F7CF8D919C9111979D012E5F3F4F44 -S1130960820F931F20910A2030910B2028173907FA -S113097069F4309729F410920C2010920D2002C0D3 -S113098012821382A0930A20B0930B20DF91CF919F -S10909900895F894FFCF66 -S109099600000E20200009 +S11302101ABE1BBE10E2A0E0B0E2EEE4FBE000E098 +S11302200BBF02C007900D92A630B107D9F71BBED1 +S113023020E2A6E0B0E201C01D92A231B207E1F7CC +S11302400E9426010C94A5050C940000E0E5F0E062 +S113025088E1858380E18083818184FFFDCF88EDFF +S113026084BF84E08093400000E128E044E060E43F +S113027076E080EA98E00E949803809308209093A7 +S113028009200E94CF0300E220E840E460E476E025 +S113029080EB98E00E9498038093062090930720B7 +S11302A00E94CF0300E128E044E060E676E080EAC3 +S11302B099E00E94980380930C2090930D200E9453 +S11302C0CF0300E220E840E460E676E080EB99E0CA +S11302D00E94980380930A2090930B200E94CF03DE +S11302E0E0EAF0E08281876082837894809108203C +S11302F0909109200E94050480910C2090910D207A +S11303000E9405042FE78AE196E021508040904046 +S1130310E1F700C00000EACFCF93DF931F92CDB77F +S1130320DEB7BE016F5F7F4F0E9437046981809101 +S11303300A2090910B200E9476042FE78AE196E030 +S1130340215080409040E1F700C000000F90DF9101 +S1130350CF9108951F920F920FB60F92112408B6F1 +S11303600F9218BE09B60F9219BE0BB60F921BBEA0 +S11303702F933F934F935F936F937F938F939F93A9 +S1130380AF93BF93EF93FF9380910820909109203E +S11303900E940E04FF91EF91BF91AF919F918F91B5 +S11303A07F916F915F914F913F912F910F900BBE71 +S11303B00F9009BE0F9008BE0F900FBE0F901F90B4 +S11303C018951F920F920FB60F92112408B60F9230 +S11303D018BE09B60F9219BE0BB60F921BBE2F930F +S11303E03F934F935F936F937F938F939F93AF93B9 +S11303F0BF93EF93FF9380910820909109200E946E +S11304005604FF91EF91BF91AF919F918F917F918E +S11304106F915F914F913F912F910F900BBE0F9071 +S113042009BE0F9008BE0F900FBE0F901F90189535 +S11304301F920F920FB60F92112408B60F9218BE96 +S113044009B60F9219BE0BB60F921BBE2F933F93A2 +S11304504F935F936F937F938F939F93AF93BF93C8 +S1130460EF93FF9380910620909107200E940E0441 +S1130470FF91EF91BF91AF919F918F917F916F9178 +S11304805F914F913F912F910F900BBE0F9009BE3A +S11304900F9008BE0F900FBE0F901F9018951F92DB +S11304A00F920FB60F92112408B60F9218BE09B618 +S11304B00F9219BE0BB60F921BBE2F933F934F930F +S11304C05F936F937F938F939F93AF93BF93EF93B8 +S11304D0FF9380910620909107200E945604FF917B +S11304E0EF91BF91AF919F918F917F916F915F91A8 +S11304F04F913F912F910F900BBE0F9009BE0F901B +S113050008BE0F900FBE0F901F9018951F920F9268 +S11305100FB60F92112408B60F9218BE09B60F92A7 +S113052019BE0BB60F921BBE2F933F934F935F934D +S11305306F937F938F939F93AF93BF93EF93FF93A7 +S113054080910C2090910D200E940E04FF91EF9158 +S1130550BF91AF919F918F917F916F915F914F91D7 +S11305603F912F910F900BBE0F9009BE0F9008BEC4 +S11305700F900FBE0F901F9018951F920F920FB6F9 +S11305800F92112408B60F9218BE09B60F9219BE25 +S11305900BB60F921BBE2F933F934F935F936F93B2 +S11305A07F938F939F93AF93BF93EF93FF93809128 +S11305B00C2090910D200E945604FF91EF91BF9161 +S11305C0AF919F918F917F916F915F914F913F91E7 +S11305D02F910F900BBE0F9009BE0F9008BE0F9085 +S11305E00FBE0F901F9018951F920F920FB60F9287 +S11305F0112408B60F9218BE09B60F9219BE0BB695 +S11306000F921BBE2F933F934F935F936F937F93F0 +S11306108F939F93AF93BF93EF93FF9380910A209F +S113062090910B200E945604FF91EF91BF91AF91DE +S11306309F918F917F916F915F914F913F912F91F6 +S11306400F900BBE0F9009BE0F9008BE0F900FBE07 +S11306500F901F901895CF92DF92EF92FF92CF9355 +S1130660DF936B017C0188E090E00E948404EC013C +S1130670892BD1F0D701C6010196A11DB11D8C8330 +S11306809D83AE83BF830E94840488839983892BCE +S113069029F01A821B828C2F9D2F08C0CE010E9444 +S11306A01C0580E090E002C080E090E0DF91CF91F3 +S11306B0FF90EF90DF90CF900895FC018281A0819C +S11306C0B181A80FB11D6C9342814F5F428350E00A +S11306D060E070E084819581A681B781481759074D +S11306E06A077B0708F0128208950F931F93FC0199 +S11306F04381A081B181A40FB11D8C914F5F4383CD +S113070050E060E070E00481158126813781401754 +S113071051076207730708F013821F910F91089520 +S1130720FC0181E023819281291301C080E00895B6 +S1130730AF92BF92CF92DF92FF920F931F93CF930A +S1130740DF935C016B01F42E122F8EE090E00E9487 +S11307508404EC01A882B982CA82DB82FC821D83F4 +S11307600E8360E170E080E090E00E942B038F83B1 +S1130770988760E170E080E090E00E942B03898715 +S11307809A871B861C861D86CE01DF91CF911F910F +S11307900F91FF90DF90CF90BF90AF900895FC0130 +S11307A0A081B1818BE916968C93A081B1811796B3 +S11307B01C92A081B18113968C911397806113963A +S11307C08C93A081B18188E114968C93A081B1812E +S11307D083E015968C93A281B381858115968C93C1 +S11307E0A281B381858111968C93A281B381848186 +S11307F012968C93A281B381848116968C93A281E4 +S1130800B381868111968C930895DC011296ED9143 +S1130810FC91139716968C9187830895CF93DF9359 +S1130820EC01EA81FB818E818783E881F9819081E3 +S11308308D85882319F0813031F011C09E3779F409 +S113084081E08D870CC09E3729F41D86CE010E945D +S11308508C0105C060818F8198850E945D038C8521 +S1130860813011F081E08C87DF91CF91089581E58B +S1130870FB01808380E00895FC0183858617A9F03D +S1130880662351F0A081B18113968C9113978160F6 +S113089013968C9363870895A081B18113968C91EC +S11308A013978C7F13968C93138608950F931F933D +S11308B0CF93DF93EC01EA81FB818E8187830881EA +S11308C0198189859A850E947503F8018083898539 +S11308D09A850E949003811104C060E0CE010E94B9 +S11308E03C04DF91CF911F910F910895CF93DF9333 +S11308F0EC0189859A850E945D0361E0CE010E9426 +S11309003C04DF91CF9108950F931F93CF93DF930E +S11309108230910510F482E090E0E0911020F09193 +S1130920112020E030E0A0E0B0E0309719F14081E0 +S113093051810281138148175907C8F0841795071C +S113094069F4109731F012960C93129713961C9336 +S113095027C0009310201093112022C021153105C7 +S113096019F04217530718F49A01BD01EF01DF0192 +S1130970F801DBCF21153105F9F0281B390B2430A0 +S1130980310580F48A819B816115710521F0FB0199 +S11309908283938304C08093102090931120FE01DE +S11309A0329644C0FE01E20FF31F819391932250CB +S11309B03109288339833AC020910E2030910F20C9 +S11309C0232B41F4209102203091032020930E2008 +S11309D030930F2020910020309101202115310502 +S11309E041F42DB73EB74091042050910520241BBB +S11309F0350BE0910E20F0910F20E217F307A0F4DD +S1130A002E1B3F0B2817390778F0AC014E5F5F4F60 +S1130A102417350748F04E0F5F1F40930E20509364 +S1130A200F208193919302C0E0E0F0E0CF01DF91C9 +S1130A30CF911F910F910895CF93DF93009709F4FD +S1130A4081C0FC01329712821382A0911020B091D0 +S1130A501120109781F420813181820F931F2091FE +S1130A600E2030910F202817390751F5E0930E20FE +S1130A70F0930F2067C0ED0120E030E0CE17DF07D0 +S1130A8040F44A815B819E0141155105F1F0EA0170 +S1130A90F5CFC283D38340815181840F951FC8173A +S1130AA0D90759F488819981840F951F0296808310 +S1130AB091838A819B81828393832115310529F453 +S1130AC0E0931020F09311203DC0E901EA83FB83F9 +S1130AD049915991C40FD51FEC17FD0761F480812A +S1130AE09181840F951F0296E901888399838281FD +S1130AF093818A839B83E0E0F0E012968D919C9130 +S1130B001397009719F0FD01DC01F7CF8D919C91AB +S1130B1011979D012E5F3F4F820F931F20910E204E +S1130B2030910F202817390769F4309729F410926F +S1130B3010201092112002C012821382A0930E2062 +S1110B40B0930F20DF91CF910895F894FFCF6A +S1090B4E0000122020004B S9030000FC diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/main.o b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/main.o index 6419e839941a5f6067511c21370b9a1317b692e6..2dec92831b79c6032e0501569bfcf8b3b89a25e7 100644 Binary files a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/main.o and b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/main.o differ diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/ringbuffer.o b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/ringbuffer.o index 165975ab8dbc898911e08465c64ff29b98a9cf55..3a03d39dbcc451a5647012b7257d7ecdd828c2a4 100644 Binary files a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/ringbuffer.o and b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/ringbuffer.o differ diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/tinyport.o b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/tinyport.o index c451e82486525fd79bf00fc17ca45bfcb7cf1291..6f62e848cd04b7d3cf3ec7ae0400c17907c0633c 100644 Binary files a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/tinyport.o and b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/Debug/tinyport.o differ diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/atxmega-a4u-wakeup.cproj b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/atxmega-a4u-wakeup.cproj index c7ead8a23ed6084e891d90b268693309fdaa99cf..c1a339cd3ede30c1855dcb9697270ae99491873a 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/atxmega-a4u-wakeup.cproj +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/atxmega-a4u-wakeup.cproj @@ -96,41 +96,41 @@ <PropertyGroup Condition=" '$(Configuration)' == 'Debug' "> <ToolchainSettings> <AvrGcc> - <avrgcc.common.Device>-mmcu=atxmega128a4u -B "%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\gcc\dev\atxmega128a4u"</avrgcc.common.Device> - <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> - <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> - <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> - <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> - <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> - <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> - <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> - <avrgcc.compiler.symbols.DefSymbols> - <ListValues> - <Value>DEBUG</Value> - </ListValues> - </avrgcc.compiler.symbols.DefSymbols> - <avrgcc.compiler.directories.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\include</Value> - </ListValues> - </avrgcc.compiler.directories.IncludePaths> - <avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level> - <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> - <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> - <avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel> - <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> - <avrgcc.linker.libraries.Libraries> - <ListValues> - <Value>libm</Value> - </ListValues> - </avrgcc.linker.libraries.Libraries> - <avrgcc.assembler.general.IncludePaths> - <ListValues> - <Value>%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\include</Value> - </ListValues> - </avrgcc.assembler.general.IncludePaths> - <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> -</AvrGcc> + <avrgcc.common.Device>-mmcu=atxmega128a4u -B "%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\gcc\dev\atxmega128a4u"</avrgcc.common.Device> + <avrgcc.common.outputfiles.hex>True</avrgcc.common.outputfiles.hex> + <avrgcc.common.outputfiles.lss>True</avrgcc.common.outputfiles.lss> + <avrgcc.common.outputfiles.eep>True</avrgcc.common.outputfiles.eep> + <avrgcc.common.outputfiles.srec>True</avrgcc.common.outputfiles.srec> + <avrgcc.common.outputfiles.usersignatures>False</avrgcc.common.outputfiles.usersignatures> + <avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned>True</avrgcc.compiler.general.ChangeDefaultCharTypeUnsigned> + <avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned>True</avrgcc.compiler.general.ChangeDefaultBitFieldUnsigned> + <avrgcc.compiler.symbols.DefSymbols> + <ListValues> + <Value>DEBUG</Value> + </ListValues> + </avrgcc.compiler.symbols.DefSymbols> + <avrgcc.compiler.directories.IncludePaths> + <ListValues> + <Value>%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\include</Value> + </ListValues> + </avrgcc.compiler.directories.IncludePaths> + <avrgcc.compiler.optimization.level>Optimize (-O1)</avrgcc.compiler.optimization.level> + <avrgcc.compiler.optimization.PackStructureMembers>True</avrgcc.compiler.optimization.PackStructureMembers> + <avrgcc.compiler.optimization.AllocateBytesNeededForEnum>True</avrgcc.compiler.optimization.AllocateBytesNeededForEnum> + <avrgcc.compiler.optimization.DebugLevel>Default (-g2)</avrgcc.compiler.optimization.DebugLevel> + <avrgcc.compiler.warnings.AllWarnings>True</avrgcc.compiler.warnings.AllWarnings> + <avrgcc.linker.libraries.Libraries> + <ListValues> + <Value>libm</Value> + </ListValues> + </avrgcc.linker.libraries.Libraries> + <avrgcc.assembler.general.IncludePaths> + <ListValues> + <Value>%24(PackRepoDir)\atmel\XMEGAA_DFP\1.1.68\include</Value> + </ListValues> + </avrgcc.assembler.general.IncludePaths> + <avrgcc.assembler.debugging.DebugLevel>Default (-Wa,-g)</avrgcc.assembler.debugging.DebugLevel> + </AvrGcc> </ToolchainSettings> </PropertyGroup> <ItemGroup> diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/main.c b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/main.c index 3a8be41a459371ec508ecd5eb15deaffb7562daf..6cd195a5fe7ecd6cc21cba82cfd3288b1bc4afc9 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/main.c +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/main.c @@ -22,8 +22,10 @@ #include "ringbuffer.h" #include "tinyport.h" +tinyport_t tp1; //power, at the moment tinyport_t tp2; -tinyport_t tp3; +tinyport_t tp3; //nhat used at the moment +tinyport_t tp4; int main(void){ // Neil: overclocking (rad) @@ -34,30 +36,65 @@ int main(void){ CLK.CTRL = CLK_SCLKSEL_PLL_gc; // switch to PLL // uart, port, rx, tx, stat + + tp1 = tp_new(&USARTC0, &PORTC, PIN2_bm, PIN3_bm, PIN4_bm); + tp_init(tp1); + tp2 = tp_new(&USARTC1, &PORTC, PIN6_bm, PIN7_bm, PIN5_bm); tp_init(tp2); tp3 = tp_new(&USARTD0, &PORTD, PIN2_bm, PIN3_bm, PIN4_bm); tp_init(tp3); - PORTC.DIRSET = PIN4_bm; - + tp4 = tp_new(&USARTD1, &PORTD, PIN6_bm, PIN7_bm, PIN5_bm); + tp_init(tp4); + + // system interrupt setup (allow low level interrupts) PMIC.CTRL |= PMIC_LOLVLEN_bm | PMIC_MEDLVLEN_bm | PMIC_HILVLEN_bm; // globally enable interrupts sei(); - + while(1){ + + tp_statflash(tp1); + tp_statflash(tp3); + _delay_ms(100); + /* + // the below only works when bounded by nointerrupts() and interrupts(); nointerrupts(); - // fast pass - TODO: use case: in rx interrupt, not this forever loop if(tp2->rxstate){ uint8_t data = tp_read(tp2); - tp_write(tp3, data); + tp_write(tp4, data); } - PORTC.OUTTGL = PIN4_bm; interrupts(); + */ + } +} + +uint8_t pcount = 0; +uint8_t psize = 12; + +// passing 2 -> 4 + +void handoff(tinyport_t tp_from){ // puts data in 'core' of system + // dirty pass + uint8_t data; + //while(tp_read(tp_from, &data)){ + tp_read(tp_from, &data); + tp_write(tp4, data); + _delay_ms(100); + //} + /* + //uint8_t data = 0x01; + pcount ++; + // would do port selection for pass + if(pcount > psize){ + tp_write(tp3, data); + pcount = 0; } + */ } /* @@ -94,6 +131,15 @@ void fakepacket(tinyport_t tp){ } // hookup ISRs to port-abstracted interrupt functions + +ISR(USARTC0_RXC_vect){ + tp_rxISR(tp1); +} + +ISR(USARTC0_DRE_vect){ + tp_txISR(tp1); +} + ISR(USARTC1_RXC_vect){ tp_rxISR(tp2); } @@ -108,4 +154,12 @@ ISR(USARTD0_RXC_vect){ ISR(USARTD0_DRE_vect){ tp_txISR(tp3); +} + +IRS(USARTD1_RXC_vect){ + tp_rxISR(tp4); +} + +ISR(USARTD1_DRE_vect){ + tp_txISR(tp4); } \ No newline at end of file diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/ringbuffer.c b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/ringbuffer.c index bc782ba57a2376461a24c014b712249d8511373d..55885f3b1f0f96ce6dbd78619a7ecd3656b1d7aa 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/ringbuffer.c +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/ringbuffer.c @@ -31,11 +31,10 @@ void rb_write(ringbuffer_t rb, uint8_t data){ rb->buf[rb->head] = data; rb->head += 1; - if(rb->head >= rb->size - 1){ + if(rb->head >= rb->size){ rb->head = 0; } // increment head and check wrap - } uint8_t rb_read(ringbuffer_t rb){ @@ -43,7 +42,7 @@ uint8_t rb_read(ringbuffer_t rb){ uint8_t data = rb->buf[rb->tail]; // increment tail and check wrap rb->tail += 1; - if(rb->tail >= rb->size -1){ + if(rb->tail >= rb->size){ rb->tail = 0; } return data; diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.c b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.c index 95dde8cc8494c1845d812b997a4fa186aad5b86b..462bcf4a78dd8aaee5ded34fe4e0ae2fb2f3d5f2 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.c +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.c @@ -20,6 +20,7 @@ tinyport_t tp_new(USART_t *uart, PORT_t *port, uint8_t pinRX_bm, uint8_t pinTX_b tp->rbtx = rb_new(TP_TXBUF_SIZE); tp->txstate = TP_TX_STATE_EMPTY; tp->rxstate = TP_RX_STATE_EMPTY; + tp->pstate = TP_PSTATE_OUTSIDE; return tp; } @@ -74,63 +75,84 @@ void tp_test(tinyport_t tp){ } void tp_rxISR(tinyport_t tp){ // towards a passalong - rb_write(tp->rbrx, tp->uart->DATA); + tp_statflash(tp); + + uint8_t data = tp->uart->DATA; + + switch(tp->pstate){ + + case TP_PSTATE_OUTSIDE: + if(data == 126){ // ~ + tp->pstate = TP_PSTATE_INSIDE; + } else { + // nothing for now, in future catch port-buffer-lengths list + } + break; + + case TP_PSTATE_INSIDE: + if(data == 126){ // ~ + tp->pstate = TP_PSTATE_OUTSIDE; + handoff(tp); + } else { + rb_write(tp->rbrx, tp->uart->DATA); + } + // check for finish + break; + + default: + // heck + break; + } tp_setRxStatus(tp, TP_RX_STATE_HASDATA); // get it + //handoff(tp); } -uint8_t tp_read(tinyport_t tp){ - uint8_t data = rb_read(tp->rbrx); - uint8_t tail = tp->rbrx->tail; - uint8_t head = tp->rbrx->head; - if(tail == head){ +uint8_t tp_read(tinyport_t tp, uint8_t *data){ // TODO: set at pointer, return true if non empty + + *data = 81; // rb_read(tp->rbrx); + return 0; + /* + if(rb_hasdata(tp->rbrx)){ + return 1; + } else { tp_setRxStatus(tp, TP_RX_STATE_EMPTY); - } else { - tp_setRxStatus(tp, TP_RX_STATE_HASDATA); + return 0; } - return data; + */ } void tp_setRxStatus(tinyport_t tp, uint8_t state){ - tp->rxstate = state; - if(state){ + if(state == tp->rxstate){ + // nothing // nothing changes? always listening } else { - // ibid + tp->rxstate = state; } } // https://lost-contact.mit.edu/afs/sur5r.net/service/drivers+doc/Atmel/ATXMEGA/AVR1307/code/doxygen/usart__driver_8c.html#7fdb922f6b858bef8515e23229efd970 void tp_txISR(tinyport_t tp){ + tp_statflash(tp); tp->uart->DATA = rb_read(tp->rbtx); - uint8_t tail = tp->rbtx->tail; - uint8_t head = tp->rbtx->head; - if(tail == head){ - tp_setTxStatus(tp, TP_TX_STATE_EMPTY); - } else { - tp_setTxStatus(tp, TP_TX_STATE_HASDATA); - } - /* - // should b working now, test - if(!(rb_hasdata(tp->rbtx))){ // if buffer empty, turn off DREF interrupt + if(!(rb_hasdata(tp->rbtx))){ // if no data left to tx, tp_setTxStatus(tp, TP_TX_STATE_EMPTY); } - */ - // handle buffer-ready status, enable interrupt } void tp_write(tinyport_t tp, uint8_t data){ rb_write(tp->rbtx, data); - tp_setTxStatus(tp, TP_RX_STATE_HASDATA); + tp_setTxStatus(tp, TP_TX_STATE_TRANSMIT); // available } void tp_setTxStatus(tinyport_t tp, uint8_t state){ - tp->txstate = state; - if(state){ + if(state == tp->txstate){ // if already set, + // do nothing + } else if(state) { // if set to hi - have things to tx tp->uart->CTRLA |= USART_DREINTLVL_LO_gc; // now ready for out transmit - this would happen elsewhere - when there is tx to tx - tp_stathi(tp); - } else { + tp->txstate = state; + } else { // if lo - buffer is empty, donot tx tp->uart->CTRLA = (tp->uart->CTRLA & ~ USART_DREINTLVL_gm) | USART_DREINTLVL_OFF_gc; // turn off interrupt - tp_statlo(tp); + tp->txstate = state; } } \ No newline at end of file diff --git a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.h b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.h index 8ce2d8ca080a92f38c5f42909867514b39c6d2c5..3824b53556132469f57f87173779340b90dcefd8 100644 --- a/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.h +++ b/embedded/atxmega-a4u-wakeup/atxmega-a4u-wakeup/tinyport.h @@ -20,7 +20,10 @@ #define TP_RX_STATE_HASDATA 1 #define TP_TX_STATE_EMPTY 0 -#define TP_TX_STATE_HASDATA 1 +#define TP_TX_STATE_TRANSMIT 1 + +#define TP_PSTATE_OUTSIDE 0 +#define TP_PSTATE_INSIDE 1 typedef struct tinyport_t { USART_t *uart; @@ -30,9 +33,9 @@ typedef struct tinyport_t { uint8_t pinSTAT_bm; ringbuffer_t rbrx; // is pointer-to ringbuffer_t rbtx; // is pointer-to - uint8_t state; uint8_t txstate; uint8_t rxstate; + uint8_t pstate; }; typedef struct tinyport_t *tinyport_t; @@ -47,7 +50,7 @@ void tp_stathi(tinyport_t tp); void tp_test(tinyport_t tp); void tp_rxISR(tinyport_t tp); -uint8_t tp_read(tinyport_t tp); +uint8_t tp_read(tinyport_t tp, uint8_t *data); void tp_setRxStatus(tinyport_t, uint8_t state); void tp_txISR(tinyport_t tp);