Subversion Repositories svnkaklik

Compare Revisions

Regard whitespace Rev 410 → Rev 484

/programy/C/avr/AVRcam/AVRcam.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programy/C/avr/AVRcam/AVRcam.hex
1,270 → 1,272
:1000000063C005C805C87AC079C078C077C076C01B
:1000100000C874C073C0AAC571C070C06FC06EC084
:100020006DC00FC66BC029C6BFC6BEC6BDC6BCC6A6
:10003000BBC6BAC6B9C621C6B7C6B6C6B5C6B4C66B
:10004000B3C6B2C6B1C631C6AFC6AEC6ADC6ACC683
:10005000ABC6AAC6A9C63AC6A7C6A6C6A5C6A4C6A2
:10006000A3C6A2C6A1C63BC69FC69EC69DC69CC6C9
:100070009BC69AC699C654C697C696C695C694C6D8
:1000800093C692C691C690C68FC68EC68DC68CC6C4
:100090008BC68AC689C64DC687C686C685C684C62F
:1000A00083C682C681C612C67FC67EC67DC67CC692
:1000B0007BC67AC679C64EC677C676C675C674C67E
:1000C00073C672C671C662C611241FBECFE5D4E0E6
:1000D000DEBFCDBF10E0A0E6B0E0EEEBF0E102C085
:1000000063C011C811C87AC079C078C077C076C003
:100010000CC874C073C0AFC571C070C06FC06EC073
:100020006DC014C66BC02EC6C1C6C0C6BFC6BEC694
:10003000BDC6BCC6BBC626C6B9C6B8C6B7C6B6C658
:10004000B5C6B4C6B3C636C6B1C6B0C6AFC6AEC670
:10005000ADC6ACC6ABC63EC6A9C6A8C6A7C6A6C690
:10006000A5C6A4C6A3C63FC6A1C6A0C69FC69EC6B7
:100070009DC69CC69BC657C699C698C697C696C6C7
:1000800095C694C693C692C691C690C68FC68EC6B4
:100090008DC68CC68BC650C689C688C687C686C61E
:1000A00085C684C683C616C681C680C67FC67EC680
:1000B0007DC67CC67BC651C679C678C677C676C66D
:1000C00075C674C673C664C611241FBECFE5D4E0DE
:1000D000DEBFCDBF10E0A0E6B0E0E6EDF0E102C08B
:1000E00005900D92A037B107D9F712E0A0E7B0E074
:1000F00001C01D92A43EB107E1F730C091C7089539
:1000F00001C01D92A43EB107E1F730C09DC708952D
:100100008F9A8F9A8A98979887B3807F87BB87B397
:10011000806F87BB84B3807F84BB8EB5887F8EBDA4
:1001200085B78C6085BF85B7836085BF8BB78064DA
:100130008BBF86E083BF85B78F7885BF85B7806822
:1001400085BFE0E0F3E080E3DF01982F1D929A95F0
:10015000E9F7A1E0B0E0182EA0D70895CFE5D4E0EC
:10016000DEBFCDBFCFD6F4D42BD5CADF78947ED6F0
:100170008AD337D288EE93E08AD611D080E090E01F
:100180009DC7F89490917000ECE6F2E0E90FF11D44
:1001900080839F5F9770909370007894089580910A
:1001A0007200882399F080FF07C0F8948E7F8093B7
:1001B00072007894B6D0FFD28091720081FF06C0A1
:1001C000F8948D7F80937200789412D22091710000
:1001D00080917000821719F3F894E22FFF27E459F9
:1001E000FD4F9081822F8F5F87708093710078948C
:1001F000892F9927803131F1813168F48230C9F03B
:10020000833018F4813059F62BC0843031F18830B6
:1002100009F0C5CF1FC0803879F0813820F48032D2
:1002200009F0BDCF14C0813851F0803909F0B7CF43
:100230001CC082E02ED2B3CF80E82BD2B0CF81E8B1
:1002400028D2ADCF80E125D280E175D4A8CF80E25D
:1002500020D2A5CF88E01DD2A2CF84E01AD29FCFB2
:1002600081E069D481E015D29ACF80E964D497CF38
:10015000E9F7A1E0B0E0182EACD70895CFE5D4E0E0
:10016000DEBFCDBFDBD6F9D430D5CADF78948AD6CE
:100170006AD325D288EE93E096D611D080E090E045
:10018000A9C7F89490917000ECE6F2E0E90FF11D38
:1001900080839F5F97709093700078940895CF93B9
:1001A000DF93CCE6D2E080917200882399F080FF43
:1001B00007C0F8948E7F809372007894B2D0DBD21F
:1001C0008091720081FF06C0F8948D7F8093720049
:1001D0007894FCD19091710080917000891719F387
:1001E000F894FE01E90FF11DE081892F8F5F877080
:1001F000809371007894E03129F1E13160F4E230CC
:10020000C1F0E33018F4E13071F62AC0E43029F18E
:10021000E83049F61FC0E03879F0E13820F4E032E8
:1002200009F0C1CF14C0E13851F0E03909F0BBCF7B
:100230001CC082E019D2B7CF80E816D2B4CF81E8D3
:1002400013D2B1CF80E110D280E17AD4ACCF80E27A
:100250000BD2A9CF88E008D2A6CF84E005D2A3CFE5
:1002600081E06ED481E000D29ECF80E969D49BCF3B
:10027000DF92EF92FF920F931F93CF93DF93209122
:1002800060003091610080917300882309F43FC0C1
:10029000E9018AE05CD28091730059D2DD248F811C
:10029000E9018AE043D28091730040D2DD248F814E
:1002A000813069F588818038E1F0803411F481E093
:1002B00019C0803211F482E015C0803111F483E05E
:1002C00011C0883011F484E00DC0843011F485E051
:1002D00009C0823011F486E005C0813011F487E056
:1002E00001C080E01B810C81FD80EE8030D2812F27
:1002F0002ED2802F2CD28F2D2AD28E2D28D2D3947D
:1003000088E0D81611F02896CACF8FEF20D284E06B
:1002E00001C080E01B810C81FD80EE8017D2812F40
:1002F00015D2802F13D28F2D11D28E2D0FD2D394E1
:1003000088E0D81611F02896CACF8FEF07D284E084
:1003100038DFDF91CF911F910F91FF90EF90DF9029
:1003200008952F923F924F925F926F927F928F9299
:100330009F92AF92BF92CF92DF92EF92FF920F9374
:100340001F93CF93DF93CDB7DEB721970FB6F89405
:10035000DEBF0FBECDBF00916000109161008091A3
:100360007400823009F06AC08BE0FCD38091750084
:10037000F9D30F2EFCEBCF2EF1E0DF2EF02D00E0B5
:1003800010E00F2EFCE0EF2EF1E0FF2EF02DF60135
:100390008081898389818F70898389818295807F1B
:1003A00089839981F70180818F70892B8983898165
:1003B000D9D3D8011196FD01E45FFE4F8081898376
:1003C00089818F70898389818295807F89839981D2
:1003D000A454BE4F8C918F70892B89838981C2D39D
:1003E00082E090E0C80ED91E0E5F1F4FE80EF91E86
:1003F000003B110561F68FE0B5D3809175008F5FEA
:1004000080937500883460F010927500109274002B
:1004100089B78B7F89BF60E081E1E9D4EDD4C8C0A2
:1004200080917200826080937200C2C080E2A9DE77
:1004300089B78B7F89BF10927600BAC0813009F0EE
:10044000B7C0F0907600CF2CDD2436010894610807
:100450007108709173000F2EFCEB2F2EF1E03F2EF0
:10046000F02D50E040E061E0EF2CE394F1013081A9
:10047000560F618182E090E0280E391E460F33232B
:1004800009F45CC0643008F459C0D80120E08C91B4
:100490003817C9F5FD0187818130A9F50F2EF6E0E7
:1004A000AF2EBB24F02DAA0EBB1E86819927861580
:1004B000970549F52D010894411C511C8181882420
:1004C0009924689481F88A0E9B1E9281581710F027
:1004D000951740F4481710F0941720F4851798F0FA
:1004E000491788F0F2015083F4014083FD018381B4
:1004F000581708F45383FD018581841708F4458358
:10050000F501F0821BC02F5F283009F44DC018960A
:10051000BECFD80190E0FD018781882321F0189695
:100520009F5F9830C1F73C93FD0151834283538311
:10053000F4824583F68281E087837F5F403B08F445
:1005400095CF70937300C60187709070079701F57F
:10055000D801179640E08C918130A1F4FD013197CC
:100560009081FD0133978081292F3327F901E81B02
:10057000F10933973CF4C601821B930B039714F0E7
:100580001C9271504F5F1896483029F77093730092
:10059000E0927600F0E9EF1609F448CF80917200FE
:1005A00082608093720004C0783008F4B2CFC6CF66
:1005B00021960FB6F894DEBF0FBECDBFDF91CF916D
:1005C0001F910F91FF90EF90DF90CF90BF90AF9071
:1005D0009F908F907F906F905F904F903F902F9063
:1005E000089580E4E8E7F0E011928A95E9F708952C
:1005F00080917400823049F580917500282F220F78
:1006000080EBECEBF1E0982F11929A95E9F7ECE092
:10061000F1E011928A95E9F7829BFECF829B07C099
:10062000FDCF90E0849BFECF849B04C0FDCF2223AE
:10063000C1F705C09150822F8195981799F76CE00A
:1006400071E08CEB91E0C3D40895813039F4849942
:10065000FECF60E073E08CEB91E072D4089580915E
:1006600074008130A9F41092760080917300809319
:1006700077001092730080E4E8E7F0E011928A9529
:10068000E9F7829BFECF60E073E08CEB91E058D4F9
:100690000895843019F1853028F4813009F18230D1
:1006A00041F507C0803899F0813809F1803209F5A9
:1006B00013C061E081E19BD39FD388EE93E0E7D341
:1006C0001092750082E08093740092DF089581E0BB
:1006D00080937400C4DF0895CBDD0895C0DF0895D2
:1006E00080917400882329F084E04BDD08951092F6
:1006F00074000895DC01862F6623C9F0F8946150D8
:100700006F3FA1F0262F44E952E0861B682F62500C
:100710008091BA00FA01E80FF11D9D9190838F5FDF
:100720008F738093BA002150621791F778940895DF
:10073000F8949091BB00E4E9F2E0E90FF11D8081AB
:100740009F5F9F739093BB00789499270895F894C6
:100750009091BA00E4E9F2E0E90FF11D80839F5F18
:100760009F739093BA00789408959091BA00809105
:10077000BB00981741F0DCDFF5D19091BA00809171
:10078000BB009817C1F708950F931F93CF93DF9382
:10079000EC01862F61506F3F49F0162F861B082F02
:1007A00002508991DFD111500117D9F7DF91CF9114
:1007B0001F910F9108959091BA008091BB009817F6
:1007C00011F0B6DFCFD108959091BF00903541F47C
:1007D0008091C000873409F581E08093620048C0B1
:1007E000973439F48091C000863509F51092620083
:1007F0003FC0943441F48091C000863411F583E009
:100800008093620035C0933441F48091C0008235FA
:1008100011F582E0809362002BC0953441F4809101
:10082000C000843511F584E08093620021C09335C7
:1008300041F48091C0008D34C1F486E08093620061
:1008400017C0943441F48091C000843571F485E080
:10085000809362000DC0923541F48091C0008335D1
:1008600021F487E08093620003C089E080936200F6
:1008700083E0EFEBF0E011928A95E9F71092BE0069
:100880001092BD0008951092BF001092C000109207
:10089000C1001092C20080E4E3ECF0E0982F1192C6
:1008A0009A95E9F7E4E9F2E011928A95E9F780E296
:1008B000E4E7F2E011928A95E9F708958FEB90E072
:1008C000B0D39C018F3F910569F060F089E080937F
:1008D00062008091BC00E3ECF0E0E80FF11D8FEFC7
:1008E000808307C08091BC00E3ECF0E0E80FF11DCD
:1008F000208383E0EFEBF0E011928A95E9F7109204
:10090000BE001092BD000895FF920F931F93CF93E6
:10091000DF930F2EF9E0FF2EF02DFFC0F894E22FA9
:10092000FF27EC58FD4F9081822F8F5F8F7180934E
:10093000B90078949D3009F0B1C08091BC00882343
:1009400011F442DF06C0BADF8091BC008F5F809354
:10095000BC0084E690E09BD2809162008850823097
:1009600058F48EE4F4DE83E4F2DE8BE4F0DE8DE016
:10097000EEDE80E906DC89C081E4E9DE83E4E7DEBF
:100980008BE4E5DE8DE0E3DE80E9FBDB8091620055
:10099000813009F47AC0882371F480916300882340
:1009A00009F473C0C3E6D0E02196D1DE88818823A4
:1009B00009F46BC0F9CF873011F4A1DB66C0833036
:1009C00031F484E690E063D282E0DBDB5EC082300B
:1009D00099F48091BC00823068F011E0E12FFF278C
:1009E000ED53FF4F6181808102D21E5F8091BC0078
:1009F0001817A0F301D249C0843031F484E690E0A6
:100A000046D280E8BEDB41C0853019F481E8B9DB0D
:100A10003CC0863009F039C08091BC00882309F4BD
:100A200034C040E003EC10E060E073E0842F9927CD
:100A30009C012F5F3F4FF901E00FF11FE081EC01B6
:100A4000C60FD71FE883D90120D3802DE817C1F046
:100A5000D9010E2E27D3D90118D3802D988198174C
:100A600079F0D901092E1ED3D9010FD3802D988199
:100A7000981731F0D901092E15D3D90106D3802D4D
:100A80004F5F8091BC00481788F21092BC0080E450
:100A9000E3ECF0E011928A95E9F73FC09032F1F46F
:100AA0008091BC00882339F48FDE8091BC008F5F79
:100AB0008093BC0032C09927CF974CF01092BD00B4
:100AC0001092BE001092BC00F092620026C0F6DECA
:100AD0008091BC008F5F8093BC001FC0892F815420
:100AE0008A3118F08F5E8A30B0F48091BE00E82F12
:100AF000FF27E154FF4F90839091BD009F5F90933B
:100B0000BD008F5F8093BE00943038F0F092620099
:100B10001092BE0002C0F09262002091B900809154
:100B2000B800821709F0FACEE894DF91CF911F91B7
:100B30000F91FF900895803129F0803939F081308C
:100B400031F402C038DE0895DFDE08950EDE089528
:100B500010BC82E189B988E98AB986E880BD82E063
:100B60008BB908955D9BFECF8CB908951F920F92AB
:100B70000FB60F9211248F939F93EF93FF93809161
:100B8000B8009CB1E4E7F2E0E80FF11D90838F5FBD
:100B90008F718093B80080917000ECE6F2E0E80F6E
:100BA000F11D91E090838F5F877080937000FF91BB
:100BB000EF919F918F910F900FBE0F901F901895FE
:100BC00011B888E480B90895982F8091080188238E
:100BD000E4F306B604FCFDCF909303017093050186
:100BE00060930401409307011092060110920901DD
:100BF00085EA86BF80910801806880930801089586
:100C0000982F809108018823E4F390930301709357
:100C10000501609304014093070181E08093060180
:100C20001092090185EA86BF80910801806880934F
:100C30000801089580910801881F8827881F992737
:100C400008951F920F920FB60F9211248F939F93C6
:100C5000AF93BF93EF93FF9381B19927AA27BB2747
:100C6000887F9070A070B070FC013897E135F10575
:100C700008F09AC0ED5EFF4F09948091090183301E
:100C800048F086B7806986BF809108018F7780938E
:100C900008018AC08091030190910601880F890F95
:100CA00083B986B78F7D86BF7FC010920901E0911E
:100CB0000401F0910501808183B93196F09305011B
:100CC000E093040186B7806886BF6EC080910901F9
:100CD0008F5F8093090186B7806B86BF65C0809166
:100CE000070181508093070180910701882379F0E3
:100CF000E0910401F0910501808183B93196F09370
:100D00000501E093040186B7806886BF4DC086B7B1
:100D1000806986BF809108018F778093080144C065
:100D200086B7806986BF809108018F77809308011C
:100D30003BC080910701815080930701809107019A
:100D4000882321F086B7806C86BF2EC086B7806866
:100D500086BF2AC0E0910401F091050183B1808330
:100D60003196F0930501E0930401809107018150D1
:100D70008093070180910701882321F086B7806C5A
:100D800086BF12C086B78F7B86BF0EC0E09104017C
:100D9000F091050183B1808386B7806986BF809119
:100DA00008018F7780930801FF91EF91BF91AF9178
:100DB0009F918F910F900FBE0F901F9018952091CB
:100DC0000A01E22FFF27EE0FFF1FEC52FD4F918328
:100DD00080832F5F277020930A0190E080910B01A0
:100DE000281709F491E081E0892799270895282F91
:100DF000362FC901E4DF08950F931F93CF93DF933C
:100E0000CDB7DEB722970FB6F894DEBF0FBECDBFC9
:100E10008E010F5F1F4F19C0E32FFF27EE0FFF1F3B
:100E2000EC52FD4F91812081832F8F5F87708093DB
:100E30000B019A83298342E0B80180E6C5DE84E68F
:100E400090E025D0F7DE8130E9F330910B018091FD
:100E50000A01831709F722960FB6F894DEBF0FBE7A
:100E6000CDBFDF91CF911F910F91089560E284E192
:100E7000BEDF60E489E3BBDF68E282E1B8DF65E002
:100E800088E2B5DF61E083E1B2DFB6DF0895CF939A
:100E9000DF93CDB7DEB724970FB6F894DEBF0FBE51
:100EA000CDBF9C011A8219821C821B821A82198270
:100EB00089819A8182179307E0F41C821B828B81BF
:100EC0009C81885E934058F400008B819C81019640
:100ED0009C838B838B819C81885E9340A8F389815E
:100EE0009A8101969A83898389819A8182179307CF
:100EF00020F324960FB6F894DEBF0FBECDBFDF916E
:100F0000CF9108958E9A969A84EF91E0C0DF9698DB
:100F100084EF91E0BCDF969A84EF91E0B8DF969879
:100F200084EF91E0B4DF969A84EF91E0B0DF969879
:100F300084EF91E0ACDF969A0895969A96988895FA
:100F4000E6F13EB537603EBD00E010E520E0B92F88
:100F5000A82FF72FE62FD72F39B7346039BF30E5E8
:100F60004FEF4DBD3CBDC62F3BB730683BBF969A97
:100F7000889596983BB73F773BBF00000000E6B3EB
:100F8000C3B3CF703081E6B3488950A134233523F1
:100F900076F03217A1F3969A00009698412F0CB57F
:100FA000102F041B2D930D93232F0000E8CF0FEF7C
:100FB000011B03953D930C9300C03EB5387F3EBDA9
:100FC000969A9698E8940895969A96988895AEF38E
:100FD000B92FA82FD72FC62F30E54FEF4DBD3CBD01
:100FE0003EB537603EBD000039B7346039BF3BB70E
:100FF00030683BBF969A889596983BB73F773BBF42
:10100000000033B346B33D934993DEF7D6CF18952E
:101010001895309172003160309372006894189581
:101020001895FC0188279927E89421912223E9F05B
:101030002032D9F32930C9F32A30B9F32C30A9F37F
:101040002D3099F3263789F32B3219F02D3221F404
:1010500068942191222349F020333CF02A332CF468
:1010600020530BD0820F911DF4CF8115910521F0F3
:101070001EF480959095019608957AE0979F902DA3
:10108000879F802D910D11240895E199FECFBFBB5C
:10109000AEBBE09A11960DB20895F7DF01921A9453
:1010A000E1F70895E199FECFBFBBAEBB0DBA119633
:0E10B0000FB6F894E29AE19A0FBE0895FFCFB2
:1010BE0078000841565263616D2076312E340D0052
:100330009F92BF92CF92DF92EF92FF920F931F9303
:10034000CF93DF93CDB7DEB721970FB6F894DEBF1A
:100350000FBECDBF4091600050916100809174004C
:10036000823009F05BC08BE002D480917500FFD32E
:100370000CEB11E00F2EFCE0EF2EF1E0FF2EF02D44
:100380000F2EFCE6CF2EF2E0DF2EF02DD8018C915F
:10039000898389818F70898389818295807F898310
:1003A0009981F70180818F70892B89838981DFD3BF
:1003B000F7018181898389818F7089838981829501
:1003C000807F89839981F80181818F70892B89834E
:1003D0008981CDD30E5F1F4F82E090E0E80EF91EB9
:1003E0000C151D0599F68FE0C2D3809175008F5FC3
:1003F00080937500883460F010927500109274003C
:1004000089B78B7F89BF60E081E1F3D4F7D4BFC0A7
:1004100080917200826080937200B9C0813009F0CF
:10042000B6C0B0907600EB2CFF2437010894610829
:1004300071080091730010E060E071E00F2EFCEB9A
:100440002F2EF1E03F2EF02DD1013C91170FF1013D
:10045000718182E090E0280E391E670F332309F482
:1004600057C0743008F454C0FA0120E0808183172B
:10047000B1F58781813099F50F2EF6E0CF2EDD247E
:10048000F02DCE0EDF1E868199278615970539F54A
:100490002F010894411C511C81818824992468945F
:1004A00081F88E0E9F1E9281181710F0911740F45C
:1004B000681710F0961720F4811788F0691778F004
:1004C000D2011C93D4016C938381181708F4138311
:1004D0008581861708F46583F601B08219C02F5F05
:1004E000283009F450C03896C1CFFA0190E08781D6
:1004F000882321F038969F5F9830C9F730831183A5
:1005000062831383B4826583B68281E087830F5F41
:10051000603B08F499CF00937300C7018770907017
:100520000797E9F460E0FA018781813081F48681E0
:10053000282F33278481D901A81BB10913973CF4D4
:10054000C701821B930B039714F0178201506F5F52
:10055000683019F0485F5F4FE6CF009373008B2D32
:100560008F5F80937600803941F480E20ADE89B79C
:100570008B7F89BF109276000AC0809172008260E2
:100580008093720004C0083008F4AFCFC1CF219629
:100590000FB6F894DEBF0FBECDBFDF91CF911F9194
:1005A0000F91FF90EF90DF90CF90BF909F908F9032
:1005B0007F906F905F904F903F902F90089580E4D0
:1005C000E8E7F0E011928A95E9F7089580917400C8
:1005D000823031F580917500982F990F80EBECEB0C
:1005E000F1E0282F11922A95E9F7ECE0F1E0119261
:1005F0008A95E9F7829BFECF829B07C0FDCF849B43
:10060000FECF9150849B04C0FDCF9923C1F702C057
:100610009923A9F76CE071E08CEB91E0E4D40895A4
:10062000813039F48499FECF60E073E08CEB91E087
:1006300093D40895809174008130A9F410927600CB
:1006400080917300809377001092730080E4E8E754
:10065000F0E011928A95E9F7829BFECF60E073E0AB
:100660008CEB91E079D40895843019F1853028F429
:10067000813009F1823041F507C0803899F0813826
:1006800009F1803209F513C061E081E1B2D3B6D33C
:1006900088EE93E008D41092750082E08093740095
:1006A00095DF089581E080937400C4DF0895E0DD54
:1006B0000895C0DF089580917400882329F084E0B4
:1006C00060DD0895109274000895DC016623B1F096
:1006D000F89461506F3F89F09091BA0024E932E0BC
:1006E000F901E90FF11D8D918083892F8F5F982F7C
:1006F0009F736150A8F79093BA0078940895F89486
:100700009091BB00E4E9F2E0E90FF11D80819F5F69
:100710009F739093BB00789499270895F8949091D3
:10072000BA00E4E9F2E0E90FF11D80839F5F9F7357
:100730009093BA00789408959091BA008091BB008C
:10074000981741F0DCDF13D29091BA008091BB0082
:100750009817C1F708951F93CF93DF93EC01162FDD
:1007600011501F3F21F0899102D21150E0F7DF9123
:10077000CF911F9108959091BA008091BB00981776
:1007800011F0BDDFF4D108959091BF00903541F490
:100790008091C000873409F581E08093620048C0F1
:1007A000973439F48091C000863509F510926200C3
:1007B0003FC0943441F48091C000863411F583E049
:1007C0008093620035C0933441F48091C00082353B
:1007D00011F582E0809362002BC0953441F4809142
:1007E000C000843511F584E08093620021C0933508
:1007F00041F48091C0008D34C1F486E080936200A2
:1008000017C0943441F48091C000843571F485E0C0
:10081000809362000DC0923541F48091C000833511
:1008200021F487E08093620003C089E08093620036
:1008300083E0EFEBF0E011928A95E9F71092BE00A9
:100840001092BD0008951092BF001092C000109247
:10085000C1001092C20080E4E3ECF0E0982F119206
:100860009A95E9F7E4E9F2E011928A95E9F780E2D6
:10087000E4E7F2E011928A95E9F708958FEB90E0B2
:10088000DCD39C018F3F910569F060F089E0809393
:1008900062008091BC00E3ECF0E0E80FF11D8FEF07
:1008A000808307C08091BC00E3ECF0E0E80FF11D0D
:1008B000208383E0EFEBF0E011928A95E9F7109244
:1008C000BE001092BD0008956F927F928F929F920A
:1008D000AF92BF92CF92DF92EF92FF921F93CF938E
:1008E000DF930F2EF4E7CF2EF2E0DF2EF02D0F2E48
:1008F000FFEBAF2EF0E0BF2EF02D0F2EF3ECEF2E1E
:10090000F0E0FF2EF02D0F2EF0E08F2EF3E09F2E63
:10091000F02D0F2EF3E66F2EF0E07F2EF02DFAC0B3
:10092000F894F601E90FF11D2081892F8F5F8F71F7
:100930008093B90078942D3009F0A9C08091BC0053
:10094000882311F421DF06C099DF8091BC008F5FFE
:100950008093BC0084E690E0A6D28091620088502B
:10096000823058F48EE4DADE83E4D8DE8BE4D6DE1F
:100970008DE0D4DE80E905DC82C081E4CFDE83E453
:10098000CDDE8BE4CBDE8DE0C9DE80E9FADB809141
:100990006200813009F473C0882369F48091630098
:1009A000882309F46CC0E3012196B8DE888188238E
:1009B00009F465C0F9CF873011F4A1DB60C0833042
:1009C00031F484E690E06FD282E0DBDB58C0823005
:1009D00091F48091BC00823060F011E0F701E10FEA
:1009E000F11D6181808105D21E5F8091BC001817C6
:1009F000A8F304D244C0843031F484E690E053D2AA
:100A000080E8BFDB3CC0853019F481E8BADB37C031
:100A1000863009F034C08091BC00882381F140E029
:100A2000842F99279C012F5F3F4FF901EE0DFF1D89
:100A3000E081EC01C80DD91DE883D90132D3802DA6
:100A4000E817C1F0D9010E2E39D3D9012AD3802D50
:100A50009881891779F0D901092E30D3D90121D392
:100A6000802D9881891731F0D901092E27D3D9011A
:100A700018D3802D4F5F8091BC00481788F21092E8
:100A8000BC0080E4F70111928A95E9F743C0203257
:100A900009F58091BC00882339F476DE8091BC0092
:100AA0008F5F8093BC0036C09927019680349105F2
:100AB00054F01092BD001092BE001092BC0089E06C
:100AC0008093620027C0DADE8091BC008F5F809344
:100AD000BC0020C0822F81548A3118F08F5E8A308A
:100AE000B0F48091BE00F501E80FF11D20839091D4
:100AF000BD009F5F9093BD008F5F8093BE009430D8
:100B000048F089E0809362001092BE0003C089E043
:100B1000809362009091B9008091B800891709F024
:100B2000FFCEE894DF91CF911F91FF90EF90DF907F
:100B3000CF90BF90AF909F908F907F906F900895CF
:100B4000803129F0803939F0813031F402C013DE70
:100B50000895BADE0895F0DD089510BC82E189B9E8
:100B600088E98AB986E880BD82E08BB908955D9BEB
:100B7000FECF8CB908951F920F920FB60F921124D9
:100B80008F939F93EF93FF938091B8009CB1E4E71C
:100B9000F2E0E80FF11D90838F5F8F718093B800B2
:100BA00080917000ECE6F2E0E80FF11D91E0908397
:100BB0008F5F877080937000FF91EF919F918F916D
:100BC0000F900FBE0F901F90189511B888E480B950
:100BD0000895982F809108018823E4F306B604FC59
:100BE000FDCF90930301709305016093040140933E
:100BF0000701109206011092090185EA86BF8091D3
:100C000008018068809308010895982F8091080159
:100C10008823E4F39093030170930501609304012A
:100C20004093070181E0809306011092090185EA53
:100C300086BF8091080180688093080108958091A3
:100C40000801881F8827881F992708951F920F92EF
:100C50000FB60F9211248F939F93AF93BF93EF938F
:100C6000FF9381B19927AA27BB27887F9070A07036
:100C7000B070FC013897E135F10508F097C0ED5EE2
:100C8000FF4F099480910901833048F086B780694D
:100C900086BF809108018F778093080187C080917B
:100CA000030190910601880F890F83B986B78F7D64
:100CB00086BF7CC010920901E0910401F09105010A
:100CC000819183B9F0930501E093040186B78068B0
:100CD00086BF6CC0809109018F5F8093090186B740
:100CE000806B86BF63C080910701815080930701AC
:100CF00080910701882371F0E0910401F0910501D2
:100D0000819183B9F0930501E093040186B780686F
:100D100086BF4CC086B7806986BF809108018F77F7
:100D20008093080143C086B7806986BF809108011F
:100D30008F77809308013AC080910701815080939A
:100D4000070180910701882321F086B7806C86BF58
:100D50002DC086B7806886BF29C0E0910401F0915C
:100D6000050183B18193F0930501E0930401809123
:100D7000070181508093070180910701882321F0AA
:100D800086B7806C86BF12C086B78F7B86BF0EC0C9
:100D9000E0910401F091050183B1808386B78069F9
:100DA00086BF809108018F7780930801FF91EF91B2
:100DB000BF91AF919F918F910F900FBE0F901F9099
:100DC000189520910A01E22FFF27EE0FFF1FEC522A
:100DD000FD4F918380832F5F277020930A0190E05D
:100DE00080910B01281709F491E081E08927992768
:100DF0000895282F362FC901E4DF0895EF92FF925E
:100E00000F931F93CF93DF93CDB7DEB722970FB623
:100E1000F894DEBF0FBECDBF0F2EF4EDEF2EF2E043
:100E2000FF2EF02D8E010F5F1F4F19C0E32FFF27FC
:100E3000EE0FFF1FEE0DFF1D91812081832F8F5F2D
:100E4000877080930B019A83298342E0B80180E682
:100E5000C0DE84E690E027D0F2DE8130E9F3309105
:100E60000B0180910A01831709F722960FB6F894B7
:100E7000DEBF0FBECDBFDF91CF911F910F91FF90CD
:100E8000EF90089560E284E1B4DF60E489E3B1DFCC
:100E900068E282E1AEDF65E088E2ABDF61E083E13A
:100EA000A8DFACDF0895CF93DF93CDB7DEB72497EB
:100EB0000FB6F894DEBF0FBECDBF9C011A82198217
:100EC0001C821B821A82198289819A818217930758
:100ED000E0F41C821B828B819C81885E934058F4D5
:100EE00000008B819C8101969C838B838B819C81EC
:100EF000885E9340A8F389819A8101969A838983B9
:100F000089819A818217930720F324960FB6F8946B
:100F1000DEBF0FBECDBFDF91CF9108958E9A969A16
:100F200084EF91E0C0DF969884EF91E0BCDF969A61
:100F300084EF91E0B8DF969884EF91E0B4DF969A61
:100F400084EF91E0B0DF969884EF91E0ACDF969A61
:100F50000895969A96988895E6F13EB537603EBD1D
:100F600000E010E520E0B92FA82FF72FE62FD72FAC
:100F700039B7346039BF30E54FEF4DBD3CBDC62FAA
:100F80003BB730683BBF969A889596983BB73F77BA
:100F90003BBF00000000E6B3C3B3CF703081E6B3BF
:100FA000488950A13423352376F03217A1F3969A5D
:100FB00000009698412F0CB5102F041B2D930D9314
:100FC000232F0000E8CF0FEF011B03953D930C93F7
:100FD00000C03EB5387F3EBD969A9698E894089535
:100FE000969A96988895AEF3B92FA82FD72FC62F2B
:100FF00030E54FEF4DBD3CBD3EB537603EBD000016
:1010000039B7346039BF3BB730683BBF969A889593
:1010100096983BB73F773BBF000033B346B33D9351
:101020004993DEF7D6CF189518953091720031604C
:1010300030937200689418951895FC0188279927B9
:10104000E89421912223E9F02032D9F32930C9F321
:101050002A30B9F32C30A9F32D3099F3263789F3D0
:101060002B3219F02D3221F468942191222349F07A
:1010700020333CF02A332CF420530BD0820F911DE7
:10108000F4CF8115910521F01EF48095909501967D
:1010900008957AE0979F902D879F802D910D1124C0
:1010A0000895E199FECFBFBBAEBBE09A11960DB299
:1010B0000895F7DF01921A94E1F70895E199FECFC0
:1010C000BFBBAEBB0DBA11960FB6F894E29AE19A87
:0610D0000FBE0895FFCFE2
:1010D60078000841565263616D2076312E340D003A
:00000001FF
/programy/C/avr/AVRcam/AVRcam.kdevelop
14,6 → 14,23
<mainprogram>AVRcam</mainprogram>
<directoryradio>executable</directoryradio>
</run>
<filetypes>
<filetype>*.java</filetype>
<filetype>*.h</filetype>
<filetype>*.H</filetype>
<filetype>*.hh</filetype>
<filetype>*.hxx</filetype>
<filetype>*.hpp</filetype>
<filetype>*.c</filetype>
<filetype>*.C</filetype>
<filetype>*.cc</filetype>
<filetype>*.cpp</filetype>
<filetype>*.c++</filetype>
<filetype>*.cxx</filetype>
<filetype>Makefile</filetype>
<filetype>CMakeLists.txt</filetype>
</filetypes>
<blacklist/>
</kdevcustomproject>
<kdevdebugger>
<general>
103,6 → 120,8
<usePermanentCaching>true</usePermanentCaching>
<alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
<includePaths>.;</includePaths>
<parseMissingHeadersExperimental>false</parseMissingHeadersExperimental>
<resolveIncludePathsUsingMakeExperimental>false</resolveIncludePathsUsingMakeExperimental>
</codecompletion>
<qt>
<used>false</used>
/programy/C/avr/AVRcam/AVRcam.kdevelop.filelist
11,12 → 11,13
Executive.h
FrameMgr.c
FrameMgr.h
FrameMgr_for_line_following.c
I2CInterface.c
I2CInterface.h
Main.c
UIMgr.c
UIMgr.h
UartInterface.c
UartInterface.h
UIMgr.c
UIMgr.h
Utility.c
Utility.h
/programy/C/avr/AVRcam/AVRcam.kdevelop.pcs
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
/programy/C/avr/AVRcam/AVRcam.kdevses
1,10 → 1,13
<?xml version = '1.0' encoding = 'UTF-8'?>
<!DOCTYPE KDevPrjSession>
<KDevPrjSession>
<DocsAndViews NumberOfDocuments="1" >
<Doc0 NumberOfViews="1" URL="file:///home/kaklik/download/robot/PID/PID.C" >
<View0 Encoding="UTF-8" line="0" Type="Source" />
<DocsAndViews NumberOfDocuments="2" >
<Doc0 NumberOfViews="1" URL="file:///home/kaklik/projects/programy/C/avr/AVRcam/Main.c" >
<View0 Encoding="" line="0" Type="Source" />
</Doc0>
<Doc1 NumberOfViews="1" URL="file:///home/kaklik/projects/programy/C/avr/AVRcam/UIMgr.c" >
<View0 Encoding="" line="424" Type="Source" />
</Doc1>
</DocsAndViews>
<pluginList>
<kdevdebugger>
/programy/C/avr/AVRcam/AVRcam.lss
3,125 → 3,123
 
Sections:
Idx Name Size VMA LMA File off Algn
0 .noinit 00000030 00800300 00800300 00001182 2**0
0 .noinit 00000030 00800300 00800300 0000119a 2**0
ALLOC
1 .bss 00000274 00800070 00800070 00001182 2**0
1 .bss 00000274 00800070 00800070 0000119a 2**0
ALLOC
2 .data 00000010 00800060 000010be 00001172 2**0
2 .data 00000010 00800060 000010d6 0000118a 2**0
CONTENTS, ALLOC, LOAD, DATA
3 .text 000010be 00000000 00000000 000000b4 2**1
3 .text 000010d6 00000000 00000000 000000b4 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
4 .eeprom 00000000 00810000 00810000 00001182 2**0
CONTENTS
5 .stab 00003ed0 00000000 00000000 00001184 2**2
4 .stab 00003f9c 00000000 00000000 0000119c 2**2
CONTENTS, READONLY, DEBUGGING
6 .stabstr 000017c9 00000000 00000000 00005054 2**0
5 .stabstr 000017b7 00000000 00000000 00005138 2**0
CONTENTS, READONLY, DEBUGGING
Disassembly of section .text:
 
00000000 <__vectors>:
0: 63 c0 rjmp .+198 ; 0xc8 <__init>
2: 05 c8 rjmp .-4086 ; 0xfffff00e <__eeprom_end+0xff7ef00e>
4: 05 c8 rjmp .-4086 ; 0xfffff010 <__eeprom_end+0xff7ef010>
2: 11 c8 rjmp .-4062 ; 0xfffff026 <__eeprom_end+0xff7ef026>
4: 11 c8 rjmp .-4062 ; 0xfffff028 <__eeprom_end+0xff7ef028>
6: 7a c0 rjmp .+244 ; 0xfc <__bad_interrupt>
8: 79 c0 rjmp .+242 ; 0xfc <__bad_interrupt>
a: 78 c0 rjmp .+240 ; 0xfc <__bad_interrupt>
c: 77 c0 rjmp .+238 ; 0xfc <__bad_interrupt>
e: 76 c0 rjmp .+236 ; 0xfc <__bad_interrupt>
10: 00 c8 rjmp .-4096 ; 0xfffff012 <__eeprom_end+0xff7ef012>
10: 0c c8 rjmp .-4072 ; 0xfffff02a <__eeprom_end+0xff7ef02a>
12: 74 c0 rjmp .+232 ; 0xfc <__bad_interrupt>
14: 73 c0 rjmp .+230 ; 0xfc <__bad_interrupt>
16: aa c5 rjmp .+2900 ; 0xb6c <__vector_11>
16: af c5 rjmp .+2910 ; 0xb76 <__vector_11>
18: 71 c0 rjmp .+226 ; 0xfc <__bad_interrupt>
1a: 70 c0 rjmp .+224 ; 0xfc <__bad_interrupt>
1c: 6f c0 rjmp .+222 ; 0xfc <__bad_interrupt>
1e: 6e c0 rjmp .+220 ; 0xfc <__bad_interrupt>
20: 6d c0 rjmp .+218 ; 0xfc <__bad_interrupt>
22: 0f c6 rjmp .+3102 ; 0xc42 <__vector_17>
22: 14 c6 rjmp .+3112 ; 0xc4c <__vector_17>
24: 6b c0 rjmp .+214 ; 0xfc <__bad_interrupt>
 
00000026 <__ctors_end>:
26: 29 c6 rjmp .+3154 ; 0xc7a <__vector_17+0x38>
28: bf c6 rjmp .+3454 ; 0xda8 <__vector_17+0x166>
2a: be c6 rjmp .+3452 ; 0xda8 <__vector_17+0x166>
2c: bd c6 rjmp .+3450 ; 0xda8 <__vector_17+0x166>
2e: bc c6 rjmp .+3448 ; 0xda8 <__vector_17+0x166>
30: bb c6 rjmp .+3446 ; 0xda8 <__vector_17+0x166>
32: ba c6 rjmp .+3444 ; 0xda8 <__vector_17+0x166>
34: b9 c6 rjmp .+3442 ; 0xda8 <__vector_17+0x166>
36: 21 c6 rjmp .+3138 ; 0xc7a <__vector_17+0x38>
38: b7 c6 rjmp .+3438 ; 0xda8 <__vector_17+0x166>
3a: b6 c6 rjmp .+3436 ; 0xda8 <__vector_17+0x166>
3c: b5 c6 rjmp .+3434 ; 0xda8 <__vector_17+0x166>
3e: b4 c6 rjmp .+3432 ; 0xda8 <__vector_17+0x166>
40: b3 c6 rjmp .+3430 ; 0xda8 <__vector_17+0x166>
42: b2 c6 rjmp .+3428 ; 0xda8 <__vector_17+0x166>
44: b1 c6 rjmp .+3426 ; 0xda8 <__vector_17+0x166>
46: 31 c6 rjmp .+3170 ; 0xcaa <__vector_17+0x68>
48: af c6 rjmp .+3422 ; 0xda8 <__vector_17+0x166>
4a: ae c6 rjmp .+3420 ; 0xda8 <__vector_17+0x166>
4c: ad c6 rjmp .+3418 ; 0xda8 <__vector_17+0x166>
4e: ac c6 rjmp .+3416 ; 0xda8 <__vector_17+0x166>
50: ab c6 rjmp .+3414 ; 0xda8 <__vector_17+0x166>
52: aa c6 rjmp .+3412 ; 0xda8 <__vector_17+0x166>
54: a9 c6 rjmp .+3410 ; 0xda8 <__vector_17+0x166>
56: 3a c6 rjmp .+3188 ; 0xccc <__vector_17+0x8a>
58: a7 c6 rjmp .+3406 ; 0xda8 <__vector_17+0x166>
5a: a6 c6 rjmp .+3404 ; 0xda8 <__vector_17+0x166>
5c: a5 c6 rjmp .+3402 ; 0xda8 <__vector_17+0x166>
5e: a4 c6 rjmp .+3400 ; 0xda8 <__vector_17+0x166>
60: a3 c6 rjmp .+3398 ; 0xda8 <__vector_17+0x166>
62: a2 c6 rjmp .+3396 ; 0xda8 <__vector_17+0x166>
64: a1 c6 rjmp .+3394 ; 0xda8 <__vector_17+0x166>
66: 3b c6 rjmp .+3190 ; 0xcde <__vector_17+0x9c>
68: 9f c6 rjmp .+3390 ; 0xda8 <__vector_17+0x166>
6a: 9e c6 rjmp .+3388 ; 0xda8 <__vector_17+0x166>
6c: 9d c6 rjmp .+3386 ; 0xda8 <__vector_17+0x166>
6e: 9c c6 rjmp .+3384 ; 0xda8 <__vector_17+0x166>
70: 9b c6 rjmp .+3382 ; 0xda8 <__vector_17+0x166>
72: 9a c6 rjmp .+3380 ; 0xda8 <__vector_17+0x166>
74: 99 c6 rjmp .+3378 ; 0xda8 <__vector_17+0x166>
76: 54 c6 rjmp .+3240 ; 0xd20 <__vector_17+0xde>
78: 97 c6 rjmp .+3374 ; 0xda8 <__vector_17+0x166>
7a: 96 c6 rjmp .+3372 ; 0xda8 <__vector_17+0x166>
7c: 95 c6 rjmp .+3370 ; 0xda8 <__vector_17+0x166>
7e: 94 c6 rjmp .+3368 ; 0xda8 <__vector_17+0x166>
80: 93 c6 rjmp .+3366 ; 0xda8 <__vector_17+0x166>
82: 92 c6 rjmp .+3364 ; 0xda8 <__vector_17+0x166>
84: 91 c6 rjmp .+3362 ; 0xda8 <__vector_17+0x166>
86: 90 c6 rjmp .+3360 ; 0xda8 <__vector_17+0x166>
88: 8f c6 rjmp .+3358 ; 0xda8 <__vector_17+0x166>
8a: 8e c6 rjmp .+3356 ; 0xda8 <__vector_17+0x166>
8c: 8d c6 rjmp .+3354 ; 0xda8 <__vector_17+0x166>
8e: 8c c6 rjmp .+3352 ; 0xda8 <__vector_17+0x166>
90: 8b c6 rjmp .+3350 ; 0xda8 <__vector_17+0x166>
92: 8a c6 rjmp .+3348 ; 0xda8 <__vector_17+0x166>
94: 89 c6 rjmp .+3346 ; 0xda8 <__vector_17+0x166>
96: 4d c6 rjmp .+3226 ; 0xd32 <__vector_17+0xf0>
98: 87 c6 rjmp .+3342 ; 0xda8 <__vector_17+0x166>
9a: 86 c6 rjmp .+3340 ; 0xda8 <__vector_17+0x166>
9c: 85 c6 rjmp .+3338 ; 0xda8 <__vector_17+0x166>
9e: 84 c6 rjmp .+3336 ; 0xda8 <__vector_17+0x166>
a0: 83 c6 rjmp .+3334 ; 0xda8 <__vector_17+0x166>
a2: 82 c6 rjmp .+3332 ; 0xda8 <__vector_17+0x166>
a4: 81 c6 rjmp .+3330 ; 0xda8 <__vector_17+0x166>
a6: 12 c6 rjmp .+3108 ; 0xccc <__vector_17+0x8a>
a8: 7f c6 rjmp .+3326 ; 0xda8 <__vector_17+0x166>
aa: 7e c6 rjmp .+3324 ; 0xda8 <__vector_17+0x166>
ac: 7d c6 rjmp .+3322 ; 0xda8 <__vector_17+0x166>
ae: 7c c6 rjmp .+3320 ; 0xda8 <__vector_17+0x166>
b0: 7b c6 rjmp .+3318 ; 0xda8 <__vector_17+0x166>
b2: 7a c6 rjmp .+3316 ; 0xda8 <__vector_17+0x166>
b4: 79 c6 rjmp .+3314 ; 0xda8 <__vector_17+0x166>
b6: 4e c6 rjmp .+3228 ; 0xd54 <__vector_17+0x112>
b8: 77 c6 rjmp .+3310 ; 0xda8 <__vector_17+0x166>
ba: 76 c6 rjmp .+3308 ; 0xda8 <__vector_17+0x166>
bc: 75 c6 rjmp .+3306 ; 0xda8 <__vector_17+0x166>
be: 74 c6 rjmp .+3304 ; 0xda8 <__vector_17+0x166>
c0: 73 c6 rjmp .+3302 ; 0xda8 <__vector_17+0x166>
c2: 72 c6 rjmp .+3300 ; 0xda8 <__vector_17+0x166>
c4: 71 c6 rjmp .+3298 ; 0xda8 <__vector_17+0x166>
c6: 62 c6 rjmp .+3268 ; 0xd8c <__vector_17+0x14a>
26: 2e c6 rjmp .+3164 ; 0xc84 <__vector_17+0x38>
28: c1 c6 rjmp .+3458 ; 0xdac <__vector_17+0x160>
2a: c0 c6 rjmp .+3456 ; 0xdac <__vector_17+0x160>
2c: bf c6 rjmp .+3454 ; 0xdac <__vector_17+0x160>
2e: be c6 rjmp .+3452 ; 0xdac <__vector_17+0x160>
30: bd c6 rjmp .+3450 ; 0xdac <__vector_17+0x160>
32: bc c6 rjmp .+3448 ; 0xdac <__vector_17+0x160>
34: bb c6 rjmp .+3446 ; 0xdac <__vector_17+0x160>
36: 26 c6 rjmp .+3148 ; 0xc84 <__vector_17+0x38>
38: b9 c6 rjmp .+3442 ; 0xdac <__vector_17+0x160>
3a: b8 c6 rjmp .+3440 ; 0xdac <__vector_17+0x160>
3c: b7 c6 rjmp .+3438 ; 0xdac <__vector_17+0x160>
3e: b6 c6 rjmp .+3436 ; 0xdac <__vector_17+0x160>
40: b5 c6 rjmp .+3434 ; 0xdac <__vector_17+0x160>
42: b4 c6 rjmp .+3432 ; 0xdac <__vector_17+0x160>
44: b3 c6 rjmp .+3430 ; 0xdac <__vector_17+0x160>
46: 36 c6 rjmp .+3180 ; 0xcb4 <__vector_17+0x68>
48: b1 c6 rjmp .+3426 ; 0xdac <__vector_17+0x160>
4a: b0 c6 rjmp .+3424 ; 0xdac <__vector_17+0x160>
4c: af c6 rjmp .+3422 ; 0xdac <__vector_17+0x160>
4e: ae c6 rjmp .+3420 ; 0xdac <__vector_17+0x160>
50: ad c6 rjmp .+3418 ; 0xdac <__vector_17+0x160>
52: ac c6 rjmp .+3416 ; 0xdac <__vector_17+0x160>
54: ab c6 rjmp .+3414 ; 0xdac <__vector_17+0x160>
56: 3e c6 rjmp .+3196 ; 0xcd4 <__vector_17+0x88>
58: a9 c6 rjmp .+3410 ; 0xdac <__vector_17+0x160>
5a: a8 c6 rjmp .+3408 ; 0xdac <__vector_17+0x160>
5c: a7 c6 rjmp .+3406 ; 0xdac <__vector_17+0x160>
5e: a6 c6 rjmp .+3404 ; 0xdac <__vector_17+0x160>
60: a5 c6 rjmp .+3402 ; 0xdac <__vector_17+0x160>
62: a4 c6 rjmp .+3400 ; 0xdac <__vector_17+0x160>
64: a3 c6 rjmp .+3398 ; 0xdac <__vector_17+0x160>
66: 3f c6 rjmp .+3198 ; 0xce6 <__vector_17+0x9a>
68: a1 c6 rjmp .+3394 ; 0xdac <__vector_17+0x160>
6a: a0 c6 rjmp .+3392 ; 0xdac <__vector_17+0x160>
6c: 9f c6 rjmp .+3390 ; 0xdac <__vector_17+0x160>
6e: 9e c6 rjmp .+3388 ; 0xdac <__vector_17+0x160>
70: 9d c6 rjmp .+3386 ; 0xdac <__vector_17+0x160>
72: 9c c6 rjmp .+3384 ; 0xdac <__vector_17+0x160>
74: 9b c6 rjmp .+3382 ; 0xdac <__vector_17+0x160>
76: 57 c6 rjmp .+3246 ; 0xd26 <__vector_17+0xda>
78: 99 c6 rjmp .+3378 ; 0xdac <__vector_17+0x160>
7a: 98 c6 rjmp .+3376 ; 0xdac <__vector_17+0x160>
7c: 97 c6 rjmp .+3374 ; 0xdac <__vector_17+0x160>
7e: 96 c6 rjmp .+3372 ; 0xdac <__vector_17+0x160>
80: 95 c6 rjmp .+3370 ; 0xdac <__vector_17+0x160>
82: 94 c6 rjmp .+3368 ; 0xdac <__vector_17+0x160>
84: 93 c6 rjmp .+3366 ; 0xdac <__vector_17+0x160>
86: 92 c6 rjmp .+3364 ; 0xdac <__vector_17+0x160>
88: 91 c6 rjmp .+3362 ; 0xdac <__vector_17+0x160>
8a: 90 c6 rjmp .+3360 ; 0xdac <__vector_17+0x160>
8c: 8f c6 rjmp .+3358 ; 0xdac <__vector_17+0x160>
8e: 8e c6 rjmp .+3356 ; 0xdac <__vector_17+0x160>
90: 8d c6 rjmp .+3354 ; 0xdac <__vector_17+0x160>
92: 8c c6 rjmp .+3352 ; 0xdac <__vector_17+0x160>
94: 8b c6 rjmp .+3350 ; 0xdac <__vector_17+0x160>
96: 50 c6 rjmp .+3232 ; 0xd38 <__vector_17+0xec>
98: 89 c6 rjmp .+3346 ; 0xdac <__vector_17+0x160>
9a: 88 c6 rjmp .+3344 ; 0xdac <__vector_17+0x160>
9c: 87 c6 rjmp .+3342 ; 0xdac <__vector_17+0x160>
9e: 86 c6 rjmp .+3340 ; 0xdac <__vector_17+0x160>
a0: 85 c6 rjmp .+3338 ; 0xdac <__vector_17+0x160>
a2: 84 c6 rjmp .+3336 ; 0xdac <__vector_17+0x160>
a4: 83 c6 rjmp .+3334 ; 0xdac <__vector_17+0x160>
a6: 16 c6 rjmp .+3116 ; 0xcd4 <__vector_17+0x88>
a8: 81 c6 rjmp .+3330 ; 0xdac <__vector_17+0x160>
aa: 80 c6 rjmp .+3328 ; 0xdac <__vector_17+0x160>
ac: 7f c6 rjmp .+3326 ; 0xdac <__vector_17+0x160>
ae: 7e c6 rjmp .+3324 ; 0xdac <__vector_17+0x160>
b0: 7d c6 rjmp .+3322 ; 0xdac <__vector_17+0x160>
b2: 7c c6 rjmp .+3320 ; 0xdac <__vector_17+0x160>
b4: 7b c6 rjmp .+3318 ; 0xdac <__vector_17+0x160>
b6: 51 c6 rjmp .+3234 ; 0xd5a <__vector_17+0x10e>
b8: 79 c6 rjmp .+3314 ; 0xdac <__vector_17+0x160>
ba: 78 c6 rjmp .+3312 ; 0xdac <__vector_17+0x160>
bc: 77 c6 rjmp .+3310 ; 0xdac <__vector_17+0x160>
be: 76 c6 rjmp .+3308 ; 0xdac <__vector_17+0x160>
c0: 75 c6 rjmp .+3306 ; 0xdac <__vector_17+0x160>
c2: 74 c6 rjmp .+3304 ; 0xdac <__vector_17+0x160>
c4: 73 c6 rjmp .+3302 ; 0xdac <__vector_17+0x160>
c6: 64 c6 rjmp .+3272 ; 0xd90 <__vector_17+0x144>
 
000000c8 <__init>:
c8: 11 24 eor r1, r1
135,7 → 133,7
d4: 10 e0 ldi r17, 0x00 ; 0
d6: a0 e6 ldi r26, 0x60 ; 96
d8: b0 e0 ldi r27, 0x00 ; 0
da: ee eb ldi r30, 0xBE ; 190
da: e6 ed ldi r30, 0xD6 ; 214
dc: f0 e1 ldi r31, 0x10 ; 16
de: 02 c0 rjmp .+4 ; 0xe4 <.do_copy_data_start>
 
164,7 → 162,7
fa: 30 c0 rjmp .+96 ; 0x15c <main>
 
000000fc <__bad_interrupt>:
fc: 91 c7 rjmp .+3874 ; 0x1020 <__vector_default>
fc: 9d c7 rjmp .+3898 ; 0x1038 <__vector_default>
 
000000fe <CamInt_resetCam>:
output the clock signal. Thus, if we reset the cam, the
220,11 → 218,11
uint8_t len;
len = (uint8_t) n;
 
asm volatile (
__asm__ __volatile__ (
152: a1 e0 ldi r26, 0x01 ; 1
154: b0 e0 ldi r27, 0x00 ; 0
156: 18 2e mov r1, r24
158: a0 d7 rcall .+3904 ; 0x109a <__eeprom_read_block_1C1D1E>
158: ac d7 rcall .+3928 ; 0x10b2 <__eeprom_read_block_1C1D1E>
15a: 08 95 ret
 
0000015c <main>:
239,11 → 237,11
162: cd bf out 0x3d, r28 ; 61
/* initialize all of the interface modules */
DebugInt_init();
164: cf d6 rcall .+3486 ; 0xf04 <DebugInt_init>
164: db d6 rcall .+3510 ; 0xf1c <DebugInt_init>
UartInt_init();
166: f4 d4 rcall .+2536 ; 0xb50 <UartInt_init>
166: f9 d4 rcall .+2546 ; 0xb5a <UartInt_init>
I2CInt_init();
168: 2b d5 rcall .+2646 ; 0xbc0 <I2CInt_init>
168: 30 d5 rcall .+2656 ; 0xbca <I2CInt_init>
CamInt_init();
16a: ca df rcall .-108 ; 0x100 <CamInt_init>
252,11 → 250,11
ENABLE_INTS();
16c: 78 94 sei
CamConfig_init();
16e: 7e d6 rcall .+3324 ; 0xe6c <CamConfig_init>
16e: 8a d6 rcall .+3348 ; 0xe84 <CamConfig_init>
UIMgr_init();
170: 8a d3 rcall .+1812 ; 0x886 <UIMgr_init>
170: 6a d3 rcall .+1748 ; 0x846 <UIMgr_init>
FrameMgr_init();
172: 37 d2 rcall .+1134 ; 0x5e2 <FrameMgr_init>
172: 25 d2 rcall .+1098 ; 0x5be <FrameMgr_init>
/* provide a short delay for the camera to stabilize before
we let the executive start up */
263,7 → 261,7
Utility_delay(1000);
174: 88 ee ldi r24, 0xE8 ; 232
176: 93 e0 ldi r25, 0x03 ; 3
178: 8a d6 rcall .+3348 ; 0xe8e <Utility_delay>
178: 96 d6 rcall .+3372 ; 0xea6 <Utility_delay>
/* the rest of the application will be under the
control of the Executive. */
275,10 → 273,9
}
17c: 80 e0 ldi r24, 0x00 ; 0
17e: 90 e0 ldi r25, 0x00 ; 0
180: 9d c7 rjmp .+3898 ; 0x10bc <_exit>
180: a9 c7 rjmp .+3922 ; 0x10d4 <_exit>
 
00000182 <Exec_writeEventFifo>:
 
182: f8 94 cli
184: 90 91 70 00 lds r25, 0x0070
188: ec e6 ldi r30, 0x6C ; 108
293,104 → 290,104
19c: 08 95 ret
 
0000019e <Exec_run>:
19e: 80 91 72 00 lds r24, 0x0072
1a2: 88 23 and r24, r24
1a4: 99 f0 breq .+38 ; 0x1cc <Exec_run+0x2e>
1a6: 80 ff sbrs r24, 0
1a8: 07 c0 rjmp .+14 ; 0x1b8 <Exec_run+0x1a>
1aa: f8 94 cli
1ac: 8e 7f andi r24, 0xFE ; 254
1ae: 80 93 72 00 sts 0x0072, r24
1b2: 78 94 sei
1b4: b6 d0 rcall .+364 ; 0x322 <FrameMgr_processLine>
1b6: ff d2 rcall .+1534 ; 0x7b6 <UIMgr_transmitPendingData>
1b8: 80 91 72 00 lds r24, 0x0072
1bc: 81 ff sbrs r24, 1
1be: 06 c0 rjmp .+12 ; 0x1cc <Exec_run+0x2e>
1c0: f8 94 cli
1c2: 8d 7f andi r24, 0xFD ; 253
1c4: 80 93 72 00 sts 0x0072, r24
1c8: 78 94 sei
1ca: 12 d2 rcall .+1060 ; 0x5f0 <FrameMgr_acquireLine>
1cc: 20 91 71 00 lds r18, 0x0071
1d0: 80 91 70 00 lds r24, 0x0070
1d4: 82 17 cp r24, r18
1d6: 19 f3 breq .-58 ; 0x19e <Exec_run>
1d8: f8 94 cli
1da: e2 2f mov r30, r18
1dc: ff 27 eor r31, r31
1de: e4 59 subi r30, 0x94 ; 148
1e0: fd 4f sbci r31, 0xFD ; 253
1e2: 90 81 ld r25, Z
1e4: 82 2f mov r24, r18
1e6: 8f 5f subi r24, 0xFF ; 255
1e8: 87 70 andi r24, 0x07 ; 7
1ea: 80 93 71 00 sts 0x0071, r24
1ee: 78 94 sei
1f0: 89 2f mov r24, r25
1f2: 99 27 eor r25, r25
1f4: 80 31 cpi r24, 0x10 ; 16
1f6: 31 f1 breq .+76 ; 0x244 <Exec_run+0xa6>
1f8: 81 31 cpi r24, 0x11 ; 17
1fa: 68 f4 brcc .+26 ; 0x216 <Exec_run+0x78>
1fc: 82 30 cpi r24, 0x02 ; 2
1fe: c9 f0 breq .+50 ; 0x232 <Exec_run+0x94>
200: 83 30 cpi r24, 0x03 ; 3
202: 18 f4 brcc .+6 ; 0x20a <Exec_run+0x6c>
204: 81 30 cpi r24, 0x01 ; 1
206: 59 f6 brne .-106 ; 0x19e <Exec_run>
208: 2b c0 rjmp .+86 ; 0x260 <Exec_run+0xc2>
20a: 84 30 cpi r24, 0x04 ; 4
20c: 31 f1 breq .+76 ; 0x25a <Exec_run+0xbc>
20e: 88 30 cpi r24, 0x08 ; 8
210: 09 f0 breq .+2 ; 0x214 <Exec_run+0x76>
212: c5 cf rjmp .-118 ; 0x19e <Exec_run>
19e: cf 93 push r28
1a0: df 93 push r29
1a2: cc e6 ldi r28, 0x6C ; 108
1a4: d2 e0 ldi r29, 0x02 ; 2
1a6: 80 91 72 00 lds r24, 0x0072
1aa: 88 23 and r24, r24
1ac: 99 f0 breq .+38 ; 0x1d4 <Exec_run+0x36>
1ae: 80 ff sbrs r24, 0
1b0: 07 c0 rjmp .+14 ; 0x1c0 <Exec_run+0x22>
1b2: f8 94 cli
1b4: 8e 7f andi r24, 0xFE ; 254
1b6: 80 93 72 00 sts 0x0072, r24
1ba: 78 94 sei
1bc: b2 d0 rcall .+356 ; 0x322 <FrameMgr_processLine>
1be: db d2 rcall .+1462 ; 0x776 <UIMgr_transmitPendingData>
1c0: 80 91 72 00 lds r24, 0x0072
1c4: 81 ff sbrs r24, 1
1c6: 06 c0 rjmp .+12 ; 0x1d4 <Exec_run+0x36>
1c8: f8 94 cli
1ca: 8d 7f andi r24, 0xFD ; 253
1cc: 80 93 72 00 sts 0x0072, r24
1d0: 78 94 sei
1d2: fc d1 rcall .+1016 ; 0x5cc <FrameMgr_acquireLine>
1d4: 90 91 71 00 lds r25, 0x0071
1d8: 80 91 70 00 lds r24, 0x0070
1dc: 89 17 cp r24, r25
1de: 19 f3 breq .-58 ; 0x1a6 <Exec_run+0x8>
1e0: f8 94 cli
1e2: fe 01 movw r30, r28
1e4: e9 0f add r30, r25
1e6: f1 1d adc r31, r1
1e8: e0 81 ld r30, Z
1ea: 89 2f mov r24, r25
1ec: 8f 5f subi r24, 0xFF ; 255
1ee: 87 70 andi r24, 0x07 ; 7
1f0: 80 93 71 00 sts 0x0071, r24
1f4: 78 94 sei
1f6: e0 31 cpi r30, 0x10 ; 16
1f8: 29 f1 breq .+74 ; 0x244 <Exec_run+0xa6>
1fa: e1 31 cpi r30, 0x11 ; 17
1fc: 60 f4 brcc .+24 ; 0x216 <Exec_run+0x78>
1fe: e2 30 cpi r30, 0x02 ; 2
200: c1 f0 breq .+48 ; 0x232 <Exec_run+0x94>
202: e3 30 cpi r30, 0x03 ; 3
204: 18 f4 brcc .+6 ; 0x20c <Exec_run+0x6e>
206: e1 30 cpi r30, 0x01 ; 1
208: 71 f6 brne .-100 ; 0x1a6 <Exec_run+0x8>
20a: 2a c0 rjmp .+84 ; 0x260 <Exec_run+0xc2>
20c: e4 30 cpi r30, 0x04 ; 4
20e: 29 f1 breq .+74 ; 0x25a <Exec_run+0xbc>
210: e8 30 cpi r30, 0x08 ; 8
212: 49 f6 brne .-110 ; 0x1a6 <Exec_run+0x8>
214: 1f c0 rjmp .+62 ; 0x254 <Exec_run+0xb6>
216: 80 38 cpi r24, 0x80 ; 128
216: e0 38 cpi r30, 0x80 ; 128
218: 79 f0 breq .+30 ; 0x238 <Exec_run+0x9a>
21a: 81 38 cpi r24, 0x81 ; 129
21a: e1 38 cpi r30, 0x81 ; 129
21c: 20 f4 brcc .+8 ; 0x226 <Exec_run+0x88>
21e: 80 32 cpi r24, 0x20 ; 32
21e: e0 32 cpi r30, 0x20 ; 32
220: 09 f0 breq .+2 ; 0x224 <Exec_run+0x86>
222: bd cf rjmp .-134 ; 0x19e <Exec_run>
222: c1 cf rjmp .-126 ; 0x1a6 <Exec_run+0x8>
224: 14 c0 rjmp .+40 ; 0x24e <Exec_run+0xb0>
226: 81 38 cpi r24, 0x81 ; 129
226: e1 38 cpi r30, 0x81 ; 129
228: 51 f0 breq .+20 ; 0x23e <Exec_run+0xa0>
22a: 80 39 cpi r24, 0x90 ; 144
22a: e0 39 cpi r30, 0x90 ; 144
22c: 09 f0 breq .+2 ; 0x230 <Exec_run+0x92>
22e: b7 cf rjmp .-146 ; 0x19e <Exec_run>
22e: bb cf rjmp .-138 ; 0x1a6 <Exec_run+0x8>
230: 1c c0 rjmp .+56 ; 0x26a <Exec_run+0xcc>
232: 82 e0 ldi r24, 0x02 ; 2
234: 2e d2 rcall .+1116 ; 0x692 <FrameMgr_dispatchEvent>
236: b3 cf rjmp .-154 ; 0x19e <Exec_run>
234: 19 d2 rcall .+1074 ; 0x668 <FrameMgr_dispatchEvent>
236: b7 cf rjmp .-146 ; 0x1a6 <Exec_run+0x8>
238: 80 e8 ldi r24, 0x80 ; 128
23a: 2b d2 rcall .+1110 ; 0x692 <FrameMgr_dispatchEvent>
23c: b0 cf rjmp .-160 ; 0x19e <Exec_run>
23a: 16 d2 rcall .+1068 ; 0x668 <FrameMgr_dispatchEvent>
23c: b4 cf rjmp .-152 ; 0x1a6 <Exec_run+0x8>
23e: 81 e8 ldi r24, 0x81 ; 129
240: 28 d2 rcall .+1104 ; 0x692 <FrameMgr_dispatchEvent>
242: ad cf rjmp .-166 ; 0x19e <Exec_run>
240: 13 d2 rcall .+1062 ; 0x668 <FrameMgr_dispatchEvent>
242: b1 cf rjmp .-158 ; 0x1a6 <Exec_run+0x8>
244: 80 e1 ldi r24, 0x10 ; 16
246: 25 d2 rcall .+1098 ; 0x692 <FrameMgr_dispatchEvent>
246: 10 d2 rcall .+1056 ; 0x668 <FrameMgr_dispatchEvent>
248: 80 e1 ldi r24, 0x10 ; 16
24a: 75 d4 rcall .+2282 ; 0xb36 <UIMgr_dispatchEvent>
24c: a8 cf rjmp .-176 ; 0x19e <Exec_run>
24a: 7a d4 rcall .+2292 ; 0xb40 <UIMgr_dispatchEvent>
24c: ac cf rjmp .-168 ; 0x1a6 <Exec_run+0x8>
24e: 80 e2 ldi r24, 0x20 ; 32
250: 20 d2 rcall .+1088 ; 0x692 <FrameMgr_dispatchEvent>
252: a5 cf rjmp .-182 ; 0x19e <Exec_run>
250: 0b d2 rcall .+1046 ; 0x668 <FrameMgr_dispatchEvent>
252: a9 cf rjmp .-174 ; 0x1a6 <Exec_run+0x8>
254: 88 e0 ldi r24, 0x08 ; 8
256: 1d d2 rcall .+1082 ; 0x692 <FrameMgr_dispatchEvent>
258: a2 cf rjmp .-188 ; 0x19e <Exec_run>
256: 08 d2 rcall .+1040 ; 0x668 <FrameMgr_dispatchEvent>
258: a6 cf rjmp .-180 ; 0x1a6 <Exec_run+0x8>
25a: 84 e0 ldi r24, 0x04 ; 4
25c: 1a d2 rcall .+1076 ; 0x692 <FrameMgr_dispatchEvent>
25e: 9f cf rjmp .-194 ; 0x19e <Exec_run>
25c: 05 d2 rcall .+1034 ; 0x668 <FrameMgr_dispatchEvent>
25e: a3 cf rjmp .-186 ; 0x1a6 <Exec_run+0x8>
260: 81 e0 ldi r24, 0x01 ; 1
262: 69 d4 rcall .+2258 ; 0xb36 <UIMgr_dispatchEvent>
262: 6e d4 rcall .+2268 ; 0xb40 <UIMgr_dispatchEvent>
264: 81 e0 ldi r24, 0x01 ; 1
266: 15 d2 rcall .+1066 ; 0x692 <FrameMgr_dispatchEvent>
268: 9a cf rjmp .-204 ; 0x19e <Exec_run>
266: 00 d2 rcall .+1024 ; 0x668 <FrameMgr_dispatchEvent>
268: 9e cf rjmp .-196 ; 0x1a6 <Exec_run+0x8>
26a: 80 e9 ldi r24, 0x90 ; 144
26c: 64 d4 rcall .+2248 ; 0xb36 <UIMgr_dispatchEvent>
26e: 97 cf rjmp .-210 ; 0x19e <Exec_run>
26c: 69 d4 rcall .+2258 ; 0xb40 <UIMgr_dispatchEvent>
26e: 9b cf rjmp .-202 ; 0x1a6 <Exec_run+0x8>
 
00000270 <FrameMgr_processFrame>:
270: df 92 push r13
408,9 → 405,9
28e: 3f c0 rjmp .+126 ; 0x30e <FrameMgr_processFrame+0x9e>
290: e9 01 movw r28, r18
292: 8a e0 ldi r24, 0x0A ; 10
294: 5c d2 rcall .+1208 ; 0x74e <UIMgr_writeTxFifo>
294: 43 d2 rcall .+1158 ; 0x71c <UIMgr_writeTxFifo>
296: 80 91 73 00 lds r24, 0x0073
29a: 59 d2 rcall .+1202 ; 0x74e <UIMgr_writeTxFifo>
29a: 40 d2 rcall .+1152 ; 0x71c <UIMgr_writeTxFifo>
29c: dd 24 eor r13, r13
29e: 8f 81 ldd r24, Y+7 ; 0x07
2a0: 81 30 cpi r24, 0x01 ; 1
451,15 → 448,15
2e6: 0c 81 ldd r16, Y+4 ; 0x04
2e8: fd 80 ldd r15, Y+5 ; 0x05
2ea: ee 80 ldd r14, Y+6 ; 0x06
2ec: 30 d2 rcall .+1120 ; 0x74e <UIMgr_writeTxFifo>
2ec: 17 d2 rcall .+1070 ; 0x71c <UIMgr_writeTxFifo>
2ee: 81 2f mov r24, r17
2f0: 2e d2 rcall .+1116 ; 0x74e <UIMgr_writeTxFifo>
2f0: 15 d2 rcall .+1066 ; 0x71c <UIMgr_writeTxFifo>
2f2: 80 2f mov r24, r16
2f4: 2c d2 rcall .+1112 ; 0x74e <UIMgr_writeTxFifo>
2f4: 13 d2 rcall .+1062 ; 0x71c <UIMgr_writeTxFifo>
2f6: 8f 2d mov r24, r15
2f8: 2a d2 rcall .+1108 ; 0x74e <UIMgr_writeTxFifo>
2f8: 11 d2 rcall .+1058 ; 0x71c <UIMgr_writeTxFifo>
2fa: 8e 2d mov r24, r14
2fc: 28 d2 rcall .+1104 ; 0x74e <UIMgr_writeTxFifo>
2fc: 0f d2 rcall .+1054 ; 0x71c <UIMgr_writeTxFifo>
2fe: d3 94 inc r13
300: 88 e0 ldi r24, 0x08 ; 8
302: d8 16 cp r13, r24
467,7 → 464,7
306: 28 96 adiw r28, 0x08 ; 8
308: ca cf rjmp .-108 ; 0x29e <FrameMgr_processFrame+0x2e>
30a: 8f ef ldi r24, 0xFF ; 255
30c: 20 d2 rcall .+1088 ; 0x74e <UIMgr_writeTxFifo>
30c: 07 d2 rcall .+1038 ; 0x71c <UIMgr_writeTxFifo>
30e: 84 e0 ldi r24, 0x04 ; 4
310: 38 df rcall .-400 ; 0x182 <Exec_writeEventFifo>
312: df 91 pop r29
488,867 → 485,447
32c: 7f 92 push r7
32e: 8f 92 push r8
330: 9f 92 push r9
332: af 92 push r10
334: bf 92 push r11
336: cf 92 push r12
338: df 92 push r13
33a: ef 92 push r14
33c: ff 92 push r15
33e: 0f 93 push r16
340: 1f 93 push r17
342: cf 93 push r28
344: df 93 push r29
346: cd b7 in r28, 0x3d ; 61
348: de b7 in r29, 0x3e ; 62
34a: 21 97 sbiw r28, 0x01 ; 1
34c: 0f b6 in r0, 0x3f ; 63
34e: f8 94 cli
350: de bf out 0x3e, r29 ; 62
352: 0f be out 0x3f, r0 ; 63
354: cd bf out 0x3d, r28 ; 61
356: 00 91 60 00 lds r16, 0x0060
35a: 10 91 61 00 lds r17, 0x0061
35e: 80 91 74 00 lds r24, 0x0074
362: 82 30 cpi r24, 0x02 ; 2
364: 09 f0 breq .+2 ; 0x368 <FrameMgr_processLine+0x46>
366: 6a c0 rjmp .+212 ; 0x43c <FrameMgr_processLine+0x11a>
368: 8b e0 ldi r24, 0x0B ; 11
36a: fc d3 rcall .+2040 ; 0xb64 <UartInt_txByte>
36c: 80 91 75 00 lds r24, 0x0075
370: f9 d3 rcall .+2034 ; 0xb64 <UartInt_txByte>
372: 0f 2e mov r0, r31
374: fc eb ldi r31, 0xBC ; 188
376: cf 2e mov r12, r31
378: f1 e0 ldi r31, 0x01 ; 1
37a: df 2e mov r13, r31
37c: f0 2d mov r31, r0
37e: 00 e0 ldi r16, 0x00 ; 0
380: 10 e0 ldi r17, 0x00 ; 0
382: 0f 2e mov r0, r31
384: fc e0 ldi r31, 0x0C ; 12
386: ef 2e mov r14, r31
388: f1 e0 ldi r31, 0x01 ; 1
38a: ff 2e mov r15, r31
38c: f0 2d mov r31, r0
38e: f6 01 movw r30, r12
390: 80 81 ld r24, Z
392: 89 83 std Y+1, r24 ; 0x01
394: 89 81 ldd r24, Y+1 ; 0x01
396: 8f 70 andi r24, 0x0F ; 15
398: 89 83 std Y+1, r24 ; 0x01
39a: 89 81 ldd r24, Y+1 ; 0x01
39c: 82 95 swap r24
39e: 80 7f andi r24, 0xF0 ; 240
3a0: 89 83 std Y+1, r24 ; 0x01
3a2: 99 81 ldd r25, Y+1 ; 0x01
3a4: f7 01 movw r30, r14
3a6: 80 81 ld r24, Z
3a8: 8f 70 andi r24, 0x0F ; 15
3aa: 89 2b or r24, r25
3ac: 89 83 std Y+1, r24 ; 0x01
3ae: 89 81 ldd r24, Y+1 ; 0x01
3b0: d9 d3 rcall .+1970 ; 0xb64 <UartInt_txByte>
3b2: d8 01 movw r26, r16
3b4: 11 96 adiw r26, 0x01 ; 1
3b6: fd 01 movw r30, r26
3b8: e4 5f subi r30, 0xF4 ; 244
3ba: fe 4f sbci r31, 0xFE ; 254
3bc: 80 81 ld r24, Z
3be: 89 83 std Y+1, r24 ; 0x01
3c0: 89 81 ldd r24, Y+1 ; 0x01
3c2: 8f 70 andi r24, 0x0F ; 15
3c4: 89 83 std Y+1, r24 ; 0x01
3c6: 89 81 ldd r24, Y+1 ; 0x01
3c8: 82 95 swap r24
3ca: 80 7f andi r24, 0xF0 ; 240
3cc: 89 83 std Y+1, r24 ; 0x01
3ce: 99 81 ldd r25, Y+1 ; 0x01
3d0: a4 54 subi r26, 0x44 ; 68
3d2: be 4f sbci r27, 0xFE ; 254
3d4: 8c 91 ld r24, X
3d6: 8f 70 andi r24, 0x0F ; 15
3d8: 89 2b or r24, r25
3da: 89 83 std Y+1, r24 ; 0x01
3dc: 89 81 ldd r24, Y+1 ; 0x01
3de: c2 d3 rcall .+1924 ; 0xb64 <UartInt_txByte>
3e0: 82 e0 ldi r24, 0x02 ; 2
3e2: 90 e0 ldi r25, 0x00 ; 0
3e4: c8 0e add r12, r24
3e6: d9 1e adc r13, r25
3e8: 0e 5f subi r16, 0xFE ; 254
3ea: 1f 4f sbci r17, 0xFF ; 255
3ec: e8 0e add r14, r24
3ee: f9 1e adc r15, r25
3f0: 00 3b cpi r16, 0xB0 ; 176
3f2: 11 05 cpc r17, r1
3f4: 61 f6 brne .-104 ; 0x38e <FrameMgr_processLine+0x6c>
3f6: 8f e0 ldi r24, 0x0F ; 15
3f8: b5 d3 rcall .+1898 ; 0xb64 <UartInt_txByte>
3fa: 80 91 75 00 lds r24, 0x0075
3fe: 8f 5f subi r24, 0xFF ; 255
400: 80 93 75 00 sts 0x0075, r24
404: 88 34 cpi r24, 0x48 ; 72
406: 60 f0 brcs .+24 ; 0x420 <FrameMgr_processLine+0xfe>
408: 10 92 75 00 sts 0x0075, r1
40c: 10 92 74 00 sts 0x0074, r1
410: 89 b7 in r24, 0x39 ; 57
412: 8b 7f andi r24, 0xFB ; 251
414: 89 bf out 0x39, r24 ; 57
416: 60 e0 ldi r22, 0x00 ; 0
418: 81 e1 ldi r24, 0x11 ; 17
41a: e9 d4 rcall .+2514 ; 0xdee <CamConfig_setCamReg>
41c: ed d4 rcall .+2522 ; 0xdf8 <CamConfig_sendFifoCmds>
41e: c8 c0 rjmp .+400 ; 0x5b0 <__stack+0x151>
420: 80 91 72 00 lds r24, 0x0072
424: 82 60 ori r24, 0x02 ; 2
426: 80 93 72 00 sts 0x0072, r24
42a: c2 c0 rjmp .+388 ; 0x5b0 <__stack+0x151>
42c: 80 e2 ldi r24, 0x20 ; 32
42e: a9 de rcall .-686 ; 0x182 <Exec_writeEventFifo>
430: 89 b7 in r24, 0x39 ; 57
432: 8b 7f andi r24, 0xFB ; 251
434: 89 bf out 0x39, r24 ; 57
436: 10 92 76 00 sts 0x0076, r1
43a: ba c0 rjmp .+372 ; 0x5b0 <__stack+0x151>
43c: 81 30 cpi r24, 0x01 ; 1
43e: 09 f0 breq .+2 ; 0x442 <FrameMgr_processLine+0x120>
440: b7 c0 rjmp .+366 ; 0x5b0 <__stack+0x151>
442: f0 90 76 00 lds r15, 0x0076
446: cf 2c mov r12, r15
448: dd 24 eor r13, r13
44a: 36 01 movw r6, r12
44c: 08 94 sec
44e: 61 08 sbc r6, r1
450: 71 08 sbc r7, r1
452: 70 91 73 00 lds r23, 0x0073
456: 0f 2e mov r0, r31
458: fc eb ldi r31, 0xBC ; 188
45a: 2f 2e mov r2, r31
45c: f1 e0 ldi r31, 0x01 ; 1
45e: 3f 2e mov r3, r31
460: f0 2d mov r31, r0
462: 50 e0 ldi r21, 0x00 ; 0
464: 40 e0 ldi r20, 0x00 ; 0
466: 61 e0 ldi r22, 0x01 ; 1
468: ef 2c mov r14, r15
46a: e3 94 inc r14
46c: f1 01 movw r30, r2
46e: 30 81 ld r19, Z
470: 56 0f add r21, r22
472: 61 81 ldd r22, Z+1 ; 0x01
474: 82 e0 ldi r24, 0x02 ; 2
476: 90 e0 ldi r25, 0x00 ; 0
478: 28 0e add r2, r24
47a: 39 1e adc r3, r25
47c: 46 0f add r20, r22
47e: 33 23 and r19, r19
480: 09 f4 brne .+2 ; 0x484 <__stack+0x25>
482: 5c c0 rjmp .+184 ; 0x53c <__stack+0xdd>
484: 64 30 cpi r22, 0x04 ; 4
486: 08 f4 brcc .+2 ; 0x48a <__stack+0x2b>
488: 59 c0 rjmp .+178 ; 0x53c <__stack+0xdd>
48a: d8 01 movw r26, r16
48c: 20 e0 ldi r18, 0x00 ; 0
48e: 8c 91 ld r24, X
490: 38 17 cp r19, r24
492: c9 f5 brne .+114 ; 0x506 <__stack+0xa7>
494: fd 01 movw r30, r26
496: 87 81 ldd r24, Z+7 ; 0x07
498: 81 30 cpi r24, 0x01 ; 1
49a: a9 f5 brne .+106 ; 0x506 <__stack+0xa7>
49c: 0f 2e mov r0, r31
49e: f6 e0 ldi r31, 0x06 ; 6
4a0: af 2e mov r10, r31
4a2: bb 24 eor r11, r11
4a4: f0 2d mov r31, r0
4a6: aa 0e add r10, r26
4a8: bb 1e adc r11, r27
4aa: 86 81 ldd r24, Z+6 ; 0x06
4ac: 99 27 eor r25, r25
4ae: 86 15 cp r24, r6
4b0: 97 05 cpc r25, r7
4b2: 49 f5 brne .+82 ; 0x506 <__stack+0xa7>
4b4: 2d 01 movw r4, r26
4b6: 08 94 sec
4b8: 41 1c adc r4, r1
4ba: 51 1c adc r5, r1
4bc: 81 81 ldd r24, Z+1 ; 0x01
4be: 88 24 eor r8, r8
4c0: 99 24 eor r9, r9
4c2: 68 94 set
4c4: 81 f8 bld r8, 1
4c6: 8a 0e add r8, r26
4c8: 9b 1e adc r9, r27
4ca: 92 81 ldd r25, Z+2 ; 0x02
4cc: 58 17 cp r21, r24
4ce: 10 f0 brcs .+4 ; 0x4d4 <__stack+0x75>
4d0: 95 17 cp r25, r21
4d2: 40 f4 brcc .+16 ; 0x4e4 <__stack+0x85>
4d4: 48 17 cp r20, r24
4d6: 10 f0 brcs .+4 ; 0x4dc <__stack+0x7d>
4d8: 94 17 cp r25, r20
4da: 20 f4 brcc .+8 ; 0x4e4 <__stack+0x85>
4dc: 85 17 cp r24, r21
4de: 98 f0 brcs .+38 ; 0x506 <__stack+0xa7>
4e0: 49 17 cp r20, r25
4e2: 88 f0 brcs .+34 ; 0x506 <__stack+0xa7>
4e4: f2 01 movw r30, r4
4e6: 50 83 st Z, r21
4e8: f4 01 movw r30, r8
4ea: 40 83 st Z, r20
4ec: fd 01 movw r30, r26
4ee: 83 81 ldd r24, Z+3 ; 0x03
4f0: 58 17 cp r21, r24
4f2: 08 f4 brcc .+2 ; 0x4f6 <__stack+0x97>
4f4: 53 83 std Z+3, r21 ; 0x03
4f6: fd 01 movw r30, r26
4f8: 85 81 ldd r24, Z+5 ; 0x05
4fa: 84 17 cp r24, r20
4fc: 08 f4 brcc .+2 ; 0x500 <__stack+0xa1>
4fe: 45 83 std Z+5, r20 ; 0x05
500: f5 01 movw r30, r10
502: f0 82 st Z, r15
504: 1b c0 rjmp .+54 ; 0x53c <__stack+0xdd>
506: 2f 5f subi r18, 0xFF ; 255
508: 28 30 cpi r18, 0x08 ; 8
50a: 09 f4 brne .+2 ; 0x50e <__stack+0xaf>
50c: 4d c0 rjmp .+154 ; 0x5a8 <__stack+0x149>
50e: 18 96 adiw r26, 0x08 ; 8
510: be cf rjmp .-132 ; 0x48e <__stack+0x2f>
512: d8 01 movw r26, r16
514: 90 e0 ldi r25, 0x00 ; 0
516: fd 01 movw r30, r26
518: 87 81 ldd r24, Z+7 ; 0x07
51a: 88 23 and r24, r24
51c: 21 f0 breq .+8 ; 0x526 <__stack+0xc7>
51e: 18 96 adiw r26, 0x08 ; 8
520: 9f 5f subi r25, 0xFF ; 255
522: 98 30 cpi r25, 0x08 ; 8
524: c1 f7 brne .-16 ; 0x516 <__stack+0xb7>
526: 3c 93 st X, r19
528: fd 01 movw r30, r26
52a: 51 83 std Z+1, r21 ; 0x01
52c: 42 83 std Z+2, r20 ; 0x02
52e: 53 83 std Z+3, r21 ; 0x03
530: f4 82 std Z+4, r15 ; 0x04
532: 45 83 std Z+5, r20 ; 0x05
534: f6 82 std Z+6, r15 ; 0x06
536: 81 e0 ldi r24, 0x01 ; 1
538: 87 83 std Z+7, r24 ; 0x07
53a: 7f 5f subi r23, 0xFF ; 255
53c: 40 3b cpi r20, 0xB0 ; 176
53e: 08 f4 brcc .+2 ; 0x542 <__stack+0xe3>
540: 95 cf rjmp .-214 ; 0x46c <__stack+0xd>
542: 70 93 73 00 sts 0x0073, r23
546: c6 01 movw r24, r12
548: 87 70 andi r24, 0x07 ; 7
54a: 90 70 andi r25, 0x00 ; 0
54c: 07 97 sbiw r24, 0x07 ; 7
54e: 01 f5 brne .+64 ; 0x590 <__stack+0x131>
550: d8 01 movw r26, r16
552: 17 96 adiw r26, 0x07 ; 7
554: 40 e0 ldi r20, 0x00 ; 0
556: 8c 91 ld r24, X
558: 81 30 cpi r24, 0x01 ; 1
55a: a1 f4 brne .+40 ; 0x584 <__stack+0x125>
55c: fd 01 movw r30, r26
55e: 31 97 sbiw r30, 0x01 ; 1
560: 90 81 ld r25, Z
562: fd 01 movw r30, r26
564: 33 97 sbiw r30, 0x03 ; 3
566: 80 81 ld r24, Z
568: 29 2f mov r18, r25
56a: 33 27 eor r19, r19
56c: f9 01 movw r30, r18
56e: e8 1b sub r30, r24
570: f1 09 sbc r31, r1
572: 33 97 sbiw r30, 0x03 ; 3
574: 3c f4 brge .+14 ; 0x584 <__stack+0x125>
576: c6 01 movw r24, r12
578: 82 1b sub r24, r18
57a: 93 0b sbc r25, r19
57c: 03 97 sbiw r24, 0x03 ; 3
57e: 14 f0 brlt .+4 ; 0x584 <__stack+0x125>
580: 1c 92 st X, r1
582: 71 50 subi r23, 0x01 ; 1
584: 4f 5f subi r20, 0xFF ; 255
586: 18 96 adiw r26, 0x08 ; 8
588: 48 30 cpi r20, 0x08 ; 8
58a: 29 f7 brne .-54 ; 0x556 <__stack+0xf7>
58c: 70 93 73 00 sts 0x0073, r23
590: e0 92 76 00 sts 0x0076, r14
594: f0 e9 ldi r31, 0x90 ; 144
596: ef 16 cp r14, r31
598: 09 f4 brne .+2 ; 0x59c <__stack+0x13d>
59a: 48 cf rjmp .-368 ; 0x42c <FrameMgr_processLine+0x10a>
59c: 80 91 72 00 lds r24, 0x0072
5a0: 82 60 ori r24, 0x02 ; 2
5a2: 80 93 72 00 sts 0x0072, r24
5a6: 04 c0 rjmp .+8 ; 0x5b0 <__stack+0x151>
5a8: 78 30 cpi r23, 0x08 ; 8
5aa: 08 f4 brcc .+2 ; 0x5ae <__stack+0x14f>
5ac: b2 cf rjmp .-156 ; 0x512 <__stack+0xb3>
5ae: c6 cf rjmp .-116 ; 0x53c <__stack+0xdd>
5b0: 21 96 adiw r28, 0x01 ; 1
5b2: 0f b6 in r0, 0x3f ; 63
5b4: f8 94 cli
5b6: de bf out 0x3e, r29 ; 62
5b8: 0f be out 0x3f, r0 ; 63
5ba: cd bf out 0x3d, r28 ; 61
5bc: df 91 pop r29
5be: cf 91 pop r28
5c0: 1f 91 pop r17
5c2: 0f 91 pop r16
5c4: ff 90 pop r15
5c6: ef 90 pop r14
5c8: df 90 pop r13
5ca: cf 90 pop r12
5cc: bf 90 pop r11
5ce: af 90 pop r10
5d0: 9f 90 pop r9
5d2: 8f 90 pop r8
5d4: 7f 90 pop r7
5d6: 6f 90 pop r6
5d8: 5f 90 pop r5
5da: 4f 90 pop r4
5dc: 3f 90 pop r3
5de: 2f 90 pop r2
5e0: 08 95 ret
332: bf 92 push r11
334: cf 92 push r12
336: df 92 push r13
338: ef 92 push r14
33a: ff 92 push r15
33c: 0f 93 push r16
33e: 1f 93 push r17
340: cf 93 push r28
342: df 93 push r29
344: cd b7 in r28, 0x3d ; 61
346: de b7 in r29, 0x3e ; 62
348: 21 97 sbiw r28, 0x01 ; 1
34a: 0f b6 in r0, 0x3f ; 63
34c: f8 94 cli
34e: de bf out 0x3e, r29 ; 62
350: 0f be out 0x3f, r0 ; 63
352: cd bf out 0x3d, r28 ; 61
354: 40 91 60 00 lds r20, 0x0060
358: 50 91 61 00 lds r21, 0x0061
35c: 80 91 74 00 lds r24, 0x0074
360: 82 30 cpi r24, 0x02 ; 2
362: 09 f0 breq .+2 ; 0x366 <FrameMgr_processLine+0x44>
364: 5b c0 rjmp .+182 ; 0x41c <FrameMgr_processLine+0xfa>
366: 8b e0 ldi r24, 0x0B ; 11
368: 02 d4 rcall .+2052 ; 0xb6e <UartInt_txByte>
36a: 80 91 75 00 lds r24, 0x0075
36e: ff d3 rcall .+2046 ; 0xb6e <UartInt_txByte>
370: 0c eb ldi r16, 0xBC ; 188
372: 11 e0 ldi r17, 0x01 ; 1
374: 0f 2e mov r0, r31
376: fc e0 ldi r31, 0x0C ; 12
378: ef 2e mov r14, r31
37a: f1 e0 ldi r31, 0x01 ; 1
37c: ff 2e mov r15, r31
37e: f0 2d mov r31, r0
380: 0f 2e mov r0, r31
382: fc e6 ldi r31, 0x6C ; 108
384: cf 2e mov r12, r31
386: f2 e0 ldi r31, 0x02 ; 2
388: df 2e mov r13, r31
38a: f0 2d mov r31, r0
38c: d8 01 movw r26, r16
38e: 8c 91 ld r24, X
390: 89 83 std Y+1, r24 ; 0x01
392: 89 81 ldd r24, Y+1 ; 0x01
394: 8f 70 andi r24, 0x0F ; 15
396: 89 83 std Y+1, r24 ; 0x01
398: 89 81 ldd r24, Y+1 ; 0x01
39a: 82 95 swap r24
39c: 80 7f andi r24, 0xF0 ; 240
39e: 89 83 std Y+1, r24 ; 0x01
3a0: 99 81 ldd r25, Y+1 ; 0x01
3a2: f7 01 movw r30, r14
3a4: 80 81 ld r24, Z
3a6: 8f 70 andi r24, 0x0F ; 15
3a8: 89 2b or r24, r25
3aa: 89 83 std Y+1, r24 ; 0x01
3ac: 89 81 ldd r24, Y+1 ; 0x01
3ae: df d3 rcall .+1982 ; 0xb6e <UartInt_txByte>
3b0: f7 01 movw r30, r14
3b2: 81 81 ldd r24, Z+1 ; 0x01
3b4: 89 83 std Y+1, r24 ; 0x01
3b6: 89 81 ldd r24, Y+1 ; 0x01
3b8: 8f 70 andi r24, 0x0F ; 15
3ba: 89 83 std Y+1, r24 ; 0x01
3bc: 89 81 ldd r24, Y+1 ; 0x01
3be: 82 95 swap r24
3c0: 80 7f andi r24, 0xF0 ; 240
3c2: 89 83 std Y+1, r24 ; 0x01
3c4: 99 81 ldd r25, Y+1 ; 0x01
3c6: f8 01 movw r30, r16
3c8: 81 81 ldd r24, Z+1 ; 0x01
3ca: 8f 70 andi r24, 0x0F ; 15
3cc: 89 2b or r24, r25
3ce: 89 83 std Y+1, r24 ; 0x01
3d0: 89 81 ldd r24, Y+1 ; 0x01
3d2: cd d3 rcall .+1946 ; 0xb6e <UartInt_txByte>
3d4: 0e 5f subi r16, 0xFE ; 254
3d6: 1f 4f sbci r17, 0xFF ; 255
3d8: 82 e0 ldi r24, 0x02 ; 2
3da: 90 e0 ldi r25, 0x00 ; 0
3dc: e8 0e add r14, r24
3de: f9 1e adc r15, r25
3e0: 0c 15 cp r16, r12
3e2: 1d 05 cpc r17, r13
3e4: 99 f6 brne .-90 ; 0x38c <FrameMgr_processLine+0x6a>
3e6: 8f e0 ldi r24, 0x0F ; 15
3e8: c2 d3 rcall .+1924 ; 0xb6e <UartInt_txByte>
3ea: 80 91 75 00 lds r24, 0x0075
3ee: 8f 5f subi r24, 0xFF ; 255
3f0: 80 93 75 00 sts 0x0075, r24
3f4: 88 34 cpi r24, 0x48 ; 72
3f6: 60 f0 brcs .+24 ; 0x410 <FrameMgr_processLine+0xee>
3f8: 10 92 75 00 sts 0x0075, r1
3fc: 10 92 74 00 sts 0x0074, r1
400: 89 b7 in r24, 0x39 ; 57
402: 8b 7f andi r24, 0xFB ; 251
404: 89 bf out 0x39, r24 ; 57
406: 60 e0 ldi r22, 0x00 ; 0
408: 81 e1 ldi r24, 0x11 ; 17
40a: f3 d4 rcall .+2534 ; 0xdf2 <CamConfig_setCamReg>
40c: f7 d4 rcall .+2542 ; 0xdfc <CamConfig_sendFifoCmds>
40e: bf c0 rjmp .+382 ; 0x58e <__stack+0x12f>
410: 80 91 72 00 lds r24, 0x0072
414: 82 60 ori r24, 0x02 ; 2
416: 80 93 72 00 sts 0x0072, r24
41a: b9 c0 rjmp .+370 ; 0x58e <__stack+0x12f>
41c: 81 30 cpi r24, 0x01 ; 1
41e: 09 f0 breq .+2 ; 0x422 <FrameMgr_processLine+0x100>
420: b6 c0 rjmp .+364 ; 0x58e <__stack+0x12f>
422: b0 90 76 00 lds r11, 0x0076
426: eb 2c mov r14, r11
428: ff 24 eor r15, r15
42a: 37 01 movw r6, r14
42c: 08 94 sec
42e: 61 08 sbc r6, r1
430: 71 08 sbc r7, r1
432: 00 91 73 00 lds r16, 0x0073
436: 10 e0 ldi r17, 0x00 ; 0
438: 60 e0 ldi r22, 0x00 ; 0
43a: 71 e0 ldi r23, 0x01 ; 1
43c: 0f 2e mov r0, r31
43e: fc eb ldi r31, 0xBC ; 188
440: 2f 2e mov r2, r31
442: f1 e0 ldi r31, 0x01 ; 1
444: 3f 2e mov r3, r31
446: f0 2d mov r31, r0
448: d1 01 movw r26, r2
44a: 3c 91 ld r19, X
44c: 17 0f add r17, r23
44e: f1 01 movw r30, r2
450: 71 81 ldd r23, Z+1 ; 0x01
452: 82 e0 ldi r24, 0x02 ; 2
454: 90 e0 ldi r25, 0x00 ; 0
456: 28 0e add r2, r24
458: 39 1e adc r3, r25
45a: 67 0f add r22, r23
45c: 33 23 and r19, r19
45e: 09 f4 brne .+2 ; 0x462 <__stack+0x3>
460: 57 c0 rjmp .+174 ; 0x510 <__stack+0xb1>
462: 74 30 cpi r23, 0x04 ; 4
464: 08 f4 brcc .+2 ; 0x468 <__stack+0x9>
466: 54 c0 rjmp .+168 ; 0x510 <__stack+0xb1>
468: fa 01 movw r30, r20
46a: 20 e0 ldi r18, 0x00 ; 0
46c: 80 81 ld r24, Z
46e: 83 17 cp r24, r19
470: b1 f5 brne .+108 ; 0x4de <__stack+0x7f>
472: 87 81 ldd r24, Z+7 ; 0x07
474: 81 30 cpi r24, 0x01 ; 1
476: 99 f5 brne .+102 ; 0x4de <__stack+0x7f>
478: 0f 2e mov r0, r31
47a: f6 e0 ldi r31, 0x06 ; 6
47c: cf 2e mov r12, r31
47e: dd 24 eor r13, r13
480: f0 2d mov r31, r0
482: ce 0e add r12, r30
484: df 1e adc r13, r31
486: 86 81 ldd r24, Z+6 ; 0x06
488: 99 27 eor r25, r25
48a: 86 15 cp r24, r6
48c: 97 05 cpc r25, r7
48e: 39 f5 brne .+78 ; 0x4de <__stack+0x7f>
490: 2f 01 movw r4, r30
492: 08 94 sec
494: 41 1c adc r4, r1
496: 51 1c adc r5, r1
498: 81 81 ldd r24, Z+1 ; 0x01
49a: 88 24 eor r8, r8
49c: 99 24 eor r9, r9
49e: 68 94 set
4a0: 81 f8 bld r8, 1
4a2: 8e 0e add r8, r30
4a4: 9f 1e adc r9, r31
4a6: 92 81 ldd r25, Z+2 ; 0x02
4a8: 18 17 cp r17, r24
4aa: 10 f0 brcs .+4 ; 0x4b0 <__stack+0x51>
4ac: 91 17 cp r25, r17
4ae: 40 f4 brcc .+16 ; 0x4c0 <__stack+0x61>
4b0: 68 17 cp r22, r24
4b2: 10 f0 brcs .+4 ; 0x4b8 <__stack+0x59>
4b4: 96 17 cp r25, r22
4b6: 20 f4 brcc .+8 ; 0x4c0 <__stack+0x61>
4b8: 81 17 cp r24, r17
4ba: 88 f0 brcs .+34 ; 0x4de <__stack+0x7f>
4bc: 69 17 cp r22, r25
4be: 78 f0 brcs .+30 ; 0x4de <__stack+0x7f>
4c0: d2 01 movw r26, r4
4c2: 1c 93 st X, r17
4c4: d4 01 movw r26, r8
4c6: 6c 93 st X, r22
4c8: 83 81 ldd r24, Z+3 ; 0x03
4ca: 18 17 cp r17, r24
4cc: 08 f4 brcc .+2 ; 0x4d0 <__stack+0x71>
4ce: 13 83 std Z+3, r17 ; 0x03
4d0: 85 81 ldd r24, Z+5 ; 0x05
4d2: 86 17 cp r24, r22
4d4: 08 f4 brcc .+2 ; 0x4d8 <__stack+0x79>
4d6: 65 83 std Z+5, r22 ; 0x05
4d8: f6 01 movw r30, r12
4da: b0 82 st Z, r11
4dc: 19 c0 rjmp .+50 ; 0x510 <__stack+0xb1>
4de: 2f 5f subi r18, 0xFF ; 255
4e0: 28 30 cpi r18, 0x08 ; 8
4e2: 09 f4 brne .+2 ; 0x4e6 <__stack+0x87>
4e4: 50 c0 rjmp .+160 ; 0x586 <__stack+0x127>
4e6: 38 96 adiw r30, 0x08 ; 8
4e8: c1 cf rjmp .-126 ; 0x46c <__stack+0xd>
4ea: fa 01 movw r30, r20
4ec: 90 e0 ldi r25, 0x00 ; 0
4ee: 87 81 ldd r24, Z+7 ; 0x07
4f0: 88 23 and r24, r24
4f2: 21 f0 breq .+8 ; 0x4fc <__stack+0x9d>
4f4: 38 96 adiw r30, 0x08 ; 8
4f6: 9f 5f subi r25, 0xFF ; 255
4f8: 98 30 cpi r25, 0x08 ; 8
4fa: c9 f7 brne .-14 ; 0x4ee <__stack+0x8f>
4fc: 30 83 st Z, r19
4fe: 11 83 std Z+1, r17 ; 0x01
500: 62 83 std Z+2, r22 ; 0x02
502: 13 83 std Z+3, r17 ; 0x03
504: b4 82 std Z+4, r11 ; 0x04
506: 65 83 std Z+5, r22 ; 0x05
508: b6 82 std Z+6, r11 ; 0x06
50a: 81 e0 ldi r24, 0x01 ; 1
50c: 87 83 std Z+7, r24 ; 0x07
50e: 0f 5f subi r16, 0xFF ; 255
510: 60 3b cpi r22, 0xB0 ; 176
512: 08 f4 brcc .+2 ; 0x516 <__stack+0xb7>
514: 99 cf rjmp .-206 ; 0x448 <FrameMgr_processLine+0x126>
516: 00 93 73 00 sts 0x0073, r16
51a: c7 01 movw r24, r14
51c: 87 70 andi r24, 0x07 ; 7
51e: 90 70 andi r25, 0x00 ; 0
520: 07 97 sbiw r24, 0x07 ; 7
522: e9 f4 brne .+58 ; 0x55e <__stack+0xff>
524: 60 e0 ldi r22, 0x00 ; 0
526: fa 01 movw r30, r20
528: 87 81 ldd r24, Z+7 ; 0x07
52a: 81 30 cpi r24, 0x01 ; 1
52c: 81 f4 brne .+32 ; 0x54e <__stack+0xef>
52e: 86 81 ldd r24, Z+6 ; 0x06
530: 28 2f mov r18, r24
532: 33 27 eor r19, r19
534: 84 81 ldd r24, Z+4 ; 0x04
536: d9 01 movw r26, r18
538: a8 1b sub r26, r24
53a: b1 09 sbc r27, r1
53c: 13 97 sbiw r26, 0x03 ; 3
53e: 3c f4 brge .+14 ; 0x54e <__stack+0xef>
540: c7 01 movw r24, r14
542: 82 1b sub r24, r18
544: 93 0b sbc r25, r19
546: 03 97 sbiw r24, 0x03 ; 3
548: 14 f0 brlt .+4 ; 0x54e <__stack+0xef>
54a: 17 82 std Z+7, r1 ; 0x07
54c: 01 50 subi r16, 0x01 ; 1
54e: 6f 5f subi r22, 0xFF ; 255
550: 68 30 cpi r22, 0x08 ; 8
552: 19 f0 breq .+6 ; 0x55a <__stack+0xfb>
554: 48 5f subi r20, 0xF8 ; 248
556: 5f 4f sbci r21, 0xFF ; 255
558: e6 cf rjmp .-52 ; 0x526 <__stack+0xc7>
55a: 00 93 73 00 sts 0x0073, r16
55e: 8b 2d mov r24, r11
560: 8f 5f subi r24, 0xFF ; 255
562: 80 93 76 00 sts 0x0076, r24
566: 80 39 cpi r24, 0x90 ; 144
568: 41 f4 brne .+16 ; 0x57a <__stack+0x11b>
56a: 80 e2 ldi r24, 0x20 ; 32
56c: 0a de rcall .-1004 ; 0x182 <Exec_writeEventFifo>
56e: 89 b7 in r24, 0x39 ; 57
570: 8b 7f andi r24, 0xFB ; 251
572: 89 bf out 0x39, r24 ; 57
574: 10 92 76 00 sts 0x0076, r1
578: 0a c0 rjmp .+20 ; 0x58e <__stack+0x12f>
57a: 80 91 72 00 lds r24, 0x0072
57e: 82 60 ori r24, 0x02 ; 2
580: 80 93 72 00 sts 0x0072, r24
584: 04 c0 rjmp .+8 ; 0x58e <__stack+0x12f>
586: 08 30 cpi r16, 0x08 ; 8
588: 08 f4 brcc .+2 ; 0x58c <__stack+0x12d>
58a: af cf rjmp .-162 ; 0x4ea <__stack+0x8b>
58c: c1 cf rjmp .-126 ; 0x510 <__stack+0xb1>
58e: 21 96 adiw r28, 0x01 ; 1
590: 0f b6 in r0, 0x3f ; 63
592: f8 94 cli
594: de bf out 0x3e, r29 ; 62
596: 0f be out 0x3f, r0 ; 63
598: cd bf out 0x3d, r28 ; 61
59a: df 91 pop r29
59c: cf 91 pop r28
59e: 1f 91 pop r17
5a0: 0f 91 pop r16
5a2: ff 90 pop r15
5a4: ef 90 pop r14
5a6: df 90 pop r13
5a8: cf 90 pop r12
5aa: bf 90 pop r11
5ac: 9f 90 pop r9
5ae: 8f 90 pop r8
5b0: 7f 90 pop r7
5b2: 6f 90 pop r6
5b4: 5f 90 pop r5
5b6: 4f 90 pop r4
5b8: 3f 90 pop r3
5ba: 2f 90 pop r2
5bc: 08 95 ret
 
000005e2 <FrameMgr_init>:
5e2: 80 e4 ldi r24, 0x40 ; 64
5e4: e8 e7 ldi r30, 0x78 ; 120
5e6: f0 e0 ldi r31, 0x00 ; 0
5e8: 11 92 st Z+, r1
5ea: 8a 95 dec r24
5ec: e9 f7 brne .-6 ; 0x5e8 <FrameMgr_init+0x6>
5ee: 08 95 ret
000005be <FrameMgr_init>:
5be: 80 e4 ldi r24, 0x40 ; 64
5c0: e8 e7 ldi r30, 0x78 ; 120
5c2: f0 e0 ldi r31, 0x00 ; 0
5c4: 11 92 st Z+, r1
5c6: 8a 95 dec r24
5c8: e9 f7 brne .-6 ; 0x5c4 <FrameMgr_init+0x6>
5ca: 08 95 ret
 
000005f0 <FrameMgr_acquireLine>:
5f0: 80 91 74 00 lds r24, 0x0074
5f4: 82 30 cpi r24, 0x02 ; 2
5f6: 49 f5 brne .+82 ; 0x64a <FrameMgr_acquireLine+0x5a>
5f8: 80 91 75 00 lds r24, 0x0075
5fc: 28 2f mov r18, r24
5fe: 22 0f add r18, r18
600: 80 eb ldi r24, 0xB0 ; 176
602: ec eb ldi r30, 0xBC ; 188
604: f1 e0 ldi r31, 0x01 ; 1
606: 98 2f mov r25, r24
608: 11 92 st Z+, r1
60a: 9a 95 dec r25
60c: e9 f7 brne .-6 ; 0x608 <FrameMgr_acquireLine+0x18>
60e: ec e0 ldi r30, 0x0C ; 12
610: f1 e0 ldi r31, 0x01 ; 1
612: 11 92 st Z+, r1
614: 8a 95 dec r24
616: e9 f7 brne .-6 ; 0x612 <FrameMgr_acquireLine+0x22>
618: 82 9b sbis 0x10, 2 ; 16
61a: fe cf rjmp .-4 ; 0x618 <FrameMgr_acquireLine+0x28>
61c: 82 9b sbis 0x10, 2 ; 16
61e: 07 c0 rjmp .+14 ; 0x62e <FrameMgr_acquireLine+0x3e>
620: fd cf rjmp .-6 ; 0x61c <FrameMgr_acquireLine+0x2c>
622: 90 e0 ldi r25, 0x00 ; 0
624: 84 9b sbis 0x10, 4 ; 16
626: fe cf rjmp .-4 ; 0x624 <FrameMgr_acquireLine+0x34>
628: 84 9b sbis 0x10, 4 ; 16
62a: 04 c0 rjmp .+8 ; 0x634 <FrameMgr_acquireLine+0x44>
62c: fd cf rjmp .-6 ; 0x628 <FrameMgr_acquireLine+0x38>
62e: 22 23 and r18, r18
630: c1 f7 brne .-16 ; 0x622 <FrameMgr_acquireLine+0x32>
632: 05 c0 rjmp .+10 ; 0x63e <FrameMgr_acquireLine+0x4e>
634: 91 50 subi r25, 0x01 ; 1
636: 82 2f mov r24, r18
638: 81 95 neg r24
63a: 98 17 cp r25, r24
63c: 99 f7 brne .-26 ; 0x624 <FrameMgr_acquireLine+0x34>
63e: 6c e0 ldi r22, 0x0C ; 12
640: 71 e0 ldi r23, 0x01 ; 1
642: 8c eb ldi r24, 0xBC ; 188
644: 91 e0 ldi r25, 0x01 ; 1
646: c3 d4 rcall .+2438 ; 0xfce <CamIntAsm_acquireDumpLine>
648: 08 95 ret
64a: 81 30 cpi r24, 0x01 ; 1
64c: 39 f4 brne .+14 ; 0x65c <FrameMgr_acquireLine+0x6c>
64e: 84 99 sbic 0x10, 4 ; 16
650: fe cf rjmp .-4 ; 0x64e <FrameMgr_acquireLine+0x5e>
652: 60 e0 ldi r22, 0x00 ; 0
654: 73 e0 ldi r23, 0x03 ; 3
656: 8c eb ldi r24, 0xBC ; 188
658: 91 e0 ldi r25, 0x01 ; 1
65a: 72 d4 rcall .+2276 ; 0xf40 <CamIntAsm_acquireTrackingLine>
65c: 08 95 ret
000005cc <FrameMgr_acquireLine>:
5cc: 80 91 74 00 lds r24, 0x0074
5d0: 82 30 cpi r24, 0x02 ; 2
5d2: 31 f5 brne .+76 ; 0x620 <FrameMgr_acquireLine+0x54>
5d4: 80 91 75 00 lds r24, 0x0075
5d8: 98 2f mov r25, r24
5da: 99 0f add r25, r25
5dc: 80 eb ldi r24, 0xB0 ; 176
5de: ec eb ldi r30, 0xBC ; 188
5e0: f1 e0 ldi r31, 0x01 ; 1
5e2: 28 2f mov r18, r24
5e4: 11 92 st Z+, r1
5e6: 2a 95 dec r18
5e8: e9 f7 brne .-6 ; 0x5e4 <FrameMgr_acquireLine+0x18>
5ea: ec e0 ldi r30, 0x0C ; 12
5ec: f1 e0 ldi r31, 0x01 ; 1
5ee: 11 92 st Z+, r1
5f0: 8a 95 dec r24
5f2: e9 f7 brne .-6 ; 0x5ee <FrameMgr_acquireLine+0x22>
5f4: 82 9b sbis 0x10, 2 ; 16
5f6: fe cf rjmp .-4 ; 0x5f4 <FrameMgr_acquireLine+0x28>
5f8: 82 9b sbis 0x10, 2 ; 16
5fa: 07 c0 rjmp .+14 ; 0x60a <FrameMgr_acquireLine+0x3e>
5fc: fd cf rjmp .-6 ; 0x5f8 <FrameMgr_acquireLine+0x2c>
5fe: 84 9b sbis 0x10, 4 ; 16
600: fe cf rjmp .-4 ; 0x5fe <FrameMgr_acquireLine+0x32>
602: 91 50 subi r25, 0x01 ; 1
604: 84 9b sbis 0x10, 4 ; 16
606: 04 c0 rjmp .+8 ; 0x610 <FrameMgr_acquireLine+0x44>
608: fd cf rjmp .-6 ; 0x604 <FrameMgr_acquireLine+0x38>
60a: 99 23 and r25, r25
60c: c1 f7 brne .-16 ; 0x5fe <FrameMgr_acquireLine+0x32>
60e: 02 c0 rjmp .+4 ; 0x614 <FrameMgr_acquireLine+0x48>
610: 99 23 and r25, r25
612: a9 f7 brne .-22 ; 0x5fe <FrameMgr_acquireLine+0x32>
614: 6c e0 ldi r22, 0x0C ; 12
616: 71 e0 ldi r23, 0x01 ; 1
618: 8c eb ldi r24, 0xBC ; 188
61a: 91 e0 ldi r25, 0x01 ; 1
61c: e4 d4 rcall .+2504 ; 0xfe6 <CamIntAsm_acquireDumpLine>
61e: 08 95 ret
620: 81 30 cpi r24, 0x01 ; 1
622: 39 f4 brne .+14 ; 0x632 <FrameMgr_acquireLine+0x66>
624: 84 99 sbic 0x10, 4 ; 16
626: fe cf rjmp .-4 ; 0x624 <FrameMgr_acquireLine+0x58>
628: 60 e0 ldi r22, 0x00 ; 0
62a: 73 e0 ldi r23, 0x03 ; 3
62c: 8c eb ldi r24, 0xBC ; 188
62e: 91 e0 ldi r25, 0x01 ; 1
630: 93 d4 rcall .+2342 ; 0xf58 <CamIntAsm_acquireTrackingLine>
632: 08 95 ret
 
0000065e <FrameMgr_acquireFrame>:
65e: 80 91 74 00 lds r24, 0x0074
662: 81 30 cpi r24, 0x01 ; 1
664: a9 f4 brne .+42 ; 0x690 <FrameMgr_acquireFrame+0x32>
666: 10 92 76 00 sts 0x0076, r1
66a: 80 91 73 00 lds r24, 0x0073
66e: 80 93 77 00 sts 0x0077, r24
672: 10 92 73 00 sts 0x0073, r1
676: 80 e4 ldi r24, 0x40 ; 64
678: e8 e7 ldi r30, 0x78 ; 120
67a: f0 e0 ldi r31, 0x00 ; 0
67c: 11 92 st Z+, r1
67e: 8a 95 dec r24
680: e9 f7 brne .-6 ; 0x67c <FrameMgr_acquireFrame+0x1e>
682: 82 9b sbis 0x10, 2 ; 16
684: fe cf rjmp .-4 ; 0x682 <FrameMgr_acquireFrame+0x24>
686: 60 e0 ldi r22, 0x00 ; 0
688: 73 e0 ldi r23, 0x03 ; 3
68a: 8c eb ldi r24, 0xBC ; 188
68c: 91 e0 ldi r25, 0x01 ; 1
68e: 58 d4 rcall .+2224 ; 0xf40 <CamIntAsm_acquireTrackingLine>
690: 08 95 ret
00000634 <FrameMgr_acquireFrame>:
634: 80 91 74 00 lds r24, 0x0074
638: 81 30 cpi r24, 0x01 ; 1
63a: a9 f4 brne .+42 ; 0x666 <FrameMgr_acquireFrame+0x32>
63c: 10 92 76 00 sts 0x0076, r1
640: 80 91 73 00 lds r24, 0x0073
644: 80 93 77 00 sts 0x0077, r24
648: 10 92 73 00 sts 0x0073, r1
64c: 80 e4 ldi r24, 0x40 ; 64
64e: e8 e7 ldi r30, 0x78 ; 120
650: f0 e0 ldi r31, 0x00 ; 0
652: 11 92 st Z+, r1
654: 8a 95 dec r24
656: e9 f7 brne .-6 ; 0x652 <FrameMgr_acquireFrame+0x1e>
658: 82 9b sbis 0x10, 2 ; 16
65a: fe cf rjmp .-4 ; 0x658 <FrameMgr_acquireFrame+0x24>
65c: 60 e0 ldi r22, 0x00 ; 0
65e: 73 e0 ldi r23, 0x03 ; 3
660: 8c eb ldi r24, 0xBC ; 188
662: 91 e0 ldi r25, 0x01 ; 1
664: 79 d4 rcall .+2290 ; 0xf58 <CamIntAsm_acquireTrackingLine>
666: 08 95 ret
 
00000692 <FrameMgr_dispatchEvent>:
692: 84 30 cpi r24, 0x04 ; 4
694: 19 f1 breq .+70 ; 0x6dc <FrameMgr_dispatchEvent+0x4a>
696: 85 30 cpi r24, 0x05 ; 5
698: 28 f4 brcc .+10 ; 0x6a4 <FrameMgr_dispatchEvent+0x12>
69a: 81 30 cpi r24, 0x01 ; 1
69c: 09 f1 breq .+66 ; 0x6e0 <FrameMgr_dispatchEvent+0x4e>
69e: 82 30 cpi r24, 0x02 ; 2
6a0: 41 f5 brne .+80 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6a2: 07 c0 rjmp .+14 ; 0x6b2 <FrameMgr_dispatchEvent+0x20>
6a4: 80 38 cpi r24, 0x80 ; 128
6a6: 99 f0 breq .+38 ; 0x6ce <FrameMgr_dispatchEvent+0x3c>
6a8: 81 38 cpi r24, 0x81 ; 129
6aa: 09 f1 breq .+66 ; 0x6ee <FrameMgr_dispatchEvent+0x5c>
6ac: 80 32 cpi r24, 0x20 ; 32
6ae: 09 f5 brne .+66 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6b0: 13 c0 rjmp .+38 ; 0x6d8 <FrameMgr_dispatchEvent+0x46>
6b2: 61 e0 ldi r22, 0x01 ; 1
6b4: 81 e1 ldi r24, 0x11 ; 17
6b6: 9b d3 rcall .+1846 ; 0xdee <CamConfig_setCamReg>
6b8: 9f d3 rcall .+1854 ; 0xdf8 <CamConfig_sendFifoCmds>
6ba: 88 ee ldi r24, 0xE8 ; 232
6bc: 93 e0 ldi r25, 0x03 ; 3
6be: e7 d3 rcall .+1998 ; 0xe8e <Utility_delay>
6c0: 10 92 75 00 sts 0x0075, r1
6c4: 82 e0 ldi r24, 0x02 ; 2
6c6: 80 93 74 00 sts 0x0074, r24
6ca: 92 df rcall .-220 ; 0x5f0 <FrameMgr_acquireLine>
6cc: 08 95 ret
6ce: 81 e0 ldi r24, 0x01 ; 1
6d0: 80 93 74 00 sts 0x0074, r24
6d4: c4 df rcall .-120 ; 0x65e <FrameMgr_acquireFrame>
6d6: 08 95 ret
6d8: cb dd rcall .-1130 ; 0x270 <FrameMgr_processFrame>
6da: 08 95 ret
6dc: c0 df rcall .-128 ; 0x65e <FrameMgr_acquireFrame>
6de: 08 95 ret
6e0: 80 91 74 00 lds r24, 0x0074
6e4: 88 23 and r24, r24
6e6: 29 f0 breq .+10 ; 0x6f2 <FrameMgr_dispatchEvent+0x60>
6e8: 84 e0 ldi r24, 0x04 ; 4
6ea: 4b dd rcall .-1386 ; 0x182 <Exec_writeEventFifo>
6ec: 08 95 ret
6ee: 10 92 74 00 sts 0x0074, r1
6f2: 08 95 ret
00000668 <FrameMgr_dispatchEvent>:
668: 84 30 cpi r24, 0x04 ; 4
66a: 19 f1 breq .+70 ; 0x6b2 <FrameMgr_dispatchEvent+0x4a>
66c: 85 30 cpi r24, 0x05 ; 5
66e: 28 f4 brcc .+10 ; 0x67a <FrameMgr_dispatchEvent+0x12>
670: 81 30 cpi r24, 0x01 ; 1
672: 09 f1 breq .+66 ; 0x6b6 <FrameMgr_dispatchEvent+0x4e>
674: 82 30 cpi r24, 0x02 ; 2
676: 41 f5 brne .+80 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
678: 07 c0 rjmp .+14 ; 0x688 <FrameMgr_dispatchEvent+0x20>
67a: 80 38 cpi r24, 0x80 ; 128
67c: 99 f0 breq .+38 ; 0x6a4 <FrameMgr_dispatchEvent+0x3c>
67e: 81 38 cpi r24, 0x81 ; 129
680: 09 f1 breq .+66 ; 0x6c4 <FrameMgr_dispatchEvent+0x5c>
682: 80 32 cpi r24, 0x20 ; 32
684: 09 f5 brne .+66 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
686: 13 c0 rjmp .+38 ; 0x6ae <FrameMgr_dispatchEvent+0x46>
688: 61 e0 ldi r22, 0x01 ; 1
68a: 81 e1 ldi r24, 0x11 ; 17
68c: b2 d3 rcall .+1892 ; 0xdf2 <CamConfig_setCamReg>
68e: b6 d3 rcall .+1900 ; 0xdfc <CamConfig_sendFifoCmds>
690: 88 ee ldi r24, 0xE8 ; 232
692: 93 e0 ldi r25, 0x03 ; 3
694: 08 d4 rcall .+2064 ; 0xea6 <Utility_delay>
696: 10 92 75 00 sts 0x0075, r1
69a: 82 e0 ldi r24, 0x02 ; 2
69c: 80 93 74 00 sts 0x0074, r24
6a0: 95 df rcall .-214 ; 0x5cc <FrameMgr_acquireLine>
6a2: 08 95 ret
6a4: 81 e0 ldi r24, 0x01 ; 1
6a6: 80 93 74 00 sts 0x0074, r24
6aa: c4 df rcall .-120 ; 0x634 <FrameMgr_acquireFrame>
6ac: 08 95 ret
6ae: e0 dd rcall .-1088 ; 0x270 <FrameMgr_processFrame>
6b0: 08 95 ret
6b2: c0 df rcall .-128 ; 0x634 <FrameMgr_acquireFrame>
6b4: 08 95 ret
6b6: 80 91 74 00 lds r24, 0x0074
6ba: 88 23 and r24, r24
6bc: 29 f0 breq .+10 ; 0x6c8 <FrameMgr_dispatchEvent+0x60>
6be: 84 e0 ldi r24, 0x04 ; 4
6c0: 60 dd rcall .-1344 ; 0x182 <Exec_writeEventFifo>
6c2: 08 95 ret
6c4: 10 92 74 00 sts 0x0074, r1
6c8: 08 95 ret
 
000006f4 <UIMgr_writeBufferToTxFifo>:
6f4: dc 01 movw r26, r24
6f6: 86 2f mov r24, r22
6f8: 66 23 and r22, r22
6fa: c9 f0 breq .+50 ; 0x72e <UIMgr_writeBufferToTxFifo+0x3a>
6fc: f8 94 cli
6fe: 61 50 subi r22, 0x01 ; 1
700: 6f 3f cpi r22, 0xFF ; 255
702: a1 f0 breq .+40 ; 0x72c <UIMgr_writeBufferToTxFifo+0x38>
704: 26 2f mov r18, r22
706: 44 e9 ldi r20, 0x94 ; 148
708: 52 e0 ldi r21, 0x02 ; 2
70a: 86 1b sub r24, r22
70c: 68 2f mov r22, r24
70e: 62 50 subi r22, 0x02 ; 2
710: 80 91 ba 00 lds r24, 0x00BA
714: fa 01 movw r30, r20
716: e8 0f add r30, r24
718: f1 1d adc r31, r1
71a: 9d 91 ld r25, X+
71c: 90 83 st Z, r25
71e: 8f 5f subi r24, 0xFF ; 255
720: 8f 73 andi r24, 0x3F ; 63
722: 80 93 ba 00 sts 0x00BA, r24
726: 21 50 subi r18, 0x01 ; 1
728: 62 17 cp r22, r18
72a: 91 f7 brne .-28 ; 0x710 <UIMgr_writeBufferToTxFifo+0x1c>
72c: 78 94 sei
72e: 08 95 ret
 
00000730 <UIMgr_readTxFifo>:
730: f8 94 cli
732: 90 91 bb 00 lds r25, 0x00BB
736: e4 e9 ldi r30, 0x94 ; 148
738: f2 e0 ldi r31, 0x02 ; 2
73a: e9 0f add r30, r25
73c: f1 1d adc r31, r1
73e: 80 81 ld r24, Z
740: 9f 5f subi r25, 0xFF ; 255
742: 9f 73 andi r25, 0x3F ; 63
744: 90 93 bb 00 sts 0x00BB, r25
748: 78 94 sei
74a: 99 27 eor r25, r25
74c: 08 95 ret
 
0000074e <UIMgr_writeTxFifo>:
74e: f8 94 cli
750: 90 91 ba 00 lds r25, 0x00BA
754: e4 e9 ldi r30, 0x94 ; 148
756: f2 e0 ldi r31, 0x02 ; 2
758: e9 0f add r30, r25
75a: f1 1d adc r31, r1
75c: 80 83 st Z, r24
75e: 9f 5f subi r25, 0xFF ; 255
760: 9f 73 andi r25, 0x3F ; 63
762: 90 93 ba 00 sts 0x00BA, r25
766: 78 94 sei
768: 08 95 ret
 
0000076a <UIMgr_flushTxBuffer>:
76a: 90 91 ba 00 lds r25, 0x00BA
76e: 80 91 bb 00 lds r24, 0x00BB
772: 98 17 cp r25, r24
774: 41 f0 breq .+16 ; 0x786 <UIMgr_flushTxBuffer+0x1c>
776: dc df rcall .-72 ; 0x730 <UIMgr_readTxFifo>
778: f5 d1 rcall .+1002 ; 0xb64 <UartInt_txByte>
77a: 90 91 ba 00 lds r25, 0x00BA
77e: 80 91 bb 00 lds r24, 0x00BB
782: 98 17 cp r25, r24
784: c1 f7 brne .-16 ; 0x776 <UIMgr_flushTxBuffer+0xc>
786: 08 95 ret
 
00000788 <UIMgr_txBuffer>:
788: 0f 93 push r16
78a: 1f 93 push r17
78c: cf 93 push r28
78e: df 93 push r29
790: ec 01 movw r28, r24
792: 86 2f mov r24, r22
794: 61 50 subi r22, 0x01 ; 1
796: 6f 3f cpi r22, 0xFF ; 255
798: 49 f0 breq .+18 ; 0x7ac <UIMgr_txBuffer+0x24>
79a: 16 2f mov r17, r22
79c: 86 1b sub r24, r22
79e: 08 2f mov r16, r24
7a0: 02 50 subi r16, 0x02 ; 2
7a2: 89 91 ld r24, Y+
7a4: df d1 rcall .+958 ; 0xb64 <UartInt_txByte>
7a6: 11 50 subi r17, 0x01 ; 1
7a8: 01 17 cp r16, r17
7aa: d9 f7 brne .-10 ; 0x7a2 <UIMgr_txBuffer+0x1a>
7ac: df 91 pop r29
7ae: cf 91 pop r28
7b0: 1f 91 pop r17
7b2: 0f 91 pop r16
7b4: 08 95 ret
 
000007b6 <UIMgr_transmitPendingData>:
7b6: 90 91 ba 00 lds r25, 0x00BA
7ba: 80 91 bb 00 lds r24, 0x00BB
7be: 98 17 cp r25, r24
7c0: 11 f0 breq .+4 ; 0x7c6 <UIMgr_transmitPendingData+0x10>
7c2: b6 df rcall .-148 ; 0x730 <UIMgr_readTxFifo>
7c4: cf d1 rcall .+926 ; 0xb64 <UartInt_txByte>
7c6: 08 95 ret
 
000007c8 <UIMgr_convertTokenToCmd>:
7c8: 90 91 bf 00 lds r25, 0x00BF
7cc: 90 35 cpi r25, 0x50 ; 80
7ce: 41 f4 brne .+16 ; 0x7e0 <UIMgr_convertTokenToCmd+0x18>
7d0: 80 91 c0 00 lds r24, 0x00C0
7d4: 87 34 cpi r24, 0x47 ; 71
7d6: 09 f5 brne .+66 ; 0x81a <UIMgr_convertTokenToCmd+0x52>
7d8: 81 e0 ldi r24, 0x01 ; 1
7da: 80 93 62 00 sts 0x0062, r24
7de: 48 c0 rjmp .+144 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
7e0: 97 34 cpi r25, 0x47 ; 71
7e2: 39 f4 brne .+14 ; 0x7f2 <UIMgr_convertTokenToCmd+0x2a>
7e4: 80 91 c0 00 lds r24, 0x00C0
7e8: 86 35 cpi r24, 0x56 ; 86
7ea: 09 f5 brne .+66 ; 0x82e <UIMgr_convertTokenToCmd+0x66>
7ec: 10 92 62 00 sts 0x0062, r1
7f0: 3f c0 rjmp .+126 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
7f2: 94 34 cpi r25, 0x44 ; 68
7f4: 41 f4 brne .+16 ; 0x806 <UIMgr_convertTokenToCmd+0x3e>
7f6: 80 91 c0 00 lds r24, 0x00C0
7fa: 86 34 cpi r24, 0x46 ; 70
7fc: 11 f5 brne .+68 ; 0x842 <UIMgr_convertTokenToCmd+0x7a>
7fe: 83 e0 ldi r24, 0x03 ; 3
800: 80 93 62 00 sts 0x0062, r24
804: 35 c0 rjmp .+106 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
806: 93 34 cpi r25, 0x43 ; 67
808: 41 f4 brne .+16 ; 0x81a <UIMgr_convertTokenToCmd+0x52>
80a: 80 91 c0 00 lds r24, 0x00C0
80e: 82 35 cpi r24, 0x52 ; 82
810: 11 f5 brne .+68 ; 0x856 <UIMgr_convertTokenToCmd+0x8e>
812: 82 e0 ldi r24, 0x02 ; 2
814: 80 93 62 00 sts 0x0062, r24
818: 2b c0 rjmp .+86 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
81a: 95 34 cpi r25, 0x45 ; 69
81c: 41 f4 brne .+16 ; 0x82e <UIMgr_convertTokenToCmd+0x66>
81e: 80 91 c0 00 lds r24, 0x00C0
822: 84 35 cpi r24, 0x54 ; 84
824: 11 f5 brne .+68 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
826: 84 e0 ldi r24, 0x04 ; 4
828: 80 93 62 00 sts 0x0062, r24
82c: 21 c0 rjmp .+66 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
82e: 93 35 cpi r25, 0x53 ; 83
830: 41 f4 brne .+16 ; 0x842 <UIMgr_convertTokenToCmd+0x7a>
832: 80 91 c0 00 lds r24, 0x00C0
836: 8d 34 cpi r24, 0x4D ; 77
838: c1 f4 brne .+48 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
83a: 86 e0 ldi r24, 0x06 ; 6
83c: 80 93 62 00 sts 0x0062, r24
840: 17 c0 rjmp .+46 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
842: 94 34 cpi r25, 0x44 ; 68
844: 41 f4 brne .+16 ; 0x856 <UIMgr_convertTokenToCmd+0x8e>
846: 80 91 c0 00 lds r24, 0x00C0
84a: 84 35 cpi r24, 0x54 ; 84
84c: 71 f4 brne .+28 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
84e: 85 e0 ldi r24, 0x05 ; 5
850: 80 93 62 00 sts 0x0062, r24
854: 0d c0 rjmp .+26 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
856: 92 35 cpi r25, 0x52 ; 82
858: 41 f4 brne .+16 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
85a: 80 91 c0 00 lds r24, 0x00C0
85e: 83 35 cpi r24, 0x53 ; 83
860: 21 f4 brne .+8 ; 0x86a <UIMgr_convertTokenToCmd+0xa2>
862: 87 e0 ldi r24, 0x07 ; 7
864: 80 93 62 00 sts 0x0062, r24
868: 03 c0 rjmp .+6 ; 0x870 <UIMgr_convertTokenToCmd+0xa8>
86a: 89 e0 ldi r24, 0x09 ; 9
86c: 80 93 62 00 sts 0x0062, r24
870: 83 e0 ldi r24, 0x03 ; 3
872: ef eb ldi r30, 0xBF ; 191
874: f0 e0 ldi r31, 0x00 ; 0
876: 11 92 st Z+, r1
878: 8a 95 dec r24
87a: e9 f7 brne .-6 ; 0x876 <UIMgr_convertTokenToCmd+0xae>
87c: 10 92 be 00 sts 0x00BE, r1
880: 10 92 bd 00 sts 0x00BD, r1
884: 08 95 ret
 
00000886 <UIMgr_init>:
886: 10 92 bf 00 sts 0x00BF, r1
88a: 10 92 c0 00 sts 0x00C0, r1
88e: 10 92 c1 00 sts 0x00C1, r1
892: 10 92 c2 00 sts 0x00C2, r1
896: 80 e4 ldi r24, 0x40 ; 64
898: e3 ec ldi r30, 0xC3 ; 195
89a: f0 e0 ldi r31, 0x00 ; 0
89c: 98 2f mov r25, r24
89e: 11 92 st Z+, r1
8a0: 9a 95 dec r25
8a2: e9 f7 brne .-6 ; 0x89e <UIMgr_init+0x18>
8a4: e4 e9 ldi r30, 0x94 ; 148
8a6: f2 e0 ldi r31, 0x02 ; 2
8a8: 11 92 st Z+, r1
8aa: 8a 95 dec r24
8ac: e9 f7 brne .-6 ; 0x8a8 <UIMgr_init+0x22>
8ae: 80 e2 ldi r24, 0x20 ; 32
8b0: e4 e7 ldi r30, 0x74 ; 116
8b2: f2 e0 ldi r31, 0x02 ; 2
8b4: 11 92 st Z+, r1
8b6: 8a 95 dec r24
8b8: e9 f7 brne .-6 ; 0x8b4 <UIMgr_init+0x2e>
8ba: 08 95 ret
 
000008bc <UIMgr_convertTokenToValue>:
8bc: 8f eb ldi r24, 0xBF ; 191
8be: 90 e0 ldi r25, 0x00 ; 0
8c0: b0 d3 rcall .+1888 ; 0x1022 <atoi>
8c2: 9c 01 movw r18, r24
8c4: 8f 3f cpi r24, 0xFF ; 255
8c6: 91 05 cpc r25, r1
8c8: 69 f0 breq .+26 ; 0x8e4 <UIMgr_convertTokenToValue+0x28>
8ca: 60 f0 brcs .+24 ; 0x8e4 <UIMgr_convertTokenToValue+0x28>
8cc: 89 e0 ldi r24, 0x09 ; 9
8ce: 80 93 62 00 sts 0x0062, r24
8d2: 80 91 bc 00 lds r24, 0x00BC
8d6: e3 ec ldi r30, 0xC3 ; 195
8d8: f0 e0 ldi r31, 0x00 ; 0
8da: e8 0f add r30, r24
8dc: f1 1d adc r31, r1
8de: 8f ef ldi r24, 0xFF ; 255
8e0: 80 83 st Z, r24
8e2: 07 c0 rjmp .+14 ; 0x8f2 <UIMgr_convertTokenToValue+0x36>
8e4: 80 91 bc 00 lds r24, 0x00BC
8e8: e3 ec ldi r30, 0xC3 ; 195
8ea: f0 e0 ldi r31, 0x00 ; 0
8ec: e8 0f add r30, r24
8ee: f1 1d adc r31, r1
8f0: 20 83 st Z, r18
8f2: 83 e0 ldi r24, 0x03 ; 3
8f4: ef eb ldi r30, 0xBF ; 191
8f6: f0 e0 ldi r31, 0x00 ; 0
8f8: 11 92 st Z+, r1
8fa: 8a 95 dec r24
8fc: e9 f7 brne .-6 ; 0x8f8 <UIMgr_convertTokenToValue+0x3c>
8fe: 10 92 be 00 sts 0x00BE, r1
902: 10 92 bd 00 sts 0x00BD, r1
906: 08 95 ret
 
00000908 <UIMgr_processReceivedData>:
908: ff 92 push r15
90a: 0f 93 push r16
90c: 1f 93 push r17
90e: cf 93 push r28
910: df 93 push r29
912: 0f 2e mov r0, r31
914: f9 e0 ldi r31, 0x09 ; 9
916: ff 2e mov r15, r31
918: f0 2d mov r31, r0
91a: ff c0 rjmp .+510 ; 0xb1a <UIMgr_processReceivedData+0x212>
91c: f8 94 cli
91e: e2 2f mov r30, r18
920: ff 27 eor r31, r31
922: ec 58 subi r30, 0x8C ; 140
924: fd 4f sbci r31, 0xFD ; 253
926: 90 81 ld r25, Z
928: 82 2f mov r24, r18
92a: 8f 5f subi r24, 0xFF ; 255
92c: 8f 71 andi r24, 0x1F ; 31
92e: 80 93 b9 00 sts 0x00B9, r24
932: 78 94 sei
934: 9d 30 cpi r25, 0x0D ; 13
936: 09 f0 breq .+2 ; 0x93a <UIMgr_processReceivedData+0x32>
938: b1 c0 rjmp .+354 ; 0xa9c <UIMgr_processReceivedData+0x194>
93a: 80 91 bc 00 lds r24, 0x00BC
93e: 88 23 and r24, r24
940: 11 f4 brne .+4 ; 0x946 <UIMgr_processReceivedData+0x3e>
942: 42 df rcall .-380 ; 0x7c8 <UIMgr_convertTokenToCmd>
944: 06 c0 rjmp .+12 ; 0x952 <UIMgr_processReceivedData+0x4a>
946: ba df rcall .-140 ; 0x8bc <UIMgr_convertTokenToValue>
948: 80 91 bc 00 lds r24, 0x00BC
94c: 8f 5f subi r24, 0xFF ; 255
94e: 80 93 bc 00 sts 0x00BC, r24
952: 84 e6 ldi r24, 0x64 ; 100
954: 90 e0 ldi r25, 0x00 ; 0
956: 9b d2 rcall .+1334 ; 0xe8e <Utility_delay>
958: 80 91 62 00 lds r24, 0x0062
95c: 88 50 subi r24, 0x08 ; 8
95e: 82 30 cpi r24, 0x02 ; 2
960: 58 f4 brcc .+22 ; 0x978 <UIMgr_processReceivedData+0x70>
962: 8e e4 ldi r24, 0x4E ; 78
964: f4 de rcall .-536 ; 0x74e <UIMgr_writeTxFifo>
966: 83 e4 ldi r24, 0x43 ; 67
968: f2 de rcall .-540 ; 0x74e <UIMgr_writeTxFifo>
96a: 8b e4 ldi r24, 0x4B ; 75
96c: f0 de rcall .-544 ; 0x74e <UIMgr_writeTxFifo>
96e: 8d e0 ldi r24, 0x0D ; 13
970: ee de rcall .-548 ; 0x74e <UIMgr_writeTxFifo>
972: 80 e9 ldi r24, 0x90 ; 144
974: 06 dc rcall .-2036 ; 0x182 <Exec_writeEventFifo>
976: 89 c0 rjmp .+274 ; 0xa8a <UIMgr_processReceivedData+0x182>
978: 81 e4 ldi r24, 0x41 ; 65
97a: e9 de rcall .-558 ; 0x74e <UIMgr_writeTxFifo>
97c: 83 e4 ldi r24, 0x43 ; 67
97e: e7 de rcall .-562 ; 0x74e <UIMgr_writeTxFifo>
980: 8b e4 ldi r24, 0x4B ; 75
982: e5 de rcall .-566 ; 0x74e <UIMgr_writeTxFifo>
984: 8d e0 ldi r24, 0x0D ; 13
986: e3 de rcall .-570 ; 0x74e <UIMgr_writeTxFifo>
988: 80 e9 ldi r24, 0x90 ; 144
98a: fb db rcall .-2058 ; 0x182 <Exec_writeEventFifo>
98c: 80 91 62 00 lds r24, 0x0062
990: 81 30 cpi r24, 0x01 ; 1
992: 09 f4 brne .+2 ; 0x996 <UIMgr_processReceivedData+0x8e>
994: 7a c0 rjmp .+244 ; 0xa8a <UIMgr_processReceivedData+0x182>
996: 88 23 and r24, r24
998: 71 f4 brne .+28 ; 0x9b6 <UIMgr_processReceivedData+0xae>
99a: 80 91 63 00 lds r24, 0x0063
99e: 88 23 and r24, r24
9a0: 09 f4 brne .+2 ; 0x9a4 <UIMgr_processReceivedData+0x9c>
9a2: 73 c0 rjmp .+230 ; 0xa8a <UIMgr_processReceivedData+0x182>
9a4: c3 e6 ldi r28, 0x63 ; 99
9a6: d0 e0 ldi r29, 0x00 ; 0
9a8: 21 96 adiw r28, 0x01 ; 1
9aa: d1 de rcall .-606 ; 0x74e <UIMgr_writeTxFifo>
9ac: 88 81 ld r24, Y
9ae: 88 23 and r24, r24
9b0: 09 f4 brne .+2 ; 0x9b4 <UIMgr_processReceivedData+0xac>
9b2: 6b c0 rjmp .+214 ; 0xa8a <UIMgr_processReceivedData+0x182>
9b4: f9 cf rjmp .-14 ; 0x9a8 <UIMgr_processReceivedData+0xa0>
9b6: 87 30 cpi r24, 0x07 ; 7
9b8: 11 f4 brne .+4 ; 0x9be <UIMgr_processReceivedData+0xb6>
9ba: a1 db rcall .-2238 ; 0xfe <CamInt_resetCam>
9bc: 66 c0 rjmp .+204 ; 0xa8a <UIMgr_processReceivedData+0x182>
9be: 83 30 cpi r24, 0x03 ; 3
9c0: 31 f4 brne .+12 ; 0x9ce <UIMgr_processReceivedData+0xc6>
9c2: 84 e6 ldi r24, 0x64 ; 100
9c4: 90 e0 ldi r25, 0x00 ; 0
9c6: 63 d2 rcall .+1222 ; 0xe8e <Utility_delay>
9c8: 82 e0 ldi r24, 0x02 ; 2
9ca: db db rcall .-2122 ; 0x182 <Exec_writeEventFifo>
9cc: 5e c0 rjmp .+188 ; 0xa8a <UIMgr_processReceivedData+0x182>
9ce: 82 30 cpi r24, 0x02 ; 2
9d0: 99 f4 brne .+38 ; 0x9f8 <UIMgr_processReceivedData+0xf0>
9d2: 80 91 bc 00 lds r24, 0x00BC
9d6: 82 30 cpi r24, 0x02 ; 2
9d8: 68 f0 brcs .+26 ; 0x9f4 <UIMgr_processReceivedData+0xec>
9da: 11 e0 ldi r17, 0x01 ; 1
9dc: e1 2f mov r30, r17
9de: ff 27 eor r31, r31
9e0: ed 53 subi r30, 0x3D ; 61
9e2: ff 4f sbci r31, 0xFF ; 255
9e4: 61 81 ldd r22, Z+1 ; 0x01
9e6: 80 81 ld r24, Z
9e8: 02 d2 rcall .+1028 ; 0xdee <CamConfig_setCamReg>
9ea: 1e 5f subi r17, 0xFE ; 254
9ec: 80 91 bc 00 lds r24, 0x00BC
9f0: 18 17 cp r17, r24
9f2: a0 f3 brcs .-24 ; 0x9dc <UIMgr_processReceivedData+0xd4>
9f4: 01 d2 rcall .+1026 ; 0xdf8 <CamConfig_sendFifoCmds>
9f6: 49 c0 rjmp .+146 ; 0xa8a <UIMgr_processReceivedData+0x182>
9f8: 84 30 cpi r24, 0x04 ; 4
9fa: 31 f4 brne .+12 ; 0xa08 <UIMgr_processReceivedData+0x100>
9fc: 84 e6 ldi r24, 0x64 ; 100
9fe: 90 e0 ldi r25, 0x00 ; 0
a00: 46 d2 rcall .+1164 ; 0xe8e <Utility_delay>
a02: 80 e8 ldi r24, 0x80 ; 128
a04: be db rcall .-2180 ; 0x182 <Exec_writeEventFifo>
a06: 41 c0 rjmp .+130 ; 0xa8a <UIMgr_processReceivedData+0x182>
a08: 85 30 cpi r24, 0x05 ; 5
a0a: 19 f4 brne .+6 ; 0xa12 <UIMgr_processReceivedData+0x10a>
a0c: 81 e8 ldi r24, 0x81 ; 129
a0e: b9 db rcall .-2190 ; 0x182 <Exec_writeEventFifo>
a10: 3c c0 rjmp .+120 ; 0xa8a <UIMgr_processReceivedData+0x182>
a12: 86 30 cpi r24, 0x06 ; 6
a14: 09 f0 breq .+2 ; 0xa18 <UIMgr_processReceivedData+0x110>
a16: 39 c0 rjmp .+114 ; 0xa8a <UIMgr_processReceivedData+0x182>
a18: 80 91 bc 00 lds r24, 0x00BC
a1c: 88 23 and r24, r24
a1e: 09 f4 brne .+2 ; 0xa22 <UIMgr_processReceivedData+0x11a>
a20: 34 c0 rjmp .+104 ; 0xa8a <UIMgr_processReceivedData+0x182>
a22: 40 e0 ldi r20, 0x00 ; 0
a24: 03 ec ldi r16, 0xC3 ; 195
a26: 10 e0 ldi r17, 0x00 ; 0
a28: 60 e0 ldi r22, 0x00 ; 0
a2a: 73 e0 ldi r23, 0x03 ; 3
a2c: 84 2f mov r24, r20
a2e: 99 27 eor r25, r25
a30: 9c 01 movw r18, r24
a32: 2f 5f subi r18, 0xFF ; 255
a34: 3f 4f sbci r19, 0xFF ; 255
a36: f9 01 movw r30, r18
a38: e0 0f add r30, r16
a3a: f1 1f adc r31, r17
a3c: e0 81 ld r30, Z
a3e: ec 01 movw r28, r24
a40: c6 0f add r28, r22
a42: d7 1f adc r29, r23
a44: e8 83 st Y, r30
uint8_t
eeprom_read_byte (const uint8_t *addr)
{
uint8_t result;
asm volatile
a46: d9 01 movw r26, r18
a48: 20 d3 rcall .+1600 ; 0x108a <__eeprom_read_byte_1C1D1E>
a4a: 80 2d mov r24, r0
000006ca <UIMgr_writeBufferToTxFifo>:
static unsigned char tokenCount = 0;
static unsigned char tokenBuffer[MAX_TOKEN_COUNT];
static UIMgr_Cmd_t receivedCmd = noCmd;
static unsigned char AVRcamVersion[] = "AVRcam v1.4\r";
1628,20 → 1205,7
that changed...this will help reduce wear on the EEPROM */
eepromData = eeprom_read_byte( (unsigned char*)(i+1));
if (eepromData != colorMap[i])
a4c: e8 17 cp r30, r24
a4e: c1 f0 breq .+48 ; 0xa80 <UIMgr_processReceivedData+0x178>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a50: d9 01 movw r26, r18
a52: 0e 2e mov r0, r30
a54: 27 d3 rcall .+1614 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a56: d9 01 movw r26, r18
a58: 18 d3 rcall .+1584 ; 0x108a <__eeprom_read_byte_1C1D1E>
a5a: 80 2d mov r24, r0
{
/* need to actually perform the write because the
data in eeprom is different than the current colorMap */
eeprom_write_succeeded = FALSE;
1651,597 → 1215,1339
num_writes++;
eepromData = eeprom_read_byte( (unsigned char*)(i+1));
if (eepromData == colorMap[i])
a5c: 98 81 ld r25, Y
a5e: 98 17 cp r25, r24
a60: 79 f0 breq .+30 ; 0xa80 <UIMgr_processReceivedData+0x178>
{
eeprom_write_succeeded = TRUE;
}
}
num_writes = 0;
}
}
 
#if DEBUG_COLOR_MAP
/* for debugging...send out the entire color map */
UIMgr_txBuffer("\r\n",2);
for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
{
memset(asciiBuffer,0x00,5);
itoa(colorMap[i],asciiBuffer,10);
UIMgr_txBuffer(asciiBuffer,3);
UIMgr_txBuffer(" ",1);
if (i==15 || i == 31)
{
/* break up the output */
UIMgr_txBuffer("\r\n",2);
}
}
#endif
}
}
 
/***********************************************************
Function Name: UIMgr_convertTokenToValue
Function Description: This function is responsible for
converting a received token to a hex value It will
access the asciiTokenBuffer directly, and store the
result in the appropriate token buffer.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_convertTokenToValue(void)
{
unsigned int newValue;
newValue = atoi(asciiTokenBuffer);
if (newValue > 255)
{
/* the value is too large */
receivedCmd = invalidCmd;
tokenBuffer[tokenCount] = 0xFF; /* to indicate an error */
}
else
{
/* copy the value into the tokenBuffer */
tokenBuffer[tokenCount] = newValue;
}
memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
charIndex = 0;
charCount = 0;
}
/***********************************************************
Function Name: UIMgr_convertTokenToCmd
Function Description: This function is responsible for
parsing a received 2-character command. It will
access the asciiTokenBuffer directly.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_convertTokenToCmd(void)
{
if ( (asciiTokenBuffer[0] == 'P') &&
(asciiTokenBuffer[1] == 'G') )
{
/* we got a "ping" command...but we still need to see
if we are going to get the \r */
receivedCmd = pingCmd;
}
else if ( (asciiTokenBuffer[0] == 'G') &&
(asciiTokenBuffer[1] == 'V') )
{
/* we got the "get version" command */
receivedCmd = getVersionCmd;
}
else if ( (asciiTokenBuffer[0] == 'D') &&
(asciiTokenBuffer[1] == 'F') )
{
/* we should go into frame dump mode */
receivedCmd = dumpFrameCmd;
}
else if ( (asciiTokenBuffer[0] == 'C') &&
(asciiTokenBuffer[1] == 'R') )
{
/* the user wants to set registers in the OV6620 */
receivedCmd = setCameraRegsCmd;
}
else if ( (asciiTokenBuffer[0] == 'E') &&
(asciiTokenBuffer[1] == 'T') )
{
/* the user wants to enable tracking */
receivedCmd = enableTrackingCmd;
}
else if ( (asciiTokenBuffer[0] == 'S') &&
(asciiTokenBuffer[1] == 'M') )
{
/* the user wants to set the color map */
receivedCmd = setColorMapCmd;
}
else if ( (asciiTokenBuffer[0] == 'D') &&
(asciiTokenBuffer[1] == 'T') )
{
receivedCmd = disableTrackingCmd;
}
else if ( (asciiTokenBuffer[0] == 'R') &&
(asciiTokenBuffer[1] == 'S') )
{
receivedCmd = resetCameraCmd;
}
else
{
/* don't recognize the cmd */
receivedCmd = invalidCmd;
}
memset(asciiTokenBuffer,0x00,MAX_TOKEN_LENGTH);
charIndex = 0;
charCount = 0;
}
/***********************************************************
Function Name: UIMgr_sendAck
Function Description: This function is responsible for
queuing up an ACK to be sent to the user.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_sendAck(void)
{
UIMgr_writeTxFifo('A');
UIMgr_writeTxFifo('C');
UIMgr_writeTxFifo('K');
UIMgr_writeTxFifo('\r');
}
 
/***********************************************************
Function Name: UIMgr_sendNck
Function Description: This function is responsible for
queueing up an NCK to be sent to the user.
Inputs: none
Outputs: none
***********************************************************/
static void UIMgr_sendNck(void)
{
UIMgr_writeTxFifo('N');
UIMgr_writeTxFifo('C');
UIMgr_writeTxFifo('K');
UIMgr_writeTxFifo('\r');
}
 
 
/***********************************************************
Function Name: UIMgr_writeBufferToTxFifo
Function Description: This function is responsible for
placing "length" bytes into the tx FIFO.
Inputs: pData - a pointer to the data to send
length - the number of bytes to send
Outputs: none
***********************************************************/
void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
{
6ca: dc 01 movw r26, r24
unsigned char tmpHead;
if (length == 0)
6cc: 66 23 and r22, r22
6ce: b1 f0 breq .+44 ; 0x6fc <UIMgr_writeBufferToTxFifo+0x32>
{
return;
}
DISABLE_INTS();
6d0: f8 94 cli
while(length-- != 0)
6d2: 61 50 subi r22, 0x01 ; 1
6d4: 6f 3f cpi r22, 0xFF ; 255
6d6: 89 f0 breq .+34 ; 0x6fa <UIMgr_writeBufferToTxFifo+0x30>
6d8: 90 91 ba 00 lds r25, 0x00BA
{
UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
6dc: 24 e9 ldi r18, 0x94 ; 148
6de: 32 e0 ldi r19, 0x02 ; 2
6e0: f9 01 movw r30, r18
6e2: e9 0f add r30, r25
6e4: f1 1d adc r31, r1
6e6: 8d 91 ld r24, X+
6e8: 80 83 st Z, r24
/* now move the head up */
tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
6ea: 89 2f mov r24, r25
6ec: 8f 5f subi r24, 0xFF ; 255
6ee: 98 2f mov r25, r24
6f0: 9f 73 andi r25, 0x3F ; 63
6f2: 61 50 subi r22, 0x01 ; 1
6f4: a8 f7 brcc .-22 ; 0x6e0 <UIMgr_writeBufferToTxFifo+0x16>
6f6: 90 93 ba 00 sts 0x00BA, r25
UIMgr_txFifoHead = tmpHead;
}
ENABLE_INTS();
6fa: 78 94 sei
6fc: 08 95 ret
 
000006fe <UIMgr_readTxFifo>:
}
 
/***********************************************************
Function Name: UIMgr_txBuffer
Function Description: This function is responsible for
sending 'length' bytes out using the UartInterface
module.
Inputs: pData - a pointer to the data to send
length - the number of bytes to send
Outputs: none
***********************************************************/
void UIMgr_txBuffer(unsigned char *pData, unsigned char length)
{
while(length-- != 0)
{
UartInt_txByte(*pData++);
}
}
 
/***********************************************************
Function Name: UIMgr_flushTxBuffer
Function Description: This function is responsible for
sending all data currently in the serial tx buffer
to the user.
Inputs: none
Outputs: none
***********************************************************/
void UIMgr_flushTxBuffer(void)
{
while(IS_DATA_IN_TX_FIFO() == TRUE)
{
UartInt_txByte(UIMgr_readTxFifo() );
}
}
 
/***********************************************************
Function Name: UIMgr_readRxFifo
Function Description: This function is responsible for
reading a single byte of data from the rx fifo, and
updating the appropriate pointers.
Inputs: none
Outputs: unsigned char-the data read
***********************************************************/
static unsigned char UIMgr_readRxFifo(void)
{
unsigned char dataByte, tmpTail;
/* just return the current tail from the rx fifo */
DISABLE_INTS();
dataByte = UIMgr_rxFifo[UIMgr_rxFifoTail];
tmpTail = (UIMgr_rxFifoTail+1) & (UI_MGR_RX_FIFO_MASK);
UIMgr_rxFifoTail = tmpTail;
ENABLE_INTS();
return(dataByte);
}
 
/***********************************************************
Function Name: UIMgr_readTxFifo
Function Description: This function is responsible for
reading a single byte of data from the tx fifo, and
updating the appropriate pointers.
Inputs: none
Outputs: unsigned char-the data read
***********************************************************/
static unsigned char UIMgr_readTxFifo(void)
{
unsigned char dataByte, tmpTail;
/* just return the current tail from the tx fifo */
DISABLE_INTS();
6fe: f8 94 cli
dataByte = UIMgr_txFifo[UIMgr_txFifoTail];
700: 90 91 bb 00 lds r25, 0x00BB
704: e4 e9 ldi r30, 0x94 ; 148
706: f2 e0 ldi r31, 0x02 ; 2
708: e9 0f add r30, r25
70a: f1 1d adc r31, r1
70c: 80 81 ld r24, Z
tmpTail = (UIMgr_txFifoTail+1) & (UI_MGR_TX_FIFO_MASK);
UIMgr_txFifoTail = tmpTail;
70e: 9f 5f subi r25, 0xFF ; 255
710: 9f 73 andi r25, 0x3F ; 63
712: 90 93 bb 00 sts 0x00BB, r25
ENABLE_INTS();
716: 78 94 sei
return(dataByte);
}
718: 99 27 eor r25, r25
71a: 08 95 ret
 
0000071c <UIMgr_writeTxFifo>:
 
/***********************************************************
Function Name: UIMgr_writeTxFifo
Function Description: This function is responsible for
writing a single byte to the TxFifo and
updating the appropriate pointers.
Inputs: data - the byte to write to the Fifo
Outputs: none
***********************************************************/
void UIMgr_writeTxFifo(unsigned char data)
{
unsigned char tmpHead;
 
DISABLE_INTS();
71c: f8 94 cli
UIMgr_txFifo[UIMgr_txFifoHead] = data;
71e: 90 91 ba 00 lds r25, 0x00BA
722: e4 e9 ldi r30, 0x94 ; 148
724: f2 e0 ldi r31, 0x02 ; 2
726: e9 0f add r30, r25
728: f1 1d adc r31, r1
72a: 80 83 st Z, r24
 
/* now move the head up */
tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
UIMgr_txFifoHead = tmpHead;
72c: 9f 5f subi r25, 0xFF ; 255
72e: 9f 73 andi r25, 0x3F ; 63
730: 90 93 ba 00 sts 0x00BA, r25
ENABLE_INTS();
734: 78 94 sei
736: 08 95 ret
 
00000738 <UIMgr_flushTxBuffer>:
738: 90 91 ba 00 lds r25, 0x00BA
73c: 80 91 bb 00 lds r24, 0x00BB
740: 98 17 cp r25, r24
742: 41 f0 breq .+16 ; 0x754 <UIMgr_flushTxBuffer+0x1c>
744: dc df rcall .-72 ; 0x6fe <UIMgr_readTxFifo>
746: 13 d2 rcall .+1062 ; 0xb6e <UartInt_txByte>
748: 90 91 ba 00 lds r25, 0x00BA
74c: 80 91 bb 00 lds r24, 0x00BB
750: 98 17 cp r25, r24
752: c1 f7 brne .-16 ; 0x744 <UIMgr_flushTxBuffer+0xc>
754: 08 95 ret
 
00000756 <UIMgr_txBuffer>:
756: 1f 93 push r17
758: cf 93 push r28
75a: df 93 push r29
75c: ec 01 movw r28, r24
75e: 16 2f mov r17, r22
760: 11 50 subi r17, 0x01 ; 1
762: 1f 3f cpi r17, 0xFF ; 255
764: 21 f0 breq .+8 ; 0x76e <UIMgr_txBuffer+0x18>
766: 89 91 ld r24, Y+
768: 02 d2 rcall .+1028 ; 0xb6e <UartInt_txByte>
76a: 11 50 subi r17, 0x01 ; 1
76c: e0 f7 brcc .-8 ; 0x766 <UIMgr_txBuffer+0x10>
76e: df 91 pop r29
770: cf 91 pop r28
772: 1f 91 pop r17
774: 08 95 ret
 
00000776 <UIMgr_transmitPendingData>:
776: 90 91 ba 00 lds r25, 0x00BA
77a: 80 91 bb 00 lds r24, 0x00BB
77e: 98 17 cp r25, r24
780: 11 f0 breq .+4 ; 0x786 <UIMgr_transmitPendingData+0x10>
782: bd df rcall .-134 ; 0x6fe <UIMgr_readTxFifo>
784: f4 d1 rcall .+1000 ; 0xb6e <UartInt_txByte>
786: 08 95 ret
 
00000788 <UIMgr_convertTokenToCmd>:
788: 90 91 bf 00 lds r25, 0x00BF
78c: 90 35 cpi r25, 0x50 ; 80
78e: 41 f4 brne .+16 ; 0x7a0 <UIMgr_convertTokenToCmd+0x18>
790: 80 91 c0 00 lds r24, 0x00C0
794: 87 34 cpi r24, 0x47 ; 71
796: 09 f5 brne .+66 ; 0x7da <UIMgr_convertTokenToCmd+0x52>
798: 81 e0 ldi r24, 0x01 ; 1
79a: 80 93 62 00 sts 0x0062, r24
79e: 48 c0 rjmp .+144 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7a0: 97 34 cpi r25, 0x47 ; 71
7a2: 39 f4 brne .+14 ; 0x7b2 <UIMgr_convertTokenToCmd+0x2a>
7a4: 80 91 c0 00 lds r24, 0x00C0
7a8: 86 35 cpi r24, 0x56 ; 86
7aa: 09 f5 brne .+66 ; 0x7ee <UIMgr_convertTokenToCmd+0x66>
7ac: 10 92 62 00 sts 0x0062, r1
7b0: 3f c0 rjmp .+126 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7b2: 94 34 cpi r25, 0x44 ; 68
7b4: 41 f4 brne .+16 ; 0x7c6 <UIMgr_convertTokenToCmd+0x3e>
7b6: 80 91 c0 00 lds r24, 0x00C0
7ba: 86 34 cpi r24, 0x46 ; 70
7bc: 11 f5 brne .+68 ; 0x802 <UIMgr_convertTokenToCmd+0x7a>
7be: 83 e0 ldi r24, 0x03 ; 3
7c0: 80 93 62 00 sts 0x0062, r24
7c4: 35 c0 rjmp .+106 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7c6: 93 34 cpi r25, 0x43 ; 67
7c8: 41 f4 brne .+16 ; 0x7da <UIMgr_convertTokenToCmd+0x52>
7ca: 80 91 c0 00 lds r24, 0x00C0
7ce: 82 35 cpi r24, 0x52 ; 82
7d0: 11 f5 brne .+68 ; 0x816 <UIMgr_convertTokenToCmd+0x8e>
7d2: 82 e0 ldi r24, 0x02 ; 2
7d4: 80 93 62 00 sts 0x0062, r24
7d8: 2b c0 rjmp .+86 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7da: 95 34 cpi r25, 0x45 ; 69
7dc: 41 f4 brne .+16 ; 0x7ee <UIMgr_convertTokenToCmd+0x66>
7de: 80 91 c0 00 lds r24, 0x00C0
7e2: 84 35 cpi r24, 0x54 ; 84
7e4: 11 f5 brne .+68 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
7e6: 84 e0 ldi r24, 0x04 ; 4
7e8: 80 93 62 00 sts 0x0062, r24
7ec: 21 c0 rjmp .+66 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
7ee: 93 35 cpi r25, 0x53 ; 83
7f0: 41 f4 brne .+16 ; 0x802 <UIMgr_convertTokenToCmd+0x7a>
7f2: 80 91 c0 00 lds r24, 0x00C0
7f6: 8d 34 cpi r24, 0x4D ; 77
7f8: c1 f4 brne .+48 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
7fa: 86 e0 ldi r24, 0x06 ; 6
7fc: 80 93 62 00 sts 0x0062, r24
800: 17 c0 rjmp .+46 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
802: 94 34 cpi r25, 0x44 ; 68
804: 41 f4 brne .+16 ; 0x816 <UIMgr_convertTokenToCmd+0x8e>
806: 80 91 c0 00 lds r24, 0x00C0
80a: 84 35 cpi r24, 0x54 ; 84
80c: 71 f4 brne .+28 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
80e: 85 e0 ldi r24, 0x05 ; 5
810: 80 93 62 00 sts 0x0062, r24
814: 0d c0 rjmp .+26 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
816: 92 35 cpi r25, 0x52 ; 82
818: 41 f4 brne .+16 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
81a: 80 91 c0 00 lds r24, 0x00C0
81e: 83 35 cpi r24, 0x53 ; 83
820: 21 f4 brne .+8 ; 0x82a <UIMgr_convertTokenToCmd+0xa2>
822: 87 e0 ldi r24, 0x07 ; 7
824: 80 93 62 00 sts 0x0062, r24
828: 03 c0 rjmp .+6 ; 0x830 <UIMgr_convertTokenToCmd+0xa8>
82a: 89 e0 ldi r24, 0x09 ; 9
82c: 80 93 62 00 sts 0x0062, r24
830: 83 e0 ldi r24, 0x03 ; 3
832: ef eb ldi r30, 0xBF ; 191
834: f0 e0 ldi r31, 0x00 ; 0
836: 11 92 st Z+, r1
838: 8a 95 dec r24
83a: e9 f7 brne .-6 ; 0x836 <UIMgr_convertTokenToCmd+0xae>
83c: 10 92 be 00 sts 0x00BE, r1
840: 10 92 bd 00 sts 0x00BD, r1
844: 08 95 ret
 
00000846 <UIMgr_init>:
846: 10 92 bf 00 sts 0x00BF, r1
84a: 10 92 c0 00 sts 0x00C0, r1
84e: 10 92 c1 00 sts 0x00C1, r1
852: 10 92 c2 00 sts 0x00C2, r1
856: 80 e4 ldi r24, 0x40 ; 64
858: e3 ec ldi r30, 0xC3 ; 195
85a: f0 e0 ldi r31, 0x00 ; 0
85c: 98 2f mov r25, r24
85e: 11 92 st Z+, r1
860: 9a 95 dec r25
862: e9 f7 brne .-6 ; 0x85e <UIMgr_init+0x18>
864: e4 e9 ldi r30, 0x94 ; 148
866: f2 e0 ldi r31, 0x02 ; 2
868: 11 92 st Z+, r1
86a: 8a 95 dec r24
86c: e9 f7 brne .-6 ; 0x868 <UIMgr_init+0x22>
86e: 80 e2 ldi r24, 0x20 ; 32
870: e4 e7 ldi r30, 0x74 ; 116
872: f2 e0 ldi r31, 0x02 ; 2
874: 11 92 st Z+, r1
876: 8a 95 dec r24
878: e9 f7 brne .-6 ; 0x874 <UIMgr_init+0x2e>
87a: 08 95 ret
 
0000087c <UIMgr_convertTokenToValue>:
87c: 8f eb ldi r24, 0xBF ; 191
87e: 90 e0 ldi r25, 0x00 ; 0
880: dc d3 rcall .+1976 ; 0x103a <atoi>
882: 9c 01 movw r18, r24
884: 8f 3f cpi r24, 0xFF ; 255
886: 91 05 cpc r25, r1
888: 69 f0 breq .+26 ; 0x8a4 <UIMgr_convertTokenToValue+0x28>
88a: 60 f0 brcs .+24 ; 0x8a4 <UIMgr_convertTokenToValue+0x28>
88c: 89 e0 ldi r24, 0x09 ; 9
88e: 80 93 62 00 sts 0x0062, r24
892: 80 91 bc 00 lds r24, 0x00BC
896: e3 ec ldi r30, 0xC3 ; 195
898: f0 e0 ldi r31, 0x00 ; 0
89a: e8 0f add r30, r24
89c: f1 1d adc r31, r1
89e: 8f ef ldi r24, 0xFF ; 255
8a0: 80 83 st Z, r24
8a2: 07 c0 rjmp .+14 ; 0x8b2 <UIMgr_convertTokenToValue+0x36>
8a4: 80 91 bc 00 lds r24, 0x00BC
8a8: e3 ec ldi r30, 0xC3 ; 195
8aa: f0 e0 ldi r31, 0x00 ; 0
8ac: e8 0f add r30, r24
8ae: f1 1d adc r31, r1
8b0: 20 83 st Z, r18
8b2: 83 e0 ldi r24, 0x03 ; 3
8b4: ef eb ldi r30, 0xBF ; 191
8b6: f0 e0 ldi r31, 0x00 ; 0
8b8: 11 92 st Z+, r1
8ba: 8a 95 dec r24
8bc: e9 f7 brne .-6 ; 0x8b8 <UIMgr_convertTokenToValue+0x3c>
8be: 10 92 be 00 sts 0x00BE, r1
8c2: 10 92 bd 00 sts 0x00BD, r1
8c6: 08 95 ret
 
000008c8 <UIMgr_processReceivedData>:
8c8: 6f 92 push r6
8ca: 7f 92 push r7
8cc: 8f 92 push r8
8ce: 9f 92 push r9
8d0: af 92 push r10
8d2: bf 92 push r11
8d4: cf 92 push r12
8d6: df 92 push r13
8d8: ef 92 push r14
8da: ff 92 push r15
8dc: 1f 93 push r17
8de: cf 93 push r28
8e0: df 93 push r29
8e2: 0f 2e mov r0, r31
8e4: f4 e7 ldi r31, 0x74 ; 116
8e6: cf 2e mov r12, r31
8e8: f2 e0 ldi r31, 0x02 ; 2
8ea: df 2e mov r13, r31
8ec: f0 2d mov r31, r0
8ee: 0f 2e mov r0, r31
8f0: ff eb ldi r31, 0xBF ; 191
8f2: af 2e mov r10, r31
8f4: f0 e0 ldi r31, 0x00 ; 0
8f6: bf 2e mov r11, r31
8f8: f0 2d mov r31, r0
8fa: 0f 2e mov r0, r31
8fc: f3 ec ldi r31, 0xC3 ; 195
8fe: ef 2e mov r14, r31
900: f0 e0 ldi r31, 0x00 ; 0
902: ff 2e mov r15, r31
904: f0 2d mov r31, r0
906: 0f 2e mov r0, r31
908: f0 e0 ldi r31, 0x00 ; 0
90a: 8f 2e mov r8, r31
90c: f3 e0 ldi r31, 0x03 ; 3
90e: 9f 2e mov r9, r31
910: f0 2d mov r31, r0
912: 0f 2e mov r0, r31
914: f3 e6 ldi r31, 0x63 ; 99
916: 6f 2e mov r6, r31
918: f0 e0 ldi r31, 0x00 ; 0
91a: 7f 2e mov r7, r31
91c: f0 2d mov r31, r0
91e: fa c0 rjmp .+500 ; 0xb14 <UIMgr_processReceivedData+0x24c>
920: f8 94 cli
922: f6 01 movw r30, r12
924: e9 0f add r30, r25
926: f1 1d adc r31, r1
928: 20 81 ld r18, Z
92a: 89 2f mov r24, r25
92c: 8f 5f subi r24, 0xFF ; 255
92e: 8f 71 andi r24, 0x1F ; 31
930: 80 93 b9 00 sts 0x00B9, r24
934: 78 94 sei
936: 2d 30 cpi r18, 0x0D ; 13
938: 09 f0 breq .+2 ; 0x93c <UIMgr_processReceivedData+0x74>
93a: a9 c0 rjmp .+338 ; 0xa8e <UIMgr_processReceivedData+0x1c6>
93c: 80 91 bc 00 lds r24, 0x00BC
940: 88 23 and r24, r24
942: 11 f4 brne .+4 ; 0x948 <UIMgr_processReceivedData+0x80>
944: 21 df rcall .-446 ; 0x788 <UIMgr_convertTokenToCmd>
946: 06 c0 rjmp .+12 ; 0x954 <UIMgr_processReceivedData+0x8c>
948: 99 df rcall .-206 ; 0x87c <UIMgr_convertTokenToValue>
94a: 80 91 bc 00 lds r24, 0x00BC
94e: 8f 5f subi r24, 0xFF ; 255
950: 80 93 bc 00 sts 0x00BC, r24
954: 84 e6 ldi r24, 0x64 ; 100
956: 90 e0 ldi r25, 0x00 ; 0
958: a6 d2 rcall .+1356 ; 0xea6 <Utility_delay>
95a: 80 91 62 00 lds r24, 0x0062
95e: 88 50 subi r24, 0x08 ; 8
960: 82 30 cpi r24, 0x02 ; 2
962: 58 f4 brcc .+22 ; 0x97a <UIMgr_processReceivedData+0xb2>
964: 8e e4 ldi r24, 0x4E ; 78
966: da de rcall .-588 ; 0x71c <UIMgr_writeTxFifo>
968: 83 e4 ldi r24, 0x43 ; 67
96a: d8 de rcall .-592 ; 0x71c <UIMgr_writeTxFifo>
96c: 8b e4 ldi r24, 0x4B ; 75
96e: d6 de rcall .-596 ; 0x71c <UIMgr_writeTxFifo>
970: 8d e0 ldi r24, 0x0D ; 13
972: d4 de rcall .-600 ; 0x71c <UIMgr_writeTxFifo>
974: 80 e9 ldi r24, 0x90 ; 144
976: 05 dc rcall .-2038 ; 0x182 <Exec_writeEventFifo>
978: 82 c0 rjmp .+260 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
97a: 81 e4 ldi r24, 0x41 ; 65
97c: cf de rcall .-610 ; 0x71c <UIMgr_writeTxFifo>
97e: 83 e4 ldi r24, 0x43 ; 67
980: cd de rcall .-614 ; 0x71c <UIMgr_writeTxFifo>
982: 8b e4 ldi r24, 0x4B ; 75
984: cb de rcall .-618 ; 0x71c <UIMgr_writeTxFifo>
986: 8d e0 ldi r24, 0x0D ; 13
988: c9 de rcall .-622 ; 0x71c <UIMgr_writeTxFifo>
98a: 80 e9 ldi r24, 0x90 ; 144
98c: fa db rcall .-2060 ; 0x182 <Exec_writeEventFifo>
98e: 80 91 62 00 lds r24, 0x0062
992: 81 30 cpi r24, 0x01 ; 1
994: 09 f4 brne .+2 ; 0x998 <UIMgr_processReceivedData+0xd0>
996: 73 c0 rjmp .+230 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
998: 88 23 and r24, r24
99a: 69 f4 brne .+26 ; 0x9b6 <UIMgr_processReceivedData+0xee>
99c: 80 91 63 00 lds r24, 0x0063
9a0: 88 23 and r24, r24
9a2: 09 f4 brne .+2 ; 0x9a6 <UIMgr_processReceivedData+0xde>
9a4: 6c c0 rjmp .+216 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9a6: e3 01 movw r28, r6
9a8: 21 96 adiw r28, 0x01 ; 1
9aa: b8 de rcall .-656 ; 0x71c <UIMgr_writeTxFifo>
9ac: 88 81 ld r24, Y
9ae: 88 23 and r24, r24
9b0: 09 f4 brne .+2 ; 0x9b4 <UIMgr_processReceivedData+0xec>
9b2: 65 c0 rjmp .+202 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9b4: f9 cf rjmp .-14 ; 0x9a8 <UIMgr_processReceivedData+0xe0>
9b6: 87 30 cpi r24, 0x07 ; 7
9b8: 11 f4 brne .+4 ; 0x9be <UIMgr_processReceivedData+0xf6>
9ba: a1 db rcall .-2238 ; 0xfe <CamInt_resetCam>
9bc: 60 c0 rjmp .+192 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9be: 83 30 cpi r24, 0x03 ; 3
9c0: 31 f4 brne .+12 ; 0x9ce <UIMgr_processReceivedData+0x106>
9c2: 84 e6 ldi r24, 0x64 ; 100
9c4: 90 e0 ldi r25, 0x00 ; 0
9c6: 6f d2 rcall .+1246 ; 0xea6 <Utility_delay>
9c8: 82 e0 ldi r24, 0x02 ; 2
9ca: db db rcall .-2122 ; 0x182 <Exec_writeEventFifo>
9cc: 58 c0 rjmp .+176 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9ce: 82 30 cpi r24, 0x02 ; 2
9d0: 91 f4 brne .+36 ; 0x9f6 <UIMgr_processReceivedData+0x12e>
9d2: 80 91 bc 00 lds r24, 0x00BC
9d6: 82 30 cpi r24, 0x02 ; 2
9d8: 60 f0 brcs .+24 ; 0x9f2 <UIMgr_processReceivedData+0x12a>
9da: 11 e0 ldi r17, 0x01 ; 1
9dc: f7 01 movw r30, r14
9de: e1 0f add r30, r17
9e0: f1 1d adc r31, r1
9e2: 61 81 ldd r22, Z+1 ; 0x01
9e4: 80 81 ld r24, Z
9e6: 05 d2 rcall .+1034 ; 0xdf2 <CamConfig_setCamReg>
9e8: 1e 5f subi r17, 0xFE ; 254
9ea: 80 91 bc 00 lds r24, 0x00BC
9ee: 18 17 cp r17, r24
9f0: a8 f3 brcs .-22 ; 0x9dc <UIMgr_processReceivedData+0x114>
9f2: 04 d2 rcall .+1032 ; 0xdfc <CamConfig_sendFifoCmds>
9f4: 44 c0 rjmp .+136 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
9f6: 84 30 cpi r24, 0x04 ; 4
9f8: 31 f4 brne .+12 ; 0xa06 <UIMgr_processReceivedData+0x13e>
9fa: 84 e6 ldi r24, 0x64 ; 100
9fc: 90 e0 ldi r25, 0x00 ; 0
9fe: 53 d2 rcall .+1190 ; 0xea6 <Utility_delay>
a00: 80 e8 ldi r24, 0x80 ; 128
a02: bf db rcall .-2178 ; 0x182 <Exec_writeEventFifo>
a04: 3c c0 rjmp .+120 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a06: 85 30 cpi r24, 0x05 ; 5
a08: 19 f4 brne .+6 ; 0xa10 <UIMgr_processReceivedData+0x148>
a0a: 81 e8 ldi r24, 0x81 ; 129
a0c: ba db rcall .-2188 ; 0x182 <Exec_writeEventFifo>
a0e: 37 c0 rjmp .+110 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a10: 86 30 cpi r24, 0x06 ; 6
a12: 09 f0 breq .+2 ; 0xa16 <UIMgr_processReceivedData+0x14e>
a14: 34 c0 rjmp .+104 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a16: 80 91 bc 00 lds r24, 0x00BC
a1a: 88 23 and r24, r24
a1c: 81 f1 breq .+96 ; 0xa7e <UIMgr_processReceivedData+0x1b6>
a1e: 40 e0 ldi r20, 0x00 ; 0
a20: 84 2f mov r24, r20
a22: 99 27 eor r25, r25
a24: 9c 01 movw r18, r24
a26: 2f 5f subi r18, 0xFF ; 255
a28: 3f 4f sbci r19, 0xFF ; 255
a2a: f9 01 movw r30, r18
a2c: ee 0d add r30, r14
a2e: ff 1d adc r31, r15
a30: e0 81 ld r30, Z
a32: ec 01 movw r28, r24
a34: c8 0d add r28, r8
a36: d9 1d adc r29, r9
a38: e8 83 st Y, r30
uint8_t
eeprom_read_byte (const uint8_t *addr)
{
uint8_t result;
__asm__ __volatile__
a3a: d9 01 movw r26, r18
a3c: 32 d3 rcall .+1636 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a3e: 80 2d mov r24, r0
a40: e8 17 cp r30, r24
a42: c1 f0 breq .+48 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a62: d9 01 movw r26, r18
a64: 09 2e mov r0, r25
a66: 1e d3 rcall .+1596 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a68: d9 01 movw r26, r18
a6a: 0f d3 rcall .+1566 ; 0x108a <__eeprom_read_byte_1C1D1E>
a6c: 80 2d mov r24, r0
a6e: 98 81 ld r25, Y
a70: 98 17 cp r25, r24
a72: 31 f0 breq .+12 ; 0xa80 <UIMgr_processReceivedData+0x178>
__asm__ __volatile__ (
a44: d9 01 movw r26, r18
a46: 0e 2e mov r0, r30
a48: 39 d3 rcall .+1650 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a4a: d9 01 movw r26, r18
a4c: 2a d3 rcall .+1620 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a4e: 80 2d mov r24, r0
a50: 98 81 ld r25, Y
a52: 89 17 cp r24, r25
a54: 79 f0 breq .+30 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
asm volatile (
a74: d9 01 movw r26, r18
a76: 09 2e mov r0, r25
a78: 15 d3 rcall .+1578 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
a7a: d9 01 movw r26, r18
a7c: 06 d3 rcall .+1548 ; 0x108a <__eeprom_read_byte_1C1D1E>
a7e: 80 2d mov r24, r0
a80: 4f 5f subi r20, 0xFF ; 255
a82: 80 91 bc 00 lds r24, 0x00BC
a86: 48 17 cp r20, r24
a88: 88 f2 brcs .-94 ; 0xa2c <UIMgr_processReceivedData+0x124>
a8a: 10 92 bc 00 sts 0x00BC, r1
a8e: 80 e4 ldi r24, 0x40 ; 64
a90: e3 ec ldi r30, 0xC3 ; 195
a92: f0 e0 ldi r31, 0x00 ; 0
a94: 11 92 st Z+, r1
a96: 8a 95 dec r24
a98: e9 f7 brne .-6 ; 0xa94 <UIMgr_processReceivedData+0x18c>
a9a: 3f c0 rjmp .+126 ; 0xb1a <UIMgr_processReceivedData+0x212>
a9c: 90 32 cpi r25, 0x20 ; 32
a9e: f1 f4 brne .+60 ; 0xadc <UIMgr_processReceivedData+0x1d4>
aa0: 80 91 bc 00 lds r24, 0x00BC
aa4: 88 23 and r24, r24
aa6: 39 f4 brne .+14 ; 0xab6 <UIMgr_processReceivedData+0x1ae>
aa8: 8f de rcall .-738 ; 0x7c8 <UIMgr_convertTokenToCmd>
aaa: 80 91 bc 00 lds r24, 0x00BC
aae: 8f 5f subi r24, 0xFF ; 255
ab0: 80 93 bc 00 sts 0x00BC, r24
ab4: 32 c0 rjmp .+100 ; 0xb1a <UIMgr_processReceivedData+0x212>
ab6: 99 27 eor r25, r25
ab8: cf 97 sbiw r24, 0x3f ; 63
aba: 4c f0 brlt .+18 ; 0xace <UIMgr_processReceivedData+0x1c6>
abc: 10 92 bd 00 sts 0x00BD, r1
ac0: 10 92 be 00 sts 0x00BE, r1
ac4: 10 92 bc 00 sts 0x00BC, r1
ac8: f0 92 62 00 sts 0x0062, r15
acc: 26 c0 rjmp .+76 ; 0xb1a <UIMgr_processReceivedData+0x212>
ace: f6 de rcall .-532 ; 0x8bc <UIMgr_convertTokenToValue>
ad0: 80 91 bc 00 lds r24, 0x00BC
ad4: 8f 5f subi r24, 0xFF ; 255
ad6: 80 93 bc 00 sts 0x00BC, r24
ada: 1f c0 rjmp .+62 ; 0xb1a <UIMgr_processReceivedData+0x212>
adc: 89 2f mov r24, r25
ade: 81 54 subi r24, 0x41 ; 65
ae0: 8a 31 cpi r24, 0x1A ; 26
ae2: 18 f0 brcs .+6 ; 0xaea <UIMgr_processReceivedData+0x1e2>
ae4: 8f 5e subi r24, 0xEF ; 239
ae6: 8a 30 cpi r24, 0x0A ; 10
ae8: b0 f4 brcc .+44 ; 0xb16 <UIMgr_processReceivedData+0x20e>
aea: 80 91 be 00 lds r24, 0x00BE
aee: e8 2f mov r30, r24
af0: ff 27 eor r31, r31
af2: e1 54 subi r30, 0x41 ; 65
af4: ff 4f sbci r31, 0xFF ; 255
af6: 90 83 st Z, r25
af8: 90 91 bd 00 lds r25, 0x00BD
afc: 9f 5f subi r25, 0xFF ; 255
afe: 90 93 bd 00 sts 0x00BD, r25
b02: 8f 5f subi r24, 0xFF ; 255
b04: 80 93 be 00 sts 0x00BE, r24
b08: 94 30 cpi r25, 0x04 ; 4
b0a: 38 f0 brcs .+14 ; 0xb1a <UIMgr_processReceivedData+0x212>
b0c: f0 92 62 00 sts 0x0062, r15
b10: 10 92 be 00 sts 0x00BE, r1
b14: 02 c0 rjmp .+4 ; 0xb1a <UIMgr_processReceivedData+0x212>
b16: f0 92 62 00 sts 0x0062, r15
b1a: 20 91 b9 00 lds r18, 0x00B9
b1e: 80 91 b8 00 lds r24, 0x00B8
b22: 82 17 cp r24, r18
b24: 09 f0 breq .+2 ; 0xb28 <UIMgr_processReceivedData+0x220>
b26: fa ce rjmp .-524 ; 0x91c <UIMgr_processReceivedData+0x14>
b28: e8 94 clt
b2a: df 91 pop r29
b2c: cf 91 pop r28
b2e: 1f 91 pop r17
b30: 0f 91 pop r16
b32: ff 90 pop r15
b34: 08 95 ret
__asm__ __volatile__ (
a56: d9 01 movw r26, r18
a58: 09 2e mov r0, r25
a5a: 30 d3 rcall .+1632 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a5c: d9 01 movw r26, r18
a5e: 21 d3 rcall .+1602 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a60: 80 2d mov r24, r0
a62: 98 81 ld r25, Y
a64: 89 17 cp r24, r25
a66: 31 f0 breq .+12 ; 0xa74 <UIMgr_processReceivedData+0x1ac>
 
00000b36 <UIMgr_dispatchEvent>:
b36: 80 31 cpi r24, 0x10 ; 16
b38: 29 f0 breq .+10 ; 0xb44 <UIMgr_dispatchEvent+0xe>
b3a: 80 39 cpi r24, 0x90 ; 144
b3c: 39 f0 breq .+14 ; 0xb4c <UIMgr_dispatchEvent+0x16>
b3e: 81 30 cpi r24, 0x01 ; 1
b40: 31 f4 brne .+12 ; 0xb4e <UIMgr_dispatchEvent+0x18>
b42: 02 c0 rjmp .+4 ; 0xb48 <UIMgr_dispatchEvent+0x12>
b44: 38 de rcall .-912 ; 0x7b6 <UIMgr_transmitPendingData>
b46: 08 95 ret
b48: df de rcall .-578 ; 0x908 <UIMgr_processReceivedData>
b4a: 08 95 ret
b4c: 0e de rcall .-996 ; 0x76a <UIMgr_flushTxBuffer>
b4e: 08 95 ret
void
eeprom_write_byte (uint8_t *addr,uint8_t value)
{
__asm__ __volatile__ (
a68: d9 01 movw r26, r18
a6a: 09 2e mov r0, r25
a6c: 27 d3 rcall .+1614 ; 0x10bc <__eeprom_write_byte_1C1D1E>
a6e: d9 01 movw r26, r18
a70: 18 d3 rcall .+1584 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
a72: 80 2d mov r24, r0
a74: 4f 5f subi r20, 0xFF ; 255
a76: 80 91 bc 00 lds r24, 0x00BC
a7a: 48 17 cp r20, r24
a7c: 88 f2 brcs .-94 ; 0xa20 <UIMgr_processReceivedData+0x158>
a7e: 10 92 bc 00 sts 0x00BC, r1
a82: 80 e4 ldi r24, 0x40 ; 64
a84: f7 01 movw r30, r14
a86: 11 92 st Z+, r1
a88: 8a 95 dec r24
a8a: e9 f7 brne .-6 ; 0xa86 <UIMgr_processReceivedData+0x1be>
a8c: 43 c0 rjmp .+134 ; 0xb14 <UIMgr_processReceivedData+0x24c>
a8e: 20 32 cpi r18, 0x20 ; 32
a90: 09 f5 brne .+66 ; 0xad4 <UIMgr_processReceivedData+0x20c>
a92: 80 91 bc 00 lds r24, 0x00BC
a96: 88 23 and r24, r24
a98: 39 f4 brne .+14 ; 0xaa8 <UIMgr_processReceivedData+0x1e0>
a9a: 76 de rcall .-788 ; 0x788 <UIMgr_convertTokenToCmd>
a9c: 80 91 bc 00 lds r24, 0x00BC
aa0: 8f 5f subi r24, 0xFF ; 255
aa2: 80 93 bc 00 sts 0x00BC, r24
aa6: 36 c0 rjmp .+108 ; 0xb14 <UIMgr_processReceivedData+0x24c>
aa8: 99 27 eor r25, r25
aaa: 01 96 adiw r24, 0x01 ; 1
aac: 80 34 cpi r24, 0x40 ; 64
aae: 91 05 cpc r25, r1
ab0: 54 f0 brlt .+20 ; 0xac6 <UIMgr_processReceivedData+0x1fe>
ab2: 10 92 bd 00 sts 0x00BD, r1
ab6: 10 92 be 00 sts 0x00BE, r1
aba: 10 92 bc 00 sts 0x00BC, r1
abe: 89 e0 ldi r24, 0x09 ; 9
ac0: 80 93 62 00 sts 0x0062, r24
ac4: 27 c0 rjmp .+78 ; 0xb14 <UIMgr_processReceivedData+0x24c>
ac6: da de rcall .-588 ; 0x87c <UIMgr_convertTokenToValue>
ac8: 80 91 bc 00 lds r24, 0x00BC
acc: 8f 5f subi r24, 0xFF ; 255
ace: 80 93 bc 00 sts 0x00BC, r24
ad2: 20 c0 rjmp .+64 ; 0xb14 <UIMgr_processReceivedData+0x24c>
ad4: 82 2f mov r24, r18
ad6: 81 54 subi r24, 0x41 ; 65
ad8: 8a 31 cpi r24, 0x1A ; 26
ada: 18 f0 brcs .+6 ; 0xae2 <UIMgr_processReceivedData+0x21a>
adc: 8f 5e subi r24, 0xEF ; 239
ade: 8a 30 cpi r24, 0x0A ; 10
ae0: b0 f4 brcc .+44 ; 0xb0e <UIMgr_processReceivedData+0x246>
ae2: 80 91 be 00 lds r24, 0x00BE
ae6: f5 01 movw r30, r10
ae8: e8 0f add r30, r24
aea: f1 1d adc r31, r1
aec: 20 83 st Z, r18
aee: 90 91 bd 00 lds r25, 0x00BD
af2: 9f 5f subi r25, 0xFF ; 255
af4: 90 93 bd 00 sts 0x00BD, r25
af8: 8f 5f subi r24, 0xFF ; 255
afa: 80 93 be 00 sts 0x00BE, r24
afe: 94 30 cpi r25, 0x04 ; 4
b00: 48 f0 brcs .+18 ; 0xb14 <UIMgr_processReceivedData+0x24c>
b02: 89 e0 ldi r24, 0x09 ; 9
b04: 80 93 62 00 sts 0x0062, r24
b08: 10 92 be 00 sts 0x00BE, r1
b0c: 03 c0 rjmp .+6 ; 0xb14 <UIMgr_processReceivedData+0x24c>
b0e: 89 e0 ldi r24, 0x09 ; 9
b10: 80 93 62 00 sts 0x0062, r24
b14: 90 91 b9 00 lds r25, 0x00B9
b18: 80 91 b8 00 lds r24, 0x00B8
b1c: 89 17 cp r24, r25
b1e: 09 f0 breq .+2 ; 0xb22 <UIMgr_processReceivedData+0x25a>
b20: ff ce rjmp .-514 ; 0x920 <UIMgr_processReceivedData+0x58>
b22: e8 94 clt
b24: df 91 pop r29
b26: cf 91 pop r28
b28: 1f 91 pop r17
b2a: ff 90 pop r15
b2c: ef 90 pop r14
b2e: df 90 pop r13
b30: cf 90 pop r12
b32: bf 90 pop r11
b34: af 90 pop r10
b36: 9f 90 pop r9
b38: 8f 90 pop r8
b3a: 7f 90 pop r7
b3c: 6f 90 pop r6
b3e: 08 95 ret
 
00000b50 <UartInt_init>:
b50: 10 bc out 0x20, r1 ; 32
b52: 82 e1 ldi r24, 0x12 ; 18
b54: 89 b9 out 0x09, r24 ; 9
b56: 88 e9 ldi r24, 0x98 ; 152
b58: 8a b9 out 0x0a, r24 ; 10
b5a: 86 e8 ldi r24, 0x86 ; 134
b5c: 80 bd out 0x20, r24 ; 32
b5e: 82 e0 ldi r24, 0x02 ; 2
b60: 8b b9 out 0x0b, r24 ; 11
b62: 08 95 ret
00000b40 <UIMgr_dispatchEvent>:
b40: 80 31 cpi r24, 0x10 ; 16
b42: 29 f0 breq .+10 ; 0xb4e <UIMgr_dispatchEvent+0xe>
b44: 80 39 cpi r24, 0x90 ; 144
b46: 39 f0 breq .+14 ; 0xb56 <UIMgr_dispatchEvent+0x16>
b48: 81 30 cpi r24, 0x01 ; 1
b4a: 31 f4 brne .+12 ; 0xb58 <UIMgr_dispatchEvent+0x18>
b4c: 02 c0 rjmp .+4 ; 0xb52 <UIMgr_dispatchEvent+0x12>
b4e: 13 de rcall .-986 ; 0x776 <UIMgr_transmitPendingData>
b50: 08 95 ret
b52: ba de rcall .-652 ; 0x8c8 <UIMgr_processReceivedData>
b54: 08 95 ret
b56: f0 dd rcall .-1056 ; 0x738 <UIMgr_flushTxBuffer>
b58: 08 95 ret
 
00000b64 <UartInt_txByte>:
b64: 5d 9b sbis 0x0b, 5 ; 11
b66: fe cf rjmp .-4 ; 0xb64 <UartInt_txByte>
b68: 8c b9 out 0x0c, r24 ; 12
b6a: 08 95 ret
00000b5a <UartInt_init>:
b5a: 10 bc out 0x20, r1 ; 32
b5c: 82 e1 ldi r24, 0x12 ; 18
b5e: 89 b9 out 0x09, r24 ; 9
b60: 88 e9 ldi r24, 0x98 ; 152
b62: 8a b9 out 0x0a, r24 ; 10
b64: 86 e8 ldi r24, 0x86 ; 134
b66: 80 bd out 0x20, r24 ; 32
b68: 82 e0 ldi r24, 0x02 ; 2
b6a: 8b b9 out 0x0b, r24 ; 11
b6c: 08 95 ret
 
00000b6c <__vector_11>:
b6c: 1f 92 push r1
b6e: 0f 92 push r0
b70: 0f b6 in r0, 0x3f ; 63
b72: 0f 92 push r0
b74: 11 24 eor r1, r1
b76: 8f 93 push r24
b78: 9f 93 push r25
b7a: ef 93 push r30
b7c: ff 93 push r31
b7e: 80 91 b8 00 lds r24, 0x00B8
b82: 9c b1 in r25, 0x0c ; 12
b84: e4 e7 ldi r30, 0x74 ; 116
b86: f2 e0 ldi r31, 0x02 ; 2
b88: e8 0f add r30, r24
b8a: f1 1d adc r31, r1
b8c: 90 83 st Z, r25
b8e: 8f 5f subi r24, 0xFF ; 255
b90: 8f 71 andi r24, 0x1F ; 31
b92: 80 93 b8 00 sts 0x00B8, r24
b96: 80 91 70 00 lds r24, 0x0070
b9a: ec e6 ldi r30, 0x6C ; 108
b9c: f2 e0 ldi r31, 0x02 ; 2
b9e: e8 0f add r30, r24
ba0: f1 1d adc r31, r1
ba2: 91 e0 ldi r25, 0x01 ; 1
ba4: 90 83 st Z, r25
ba6: 8f 5f subi r24, 0xFF ; 255
ba8: 87 70 andi r24, 0x07 ; 7
baa: 80 93 70 00 sts 0x0070, r24
bae: ff 91 pop r31
bb0: ef 91 pop r30
bb2: 9f 91 pop r25
bb4: 8f 91 pop r24
bb6: 0f 90 pop r0
bb8: 0f be out 0x3f, r0 ; 63
bba: 0f 90 pop r0
bbc: 1f 90 pop r1
bbe: 18 95 reti
00000b6e <UartInt_txByte>:
b6e: 5d 9b sbis 0x0b, 5 ; 11
b70: fe cf rjmp .-4 ; 0xb6e <UartInt_txByte>
b72: 8c b9 out 0x0c, r24 ; 12
b74: 08 95 ret
 
00000bc0 <I2CInt_init>:
bc0: 11 b8 out 0x01, r1 ; 1
bc2: 88 e4 ldi r24, 0x48 ; 72
bc4: 80 b9 out 0x00, r24 ; 0
bc6: 08 95 ret
00000b76 <__vector_11>:
b76: 1f 92 push r1
b78: 0f 92 push r0
b7a: 0f b6 in r0, 0x3f ; 63
b7c: 0f 92 push r0
b7e: 11 24 eor r1, r1
b80: 8f 93 push r24
b82: 9f 93 push r25
b84: ef 93 push r30
b86: ff 93 push r31
b88: 80 91 b8 00 lds r24, 0x00B8
b8c: 9c b1 in r25, 0x0c ; 12
b8e: e4 e7 ldi r30, 0x74 ; 116
b90: f2 e0 ldi r31, 0x02 ; 2
b92: e8 0f add r30, r24
b94: f1 1d adc r31, r1
b96: 90 83 st Z, r25
b98: 8f 5f subi r24, 0xFF ; 255
b9a: 8f 71 andi r24, 0x1F ; 31
b9c: 80 93 b8 00 sts 0x00B8, r24
ba0: 80 91 70 00 lds r24, 0x0070
ba4: ec e6 ldi r30, 0x6C ; 108
ba6: f2 e0 ldi r31, 0x02 ; 2
ba8: e8 0f add r30, r24
baa: f1 1d adc r31, r1
bac: 91 e0 ldi r25, 0x01 ; 1
bae: 90 83 st Z, r25
bb0: 8f 5f subi r24, 0xFF ; 255
bb2: 87 70 andi r24, 0x07 ; 7
bb4: 80 93 70 00 sts 0x0070, r24
bb8: ff 91 pop r31
bba: ef 91 pop r30
bbc: 9f 91 pop r25
bbe: 8f 91 pop r24
bc0: 0f 90 pop r0
bc2: 0f be out 0x3f, r0 ; 63
bc4: 0f 90 pop r0
bc6: 1f 90 pop r1
bc8: 18 95 reti
 
00000bc8 <I2CInt_writeData>:
bc8: 98 2f mov r25, r24
bca: 80 91 08 01 lds r24, 0x0108
bce: 88 23 and r24, r24
bd0: e4 f3 brlt .-8 ; 0xbca <I2CInt_writeData+0x2>
bd2: 06 b6 in r0, 0x36 ; 54
bd4: 04 fc sbrc r0, 4
bd6: fd cf rjmp .-6 ; 0xbd2 <I2CInt_writeData+0xa>
bd8: 90 93 03 01 sts 0x0103, r25
bdc: 70 93 05 01 sts 0x0105, r23
be0: 60 93 04 01 sts 0x0104, r22
be4: 40 93 07 01 sts 0x0107, r20
be8: 10 92 06 01 sts 0x0106, r1
bec: 10 92 09 01 sts 0x0109, r1
bf0: 85 ea ldi r24, 0xA5 ; 165
bf2: 86 bf out 0x36, r24 ; 54
bf4: 80 91 08 01 lds r24, 0x0108
bf8: 80 68 ori r24, 0x80 ; 128
bfa: 80 93 08 01 sts 0x0108, r24
bfe: 08 95 ret
00000bca <I2CInt_init>:
bca: 11 b8 out 0x01, r1 ; 1
bcc: 88 e4 ldi r24, 0x48 ; 72
bce: 80 b9 out 0x00, r24 ; 0
bd0: 08 95 ret
 
00000c00 <I2CInt_readData>:
c00: 98 2f mov r25, r24
c02: 80 91 08 01 lds r24, 0x0108
c06: 88 23 and r24, r24
c08: e4 f3 brlt .-8 ; 0xc02 <I2CInt_readData+0x2>
c0a: 90 93 03 01 sts 0x0103, r25
c0e: 70 93 05 01 sts 0x0105, r23
c12: 60 93 04 01 sts 0x0104, r22
c16: 40 93 07 01 sts 0x0107, r20
c1a: 81 e0 ldi r24, 0x01 ; 1
c1c: 80 93 06 01 sts 0x0106, r24
c20: 10 92 09 01 sts 0x0109, r1
c24: 85 ea ldi r24, 0xA5 ; 165
c26: 86 bf out 0x36, r24 ; 54
c28: 80 91 08 01 lds r24, 0x0108
c2c: 80 68 ori r24, 0x80 ; 128
c2e: 80 93 08 01 sts 0x0108, r24
c32: 08 95 ret
00000bd2 <I2CInt_writeData>:
bd2: 98 2f mov r25, r24
bd4: 80 91 08 01 lds r24, 0x0108
bd8: 88 23 and r24, r24
bda: e4 f3 brlt .-8 ; 0xbd4 <I2CInt_writeData+0x2>
bdc: 06 b6 in r0, 0x36 ; 54
bde: 04 fc sbrc r0, 4
be0: fd cf rjmp .-6 ; 0xbdc <I2CInt_writeData+0xa>
be2: 90 93 03 01 sts 0x0103, r25
be6: 70 93 05 01 sts 0x0105, r23
bea: 60 93 04 01 sts 0x0104, r22
bee: 40 93 07 01 sts 0x0107, r20
bf2: 10 92 06 01 sts 0x0106, r1
bf6: 10 92 09 01 sts 0x0109, r1
bfa: 85 ea ldi r24, 0xA5 ; 165
bfc: 86 bf out 0x36, r24 ; 54
bfe: 80 91 08 01 lds r24, 0x0108
c02: 80 68 ori r24, 0x80 ; 128
c04: 80 93 08 01 sts 0x0108, r24
c08: 08 95 ret
 
00000c34 <I2CInt_isI2cBusy>:
c34: 80 91 08 01 lds r24, 0x0108
c38: 88 1f adc r24, r24
c3a: 88 27 eor r24, r24
c3c: 88 1f adc r24, r24
c3e: 99 27 eor r25, r25
c40: 08 95 ret
00000c0a <I2CInt_readData>:
c0a: 98 2f mov r25, r24
c0c: 80 91 08 01 lds r24, 0x0108
c10: 88 23 and r24, r24
c12: e4 f3 brlt .-8 ; 0xc0c <I2CInt_readData+0x2>
c14: 90 93 03 01 sts 0x0103, r25
c18: 70 93 05 01 sts 0x0105, r23
c1c: 60 93 04 01 sts 0x0104, r22
c20: 40 93 07 01 sts 0x0107, r20
c24: 81 e0 ldi r24, 0x01 ; 1
c26: 80 93 06 01 sts 0x0106, r24
c2a: 10 92 09 01 sts 0x0109, r1
c2e: 85 ea ldi r24, 0xA5 ; 165
c30: 86 bf out 0x36, r24 ; 54
c32: 80 91 08 01 lds r24, 0x0108
c36: 80 68 ori r24, 0x80 ; 128
c38: 80 93 08 01 sts 0x0108, r24
c3c: 08 95 ret
 
00000c42 <__vector_17>:
c42: 1f 92 push r1
c44: 0f 92 push r0
c46: 0f b6 in r0, 0x3f ; 63
c48: 0f 92 push r0
c4a: 11 24 eor r1, r1
c4c: 8f 93 push r24
c4e: 9f 93 push r25
c50: af 93 push r26
c52: bf 93 push r27
c54: ef 93 push r30
c56: ff 93 push r31
c58: 81 b1 in r24, 0x01 ; 1
c5a: 99 27 eor r25, r25
c5c: aa 27 eor r26, r26
c5e: bb 27 eor r27, r27
c60: 88 7f andi r24, 0xF8 ; 248
c62: 90 70 andi r25, 0x00 ; 0
c64: a0 70 andi r26, 0x00 ; 0
c66: b0 70 andi r27, 0x00 ; 0
c68: fc 01 movw r30, r24
c6a: 38 97 sbiw r30, 0x08 ; 8
c6c: e1 35 cpi r30, 0x51 ; 81
c6e: f1 05 cpc r31, r1
c70: 08 f0 brcs .+2 ; 0xc74 <__vector_17+0x32>
c72: 9a c0 rjmp .+308 ; 0xda8 <__vector_17+0x166>
c74: ed 5e subi r30, 0xED ; 237
c76: ff 4f sbci r31, 0xFF ; 255
c78: 09 94 ijmp
c7a: 80 91 09 01 lds r24, 0x0109
c7e: 83 30 cpi r24, 0x03 ; 3
c80: 48 f0 brcs .+18 ; 0xc94 <__vector_17+0x52>
c82: 86 b7 in r24, 0x36 ; 54
c84: 80 69 ori r24, 0x90 ; 144
c86: 86 bf out 0x36, r24 ; 54
c88: 80 91 08 01 lds r24, 0x0108
c8c: 8f 77 andi r24, 0x7F ; 127
c8e: 80 93 08 01 sts 0x0108, r24
c92: 8a c0 rjmp .+276 ; 0xda8 <__vector_17+0x166>
c94: 80 91 03 01 lds r24, 0x0103
c98: 90 91 06 01 lds r25, 0x0106
c9c: 88 0f add r24, r24
c9e: 89 0f add r24, r25
ca0: 83 b9 out 0x03, r24 ; 3
ca2: 86 b7 in r24, 0x36 ; 54
ca4: 8f 7d andi r24, 0xDF ; 223
ca6: 86 bf out 0x36, r24 ; 54
ca8: 7f c0 rjmp .+254 ; 0xda8 <__vector_17+0x166>
caa: 10 92 09 01 sts 0x0109, r1
cae: e0 91 04 01 lds r30, 0x0104
cb2: f0 91 05 01 lds r31, 0x0105
cb6: 80 81 ld r24, Z
cb8: 83 b9 out 0x03, r24 ; 3
cba: 31 96 adiw r30, 0x01 ; 1
cbc: f0 93 05 01 sts 0x0105, r31
cc0: e0 93 04 01 sts 0x0104, r30
cc4: 86 b7 in r24, 0x36 ; 54
cc6: 80 68 ori r24, 0x80 ; 128
cc8: 86 bf out 0x36, r24 ; 54
cca: 6e c0 rjmp .+220 ; 0xda8 <__vector_17+0x166>
ccc: 80 91 09 01 lds r24, 0x0109
cd0: 8f 5f subi r24, 0xFF ; 255
cd2: 80 93 09 01 sts 0x0109, r24
cd6: 86 b7 in r24, 0x36 ; 54
cd8: 80 6b ori r24, 0xB0 ; 176
cda: 86 bf out 0x36, r24 ; 54
cdc: 65 c0 rjmp .+202 ; 0xda8 <__vector_17+0x166>
cde: 80 91 07 01 lds r24, 0x0107
ce2: 81 50 subi r24, 0x01 ; 1
ce4: 80 93 07 01 sts 0x0107, r24
ce8: 80 91 07 01 lds r24, 0x0107
cec: 88 23 and r24, r24
cee: 79 f0 breq .+30 ; 0xd0e <__vector_17+0xcc>
cf0: e0 91 04 01 lds r30, 0x0104
cf4: f0 91 05 01 lds r31, 0x0105
cf8: 80 81 ld r24, Z
cfa: 83 b9 out 0x03, r24 ; 3
cfc: 31 96 adiw r30, 0x01 ; 1
cfe: f0 93 05 01 sts 0x0105, r31
d02: e0 93 04 01 sts 0x0104, r30
d06: 86 b7 in r24, 0x36 ; 54
d08: 80 68 ori r24, 0x80 ; 128
d0a: 86 bf out 0x36, r24 ; 54
d0c: 4d c0 rjmp .+154 ; 0xda8 <__vector_17+0x166>
d0e: 86 b7 in r24, 0x36 ; 54
d10: 80 69 ori r24, 0x90 ; 144
d12: 86 bf out 0x36, r24 ; 54
d14: 80 91 08 01 lds r24, 0x0108
d18: 8f 77 andi r24, 0x7F ; 127
d1a: 80 93 08 01 sts 0x0108, r24
d1e: 44 c0 rjmp .+136 ; 0xda8 <__vector_17+0x166>
d20: 86 b7 in r24, 0x36 ; 54
d22: 80 69 ori r24, 0x90 ; 144
d24: 86 bf out 0x36, r24 ; 54
d26: 80 91 08 01 lds r24, 0x0108
d2a: 8f 77 andi r24, 0x7F ; 127
d2c: 80 93 08 01 sts 0x0108, r24
d30: 3b c0 rjmp .+118 ; 0xda8 <__vector_17+0x166>
d32: 80 91 07 01 lds r24, 0x0107
d36: 81 50 subi r24, 0x01 ; 1
d38: 80 93 07 01 sts 0x0107, r24
d3c: 80 91 07 01 lds r24, 0x0107
d40: 88 23 and r24, r24
d42: 21 f0 breq .+8 ; 0xd4c <__vector_17+0x10a>
d44: 86 b7 in r24, 0x36 ; 54
d46: 80 6c ori r24, 0xC0 ; 192
d48: 86 bf out 0x36, r24 ; 54
d4a: 2e c0 rjmp .+92 ; 0xda8 <__vector_17+0x166>
d4c: 86 b7 in r24, 0x36 ; 54
d4e: 80 68 ori r24, 0x80 ; 128
d50: 86 bf out 0x36, r24 ; 54
d52: 2a c0 rjmp .+84 ; 0xda8 <__vector_17+0x166>
d54: e0 91 04 01 lds r30, 0x0104
d58: f0 91 05 01 lds r31, 0x0105
d5c: 83 b1 in r24, 0x03 ; 3
d5e: 80 83 st Z, r24
d60: 31 96 adiw r30, 0x01 ; 1
d62: f0 93 05 01 sts 0x0105, r31
d66: e0 93 04 01 sts 0x0104, r30
d6a: 80 91 07 01 lds r24, 0x0107
d6e: 81 50 subi r24, 0x01 ; 1
d70: 80 93 07 01 sts 0x0107, r24
d74: 80 91 07 01 lds r24, 0x0107
d78: 88 23 and r24, r24
d7a: 21 f0 breq .+8 ; 0xd84 <__vector_17+0x142>
d7c: 86 b7 in r24, 0x36 ; 54
d7e: 80 6c ori r24, 0xC0 ; 192
d80: 86 bf out 0x36, r24 ; 54
d82: 12 c0 rjmp .+36 ; 0xda8 <__vector_17+0x166>
d84: 86 b7 in r24, 0x36 ; 54
d86: 8f 7b andi r24, 0xBF ; 191
d88: 86 bf out 0x36, r24 ; 54
d8a: 0e c0 rjmp .+28 ; 0xda8 <__vector_17+0x166>
d8c: e0 91 04 01 lds r30, 0x0104
d90: f0 91 05 01 lds r31, 0x0105
d94: 83 b1 in r24, 0x03 ; 3
d96: 80 83 st Z, r24
d98: 86 b7 in r24, 0x36 ; 54
d9a: 80 69 ori r24, 0x90 ; 144
d9c: 86 bf out 0x36, r24 ; 54
d9e: 80 91 08 01 lds r24, 0x0108
da2: 8f 77 andi r24, 0x7F ; 127
da4: 80 93 08 01 sts 0x0108, r24
da8: ff 91 pop r31
daa: ef 91 pop r30
dac: bf 91 pop r27
dae: af 91 pop r26
db0: 9f 91 pop r25
db2: 8f 91 pop r24
db4: 0f 90 pop r0
db6: 0f be out 0x3f, r0 ; 63
00000c3e <I2CInt_isI2cBusy>:
c3e: 80 91 08 01 lds r24, 0x0108
c42: 88 1f adc r24, r24
c44: 88 27 eor r24, r24
c46: 88 1f adc r24, r24
c48: 99 27 eor r25, r25
c4a: 08 95 ret
 
00000c4c <__vector_17>:
c4c: 1f 92 push r1
c4e: 0f 92 push r0
c50: 0f b6 in r0, 0x3f ; 63
c52: 0f 92 push r0
c54: 11 24 eor r1, r1
c56: 8f 93 push r24
c58: 9f 93 push r25
c5a: af 93 push r26
c5c: bf 93 push r27
c5e: ef 93 push r30
c60: ff 93 push r31
c62: 81 b1 in r24, 0x01 ; 1
c64: 99 27 eor r25, r25
c66: aa 27 eor r26, r26
c68: bb 27 eor r27, r27
c6a: 88 7f andi r24, 0xF8 ; 248
c6c: 90 70 andi r25, 0x00 ; 0
c6e: a0 70 andi r26, 0x00 ; 0
c70: b0 70 andi r27, 0x00 ; 0
c72: fc 01 movw r30, r24
c74: 38 97 sbiw r30, 0x08 ; 8
c76: e1 35 cpi r30, 0x51 ; 81
c78: f1 05 cpc r31, r1
c7a: 08 f0 brcs .+2 ; 0xc7e <__vector_17+0x32>
c7c: 97 c0 rjmp .+302 ; 0xdac <__vector_17+0x160>
c7e: ed 5e subi r30, 0xED ; 237
c80: ff 4f sbci r31, 0xFF ; 255
c82: 09 94 ijmp
c84: 80 91 09 01 lds r24, 0x0109
c88: 83 30 cpi r24, 0x03 ; 3
c8a: 48 f0 brcs .+18 ; 0xc9e <__vector_17+0x52>
c8c: 86 b7 in r24, 0x36 ; 54
c8e: 80 69 ori r24, 0x90 ; 144
c90: 86 bf out 0x36, r24 ; 54
c92: 80 91 08 01 lds r24, 0x0108
c96: 8f 77 andi r24, 0x7F ; 127
c98: 80 93 08 01 sts 0x0108, r24
c9c: 87 c0 rjmp .+270 ; 0xdac <__vector_17+0x160>
c9e: 80 91 03 01 lds r24, 0x0103
ca2: 90 91 06 01 lds r25, 0x0106
ca6: 88 0f add r24, r24
ca8: 89 0f add r24, r25
caa: 83 b9 out 0x03, r24 ; 3
cac: 86 b7 in r24, 0x36 ; 54
cae: 8f 7d andi r24, 0xDF ; 223
cb0: 86 bf out 0x36, r24 ; 54
cb2: 7c c0 rjmp .+248 ; 0xdac <__vector_17+0x160>
cb4: 10 92 09 01 sts 0x0109, r1
cb8: e0 91 04 01 lds r30, 0x0104
cbc: f0 91 05 01 lds r31, 0x0105
cc0: 81 91 ld r24, Z+
cc2: 83 b9 out 0x03, r24 ; 3
cc4: f0 93 05 01 sts 0x0105, r31
cc8: e0 93 04 01 sts 0x0104, r30
ccc: 86 b7 in r24, 0x36 ; 54
cce: 80 68 ori r24, 0x80 ; 128
cd0: 86 bf out 0x36, r24 ; 54
cd2: 6c c0 rjmp .+216 ; 0xdac <__vector_17+0x160>
cd4: 80 91 09 01 lds r24, 0x0109
cd8: 8f 5f subi r24, 0xFF ; 255
cda: 80 93 09 01 sts 0x0109, r24
cde: 86 b7 in r24, 0x36 ; 54
ce0: 80 6b ori r24, 0xB0 ; 176
ce2: 86 bf out 0x36, r24 ; 54
ce4: 63 c0 rjmp .+198 ; 0xdac <__vector_17+0x160>
ce6: 80 91 07 01 lds r24, 0x0107
cea: 81 50 subi r24, 0x01 ; 1
cec: 80 93 07 01 sts 0x0107, r24
cf0: 80 91 07 01 lds r24, 0x0107
cf4: 88 23 and r24, r24
cf6: 71 f0 breq .+28 ; 0xd14 <__vector_17+0xc8>
cf8: e0 91 04 01 lds r30, 0x0104
cfc: f0 91 05 01 lds r31, 0x0105
d00: 81 91 ld r24, Z+
d02: 83 b9 out 0x03, r24 ; 3
d04: f0 93 05 01 sts 0x0105, r31
d08: e0 93 04 01 sts 0x0104, r30
d0c: 86 b7 in r24, 0x36 ; 54
d0e: 80 68 ori r24, 0x80 ; 128
d10: 86 bf out 0x36, r24 ; 54
d12: 4c c0 rjmp .+152 ; 0xdac <__vector_17+0x160>
d14: 86 b7 in r24, 0x36 ; 54
d16: 80 69 ori r24, 0x90 ; 144
d18: 86 bf out 0x36, r24 ; 54
d1a: 80 91 08 01 lds r24, 0x0108
d1e: 8f 77 andi r24, 0x7F ; 127
d20: 80 93 08 01 sts 0x0108, r24
d24: 43 c0 rjmp .+134 ; 0xdac <__vector_17+0x160>
d26: 86 b7 in r24, 0x36 ; 54
d28: 80 69 ori r24, 0x90 ; 144
d2a: 86 bf out 0x36, r24 ; 54
d2c: 80 91 08 01 lds r24, 0x0108
d30: 8f 77 andi r24, 0x7F ; 127
d32: 80 93 08 01 sts 0x0108, r24
d36: 3a c0 rjmp .+116 ; 0xdac <__vector_17+0x160>
d38: 80 91 07 01 lds r24, 0x0107
d3c: 81 50 subi r24, 0x01 ; 1
d3e: 80 93 07 01 sts 0x0107, r24
d42: 80 91 07 01 lds r24, 0x0107
d46: 88 23 and r24, r24
d48: 21 f0 breq .+8 ; 0xd52 <__vector_17+0x106>
d4a: 86 b7 in r24, 0x36 ; 54
d4c: 80 6c ori r24, 0xC0 ; 192
d4e: 86 bf out 0x36, r24 ; 54
d50: 2d c0 rjmp .+90 ; 0xdac <__vector_17+0x160>
d52: 86 b7 in r24, 0x36 ; 54
d54: 80 68 ori r24, 0x80 ; 128
d56: 86 bf out 0x36, r24 ; 54
d58: 29 c0 rjmp .+82 ; 0xdac <__vector_17+0x160>
d5a: e0 91 04 01 lds r30, 0x0104
d5e: f0 91 05 01 lds r31, 0x0105
d62: 83 b1 in r24, 0x03 ; 3
d64: 81 93 st Z+, r24
d66: f0 93 05 01 sts 0x0105, r31
d6a: e0 93 04 01 sts 0x0104, r30
d6e: 80 91 07 01 lds r24, 0x0107
d72: 81 50 subi r24, 0x01 ; 1
d74: 80 93 07 01 sts 0x0107, r24
d78: 80 91 07 01 lds r24, 0x0107
d7c: 88 23 and r24, r24
d7e: 21 f0 breq .+8 ; 0xd88 <__vector_17+0x13c>
d80: 86 b7 in r24, 0x36 ; 54
d82: 80 6c ori r24, 0xC0 ; 192
d84: 86 bf out 0x36, r24 ; 54
d86: 12 c0 rjmp .+36 ; 0xdac <__vector_17+0x160>
d88: 86 b7 in r24, 0x36 ; 54
d8a: 8f 7b andi r24, 0xBF ; 191
d8c: 86 bf out 0x36, r24 ; 54
d8e: 0e c0 rjmp .+28 ; 0xdac <__vector_17+0x160>
d90: e0 91 04 01 lds r30, 0x0104
d94: f0 91 05 01 lds r31, 0x0105
d98: 83 b1 in r24, 0x03 ; 3
d9a: 80 83 st Z, r24
d9c: 86 b7 in r24, 0x36 ; 54
d9e: 80 69 ori r24, 0x90 ; 144
da0: 86 bf out 0x36, r24 ; 54
da2: 80 91 08 01 lds r24, 0x0108
da6: 8f 77 andi r24, 0x7F ; 127
da8: 80 93 08 01 sts 0x0108, r24
dac: ff 91 pop r31
dae: ef 91 pop r30
db0: bf 91 pop r27
db2: af 91 pop r26
db4: 9f 91 pop r25
db6: 8f 91 pop r24
db8: 0f 90 pop r0
dba: 1f 90 pop r1
dbc: 18 95 reti
dba: 0f be out 0x3f, r0 ; 63
dbc: 0f 90 pop r0
dbe: 1f 90 pop r1
dc0: 18 95 reti
 
00000dbe <CamConfig_writeTxFifo>:
dbe: 20 91 0a 01 lds r18, 0x010A
dc2: e2 2f mov r30, r18
dc4: ff 27 eor r31, r31
dc6: ee 0f add r30, r30
dc8: ff 1f adc r31, r31
dca: ec 52 subi r30, 0x2C ; 44
dcc: fd 4f sbci r31, 0xFD ; 253
dce: 91 83 std Z+1, r25 ; 0x01
dd0: 80 83 st Z, r24
dd2: 2f 5f subi r18, 0xFF ; 255
dd4: 27 70 andi r18, 0x07 ; 7
dd6: 20 93 0a 01 sts 0x010A, r18
dda: 90 e0 ldi r25, 0x00 ; 0
ddc: 80 91 0b 01 lds r24, 0x010B
de0: 28 17 cp r18, r24
de2: 09 f4 brne .+2 ; 0xde6 <CamConfig_writeTxFifo+0x28>
de4: 91 e0 ldi r25, 0x01 ; 1
de6: 81 e0 ldi r24, 0x01 ; 1
de8: 89 27 eor r24, r25
dea: 99 27 eor r25, r25
dec: 08 95 ret
00000dc2 <CamConfig_writeTxFifo>:
dc2: 20 91 0a 01 lds r18, 0x010A
dc6: e2 2f mov r30, r18
dc8: ff 27 eor r31, r31
dca: ee 0f add r30, r30
dcc: ff 1f adc r31, r31
dce: ec 52 subi r30, 0x2C ; 44
dd0: fd 4f sbci r31, 0xFD ; 253
dd2: 91 83 std Z+1, r25 ; 0x01
dd4: 80 83 st Z, r24
dd6: 2f 5f subi r18, 0xFF ; 255
dd8: 27 70 andi r18, 0x07 ; 7
dda: 20 93 0a 01 sts 0x010A, r18
dde: 90 e0 ldi r25, 0x00 ; 0
de0: 80 91 0b 01 lds r24, 0x010B
de4: 28 17 cp r18, r24
de6: 09 f4 brne .+2 ; 0xdea <CamConfig_writeTxFifo+0x28>
de8: 91 e0 ldi r25, 0x01 ; 1
dea: 81 e0 ldi r24, 0x01 ; 1
dec: 89 27 eor r24, r25
dee: 99 27 eor r25, r25
df0: 08 95 ret
 
00000dee <CamConfig_setCamReg>:
dee: 28 2f mov r18, r24
df0: 36 2f mov r19, r22
df2: c9 01 movw r24, r18
df4: e4 df rcall .-56 ; 0xdbe <CamConfig_writeTxFifo>
df6: 08 95 ret
00000df2 <CamConfig_setCamReg>:
df2: 28 2f mov r18, r24
df4: 36 2f mov r19, r22
df6: c9 01 movw r24, r18
df8: e4 df rcall .-56 ; 0xdc2 <CamConfig_writeTxFifo>
dfa: 08 95 ret
 
00000df8 <CamConfig_sendFifoCmds>:
df8: 0f 93 push r16
dfa: 1f 93 push r17
dfc: cf 93 push r28
dfe: df 93 push r29
e00: cd b7 in r28, 0x3d ; 61
e02: de b7 in r29, 0x3e ; 62
e04: 22 97 sbiw r28, 0x02 ; 2
e06: 0f b6 in r0, 0x3f ; 63
e08: f8 94 cli
e0a: de bf out 0x3e, r29 ; 62
e0c: 0f be out 0x3f, r0 ; 63
e0e: cd bf out 0x3d, r28 ; 61
e10: 8e 01 movw r16, r28
e12: 0f 5f subi r16, 0xFF ; 255
e14: 1f 4f sbci r17, 0xFF ; 255
e16: 19 c0 rjmp .+50 ; 0xe4a <CamConfig_sendFifoCmds+0x52>
e18: e3 2f mov r30, r19
e1a: ff 27 eor r31, r31
e1c: ee 0f add r30, r30
e1e: ff 1f adc r31, r31
e20: ec 52 subi r30, 0x2C ; 44
e22: fd 4f sbci r31, 0xFD ; 253
e24: 91 81 ldd r25, Z+1 ; 0x01
e26: 20 81 ld r18, Z
e28: 83 2f mov r24, r19
e2a: 8f 5f subi r24, 0xFF ; 255
e2c: 87 70 andi r24, 0x07 ; 7
e2e: 80 93 0b 01 sts 0x010B, r24
e32: 9a 83 std Y+2, r25 ; 0x02
e34: 29 83 std Y+1, r18 ; 0x01
e36: 42 e0 ldi r20, 0x02 ; 2
e38: b8 01 movw r22, r16
e3a: 80 e6 ldi r24, 0x60 ; 96
e3c: c5 de rcall .-630 ; 0xbc8 <I2CInt_writeData>
e3e: 84 e6 ldi r24, 0x64 ; 100
e40: 90 e0 ldi r25, 0x00 ; 0
e42: 25 d0 rcall .+74 ; 0xe8e <Utility_delay>
e44: f7 de rcall .-530 ; 0xc34 <I2CInt_isI2cBusy>
e46: 81 30 cpi r24, 0x01 ; 1
e48: e9 f3 breq .-6 ; 0xe44 <CamConfig_sendFifoCmds+0x4c>
e4a: 30 91 0b 01 lds r19, 0x010B
e4e: 80 91 0a 01 lds r24, 0x010A
e52: 83 17 cp r24, r19
e54: 09 f7 brne .-62 ; 0xe18 <CamConfig_sendFifoCmds+0x20>
e56: 22 96 adiw r28, 0x02 ; 2
e58: 0f b6 in r0, 0x3f ; 63
e5a: f8 94 cli
e5c: de bf out 0x3e, r29 ; 62
e5e: 0f be out 0x3f, r0 ; 63
e60: cd bf out 0x3d, r28 ; 61
e62: df 91 pop r29
e64: cf 91 pop r28
e66: 1f 91 pop r17
e68: 0f 91 pop r16
e6a: 08 95 ret
00000dfc <CamConfig_sendFifoCmds>:
dfc: ef 92 push r14
dfe: ff 92 push r15
e00: 0f 93 push r16
e02: 1f 93 push r17
e04: cf 93 push r28
e06: df 93 push r29
e08: cd b7 in r28, 0x3d ; 61
e0a: de b7 in r29, 0x3e ; 62
e0c: 22 97 sbiw r28, 0x02 ; 2
e0e: 0f b6 in r0, 0x3f ; 63
e10: f8 94 cli
e12: de bf out 0x3e, r29 ; 62
e14: 0f be out 0x3f, r0 ; 63
e16: cd bf out 0x3d, r28 ; 61
e18: 0f 2e mov r0, r31
e1a: f4 ed ldi r31, 0xD4 ; 212
e1c: ef 2e mov r14, r31
e1e: f2 e0 ldi r31, 0x02 ; 2
e20: ff 2e mov r15, r31
e22: f0 2d mov r31, r0
e24: 8e 01 movw r16, r28
e26: 0f 5f subi r16, 0xFF ; 255
e28: 1f 4f sbci r17, 0xFF ; 255
e2a: 19 c0 rjmp .+50 ; 0xe5e <CamConfig_sendFifoCmds+0x62>
e2c: e3 2f mov r30, r19
e2e: ff 27 eor r31, r31
e30: ee 0f add r30, r30
e32: ff 1f adc r31, r31
e34: ee 0d add r30, r14
e36: ff 1d adc r31, r15
e38: 91 81 ldd r25, Z+1 ; 0x01
e3a: 20 81 ld r18, Z
e3c: 83 2f mov r24, r19
e3e: 8f 5f subi r24, 0xFF ; 255
e40: 87 70 andi r24, 0x07 ; 7
e42: 80 93 0b 01 sts 0x010B, r24
e46: 9a 83 std Y+2, r25 ; 0x02
e48: 29 83 std Y+1, r18 ; 0x01
e4a: 42 e0 ldi r20, 0x02 ; 2
e4c: b8 01 movw r22, r16
e4e: 80 e6 ldi r24, 0x60 ; 96
e50: c0 de rcall .-640 ; 0xbd2 <I2CInt_writeData>
e52: 84 e6 ldi r24, 0x64 ; 100
e54: 90 e0 ldi r25, 0x00 ; 0
e56: 27 d0 rcall .+78 ; 0xea6 <Utility_delay>
e58: f2 de rcall .-540 ; 0xc3e <I2CInt_isI2cBusy>
e5a: 81 30 cpi r24, 0x01 ; 1
e5c: e9 f3 breq .-6 ; 0xe58 <CamConfig_sendFifoCmds+0x5c>
e5e: 30 91 0b 01 lds r19, 0x010B
e62: 80 91 0a 01 lds r24, 0x010A
e66: 83 17 cp r24, r19
e68: 09 f7 brne .-62 ; 0xe2c <CamConfig_sendFifoCmds+0x30>
e6a: 22 96 adiw r28, 0x02 ; 2
e6c: 0f b6 in r0, 0x3f ; 63
e6e: f8 94 cli
e70: de bf out 0x3e, r29 ; 62
e72: 0f be out 0x3f, r0 ; 63
e74: cd bf out 0x3d, r28 ; 61
e76: df 91 pop r29
e78: cf 91 pop r28
e7a: 1f 91 pop r17
e7c: 0f 91 pop r16
e7e: ff 90 pop r15
e80: ef 90 pop r14
e82: 08 95 ret
 
00000e6c <CamConfig_init>:
e6c: 60 e2 ldi r22, 0x20 ; 32
e6e: 84 e1 ldi r24, 0x14 ; 20
e70: be df rcall .-132 ; 0xdee <CamConfig_setCamReg>
e72: 60 e4 ldi r22, 0x40 ; 64
e74: 89 e3 ldi r24, 0x39 ; 57
e76: bb df rcall .-138 ; 0xdee <CamConfig_setCamReg>
e78: 68 e2 ldi r22, 0x28 ; 40
e7a: 82 e1 ldi r24, 0x12 ; 18
e7c: b8 df rcall .-144 ; 0xdee <CamConfig_setCamReg>
e7e: 65 e0 ldi r22, 0x05 ; 5
e80: 88 e2 ldi r24, 0x28 ; 40
e82: b5 df rcall .-150 ; 0xdee <CamConfig_setCamReg>
e84: 61 e0 ldi r22, 0x01 ; 1
e86: 83 e1 ldi r24, 0x13 ; 19
e88: b2 df rcall .-156 ; 0xdee <CamConfig_setCamReg>
e8a: b6 df rcall .-148 ; 0xdf8 <CamConfig_sendFifoCmds>
e8c: 08 95 ret
00000e84 <CamConfig_init>:
e84: 60 e2 ldi r22, 0x20 ; 32
e86: 84 e1 ldi r24, 0x14 ; 20
e88: b4 df rcall .-152 ; 0xdf2 <CamConfig_setCamReg>
e8a: 60 e4 ldi r22, 0x40 ; 64
e8c: 89 e3 ldi r24, 0x39 ; 57
e8e: b1 df rcall .-158 ; 0xdf2 <CamConfig_setCamReg>
e90: 68 e2 ldi r22, 0x28 ; 40
e92: 82 e1 ldi r24, 0x12 ; 18
e94: ae df rcall .-164 ; 0xdf2 <CamConfig_setCamReg>
e96: 65 e0 ldi r22, 0x05 ; 5
e98: 88 e2 ldi r24, 0x28 ; 40
e9a: ab df rcall .-170 ; 0xdf2 <CamConfig_setCamReg>
e9c: 61 e0 ldi r22, 0x01 ; 1
e9e: 83 e1 ldi r24, 0x13 ; 19
ea0: a8 df rcall .-176 ; 0xdf2 <CamConfig_setCamReg>
ea2: ac df rcall .-168 ; 0xdfc <CamConfig_sendFifoCmds>
ea4: 08 95 ret
 
00000e8e <Utility_delay>:
e8e: cf 93 push r28
e90: df 93 push r29
e92: cd b7 in r28, 0x3d ; 61
e94: de b7 in r29, 0x3e ; 62
e96: 24 97 sbiw r28, 0x04 ; 4
e98: 0f b6 in r0, 0x3f ; 63
e9a: f8 94 cli
e9c: de bf out 0x3e, r29 ; 62
e9e: 0f be out 0x3f, r0 ; 63
ea0: cd bf out 0x3d, r28 ; 61
ea2: 9c 01 movw r18, r24
ea4: 1a 82 std Y+2, r1 ; 0x02
ea6: 19 82 std Y+1, r1 ; 0x01
ea8: 1c 82 std Y+4, r1 ; 0x04
eaa: 1b 82 std Y+3, r1 ; 0x03
eac: 1a 82 std Y+2, r1 ; 0x02
eae: 19 82 std Y+1, r1 ; 0x01
eb0: 89 81 ldd r24, Y+1 ; 0x01
eb2: 9a 81 ldd r25, Y+2 ; 0x02
eb4: 82 17 cp r24, r18
eb6: 93 07 cpc r25, r19
eb8: e0 f4 brcc .+56 ; 0xef2 <Utility_delay+0x64>
eba: 1c 82 std Y+4, r1 ; 0x04
ebc: 1b 82 std Y+3, r1 ; 0x03
ebe: 8b 81 ldd r24, Y+3 ; 0x03
ec0: 9c 81 ldd r25, Y+4 ; 0x04
ec2: 88 5e subi r24, 0xE8 ; 232
ec4: 93 40 sbci r25, 0x03 ; 3
ec6: 58 f4 brcc .+22 ; 0xede <Utility_delay+0x50>
ec8: 00 00 nop
eca: 8b 81 ldd r24, Y+3 ; 0x03
ecc: 9c 81 ldd r25, Y+4 ; 0x04
ece: 01 96 adiw r24, 0x01 ; 1
ed0: 9c 83 std Y+4, r25 ; 0x04
ed2: 8b 83 std Y+3, r24 ; 0x03
ed4: 8b 81 ldd r24, Y+3 ; 0x03
ed6: 9c 81 ldd r25, Y+4 ; 0x04
ed8: 88 5e subi r24, 0xE8 ; 232
eda: 93 40 sbci r25, 0x03 ; 3
edc: a8 f3 brcs .-22 ; 0xec8 <Utility_delay+0x3a>
ede: 89 81 ldd r24, Y+1 ; 0x01
ee0: 9a 81 ldd r25, Y+2 ; 0x02
ee2: 01 96 adiw r24, 0x01 ; 1
ee4: 9a 83 std Y+2, r25 ; 0x02
ee6: 89 83 std Y+1, r24 ; 0x01
ee8: 89 81 ldd r24, Y+1 ; 0x01
eea: 9a 81 ldd r25, Y+2 ; 0x02
eec: 82 17 cp r24, r18
eee: 93 07 cpc r25, r19
ef0: 20 f3 brcs .-56 ; 0xeba <Utility_delay+0x2c>
ef2: 24 96 adiw r28, 0x04 ; 4
ef4: 0f b6 in r0, 0x3f ; 63
ef6: f8 94 cli
ef8: de bf out 0x3e, r29 ; 62
efa: 0f be out 0x3f, r0 ; 63
efc: cd bf out 0x3d, r28 ; 61
efe: df 91 pop r29
f00: cf 91 pop r28
f02: 08 95 ret
00000ea6 <Utility_delay>:
ea6: cf 93 push r28
ea8: df 93 push r29
eaa: cd b7 in r28, 0x3d ; 61
eac: de b7 in r29, 0x3e ; 62
eae: 24 97 sbiw r28, 0x04 ; 4
eb0: 0f b6 in r0, 0x3f ; 63
eb2: f8 94 cli
eb4: de bf out 0x3e, r29 ; 62
eb6: 0f be out 0x3f, r0 ; 63
eb8: cd bf out 0x3d, r28 ; 61
eba: 9c 01 movw r18, r24
ebc: 1a 82 std Y+2, r1 ; 0x02
ebe: 19 82 std Y+1, r1 ; 0x01
ec0: 1c 82 std Y+4, r1 ; 0x04
ec2: 1b 82 std Y+3, r1 ; 0x03
ec4: 1a 82 std Y+2, r1 ; 0x02
ec6: 19 82 std Y+1, r1 ; 0x01
ec8: 89 81 ldd r24, Y+1 ; 0x01
eca: 9a 81 ldd r25, Y+2 ; 0x02
ecc: 82 17 cp r24, r18
ece: 93 07 cpc r25, r19
ed0: e0 f4 brcc .+56 ; 0xf0a <Utility_delay+0x64>
ed2: 1c 82 std Y+4, r1 ; 0x04
ed4: 1b 82 std Y+3, r1 ; 0x03
ed6: 8b 81 ldd r24, Y+3 ; 0x03
ed8: 9c 81 ldd r25, Y+4 ; 0x04
eda: 88 5e subi r24, 0xE8 ; 232
edc: 93 40 sbci r25, 0x03 ; 3
ede: 58 f4 brcc .+22 ; 0xef6 <Utility_delay+0x50>
ee0: 00 00 nop
ee2: 8b 81 ldd r24, Y+3 ; 0x03
ee4: 9c 81 ldd r25, Y+4 ; 0x04
ee6: 01 96 adiw r24, 0x01 ; 1
ee8: 9c 83 std Y+4, r25 ; 0x04
eea: 8b 83 std Y+3, r24 ; 0x03
eec: 8b 81 ldd r24, Y+3 ; 0x03
eee: 9c 81 ldd r25, Y+4 ; 0x04
ef0: 88 5e subi r24, 0xE8 ; 232
ef2: 93 40 sbci r25, 0x03 ; 3
ef4: a8 f3 brcs .-22 ; 0xee0 <Utility_delay+0x3a>
ef6: 89 81 ldd r24, Y+1 ; 0x01
ef8: 9a 81 ldd r25, Y+2 ; 0x02
efa: 01 96 adiw r24, 0x01 ; 1
efc: 9a 83 std Y+2, r25 ; 0x02
efe: 89 83 std Y+1, r24 ; 0x01
f00: 89 81 ldd r24, Y+1 ; 0x01
f02: 9a 81 ldd r25, Y+2 ; 0x02
f04: 82 17 cp r24, r18
f06: 93 07 cpc r25, r19
f08: 20 f3 brcs .-56 ; 0xed2 <Utility_delay+0x2c>
f0a: 24 96 adiw r28, 0x04 ; 4
f0c: 0f b6 in r0, 0x3f ; 63
f0e: f8 94 cli
f10: de bf out 0x3e, r29 ; 62
f12: 0f be out 0x3f, r0 ; 63
f14: cd bf out 0x3d, r28 ; 61
f16: df 91 pop r29
f18: cf 91 pop r28
f1a: 08 95 ret
 
00000f04 <DebugInt_init>:
f04: 8e 9a sbi 0x11, 6 ; 17
f06: 96 9a sbi 0x12, 6 ; 18
f08: 84 ef ldi r24, 0xF4 ; 244
f0a: 91 e0 ldi r25, 0x01 ; 1
f0c: c0 df rcall .-128 ; 0xe8e <Utility_delay>
f0e: 96 98 cbi 0x12, 6 ; 18
f10: 84 ef ldi r24, 0xF4 ; 244
f12: 91 e0 ldi r25, 0x01 ; 1
f14: bc df rcall .-136 ; 0xe8e <Utility_delay>
f16: 96 9a sbi 0x12, 6 ; 18
f18: 84 ef ldi r24, 0xF4 ; 244
f1a: 91 e0 ldi r25, 0x01 ; 1
f1c: b8 df rcall .-144 ; 0xe8e <Utility_delay>
f1e: 96 98 cbi 0x12, 6 ; 18
00000f1c <DebugInt_init>:
***********************************************************/
void DebugInt_init(void)
{
/* set PortD pin6 for output */
DDRD |= 0x40;
f1c: 8e 9a sbi 0x11, 6 ; 17
/* turn on LED */
PORTD |= 0x40;
f1e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f20: 84 ef ldi r24, 0xF4 ; 244
f22: 91 e0 ldi r25, 0x01 ; 1
f24: b4 df rcall .-152 ; 0xe8e <Utility_delay>
f26: 96 9a sbi 0x12, 6 ; 18
f24: c0 df rcall .-128 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f26: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f28: 84 ef ldi r24, 0xF4 ; 244
f2a: 91 e0 ldi r25, 0x01 ; 1
f2c: b0 df rcall .-160 ; 0xe8e <Utility_delay>
f2e: 96 98 cbi 0x12, 6 ; 18
f2c: bc df rcall .-136 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f2e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f30: 84 ef ldi r24, 0xF4 ; 244
f32: 91 e0 ldi r25, 0x01 ; 1
f34: ac df rcall .-168 ; 0xe8e <Utility_delay>
f36: 96 9a sbi 0x12, 6 ; 18
f38: 08 95 ret
f34: b8 df rcall .-144 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f36: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f38: 84 ef ldi r24, 0xF4 ; 244
f3a: 91 e0 ldi r25, 0x01 ; 1
f3c: b4 df rcall .-152 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f3e: 96 9a sbi 0x12, 6 ; 18
Utility_delay(500);
f40: 84 ef ldi r24, 0xF4 ; 244
f42: 91 e0 ldi r25, 0x01 ; 1
f44: b0 df rcall .-160 ; 0xea6 <Utility_delay>
PORTD &= 0xBF;
f46: 96 98 cbi 0x12, 6 ; 18
Utility_delay(500);
f48: 84 ef ldi r24, 0xF4 ; 244
f4a: 91 e0 ldi r25, 0x01 ; 1
f4c: ac df rcall .-168 ; 0xea6 <Utility_delay>
PORTD |= 0x40;
f4e: 96 9a sbi 0x12, 6 ; 18
f50: 08 95 ret
 
00000f3a <CamIntAsm_waitForNewTrackingFrame>:
00000f52 <CamIntAsm_waitForNewTrackingFrame>:
; set, and the function will return.
;*****************************************************************
CamIntAsm_waitForNewTrackingFrame:
sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
f3a: 96 9a sbi 0x12, 6 ; 18
f52: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
f3c: 96 98 cbi 0x12, 6 ; 18
f54: 96 98 cbi 0x12, 6 ; 18
sleep
f3e: 88 95 sleep
f56: 88 95 sleep
 
00000f40 <CamIntAsm_acquireTrackingLine>:
00000f58 <CamIntAsm_acquireTrackingLine>:
 
;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
2250,68 → 2556,68
 
CamIntAsm_acquireTrackingLine:
brts _cleanUp
f40: e6 f1 brts .+120 ; 0xfba <_cleanUp>
f58: e6 f1 brts .+120 ; 0xfd2 <_cleanUp>
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6
in tmp1,_SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
f42: 3e b5 in r19, 0x2e ; 46
f5a: 3e b5 in r19, 0x2e ; 46
ori tmp1, 0x07 ; feed Timer1
f44: 37 60 ori r19, 0x07 ; 7
f5c: 37 60 ori r19, 0x07 ; 7
out _SFR_IO_ADDR(TCCR1B),tmp1
f46: 3e bd out 0x2e, r19 ; 46
f5e: 3e bd out 0x2e, r19 ; 46
; The line is about to start...
ldi pixelCount,0 ; Initialize the RLE stats...
f48: 00 e0 ldi r16, 0x00 ; 0
f60: 00 e0 ldi r16, 0x00 ; 0
ldi pixelRunStart,PIXEL_RUN_START_INITIAL ; Remember, we always calculate
f4a: 10 e5 ldi r17, 0x50 ; 80
f62: 10 e5 ldi r17, 0x50 ; 80
; the pixel run length as
; TCNT1L - pixelRunStart
ldi lastColor,0x00 ; clear out the last color before we start
f4c: 20 e0 ldi r18, 0x00 ; 0
f64: 20 e0 ldi r18, 0x00 ; 0
mov XH,currLineBuffHigh ; Load the pointer to the current line
f4e: b9 2f mov r27, r25
f66: b9 2f mov r27, r25
mov XL,currLineBuffLow ; buffer into the X pointer regs
f50: a8 2f mov r26, r24
f68: a8 2f mov r26, r24
mov ZH,colorMapHigh ; Load the pointers to the membership
f52: f7 2f mov r31, r23
f6a: f7 2f mov r31, r23
mov ZL,colorMapLow ; lookup tables (ZL and YL will be overwritten
f54: e6 2f mov r30, r22
f6c: e6 2f mov r30, r22
mov YH,colorMapHigh ; as soon as we start reading data) to Z and Y
f56: d7 2f mov r29, r23
f6e: d7 2f mov r29, r23
in tmp1, _SFR_IO_ADDR(TIMSK) ; enable TIMER1 to start counting
f58: 39 b7 in r19, 0x39 ; 57
f70: 39 b7 in r19, 0x39 ; 57
ori tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK ; external PCLK pulses and interrupt on
f5a: 34 60 ori r19, 0x04 ; 4
f72: 34 60 ori r19, 0x04 ; 4
out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
f5c: 39 bf out 0x39, r19 ; 57
f74: 39 bf out 0x39, r19 ; 57
ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
f5e: 30 e5 ldi r19, 0x50 ; 80
f76: 30 e5 ldi r19, 0x50 ; 80
ldi tmp2,0xFF ; interrupts) after 176 pixels
f60: 4f ef ldi r20, 0xFF ; 255
f78: 4f ef ldi r20, 0xFF ; 255
out _SFR_IO_ADDR(TCNT1H),tmp2
f62: 4d bd out 0x2d, r20 ; 45
f7a: 4d bd out 0x2d, r20 ; 45
out _SFR_IO_ADDR(TCNT1L),tmp1
f64: 3c bd out 0x2c, r19 ; 44
f7c: 3c bd out 0x2c, r19 ; 44
mov YL,colorMapLow
f66: c6 2f mov r28, r22
f7e: c6 2f mov r28, r22
in tmp1, _SFR_IO_ADDR(GICR) ; enable the HREF interrupt...remember, we
f68: 3b b7 in r19, 0x3b ; 59
f80: 3b b7 in r19, 0x3b ; 59
; only use this interrupt to synchronize
; the beginning of the line
ori tmp1, HREF_INTERRUPT_ENABLE_MASK
f6a: 30 68 ori r19, 0x80 ; 128
f82: 30 68 ori r19, 0x80 ; 128
out _SFR_IO_ADDR(GICR), tmp1
f6c: 3b bf out 0x3b, r19 ; 59
f84: 3b bf out 0x3b, r19 ; 59
 
00000f6e <_trackFrame>:
00000f86 <_trackFrame>:
;*******************************************************************************************
; Track Frame handler
2319,9 → 2625,9
_trackFrame:
sbi _SFR_IO_ADDR(PORTD),PD6
f6e: 96 9a sbi 0x12, 6 ; 18
f86: 96 9a sbi 0x12, 6 ; 18
sleep ; ...And we wait...
f70: 88 95 sleep
f88: 88 95 sleep
; Returning from the interrupt/sleep wakeup will consume
; 14 clock cycles (7 to wakeup from idle sleep, 3 to vector, and 4 to return)
2328,50 → 2634,50
 
; Disable the HREF interrupt
cbi _SFR_IO_ADDR(PORTD),PD6
f72: 96 98 cbi 0x12, 6 ; 18
f8a: 96 98 cbi 0x12, 6 ; 18
in tmp1, _SFR_IO_ADDR(GICR)
f74: 3b b7 in r19, 0x3b ; 59
f8c: 3b b7 in r19, 0x3b ; 59
andi tmp1, HREF_INTERRUPT_DISABLE_MASK
f76: 3f 77 andi r19, 0x7F ; 127
f8e: 3f 77 andi r19, 0x7F ; 127
out _SFR_IO_ADDR(GICR), tmp1
f78: 3b bf out 0x3b, r19 ; 59
f90: 3b bf out 0x3b, r19 ; 59
; A couple of NOPs are needed here to sync up the pixel data...the number (2)
; of NOPs was determined emperically by trial and error.
nop
f7a: 00 00 nop
f92: 00 00 nop
...
 
00000f7e <_acquirePixelBlock>:
00000f96 <_acquirePixelBlock>:
nop
_acquirePixelBlock: ; Clock Cycle Count
in ZL,RB_PORT ; sample the red value (PINB) (1)
f7e: e6 b3 in r30, 0x16 ; 22
f96: e6 b3 in r30, 0x16 ; 22
in YL,G_PORT ; sample the green value (PINC) (1)
f80: c3 b3 in r28, 0x13 ; 19
f98: c3 b3 in r28, 0x13 ; 19
andi YL,0x0F ; clear the high nibble (1)
f82: cf 70 andi r28, 0x0F ; 15
f9a: cf 70 andi r28, 0x0F ; 15
ldd color,Z+RED_MEM_OFFSET ; lookup the red membership (2)
f84: 30 81 ld r19, Z
f9c: 30 81 ld r19, Z
in ZL,RB_PORT ; sample the blue value (PINB) (1)
f86: e6 b3 in r30, 0x16 ; 22
f9e: e6 b3 in r30, 0x16 ; 22
ldd greenData,Y+GREEN_MEM_OFFSET; lookup the green membership (2)
f88: 48 89 ldd r20, Y+16 ; 0x10
fa0: 48 89 ldd r20, Y+16 ; 0x10
ldd blueData,Z+BLUE_MEM_OFFSET ; lookup the blue membership (2)
f8a: 50 a1 ldd r21, Z+32 ; 0x20
fa2: 50 a1 ldd r21, Z+32 ; 0x20
and color,greenData ; mask memberships together (1)
f8c: 34 23 and r19, r20
fa4: 34 23 and r19, r20
and color,blueData ; to produce the final color (1)
f8e: 35 23 and r19, r21
fa6: 35 23 and r19, r21
brts _cleanUpTrackingLine ; if some interrupt routine has (1...not set)
f90: 76 f0 brts .+28 ; 0xfae <_cleanUpTrackingLine>
fa8: 76 f0 brts .+28 ; 0xfc6 <_cleanUpTrackingLine>
; come in and set our T flag in
; SREG, then we need to hop out
; and blow away this frames data (common cleanup)
cp color,lastColor ; check to see if the run continues (1)
f92: 32 17 cp r19, r18
faa: 32 17 cp r19, r18
breq _acquirePixelBlock ; (2...equal)
f94: a1 f3 breq .-24 ; 0xf7e <_acquirePixelBlock>
fac: a1 f3 breq .-24 ; 0xf96 <_acquirePixelBlock>
; ___________
; 16 clock cycles
; (16 clock cycles = 1 uS = 1 pixelBlock time)
2378,57 → 2684,57
; Toggle the debug line to indicate a color change
sbi _SFR_IO_ADDR(PORTD),PD6
f96: 96 9a sbi 0x12, 6 ; 18
fae: 96 9a sbi 0x12, 6 ; 18
nop
f98: 00 00 nop
fb0: 00 00 nop
cbi _SFR_IO_ADDR(PORTD),PD6
f9a: 96 98 cbi 0x12, 6 ; 18
fb2: 96 98 cbi 0x12, 6 ; 18
mov tmp2,pixelRunStart ; get the count value of the
f9c: 41 2f mov r20, r17
fb4: 41 2f mov r20, r17
; current pixel run
in pixelCount,_SFR_IO_ADDR(TCNT1L) ; get the current TCNT1 value
f9e: 0c b5 in r16, 0x2c ; 44
fb6: 0c b5 in r16, 0x2c ; 44
mov pixelRunStart,pixelCount ; reload pixelRunStart for the
fa0: 10 2f mov r17, r16
fb8: 10 2f mov r17, r16
; next run
sub pixelCount,tmp2 ; pixelCount = TCNT1L - pixelRunStart
fa2: 04 1b sub r16, r20
fba: 04 1b sub r16, r20
st X+,lastColor ; record the color run in the current line buffer
fa4: 2d 93 st X+, r18
fbc: 2d 93 st X+, r18
st X+,pixelCount ; with its length
fa6: 0d 93 st X+, r16
fbe: 0d 93 st X+, r16
mov lastColor,color ; set lastColor so we can figure out when it changes
fa8: 23 2f mov r18, r19
fc0: 23 2f mov r18, r19
nop ; waste one more cycle for a total of 16
faa: 00 00 nop
fc2: 00 00 nop
rjmp _acquirePixelBlock
fac: e8 cf rjmp .-48 ; 0xf7e <_acquirePixelBlock>
fc4: e8 cf rjmp .-48 ; 0xf96 <_acquirePixelBlock>
 
00000fae <_cleanUpTrackingLine>:
00000fc6 <_cleanUpTrackingLine>:
; _cleanUpTrackingLine is used to write the last run length block off to the currentLineBuffer so
; that all 176 pixels in the line are accounted for.
_cleanUpTrackingLine:
ldi pixelCount,0xFF ; the length of the last run is ALWAYS 0xFF minus the last
fae: 0f ef ldi r16, 0xFF ; 255
fc6: 0f ef ldi r16, 0xFF ; 255
sub pixelCount,pixelRunStart ; pixelRunStart
fb0: 01 1b sub r16, r17
fc8: 01 1b sub r16, r17
inc pixelCount ; increment pixelCount since we actually need to account
fb2: 03 95 inc r16
fca: 03 95 inc r16
; for the overflow of TCNT1
st X+,color ; record the color run in the current line buffer
fb4: 3d 93 st X+, r19
fcc: 3d 93 st X+, r19
st X,pixelCount
fb6: 0c 93 st X, r16
fce: 0c 93 st X, r16
rjmp _cleanUp
fb8: 00 c0 rjmp .+0 ; 0xfba <_cleanUp>
fd0: 00 c0 rjmp .+0 ; 0xfd2 <_cleanUp>
 
00000fba <_cleanUp>:
00000fd2 <_cleanUp>:
_cleanUpDumpLine:
; NOTE: If serial data is received, to interrupt the tracking of a line, we'll
2446,27 → 2752,27
_cleanUp:
; Disable the external clocking of the Timer1 counter
in tmp1, _SFR_IO_ADDR(TCCR1B)
fba: 3e b5 in r19, 0x2e ; 46
fd2: 3e b5 in r19, 0x2e ; 46
andi tmp1, 0xF8
fbc: 38 7f andi r19, 0xF8 ; 248
fd4: 38 7f andi r19, 0xF8 ; 248
out _SFR_IO_ADDR(TCCR1B),tmp1
fbe: 3e bd out 0x2e, r19 ; 46
fd6: 3e bd out 0x2e, r19 ; 46
; Toggle the debug line to indicate the line is complete
sbi _SFR_IO_ADDR(PORTD),PD6
fc0: 96 9a sbi 0x12, 6 ; 18
fd8: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
fc2: 96 98 cbi 0x12, 6 ; 18
fda: 96 98 cbi 0x12, 6 ; 18
clt ; clear out the T bit since we have detected
fc4: e8 94 clt
fdc: e8 94 clt
 
00000fc6 <_exit>:
00000fde <_exit>:
; the interruption and are exiting to handle it
_exit:
ret
fc6: 08 95 ret
fde: 08 95 ret
 
00000fc8 <CamIntAsm_waitForNewDumpFrame>:
00000fe0 <CamIntAsm_waitForNewDumpFrame>:
;*****************************************************************
; Function Name: CamIntAsm_waitForNewDumpFrame
2486,13 → 2792,13
;*****************************************************************
CamIntAsm_waitForNewDumpFrame:
sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
fc8: 96 9a sbi 0x12, 6 ; 18
fe0: 96 9a sbi 0x12, 6 ; 18
cbi _SFR_IO_ADDR(PORTD),PD6
fca: 96 98 cbi 0x12, 6 ; 18
fe2: 96 98 cbi 0x12, 6 ; 18
sleep
fcc: 88 95 sleep
fe4: 88 95 sleep
 
00000fce <CamIntAsm_acquireDumpLine>:
00000fe6 <CamIntAsm_acquireDumpLine>:
 
;*****************************************************************
; REMEMBER...everything from here on out is critically timed to be
2501,55 → 2807,55
 
CamIntAsm_acquireDumpLine:
brts _cleanUp
fce: ae f3 brts .-22 ; 0xfba <_cleanUp>
fe6: ae f3 brts .-22 ; 0xfd2 <_cleanUp>
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6
mov XH,currLineBuffHigh ; Load the pointer to the current line
fd0: b9 2f mov r27, r25
fe8: b9 2f mov r27, r25
mov XL,currLineBuffLow ; buffer into the X pointer regs
fd2: a8 2f mov r26, r24
fea: a8 2f mov r26, r24
 
mov YH,prevLineBuffHigh ; Load the pointer to the previous line
fd4: d7 2f mov r29, r23
fec: d7 2f mov r29, r23
mov YL,prevLineBuffLow ; buffer into the Y pointer regs
fd6: c6 2f mov r28, r22
fee: c6 2f mov r28, r22
ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
fd8: 30 e5 ldi r19, 0x50 ; 80
ff0: 30 e5 ldi r19, 0x50 ; 80
ldi tmp2,0xFF ; interrupts) after 176 pixels
fda: 4f ef ldi r20, 0xFF ; 255
ff2: 4f ef ldi r20, 0xFF ; 255
out _SFR_IO_ADDR(TCNT1H),tmp2
fdc: 4d bd out 0x2d, r20 ; 45
ff4: 4d bd out 0x2d, r20 ; 45
out _SFR_IO_ADDR(TCNT1L),tmp1
fde: 3c bd out 0x2c, r19 ; 44
ff6: 3c bd out 0x2c, r19 ; 44
in tmp1, _SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
fe0: 3e b5 in r19, 0x2e ; 46
ff8: 3e b5 in r19, 0x2e ; 46
ori tmp1, 0x07 ; feed Timer1
fe2: 37 60 ori r19, 0x07 ; 7
ffa: 37 60 ori r19, 0x07 ; 7
out _SFR_IO_ADDR(TCCR1B),tmp1
fe4: 3e bd out 0x2e, r19 ; 46
ffc: 3e bd out 0x2e, r19 ; 46
nop
fe6: 00 00 nop
ffe: 00 00 nop
in tmp1, _SFR_IO_ADDR(TIMSK) ; enable TIMER1 to start counting
fe8: 39 b7 in r19, 0x39 ; 57
1000: 39 b7 in r19, 0x39 ; 57
ori tmp1, ENABLE_PCLK_TIMER1_OVERFLOW_BITMASK ; external PCLK pulses and interrupt on
fea: 34 60 ori r19, 0x04 ; 4
1002: 34 60 ori r19, 0x04 ; 4
out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
fec: 39 bf out 0x39, r19 ; 57
1004: 39 bf out 0x39, r19 ; 57
in tmp1, _SFR_IO_ADDR(GICR) ; enable the HREF interrupt...remember, we
fee: 3b b7 in r19, 0x3b ; 59
1006: 3b b7 in r19, 0x3b ; 59
; only use this interrupt to synchronize
; the beginning of the line
ori tmp1, HREF_INTERRUPT_ENABLE_MASK
ff0: 30 68 ori r19, 0x80 ; 128
1008: 30 68 ori r19, 0x80 ; 128
out _SFR_IO_ADDR(GICR), tmp1
ff2: 3b bf out 0x3b, r19 ; 59
100a: 3b bf out 0x3b, r19 ; 59
 
00000ff4 <_dumpFrame>:
0000100c <_dumpFrame>:
;*******************************************************************************************
; Dump Frame handler
2557,21 → 2863,21
_dumpFrame:
sbi _SFR_IO_ADDR(PORTD),PD6
ff4: 96 9a sbi 0x12, 6 ; 18
100c: 96 9a sbi 0x12, 6 ; 18
sleep ; ...And we wait...
ff6: 88 95 sleep
100e: 88 95 sleep
 
cbi _SFR_IO_ADDR(PORTD),PD6
ff8: 96 98 cbi 0x12, 6 ; 18
1010: 96 98 cbi 0x12, 6 ; 18
in tmp1, _SFR_IO_ADDR(GICR) ; disable the HREF interrupt
ffa: 3b b7 in r19, 0x3b ; 59
1012: 3b b7 in r19, 0x3b ; 59
andi tmp1, HREF_INTERRUPT_DISABLE_MASK ; so we don't get interrupted
ffc: 3f 77 andi r19, 0x7F ; 127
1014: 3f 77 andi r19, 0x7F ; 127
out _SFR_IO_ADDR(GICR), tmp1 ; while dumping the line
ffe: 3b bf out 0x3b, r19 ; 59
1016: 3b bf out 0x3b, r19 ; 59
...
 
00001002 <_sampleDumpPixel>:
0000101a <_sampleDumpPixel>:
nop ; Remember...if we ever remove the "cbi" instruction above,
; we need to add two more NOPs to cover this
2586,15 → 2892,15
; do that here (only 8 instruction cycles :-) )
_sampleDumpPixel:
in tmp1,G_PORT ; sample the G value (1)
1002: 33 b3 in r19, 0x13 ; 19
101a: 33 b3 in r19, 0x13 ; 19
in tmp2,RB_PORT ; sample the R/B value (1)
1004: 46 b3 in r20, 0x16 ; 22
101c: 46 b3 in r20, 0x16 ; 22
st X+,tmp1 ; store to the currLineBuff and inc ptrs(2)
1006: 3d 93 st X+, r19
101e: 3d 93 st X+, r19
st Y+,tmp2 ; store to the prevLineBuff and inc ptrs(2)
1008: 49 93 st Y+, r20
1020: 49 93 st Y+, r20
brtc _sampleDumpPixel ; loop back unless flag is set (2...if not set)
100a: de f7 brtc .-10 ; 0x1002 <_sampleDumpPixel>
1022: de f7 brtc .-10 ; 0x101a <_sampleDumpPixel>
; ___________
; 8 cycles normally
2601,9 → 2907,9
; if we make it here, it means the T flag is set, and we must have been interrupted
; so we need to exit (what if we were interrupted for serial? should we disable it?)
rjmp _cleanUpDumpLine
100c: d6 cf rjmp .-84 ; 0xfba <_cleanUp>
1024: d6 cf rjmp .-84 ; 0xfd2 <_cleanUp>
 
0000100e <__vector_1>:
00001026 <__vector_1>:
 
;***********************************************************
; Function Name: <interrupt handler for External Interrupt0>
2618,9 → 2924,9
SIG_INTERRUPT0:
; This will wake us up when VSYNC transitions high...we just want to return
reti
100e: 18 95 reti
1026: 18 95 reti
 
00001010 <__vector_2>:
00001028 <__vector_2>:
;***********************************************************
; Function Name: <interrupt handler for External Interrupt1>
2636,9 → 2942,9
SIG_INTERRUPT1:
; This will wake us up when HREF transitions high...we just want to return
reti
1010: 18 95 reti
1028: 18 95 reti
 
00001012 <__vector_8>:
0000102a <__vector_8>:
;***********************************************************
; Function Name: <interrupt handler for Timer0 overflow>
2674,20 → 2980,20
;***********************************************************
SIG_OVERFLOW1:
lds tmp1,fastEventBitmask ; set a flag indicating
1012: 30 91 72 00 lds r19, 0x0072
102a: 30 91 72 00 lds r19, 0x0072
ori tmp1,FEV_ACQUIRE_LINE_COMPLETE ; a line is complete
1016: 31 60 ori r19, 0x01 ; 1
102e: 31 60 ori r19, 0x01 ; 1
sts fastEventBitmask,tmp1
1018: 30 93 72 00 sts 0x0072, r19
1030: 30 93 72 00 sts 0x0072, r19
set ; set the T bit in SREG
101c: 68 94 set
1034: 68 94 set
;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
;cbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
 
reti
101e: 18 95 reti
1036: 18 95 reti
 
00001020 <__vector_default>:
00001038 <__vector_default>:
 
; This is the default handler for all interrupts that don't
; have handler routines specified for them.
2694,94 → 3000,94
.global __vector_default
__vector_default:
reti
1020: 18 95 reti
1038: 18 95 reti
 
00001022 <atoi>:
1022: fc 01 movw r30, r24
1024: 88 27 eor r24, r24
1026: 99 27 eor r25, r25
1028: e8 94 clt
102a: 21 91 ld r18, Z+
102c: 22 23 and r18, r18
102e: e9 f0 breq .+58 ; 0x106a <atoi+0x48>
1030: 20 32 cpi r18, 0x20 ; 32
1032: d9 f3 breq .-10 ; 0x102a <atoi+0x8>
1034: 29 30 cpi r18, 0x09 ; 9
1036: c9 f3 breq .-14 ; 0x102a <atoi+0x8>
1038: 2a 30 cpi r18, 0x0A ; 10
103a: b9 f3 breq .-18 ; 0x102a <atoi+0x8>
103c: 2c 30 cpi r18, 0x0C ; 12
103e: a9 f3 breq .-22 ; 0x102a <atoi+0x8>
1040: 2d 30 cpi r18, 0x0D ; 13
1042: 99 f3 breq .-26 ; 0x102a <atoi+0x8>
1044: 26 37 cpi r18, 0x76 ; 118
1046: 89 f3 breq .-30 ; 0x102a <atoi+0x8>
1048: 2b 32 cpi r18, 0x2B ; 43
104a: 19 f0 breq .+6 ; 0x1052 <atoi+0x30>
104c: 2d 32 cpi r18, 0x2D ; 45
104e: 21 f4 brne .+8 ; 0x1058 <atoi+0x36>
1050: 68 94 set
1052: 21 91 ld r18, Z+
1054: 22 23 and r18, r18
1056: 49 f0 breq .+18 ; 0x106a <atoi+0x48>
1058: 20 33 cpi r18, 0x30 ; 48
105a: 3c f0 brlt .+14 ; 0x106a <atoi+0x48>
105c: 2a 33 cpi r18, 0x3A ; 58
105e: 2c f4 brge .+10 ; 0x106a <atoi+0x48>
1060: 20 53 subi r18, 0x30 ; 48
1062: 0b d0 rcall .+22 ; 0x107a <__mulhi_const_10>
1064: 82 0f add r24, r18
1066: 91 1d adc r25, r1
1068: f4 cf rjmp .-24 ; 0x1052 <atoi+0x30>
106a: 81 15 cp r24, r1
106c: 91 05 cpc r25, r1
106e: 21 f0 breq .+8 ; 0x1078 <atoi+0x56>
1070: 1e f4 brtc .+6 ; 0x1078 <atoi+0x56>
1072: 80 95 com r24
1074: 90 95 com r25
1076: 01 96 adiw r24, 0x01 ; 1
1078: 08 95 ret
0000103a <atoi>:
103a: fc 01 movw r30, r24
103c: 88 27 eor r24, r24
103e: 99 27 eor r25, r25
1040: e8 94 clt
1042: 21 91 ld r18, Z+
1044: 22 23 and r18, r18
1046: e9 f0 breq .+58 ; 0x1082 <atoi+0x48>
1048: 20 32 cpi r18, 0x20 ; 32
104a: d9 f3 breq .-10 ; 0x1042 <atoi+0x8>
104c: 29 30 cpi r18, 0x09 ; 9
104e: c9 f3 breq .-14 ; 0x1042 <atoi+0x8>
1050: 2a 30 cpi r18, 0x0A ; 10
1052: b9 f3 breq .-18 ; 0x1042 <atoi+0x8>
1054: 2c 30 cpi r18, 0x0C ; 12
1056: a9 f3 breq .-22 ; 0x1042 <atoi+0x8>
1058: 2d 30 cpi r18, 0x0D ; 13
105a: 99 f3 breq .-26 ; 0x1042 <atoi+0x8>
105c: 26 37 cpi r18, 0x76 ; 118
105e: 89 f3 breq .-30 ; 0x1042 <atoi+0x8>
1060: 2b 32 cpi r18, 0x2B ; 43
1062: 19 f0 breq .+6 ; 0x106a <atoi+0x30>
1064: 2d 32 cpi r18, 0x2D ; 45
1066: 21 f4 brne .+8 ; 0x1070 <atoi+0x36>
1068: 68 94 set
106a: 21 91 ld r18, Z+
106c: 22 23 and r18, r18
106e: 49 f0 breq .+18 ; 0x1082 <atoi+0x48>
1070: 20 33 cpi r18, 0x30 ; 48
1072: 3c f0 brlt .+14 ; 0x1082 <atoi+0x48>
1074: 2a 33 cpi r18, 0x3A ; 58
1076: 2c f4 brge .+10 ; 0x1082 <atoi+0x48>
1078: 20 53 subi r18, 0x30 ; 48
107a: 0b d0 rcall .+22 ; 0x1092 <__mulhi_const_10>
107c: 82 0f add r24, r18
107e: 91 1d adc r25, r1
1080: f4 cf rjmp .-24 ; 0x106a <atoi+0x30>
1082: 81 15 cp r24, r1
1084: 91 05 cpc r25, r1
1086: 21 f0 breq .+8 ; 0x1090 <atoi+0x56>
1088: 1e f4 brtc .+6 ; 0x1090 <atoi+0x56>
108a: 80 95 com r24
108c: 90 95 com r25
108e: 01 96 adiw r24, 0x01 ; 1
1090: 08 95 ret
 
0000107a <__mulhi_const_10>:
107a: 7a e0 ldi r23, 0x0A ; 10
107c: 97 9f mul r25, r23
107e: 90 2d mov r25, r0
1080: 87 9f mul r24, r23
1082: 80 2d mov r24, r0
1084: 91 0d add r25, r1
1086: 11 24 eor r1, r1
1088: 08 95 ret
00001092 <__mulhi_const_10>:
1092: 7a e0 ldi r23, 0x0A ; 10
1094: 97 9f mul r25, r23
1096: 90 2d mov r25, r0
1098: 87 9f mul r24, r23
109a: 80 2d mov r24, r0
109c: 91 0d add r25, r1
109e: 11 24 eor r1, r1
10a0: 08 95 ret
 
0000108a <__eeprom_read_byte_1C1D1E>:
108a: e1 99 sbic 0x1c, 1 ; 28
108c: fe cf rjmp .-4 ; 0x108a <__eeprom_read_byte_1C1D1E>
108e: bf bb out 0x1f, r27 ; 31
1090: ae bb out 0x1e, r26 ; 30
1092: e0 9a sbi 0x1c, 0 ; 28
1094: 11 96 adiw r26, 0x01 ; 1
1096: 0d b2 in r0, 0x1d ; 29
1098: 08 95 ret
000010a2 <__eeprom_read_byte_1C1D1E>:
10a2: e1 99 sbic 0x1c, 1 ; 28
10a4: fe cf rjmp .-4 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
10a6: bf bb out 0x1f, r27 ; 31
10a8: ae bb out 0x1e, r26 ; 30
10aa: e0 9a sbi 0x1c, 0 ; 28
10ac: 11 96 adiw r26, 0x01 ; 1
10ae: 0d b2 in r0, 0x1d ; 29
10b0: 08 95 ret
 
0000109a <__eeprom_read_block_1C1D1E>:
109a: f7 df rcall .-18 ; 0x108a <__eeprom_read_byte_1C1D1E>
109c: 01 92 st Z+, r0
109e: 1a 94 dec r1
10a0: e1 f7 brne .-8 ; 0x109a <__eeprom_read_block_1C1D1E>
10a2: 08 95 ret
 
000010a4 <__eeprom_write_byte_1C1D1E>:
10a4: e1 99 sbic 0x1c, 1 ; 28
10a6: fe cf rjmp .-4 ; 0x10a4 <__eeprom_write_byte_1C1D1E>
10a8: bf bb out 0x1f, r27 ; 31
10aa: ae bb out 0x1e, r26 ; 30
10ac: 0d ba out 0x1d, r0 ; 29
10ae: 11 96 adiw r26, 0x01 ; 1
10b0: 0f b6 in r0, 0x3f ; 63
10b2: f8 94 cli
10b4: e2 9a sbi 0x1c, 2 ; 28
10b6: e1 9a sbi 0x1c, 1 ; 28
10b8: 0f be out 0x3f, r0 ; 63
000010b2 <__eeprom_read_block_1C1D1E>:
10b2: f7 df rcall .-18 ; 0x10a2 <__eeprom_read_byte_1C1D1E>
10b4: 01 92 st Z+, r0
10b6: 1a 94 dec r1
10b8: e1 f7 brne .-8 ; 0x10b2 <__eeprom_read_block_1C1D1E>
10ba: 08 95 ret
 
000010bc <_exit>:
10bc: ff cf rjmp .-2 ; 0x10bc <_exit>
000010bc <__eeprom_write_byte_1C1D1E>:
10bc: e1 99 sbic 0x1c, 1 ; 28
10be: fe cf rjmp .-4 ; 0x10bc <__eeprom_write_byte_1C1D1E>
10c0: bf bb out 0x1f, r27 ; 31
10c2: ae bb out 0x1e, r26 ; 30
10c4: 0d ba out 0x1d, r0 ; 29
10c6: 11 96 adiw r26, 0x01 ; 1
10c8: 0f b6 in r0, 0x3f ; 63
10ca: f8 94 cli
10cc: e2 9a sbi 0x1c, 2 ; 28
10ce: e1 9a sbi 0x1c, 1 ; 28
10d0: 0f be out 0x3f, r0 ; 63
10d2: 08 95 ret
 
000010d4 <_exit>:
10d4: ff cf rjmp .-2 ; 0x10d4 <_exit>
/programy/C/avr/AVRcam/AVRcam.map
1,20 → 1,20
Archive member included because of file (symbol)
 
/usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_exit.o)
/usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
Main.o (exit)
/usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
/usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
CamInterface.o (__do_copy_data)
/usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o)
/usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
CamInterface.o (__do_clear_bss)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
UIMgr.o (atoi)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(mul10.o)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o) (__mulhi_const_10)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o) (__mulhi_const_10)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
UIMgr.o (__eeprom_read_byte_1C1D1E)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
CamInterface.o (__eeprom_read_block_1C1D1E)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
UIMgr.o (__eeprom_write_byte_1C1D1E)
 
Allocating common symbols
27,6 → 27,26
CamConfig_txFifo 0x10 CamConfig.o
UIMgr_txFifo 0x40 UIMgr.o
 
Discarded input sections
 
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
.stabstr 0x00000000 0x0 CamInterface.o
.stabstr 0x00000000 0x0 Main.o
.stabstr 0x00000000 0x0 Executive.o
.stabstr 0x00000000 0x0 FrameMgr.o
.stabstr 0x00000000 0x0 UIMgr.o
.stabstr 0x00000000 0x0 UartInterface.o
.stabstr 0x00000000 0x0 I2CInterface.o
.stabstr 0x00000000 0x0 CamConfig.o
.stabstr 0x00000000 0x0 Utility.o
.stabstr 0x00000000 0x0 DebugInterface.o
.stabstr 0x00000000 0x0 CamInterfaceAsm.o
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
.stabstr 0x00000000 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
 
Memory Configuration
 
Name Origin Length Attributes
37,7 → 57,7
 
Linker script and memory map
 
LOAD /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
LOAD /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
LOAD CamInterface.o
LOAD Main.o
LOAD Executive.o
50,10 → 70,10
LOAD DebugInterface.o
LOAD CamInterfaceAsm.o
Address of section .noinit set to 0x800300
LOAD /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libm.a
LOAD /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a
LOAD /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libm.a
LOAD /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a
LOAD /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a
LOAD /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a
 
.hash
*(.hash)
145,10 → 165,11
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0x10be
.text 0x00000000 0x10d6
*(.vectors)
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.vectors 0x00000000 0x26 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
0x00000000 __vectors
*(.vectors)
0x00000026 __ctors_start = .
*(.ctors)
0x00000026 __ctors_end = .
155,29 → 176,47
0x00000026 __dtors_start = .
*(.dtors)
0x00000026 __dtors_end = .
SORT(*)(.ctors)
SORT(*)(.dtors)
*(.progmem.gcc*)
.progmem.gcc_sw_table
0x00000026 0xa2 I2CInterface.o
*(.progmem*)
0x000000c8 . = ALIGN (0x2)
*(.jumptables)
*(.jumptables*)
*(.lowtext)
*(.lowtext*)
*(.init0)
.init0 0x000000c8 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
0x000000c8 __init
*(.init0)
*(.init1)
*(.init1)
*(.init2)
.init2 0x000000c8 0xc /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.init2 0x000000c8 0xc /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
*(.init2)
*(.init3)
*(.init3)
*(.init4)
.init4 0x000000d4 0x16 /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
.init4 0x000000d4 0x16 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
0x000000d4 __do_copy_data
.init4 0x000000ea 0x10 /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o)
.init4 0x000000ea 0x10 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
0x000000ea __do_clear_bss
*(.init4)
*(.init5)
*(.init5)
*(.init6)
*(.init6)
*(.init7)
*(.init7)
*(.init8)
*(.init8)
*(.init9)
.init9 0x000000fa 0x2 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.init9 0x000000fa 0x2 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
*(.init9)
*(.text)
.text 0x000000fc 0x2 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.text 0x000000fc 0x2 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
0x000000fc __vector_12
0x000000fc __bad_interrupt
0x000000fc __vector_6
200,81 → 239,124
.text 0x00000182 0xee Executive.o
0x00000182 Exec_writeEventFifo
0x0000019e Exec_run
.text 0x00000270 0x484 FrameMgr.o
0x0000065e FrameMgr_acquireFrame
0x000005f0 FrameMgr_acquireLine
0x00000692 FrameMgr_dispatchEvent
.text 0x00000270 0x45a FrameMgr.o
0x00000634 FrameMgr_acquireFrame
0x000005cc FrameMgr_acquireLine
0x00000668 FrameMgr_dispatchEvent
0x00000270 FrameMgr_processFrame
0x000005e2 FrameMgr_init
0x000005be FrameMgr_init
0x00000322 FrameMgr_processLine
.text 0x000006f4 0x45c UIMgr.o
0x0000076a UIMgr_flushTxBuffer
0x0000074e UIMgr_writeTxFifo
0x00000908 UIMgr_processReceivedData
0x00000886 UIMgr_init
0x000006f4 UIMgr_writeBufferToTxFifo
0x00000788 UIMgr_txBuffer
0x000007b6 UIMgr_transmitPendingData
0x00000b36 UIMgr_dispatchEvent
.text 0x00000b50 0x70 UartInterface.o
0x00000b50 UartInt_init
0x00000b6c __vector_11
0x00000b64 UartInt_txByte
.text 0x00000bc0 0x1fe I2CInterface.o
0x00000c34 I2CInt_isI2cBusy
0x00000c00 I2CInt_readData
0x00000c42 __vector_17
0x00000bc0 I2CInt_init
0x00000bc8 I2CInt_writeData
.text 0x00000dbe 0xd0 CamConfig.o
0x00000e6c CamConfig_init
0x00000dbe CamConfig_writeTxFifo
0x00000df8 CamConfig_sendFifoCmds
0x00000dee CamConfig_setCamReg
.text 0x00000e8e 0x76 Utility.o
0x00000e8e Utility_delay
.text 0x00000f04 0x36 DebugInterface.o
0x00000f04 DebugInt_init
.text 0x00000f3a 0xe8 CamInterfaceAsm.o
0x0000100e __vector_1
0x00000fce CamIntAsm_acquireDumpLine
0x00001020 __vector_default
0x00001010 __vector_2
0x00000fc8 CamIntAsm_waitForNewDumpFrame
0x00000f3a CamIntAsm_waitForNewTrackingFrame
0x00000f40 CamIntAsm_acquireTrackingLine
0x00001012 __vector_8
.text 0x00001022 0x58 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o)
0x00001022 atoi
.text 0x0000107a 0x10 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(mul10.o)
0x0000107a __mulhi_const_10
0x0000108a . = ALIGN (0x2)
.text 0x000006ca 0x490 UIMgr.o
0x00000738 UIMgr_flushTxBuffer
0x0000071c UIMgr_writeTxFifo
0x000008c8 UIMgr_processReceivedData
0x00000846 UIMgr_init
0x000006ca UIMgr_writeBufferToTxFifo
0x00000756 UIMgr_txBuffer
0x00000776 UIMgr_transmitPendingData
0x00000b40 UIMgr_dispatchEvent
.text 0x00000b5a 0x70 UartInterface.o
0x00000b5a UartInt_init
0x00000b76 __vector_11
0x00000b6e UartInt_txByte
.text 0x00000bca 0x1f8 I2CInterface.o
0x00000c3e I2CInt_isI2cBusy
0x00000c0a I2CInt_readData
0x00000c4c __vector_17
0x00000bca I2CInt_init
0x00000bd2 I2CInt_writeData
.text 0x00000dc2 0xe4 CamConfig.o
0x00000e84 CamConfig_init
0x00000dc2 CamConfig_writeTxFifo
0x00000dfc CamConfig_sendFifoCmds
0x00000df2 CamConfig_setCamReg
.text 0x00000ea6 0x76 Utility.o
0x00000ea6 Utility_delay
.text 0x00000f1c 0x36 DebugInterface.o
0x00000f1c DebugInt_init
.text 0x00000f52 0xe8 CamInterfaceAsm.o
0x00001026 __vector_1
0x00000fe6 CamIntAsm_acquireDumpLine
0x00001038 __vector_default
0x00001028 __vector_2
0x00000fe0 CamIntAsm_waitForNewDumpFrame
0x00000f52 CamIntAsm_waitForNewTrackingFrame
0x00000f58 CamIntAsm_acquireTrackingLine
0x0000102a __vector_8
.text 0x0000103a 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
.text 0x0000103a 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
.text 0x0000103a 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
.text 0x0000103a 0x58 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
0x0000103a atoi
.text 0x00001092 0x10 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
0x00001092 __mulhi_const_10
.text 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
.text 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
.text 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
0x000010a2 . = ALIGN (0x2)
*(.text.*)
.text.eeprom 0x0000108a 0x10 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
0x0000108a __eeprom_read_byte_1C1D1E
.text.eeprom 0x0000109a 0xa /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
0x0000109a __eeprom_read_block_1C1D1E
.text.eeprom 0x000010a4 0x18 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
0x000010a4 __eeprom_write_byte_1C1D1E
0x000010bc . = ALIGN (0x2)
.text.libgcc 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
.text.libgcc 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
.text.libgcc 0x000010a2 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
.text.eeprom 0x000010a2 0x10 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
0x000010a2 __eeprom_read_byte_1C1D1E
.text.eeprom 0x000010b2 0xa /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
0x000010b2 __eeprom_read_block_1C1D1E
.text.eeprom 0x000010bc 0x18 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
0x000010bc __eeprom_write_byte_1C1D1E
0x000010d4 . = ALIGN (0x2)
*(.fini9)
.fini9 0x000010d4 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
0x000010d4 exit
0x000010d4 _exit
*(.fini9)
*(.fini8)
*(.fini8)
*(.fini7)
*(.fini7)
*(.fini6)
*(.fini6)
*(.fini5)
*(.fini5)
*(.fini4)
*(.fini4)
*(.fini3)
*(.fini3)
*(.fini2)
*(.fini2)
*(.fini1)
*(.fini1)
*(.fini0)
.fini0 0x000010bc 0x2 /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_exit.o)
0x000010be _etext = .
.fini0 0x000010d4 0x2 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
*(.fini0)
0x000010d6 _etext = .
 
.data 0x00800060 0x10 load address 0x000010be
.data 0x00800060 0x10 load address 0x000010d6
0x00800060 PROVIDE (__data_start, .)
*(.data)
.data 0x00800060 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
.data 0x00800060 0x0 CamInterface.o
.data 0x00800060 0x0 Main.o
.data 0x00800060 0x0 Executive.o
.data 0x00800060 0x2 FrameMgr.o
.data 0x00800062 0xe UIMgr.o
.data 0x00800070 0x0 UartInterface.o
.data 0x00800070 0x0 I2CInterface.o
.data 0x00800070 0x0 CamConfig.o
.data 0x00800070 0x0 Utility.o
.data 0x00800070 0x0 DebugInterface.o
.data 0x00800070 0x0 CamInterfaceAsm.o
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
.data 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
*(.data*)
*(.rodata)
*(.rodata*)
*(.gnu.linkonce.d*)
0x00800070 . = ALIGN (0x2)
0x00800070 _edata = .
283,6 → 365,9
.bss 0x00800070 0x274
0x00800070 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x00800070 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
.bss 0x00800070 0x0 CamInterface.o
.bss 0x00800070 0x0 Main.o
.bss 0x00800070 0x3 Executive.o
0x00800071 Exec_eventFifoTail
0x00800072 fastEventBitmask
293,10 → 378,23
0x008000bb UIMgr_txFifoTail
0x008000ba UIMgr_txFifoHead
0x008000b8 UIMgr_rxFifoHead
.bss 0x00800103 0x0 UartInterface.o
.bss 0x00800103 0x7 I2CInterface.o
.bss 0x0080010a 0x2 CamConfig.o
0x0080010a CamConfig_txFifoHead
0x0080010b CamConfig_txFifoTail
.bss 0x0080010c 0x0 Utility.o
.bss 0x0080010c 0x0 DebugInterface.o
.bss 0x0080010c 0x0 CamInterfaceAsm.o
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
.bss 0x0080010c 0x0 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
*(.bss*)
*(COMMON)
COMMON 0x0080010c 0x160 CamInterface.o
0x0080010c previousLineBuffer
309,8 → 407,8
COMMON 0x008002d4 0x10 CamConfig.o
0x008002d4 CamConfig_txFifo
0x008002e4 PROVIDE (__bss_end, .)
0x000010be __data_load_start = LOADADDR (.data)
0x000010ce __data_load_end = (__data_load_start + SIZEOF (.data))
0x000010d6 __data_load_start = LOADADDR (.data)
0x000010e6 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x00800300 0x30
0x00800300 PROVIDE (__noinit_start, .)
325,45 → 423,45
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.stab 0x00000000 0x3ed0
.stab 0x00000000 0x3f9c
*(.stab)
.stab 0x00000000 0x36c /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.stab 0x00000000 0x36c /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
.stab 0x0000036c 0x51c CamInterface.o
0x528 (size before relaxing)
.stab 0x00000888 0x240 Main.o
0x42c (size before relaxing)
.stab 0x00000ac8 0x3cc Executive.o
0x600 (size before relaxing)
.stab 0x00000e94 0xa80 FrameMgr.o
0xca8 (size before relaxing)
.stab 0x00001914 0xc84 UIMgr.o
0xeb8 (size before relaxing)
.stab 0x00002598 0x264 UartInterface.o
.stab 0x00000ac8 0x3fc Executive.o
0x630 (size before relaxing)
.stab 0x00000ec4 0xa98 FrameMgr.o
0xcc0 (size before relaxing)
.stab 0x0000195c 0xcf0 UIMgr.o
0xf24 (size before relaxing)
.stab 0x0000264c 0x264 UartInterface.o
0x420 (size before relaxing)
.stab 0x000027fc 0x57c I2CInterface.o
.stab 0x000028b0 0x57c I2CInterface.o
0x75c (size before relaxing)
.stab 0x00002d78 0x3d8 CamConfig.o
0x5b8 (size before relaxing)
.stab 0x00003150 0x1ec Utility.o
.stab 0x00002e2c 0x3f0 CamConfig.o
0x5d0 (size before relaxing)
.stab 0x0000321c 0x1ec Utility.o
0x3b4 (size before relaxing)
.stab 0x0000333c 0x210 DebugInterface.o
.stab 0x00003408 0x210 DebugInterface.o
0x3d8 (size before relaxing)
.stab 0x0000354c 0x570 CamInterfaceAsm.o
.stab 0x00003618 0x570 CamInterfaceAsm.o
0x57c (size before relaxing)
.stab 0x00003abc 0x228 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o)
.stab 0x00003b88 0x228 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
0x234 (size before relaxing)
.stab 0x00003ce4 0x78 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(mul10.o)
.stab 0x00003db0 0x78 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
0x84 (size before relaxing)
.stab 0x00003d5c 0x78 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
.stab 0x00003e28 0x78 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
0x84 (size before relaxing)
.stab 0x00003dd4 0x54 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
.stab 0x00003ea0 0x54 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
0x60 (size before relaxing)
.stab 0x00003e28 0xa8 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
.stab 0x00003ef4 0xa8 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
0xb4 (size before relaxing)
 
.stabstr 0x00000000 0x17c9
.stabstr 0x00000000 0x17b7
*(.stabstr)
.stabstr 0x00000000 0x17c9 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
.stabstr 0x00000000 0x17b7 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
 
.stab.excl
*(.stab.excl)
506,13 → 604,13
UIMgr.o
FrameMgr.o
Main.o
__bad_interrupt /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__bss_end /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o)
__bss_start /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o)
__data_end /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
__data_load_start /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
__data_start /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
__do_clear_bss /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_clear_bss.o)
__bad_interrupt /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__bss_end /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
__bss_start /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
__data_end /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
__data_load_start /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
__data_start /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
__do_clear_bss /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_clear_bss.o)
DebugInterface.o
Utility.o
CamConfig.o
523,7 → 621,7
Executive.o
Main.o
CamInterface.o
__do_copy_data /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_copy_data.o)
__do_copy_data /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_copy_data.o)
DebugInterface.o
Utility.o
CamConfig.o
534,48 → 632,48
Executive.o
Main.o
CamInterface.o
__eeprom_read_block_1C1D1E /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
__eeprom_read_block_1C1D1E /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
CamInterface.o
__eeprom_read_byte_1C1D1E /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
__eeprom_read_byte_1C1D1E /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rb.1C1D1E.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_rblk.1C1D1E.o)
UIMgr.o
__eeprom_write_byte_1C1D1E /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
__eeprom_write_byte_1C1D1E /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(ee_wb.1C1D1E.o)
UIMgr.o
__heap_end /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__init /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__mulhi_const_10 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(mul10.o)
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o)
__stack /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__heap_end /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__init /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__mulhi_const_10 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(mul10.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
__stack /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
Main.o
__vector_1 CamInterfaceAsm.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_10 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_10 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_11 UartInterface.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_12 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_13 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_14 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_15 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_16 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_12 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_13 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_14 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_15 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_16 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_17 I2CInterface.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_18 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_18 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_2 CamInterfaceAsm.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_3 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_4 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_5 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_6 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_7 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_3 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_4 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_5 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_6 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_7 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_8 CamInterfaceAsm.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vector_9 /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vector_9 /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
CamInterfaceAsm.o
__vector_default CamInterfaceAsm.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
__vectors /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
_exit /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_exit.o)
atoi /usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/libc.a(atoi.o)
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
__vectors /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
_exit /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
atoi /usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/libc.a(atoi.o)
UIMgr.o
colorMap CamInterface.o
UIMgr.o
582,12 → 680,12
FrameMgr.o
currentLineBuffer FrameMgr.o
CamInterface.o
exit /usr/lib/gcc/avr/4.1.0/avr4/libgcc.a(_exit.o)
exit /usr/lib/gcc/avr/4.2.1/avr4/libgcc.a(_exit.o)
Main.o
fastEventBitmask Executive.o
CamInterfaceAsm.o
FrameMgr.o
main Main.o
/usr/lib/gcc/avr/4.1.0/../../../../avr/lib/avr4/crtm8.o
/usr/lib/gcc/avr/4.2.1/../../../../avr/lib/avr4/crtm8.o
previousLineBuffer FrameMgr.o
CamInterface.o
/programy/C/avr/AVRcam/CamConfig.lst
1,90 → 1,89
GAS LISTING /tmp/cctTSiV3.s page 1
GAS LISTING /tmp/cczUgJ5X.s page 1
 
 
1 .file "CamConfig.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "CamConfig.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
GAS LISTING /tmp/cctTSiV3.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "CamConfig.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
33 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
34 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
35 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
36 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
37 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
38 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
39 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
40 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
41 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
42 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
43 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
44 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
45 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
46 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
47 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
48 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
49 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
50 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
51 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
52 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
53 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
54 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
55 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
56 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
57 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
GAS LISTING /tmp/cczUgJ5X.s page 2
 
 
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
58 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
59 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
60 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
61 .stabn 162,0,0,0
62 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
63 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabs "CamConfig.h",130,0,0,0
69 .stabs "I2CInterface.h",130,0,0,0
70 .stabs "CommonDefs.h",130,0,0,0
71 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
72 .stabn 162,0,0,0
73 .stabs "i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
67 .stabs "CamConfig.h",130,0,0,0
68 .stabs "I2CInterface.h",130,0,0,0
69 .stabs "CommonDefs.h",130,0,0,0
70 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
71 .stabn 162,0,0,0
72 .stabs "i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
73 .stabn 162,0,0,0
74 .stabn 162,0,0,0
75 .stabn 162,0,0,0
76 .stabs "CamConfig_writeTxFifo:F(7,1)",36,0,155,CamConfig_writeTxFifo
77 .stabs "cmd:P(6,1)",64,0,154,24
78 .global CamConfig_writeTxFifo
79 .type CamConfig_writeTxFifo, @function
80 CamConfig_writeTxFifo:
81 .stabd 46,0,0
75 .stabs "CamConfig_writeTxFifo:F(7,1)",36,0,155,CamConfig_writeTxFifo
76 .stabs "cmd:P(6,1)",64,0,154,24
77 .global CamConfig_writeTxFifo
78 .type CamConfig_writeTxFifo, @function
79 CamConfig_writeTxFifo:
80 .stabd 46,0,0
1:CamConfig.c **** /*
2:CamConfig.c **** Copyright (C) 2004 John Orlando
3:CamConfig.c ****
118,10 → 117,10
31:CamConfig.c **** Description: This module is responsible for the
32:CamConfig.c **** high-level configuration activities of the OV6620
33:CamConfig.c **** camera module. This module interfaces with the
GAS LISTING /tmp/cctTSiV3.s page 3
34:CamConfig.c **** I2CInterface module to perform this configuration.
GAS LISTING /tmp/cczUgJ5X.s page 3
 
 
34:CamConfig.c **** I2CInterface module to perform this configuration.
35:CamConfig.c ****
36:CamConfig.c **** Revision History:
37:CamConfig.c **** Date Rel Ver. Notes
178,10 → 177,10
88:CamConfig.c **** CamConfig_setCamReg(0x12,0x28); /* set RGB mode, with no AWB */
89:CamConfig.c **** CamConfig_setCamReg(0x28,0x05); /* set color sequencer */
90:CamConfig.c **** CamConfig_setCamReg(0x13,0x01); /* un-tri-state the Y/UV lines */
GAS LISTING /tmp/cctTSiV3.s page 4
91:CamConfig.c ****
GAS LISTING /tmp/cczUgJ5X.s page 4
 
 
91:CamConfig.c ****
92:CamConfig.c **** /* send the first four cmds in the I2C fifo */
93:CamConfig.c **** CamConfig_sendFifoCmds();
94:CamConfig.c **** }
238,10 → 237,10
145:CamConfig.c **** /***********************************************************
146:CamConfig.c **** Function Name: CamConfig_writeTxFifo
147:CamConfig.c **** Function Description: This function is responsible for
GAS LISTING /tmp/cctTSiV3.s page 5
148:CamConfig.c **** adding a new command to the tx fifo. It adjusts all
GAS LISTING /tmp/cczUgJ5X.s page 5
 
 
148:CamConfig.c **** adding a new command to the tx fifo. It adjusts all
149:CamConfig.c **** needed pointers.
150:CamConfig.c **** Inputs: cmd - the i2cCmd_t to add to the fifo
151:CamConfig.c **** Outputs: bool_t - indicating if writing to the fifo
249,8 → 248,9
153:CamConfig.c **** ***********************************************************/
154:CamConfig.c **** bool_t CamConfig_writeTxFifo(i2cCmd_t cmd)
155:CamConfig.c **** {
82 .stabn 68,0,155,.LM0-CamConfig_writeTxFifo
83 .LM0:
81 .stabn 68,0,155,.LM0-.LFBB1
82 .LM0:
83 .LFBB1:
84 /* prologue: frame size=0 */
85 /* prologue end (size=0) */
156:CamConfig.c **** unsigned char tmpHead;
257,7 → 257,7
157:CamConfig.c **** bool_t retVal = TRUE;
158:CamConfig.c ****
159:CamConfig.c **** CamConfig_txFifo[CamConfig_txFifoHead] = cmd;
86 .stabn 68,0,159,.LM1-CamConfig_writeTxFifo
86 .stabn 68,0,159,.LM1-.LFBB1
87 .LM1:
88 0000 2091 0000 lds r18,CamConfig_txFifoHead
89 0004 E22F mov r30,r18
271,19 → 271,19
160:CamConfig.c ****
161:CamConfig.c **** /* see if we need to wrap */
162:CamConfig.c **** tmpHead = (CamConfig_txFifoHead+1) & (CAM_CONFIG_TX_FIFO_MASK);
97 .stabn 68,0,162,.LM2-CamConfig_writeTxFifo
97 .stabn 68,0,162,.LM2-.LFBB1
98 .LM2:
99 0014 2F5F subi r18,lo8(-(1))
100 0016 2770 andi r18,lo8(7)
163:CamConfig.c **** CamConfig_txFifoHead = tmpHead;
101 .stabn 68,0,163,.LM3-CamConfig_writeTxFifo
101 .stabn 68,0,163,.LM3-.LFBB1
102 .LM3:
103 0018 2093 0000 sts CamConfig_txFifoHead,r18
104 001c 90E0 ldi r25,lo8(0)
105 001e 8091 0000 lds r24,CamConfig_txFifoTail
106 0022 2817 cp r18,r24
107 0024 09F4 brne .L2
108 .stabn 68,0,163,.LM4-CamConfig_writeTxFifo
107 0024 01F4 brne .L2
108 .stabn 68,0,163,.LM4-.LFBB1
109 .LM4:
110 0026 91E0 ldi r25,lo8(1)
111 .L2:
298,10 → 298,10
170:CamConfig.c **** }
171:CamConfig.c **** return(retVal);
172:CamConfig.c **** }
GAS LISTING /tmp/cctTSiV3.s page 6
GAS LISTING /tmp/cczUgJ5X.s page 6
 
 
114 .stabn 68,0,172,.LM5-CamConfig_writeTxFifo
114 .stabn 68,0,172,.LM5-.LFBB1
115 .LM5:
116 002c 9927 clr r25
117 /* epilogue: frame size=0 */
310,10 → 310,10
120 /* function CamConfig_writeTxFifo size 24 (23) */
121 .size CamConfig_writeTxFifo, .-CamConfig_writeTxFifo
122 .stabs "tmpHead:r(0,11)",64,0,156,18
123 .stabn 192,0,0,CamConfig_writeTxFifo-CamConfig_writeTxFifo
124 .stabn 224,0,0,.Lscope0-CamConfig_writeTxFifo
125 .Lscope0:
126 .stabs "",36,0,0,.Lscope0-CamConfig_writeTxFifo
123 .stabn 192,0,0,.LFBB1-.LFBB1
124 .stabn 224,0,0,.Lscope1-.LFBB1
125 .Lscope1:
126 .stabs "",36,0,0,.Lscope1-.LFBB1
127 .stabd 78,0,0
128 .stabs "CamConfig_setCamReg:F(0,15)",36,0,107,CamConfig_setCamReg
129 .stabs "reg:P(0,11)",64,0,106,24
322,62 → 322,61
132 .type CamConfig_setCamReg, @function
133 CamConfig_setCamReg:
134 .stabd 46,0,0
135 .stabn 68,0,107,.LM6-CamConfig_setCamReg
135 .stabn 68,0,107,.LM6-.LFBB2
136 .LM6:
137 /* prologue: frame size=0 */
138 /* prologue end (size=0) */
139 .stabn 68,0,110,.LM7-CamConfig_setCamReg
140 .LM7:
141 0030 282F mov r18,r24
142 .stabn 68,0,111,.LM8-CamConfig_setCamReg
143 .LM8:
144 0032 362F mov r19,r22
145 .stabn 68,0,113,.LM9-CamConfig_setCamReg
146 .LM9:
147 0034 C901 movw r24,r18
148 0036 E4DF rcall CamConfig_writeTxFifo
149 /* epilogue: frame size=0 */
150 0038 0895 ret
151 /* epilogue end (size=1) */
152 /* function CamConfig_setCamReg size 5 (4) */
153 .size CamConfig_setCamReg, .-CamConfig_setCamReg
154 .stabs "cmd:r(6,1)",64,0,108,18
155 .stabn 192,0,0,CamConfig_setCamReg-CamConfig_setCamReg
156 .stabn 224,0,0,.Lscope1-CamConfig_setCamReg
157 .Lscope1:
158 .stabs "",36,0,0,.Lscope1-CamConfig_setCamReg
159 .stabd 78,0,0
160 .stabs "CamConfig_sendFifoCmds:F(0,15)",36,0,132,CamConfig_sendFifoCmds
161 .global CamConfig_sendFifoCmds
162 .type CamConfig_sendFifoCmds, @function
163 CamConfig_sendFifoCmds:
164 .stabd 46,0,0
165 .stabn 68,0,132,.LM10-CamConfig_sendFifoCmds
166 .LM10:
167 /* prologue: frame size=2 */
168 003a 0F93 push r16
169 003c 1F93 push r17
170 003e CF93 push r28
GAS LISTING /tmp/cctTSiV3.s page 7
137 .LFBB2:
138 /* prologue: frame size=0 */
139 /* prologue end (size=0) */
140 .stabn 68,0,110,.LM7-.LFBB2
141 .LM7:
142 0030 282F mov r18,r24
143 .stabn 68,0,111,.LM8-.LFBB2
144 .LM8:
145 0032 362F mov r19,r22
146 .stabn 68,0,113,.LM9-.LFBB2
147 .LM9:
148 0034 C901 movw r24,r18
149 0036 00D0 rcall CamConfig_writeTxFifo
150 /* epilogue: frame size=0 */
151 0038 0895 ret
152 /* epilogue end (size=1) */
153 /* function CamConfig_setCamReg size 5 (4) */
154 .size CamConfig_setCamReg, .-CamConfig_setCamReg
155 .stabs "cmd:r(6,1)",64,0,108,18
156 .stabn 192,0,0,.LFBB2-.LFBB2
157 .stabn 224,0,0,.Lscope2-.LFBB2
158 .Lscope2:
159 .stabs "",36,0,0,.Lscope2-.LFBB2
160 .stabd 78,0,0
161 .stabs "CamConfig_sendFifoCmds:F(0,15)",36,0,132,CamConfig_sendFifoCmds
162 .global CamConfig_sendFifoCmds
163 .type CamConfig_sendFifoCmds, @function
164 CamConfig_sendFifoCmds:
165 .stabd 46,0,0
166 .stabn 68,0,132,.LM10-.LFBB3
167 .LM10:
168 .LFBB3:
169 /* prologue: frame size=2 */
170 003a EF92 push r14
GAS LISTING /tmp/cczUgJ5X.s page 7
 
 
171 0040 DF93 push r29
172 0042 CDB7 in r28,__SP_L__
173 0044 DEB7 in r29,__SP_H__
174 0046 2297 sbiw r28,2
175 0048 0FB6 in __tmp_reg__,__SREG__
176 004a F894 cli
177 004c DEBF out __SP_H__,r29
178 004e 0FBE out __SREG__,__tmp_reg__
179 0050 CDBF out __SP_L__,r28
180 /* prologue end (size=12) */
181 0052 8E01 movw r16,r28
182 0054 0F5F subi r16,lo8(-(1))
183 0056 1F4F sbci r17,hi8(-(1))
184 0058 19C0 rjmp .L7
185 .L8:
186 .LBB4:
187 .LBB5:
171 003c FF92 push r15
172 003e 0F93 push r16
173 0040 1F93 push r17
174 0042 CF93 push r28
175 0044 DF93 push r29
176 0046 CDB7 in r28,__SP_L__
177 0048 DEB7 in r29,__SP_H__
178 004a 2297 sbiw r28,2
179 004c 0FB6 in __tmp_reg__,__SREG__
180 004e F894 cli
181 0050 DEBF out __SP_H__,r29
182 0052 0FBE out __SREG__,__tmp_reg__
183 0054 CDBF out __SP_L__,r28
184 /* prologue end (size=14) */
185 .LBB4:
186 .LBB5:
173:CamConfig.c ****
174:CamConfig.c **** /***********************************************************
175:CamConfig.c **** Function Name: CamConfig_readTxFifo
393,164 → 392,189
185:CamConfig.c ****
186:CamConfig.c **** /* just return the current tail from the rx fifo */
187:CamConfig.c **** cmd = CamConfig_txFifo[CamConfig_txFifoTail];
188 .stabn 68,0,187,.LM11-CamConfig_sendFifoCmds
189 .LM11:
190 005a E32F mov r30,r19
191 005c FF27 clr r31
192 005e EE0F lsl r30
193 0060 FF1F rol r31
194 0062 E050 subi r30,lo8(-(CamConfig_txFifo))
195 0064 F040 sbci r31,hi8(-(CamConfig_txFifo))
196 0066 9181 ldd r25,Z+1
197 0068 2081 ld r18,Z
187 .stabn 68,0,187,.LM11-.LFBB3
188 .LM11:
189 0056 0F2E mov __tmp_reg__,r31
190 0058 F0E0 ldi r31,lo8(CamConfig_txFifo)
191 005a EF2E mov r14,r31
192 005c F0E0 ldi r31,hi8(CamConfig_txFifo)
193 005e FF2E mov r15,r31
194 0060 F02D mov r31,__tmp_reg__
195 .LBE5:
196 .LBE4:
197 .stabn 68,0,138,.LM12-.LFBB3
198 .LM12:
199 0062 8E01 movw r16,r28
200 0064 0F5F subi r16,lo8(-(1))
201 0066 1F4F sbci r17,hi8(-(1))
202 0068 00C0 rjmp .L7
203 .L8:
204 .LBB7:
205 .LBB6:
206 .stabn 68,0,187,.LM13-.LFBB3
207 .LM13:
208 006a E32F mov r30,r19
209 006c FF27 clr r31
210 006e EE0F lsl r30
211 0070 FF1F rol r31
212 0072 EE0D add r30,r14
GAS LISTING /tmp/cczUgJ5X.s page 8
 
 
213 0074 FF1D adc r31,r15
214 0076 9181 ldd r25,Z+1
215 0078 2081 ld r18,Z
188:CamConfig.c **** tmpTail = (CamConfig_txFifoTail+1) & (CAM_CONFIG_TX_FIFO_MASK);
189:CamConfig.c **** CamConfig_txFifoTail = tmpTail;
198 .stabn 68,0,189,.LM12-CamConfig_sendFifoCmds
199 .LM12:
200 006a 832F mov r24,r19
201 006c 8F5F subi r24,lo8(-(1))
202 006e 8770 andi r24,lo8(7)
203 0070 8093 0000 sts CamConfig_txFifoTail,r24
204 .stabn 68,0,137,.LM13-CamConfig_sendFifoCmds
205 .LM13:
206 0074 9A83 std Y+2,r25
207 0076 2983 std Y+1,r18
208 .LBE5:
209 .LBE4:
210 .stabn 68,0,138,.LM14-CamConfig_sendFifoCmds
GAS LISTING /tmp/cctTSiV3.s page 8
216 .stabn 68,0,189,.LM14-.LFBB3
217 .LM14:
218 007a 832F mov r24,r19
219 007c 8F5F subi r24,lo8(-(1))
220 007e 8770 andi r24,lo8(7)
221 0080 8093 0000 sts CamConfig_txFifoTail,r24
222 .stabn 68,0,137,.LM15-.LFBB3
223 .LM15:
224 0084 9A83 std Y+2,r25
225 0086 2983 std Y+1,r18
226 .LBE6:
227 .LBE7:
228 .stabn 68,0,138,.LM16-.LFBB3
229 .LM16:
230 0088 42E0 ldi r20,lo8(2)
231 008a B801 movw r22,r16
232 008c 80E6 ldi r24,lo8(96)
233 008e 00D0 rcall I2CInt_writeData
234 .stabn 68,0,139,.LM17-.LFBB3
235 .LM17:
236 0090 84E6 ldi r24,lo8(100)
237 0092 90E0 ldi r25,hi8(100)
238 0094 00D0 rcall Utility_delay
239 .L9:
240 .stabn 68,0,141,.LM18-.LFBB3
241 .LM18:
242 0096 00D0 rcall I2CInt_isI2cBusy
243 0098 8130 cpi r24,lo8(1)
244 009a 01F0 breq .L9
245 .L7:
246 .stabn 68,0,135,.LM19-.LFBB3
247 .LM19:
248 009c 3091 0000 lds r19,CamConfig_txFifoTail
249 00a0 8091 0000 lds r24,CamConfig_txFifoHead
250 00a4 8317 cp r24,r19
251 00a6 01F4 brne .L8
252 /* epilogue: frame size=2 */
253 00a8 2296 adiw r28,2
254 00aa 0FB6 in __tmp_reg__,__SREG__
255 00ac F894 cli
256 00ae DEBF out __SP_H__,r29
257 00b0 0FBE out __SREG__,__tmp_reg__
258 00b2 CDBF out __SP_L__,r28
259 00b4 DF91 pop r29
260 00b6 CF91 pop r28
261 00b8 1F91 pop r17
262 00ba 0F91 pop r16
263 00bc FF90 pop r15
264 00be EF90 pop r14
265 00c0 0895 ret
266 /* epilogue end (size=13) */
267 /* function CamConfig_sendFifoCmds size 68 (41) */
GAS LISTING /tmp/cczUgJ5X.s page 9
 
 
211 .LM14:
212 0078 42E0 ldi r20,lo8(2)
213 007a B801 movw r22,r16
214 007c 80E6 ldi r24,lo8(96)
215 007e 00D0 rcall I2CInt_writeData
216 .stabn 68,0,139,.LM15-CamConfig_sendFifoCmds
217 .LM15:
218 0080 84E6 ldi r24,lo8(100)
219 0082 90E0 ldi r25,hi8(100)
220 0084 00D0 rcall Utility_delay
221 .L9:
222 .stabn 68,0,141,.LM16-CamConfig_sendFifoCmds
223 .LM16:
224 0086 00D0 rcall I2CInt_isI2cBusy
225 0088 8130 cpi r24,lo8(1)
226 008a E9F3 breq .L9
227 .L7:
228 .stabn 68,0,135,.LM17-CamConfig_sendFifoCmds
229 .LM17:
230 008c 3091 0000 lds r19,CamConfig_txFifoTail
231 0090 8091 0000 lds r24,CamConfig_txFifoHead
232 0094 8317 cp r24,r19
233 0096 09F7 brne .L8
234 /* epilogue: frame size=2 */
235 0098 2296 adiw r28,2
236 009a 0FB6 in __tmp_reg__,__SREG__
237 009c F894 cli
238 009e DEBF out __SP_H__,r29
239 00a0 0FBE out __SREG__,__tmp_reg__
240 00a2 CDBF out __SP_L__,r28
241 00a4 DF91 pop r29
242 00a6 CF91 pop r28
243 00a8 1F91 pop r17
244 00aa 0F91 pop r16
245 00ac 0895 ret
246 /* epilogue end (size=11) */
247 /* function CamConfig_sendFifoCmds size 58 (35) */
248 .size CamConfig_sendFifoCmds, .-CamConfig_sendFifoCmds
249 .stabs "cmd:(6,1)",128,0,133,1
250 .stabn 192,0,0,CamConfig_sendFifoCmds-CamConfig_sendFifoCmds
251 .stabn 224,0,0,.Lscope2-CamConfig_sendFifoCmds
252 .Lscope2:
253 .stabs "",36,0,0,.Lscope2-CamConfig_sendFifoCmds
254 .stabd 78,0,0
255 .stabs "CamConfig_init:F(0,15)",36,0,85,CamConfig_init
256 .global CamConfig_init
257 .type CamConfig_init, @function
258 CamConfig_init:
259 .stabd 46,0,0
260 .stabn 68,0,85,.LM18-CamConfig_init
261 .LM18:
262 /* prologue: frame size=0 */
263 /* prologue end (size=0) */
264 .stabn 68,0,86,.LM19-CamConfig_init
265 .LM19:
266 00ae 60E2 ldi r22,lo8(32)
267 00b0 84E1 ldi r24,lo8(20)
GAS LISTING /tmp/cctTSiV3.s page 9
268 .size CamConfig_sendFifoCmds, .-CamConfig_sendFifoCmds
269 .stabs "cmd:(6,1)",128,0,133,1
270 .stabn 192,0,0,.LFBB3-.LFBB3
271 .stabn 224,0,0,.Lscope3-.LFBB3
272 .Lscope3:
273 .stabs "",36,0,0,.Lscope3-.LFBB3
274 .stabd 78,0,0
275 .stabs "CamConfig_init:F(0,15)",36,0,85,CamConfig_init
276 .global CamConfig_init
277 .type CamConfig_init, @function
278 CamConfig_init:
279 .stabd 46,0,0
280 .stabn 68,0,85,.LM20-.LFBB4
281 .LM20:
282 .LFBB4:
283 /* prologue: frame size=0 */
284 /* prologue end (size=0) */
285 .stabn 68,0,86,.LM21-.LFBB4
286 .LM21:
287 00c2 60E2 ldi r22,lo8(32)
288 00c4 84E1 ldi r24,lo8(20)
289 00c6 00D0 rcall CamConfig_setCamReg
290 .stabn 68,0,87,.LM22-.LFBB4
291 .LM22:
292 00c8 60E4 ldi r22,lo8(64)
293 00ca 89E3 ldi r24,lo8(57)
294 00cc 00D0 rcall CamConfig_setCamReg
295 .stabn 68,0,88,.LM23-.LFBB4
296 .LM23:
297 00ce 68E2 ldi r22,lo8(40)
298 00d0 82E1 ldi r24,lo8(18)
299 00d2 00D0 rcall CamConfig_setCamReg
300 .stabn 68,0,89,.LM24-.LFBB4
301 .LM24:
302 00d4 65E0 ldi r22,lo8(5)
303 00d6 88E2 ldi r24,lo8(40)
304 00d8 00D0 rcall CamConfig_setCamReg
305 .stabn 68,0,90,.LM25-.LFBB4
306 .LM25:
307 00da 61E0 ldi r22,lo8(1)
308 00dc 83E1 ldi r24,lo8(19)
309 00de 00D0 rcall CamConfig_setCamReg
310 .stabn 68,0,93,.LM26-.LFBB4
311 .LM26:
312 00e0 00D0 rcall CamConfig_sendFifoCmds
313 /* epilogue: frame size=0 */
314 00e2 0895 ret
315 /* epilogue end (size=1) */
316 /* function CamConfig_init size 17 (16) */
317 .size CamConfig_init, .-CamConfig_init
318 .Lscope4:
319 .stabs "",36,0,0,.Lscope4-.LFBB4
320 .stabd 78,0,0
321 .global CamConfig_txFifoHead
322 .global CamConfig_txFifoHead
323 .section .bss
324 .type CamConfig_txFifoHead, @object
GAS LISTING /tmp/cczUgJ5X.s page 10
 
 
268 00b2 BEDF rcall CamConfig_setCamReg
269 .stabn 68,0,87,.LM20-CamConfig_init
270 .LM20:
271 00b4 60E4 ldi r22,lo8(64)
272 00b6 89E3 ldi r24,lo8(57)
273 00b8 BBDF rcall CamConfig_setCamReg
274 .stabn 68,0,88,.LM21-CamConfig_init
275 .LM21:
276 00ba 68E2 ldi r22,lo8(40)
277 00bc 82E1 ldi r24,lo8(18)
278 00be B8DF rcall CamConfig_setCamReg
279 .stabn 68,0,89,.LM22-CamConfig_init
280 .LM22:
281 00c0 65E0 ldi r22,lo8(5)
282 00c2 88E2 ldi r24,lo8(40)
283 00c4 B5DF rcall CamConfig_setCamReg
284 .stabn 68,0,90,.LM23-CamConfig_init
285 .LM23:
286 00c6 61E0 ldi r22,lo8(1)
287 00c8 83E1 ldi r24,lo8(19)
288 00ca B2DF rcall CamConfig_setCamReg
289 .stabn 68,0,93,.LM24-CamConfig_init
290 .LM24:
291 00cc B6DF rcall CamConfig_sendFifoCmds
292 /* epilogue: frame size=0 */
293 00ce 0895 ret
294 /* epilogue end (size=1) */
295 /* function CamConfig_init size 17 (16) */
296 .size CamConfig_init, .-CamConfig_init
297 .Lscope3:
298 .stabs "",36,0,0,.Lscope3-CamConfig_init
299 .stabd 78,0,0
300 .global CamConfig_txFifoHead
301 .global CamConfig_txFifoHead
302 .section .bss
303 .type CamConfig_txFifoHead, @object
304 .size CamConfig_txFifoHead, 1
305 CamConfig_txFifoHead:
306 0000 00 .skip 1,0
307 .global CamConfig_txFifoTail
308 .global CamConfig_txFifoTail
309 .type CamConfig_txFifoTail, @object
310 .size CamConfig_txFifoTail, 1
311 CamConfig_txFifoTail:
312 0001 00 .skip 1,0
313 .comm CamConfig_txFifo,16,1
314 .stabs "CamConfig_txFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(6,1)",32,0,73,0
315 .stabs "CamConfig_txFifoHead:G(0,11)",32,0,74,0
316 .stabs "CamConfig_txFifoTail:G(0,11)",32,0,75,0
317 .text
318 .stabs "",100,0,0,.Letext0
319 .Letext0:
320 /* File "CamConfig.c": code 104 = 0x0068 ( 78), prologues 12, epilogues 14 */
GAS LISTING /tmp/cctTSiV3.s page 10
325 .size CamConfig_txFifoHead, 1
326 CamConfig_txFifoHead:
327 0000 00 .skip 1,0
328 .global CamConfig_txFifoTail
329 .global CamConfig_txFifoTail
330 .type CamConfig_txFifoTail, @object
331 .size CamConfig_txFifoTail, 1
332 CamConfig_txFifoTail:
333 0001 00 .skip 1,0
334 .comm CamConfig_txFifo,16,1
335 .stabs "CamConfig_txFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(6,1)",32,0,73,0
336 .stabs "CamConfig_txFifoHead:G(0,11)",32,0,74,0
337 .stabs "CamConfig_txFifoTail:G(0,11)",32,0,75,0
338 .text
339 .stabs "",100,0,0,.Letext0
340 .Letext0:
341 /* File "CamConfig.c": code 114 = 0x0072 ( 84), prologues 14, epilogues 16 */
GAS LISTING /tmp/cczUgJ5X.s page 11
 
 
DEFINED SYMBOLS
*ABS*:00000000 CamConfig.c
/tmp/cctTSiV3.s:3 *ABS*:0000003f __SREG__
/tmp/cctTSiV3.s:4 *ABS*:0000003e __SP_H__
/tmp/cctTSiV3.s:5 *ABS*:0000003d __SP_L__
/tmp/cctTSiV3.s:6 *ABS*:00000000 __tmp_reg__
/tmp/cctTSiV3.s:7 *ABS*:00000001 __zero_reg__
/tmp/cctTSiV3.s:80 .text:00000000 CamConfig_writeTxFifo
/tmp/cctTSiV3.s:305 .bss:00000000 CamConfig_txFifoHead
/tmp/cczUgJ5X.s:2 *ABS*:0000003f __SREG__
/tmp/cczUgJ5X.s:3 *ABS*:0000003e __SP_H__
/tmp/cczUgJ5X.s:4 *ABS*:0000003d __SP_L__
/tmp/cczUgJ5X.s:5 *ABS*:00000000 __tmp_reg__
/tmp/cczUgJ5X.s:6 *ABS*:00000001 __zero_reg__
/tmp/cczUgJ5X.s:79 .text:00000000 CamConfig_writeTxFifo
/tmp/cczUgJ5X.s:326 .bss:00000000 CamConfig_txFifoHead
*COM*:00000010 CamConfig_txFifo
/tmp/cctTSiV3.s:311 .bss:00000001 CamConfig_txFifoTail
/tmp/cctTSiV3.s:133 .text:00000030 CamConfig_setCamReg
/tmp/cctTSiV3.s:163 .text:0000003a CamConfig_sendFifoCmds
/tmp/cctTSiV3.s:258 .text:000000ae CamConfig_init
/tmp/cczUgJ5X.s:332 .bss:00000001 CamConfig_txFifoTail
/tmp/cczUgJ5X.s:133 .text:00000030 CamConfig_setCamReg
/tmp/cczUgJ5X.s:164 .text:0000003a CamConfig_sendFifoCmds
/tmp/cczUgJ5X.s:278 .text:000000c2 CamConfig_init
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/CamInterface.lst
1,99 → 1,98
GAS LISTING /tmp/cc4KZ7ps.s page 1
GAS LISTING /tmp/ccnpicUY.s page 1
 
 
1 .file "CamInterface.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "CamInterface.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
34 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
35 .stabs "int8_t:t(5,1)=(0,10)",128,0,116,0
36 .stabs "uint8_t:t(5,2)=(0,11)",128,0,117,0
37 .stabs "int16_t:t(5,3)=(0,1)",128,0,118,0
38 .stabs "uint16_t:t(5,4)=(0,4)",128,0,119,0
39 .stabs "int32_t:t(5,5)=(0,3)",128,0,120,0
40 .stabs "uint32_t:t(5,6)=(0,5)",128,0,121,0
41 .stabs "int64_t:t(5,7)=(0,6)",128,0,122,0
42 .stabs "uint64_t:t(5,8)=(0,7)",128,0,123,0
43 .stabs "intptr_t:t(5,9)=(5,3)",128,0,135,0
44 .stabs "uintptr_t:t(5,10)=(5,4)",128,0,140,0
45 .stabs "int_least8_t:t(5,11)=(5,1)",128,0,152,0
46 .stabs "uint_least8_t:t(5,12)=(5,2)",128,0,157,0
47 .stabs "int_least16_t:t(5,13)=(5,3)",128,0,162,0
48 .stabs "uint_least16_t:t(5,14)=(5,4)",128,0,167,0
49 .stabs "int_least32_t:t(5,15)=(5,5)",128,0,172,0
50 .stabs "uint_least32_t:t(5,16)=(5,6)",128,0,177,0
51 .stabs "int_least64_t:t(5,17)=(5,7)",128,0,182,0
52 .stabs "uint_least64_t:t(5,18)=(5,8)",128,0,187,0
53 .stabs "int_fast8_t:t(5,19)=(5,1)",128,0,200,0
54 .stabs "uint_fast8_t:t(5,20)=(5,2)",128,0,205,0
55 .stabs "int_fast16_t:t(5,21)=(5,3)",128,0,210,0
56 .stabs "uint_fast16_t:t(5,22)=(5,4)",128,0,215,0
57 .stabs "int_fast32_t:t(5,23)=(5,5)",128,0,220,0
GAS LISTING /tmp/cc4KZ7ps.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "CamInterface.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/interrupt.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(5,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(5,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(5,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(5,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(5,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(5,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(5,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(5,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(5,9)=(5,3)",128,0,135,0
43 .stabs "uintptr_t:t(5,10)=(5,4)",128,0,140,0
44 .stabs "int_least8_t:t(5,11)=(5,1)",128,0,152,0
45 .stabs "uint_least8_t:t(5,12)=(5,2)",128,0,157,0
46 .stabs "int_least16_t:t(5,13)=(5,3)",128,0,162,0
47 .stabs "uint_least16_t:t(5,14)=(5,4)",128,0,167,0
48 .stabs "int_least32_t:t(5,15)=(5,5)",128,0,172,0
49 .stabs "uint_least32_t:t(5,16)=(5,6)",128,0,177,0
50 .stabs "int_least64_t:t(5,17)=(5,7)",128,0,182,0
51 .stabs "uint_least64_t:t(5,18)=(5,8)",128,0,187,0
52 .stabs "int_fast8_t:t(5,19)=(5,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(5,20)=(5,2)",128,0,205,0
54 .stabs "int_fast16_t:t(5,21)=(5,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(5,22)=(5,4)",128,0,215,0
56 .stabs "int_fast32_t:t(5,23)=(5,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(5,24)=(5,6)",128,0,225,0
GAS LISTING /tmp/ccnpicUY.s page 2
 
 
58 .stabs "uint_fast32_t:t(5,24)=(5,6)",128,0,225,0
59 .stabs "int_fast64_t:t(5,25)=(5,7)",128,0,230,0
60 .stabs "uint_fast64_t:t(5,26)=(5,8)",128,0,235,0
61 .stabs "intmax_t:t(5,27)=(5,7)",128,0,249,0
62 .stabs "uintmax_t:t(5,28)=(5,8)",128,0,254,0
63 .stabn 162,0,0,0
64 .stabs "int_farptr_t:t(4,1)=(5,5)",128,0,76,0
65 .stabs "uint_farptr_t:t(4,2)=(5,6)",128,0,80,0
58 .stabs "int_fast64_t:t(5,25)=(5,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(5,26)=(5,8)",128,0,235,0
60 .stabs "intmax_t:t(5,27)=(5,7)",128,0,249,0
61 .stabs "uintmax_t:t(5,28)=(5,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(4,1)=(5,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(4,2)=(5,6)",128,0,80,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabn 162,0,0,0
69 .stabn 162,0,0,0
70 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",130,0,0,0
71 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
72 .stabs "size_t:t(7,1)=(0,4)",128,0,214,0
69 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",130,0,0,0
70 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
71 .stabs "size_t:t(7,1)=(0,4)",128,0,214,0
72 .stabn 162,0,0,0
73 .stabn 162,0,0,0
74 .stabn 162,0,0,0
75 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
76 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
77 .stabs "wchar_t:t(9,1)=(0,1)",128,0,326,0
78 .stabn 162,0,0,0
79 .stabs "div_t:t(8,1)=(8,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
80 .stabs "ldiv_t:t(8,3)=(8,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
81 .stabs "__compar_fn_t:t(8,5)=(8,6)=*(8,7)=f(0,1)",128,0,78,0
82 .stabn 162,0,0,0
83 .stabs "CommonDefs.h",130,0,0,0
84 .stabs "bool_t:t(10,1)=(0,11)",128,0,56,0
85 .stabn 162,0,0,0
86 .stabs "CamInt_resetCam:F(0,15)",36,0,225,CamInt_resetCam
87 .global CamInt_resetCam
88 .type CamInt_resetCam, @function
89 CamInt_resetCam:
90 .stabd 46,0,0
74 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
75 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
76 .stabs "wchar_t:t(9,1)=(0,1)",128,0,326,0
77 .stabn 162,0,0,0
78 .stabs "div_t:t(8,1)=(8,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
79 .stabs "ldiv_t:t(8,3)=(8,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
80 .stabs "__compar_fn_t:t(8,5)=(8,6)=*(8,7)=f(0,1)",128,0,78,0
81 .stabn 162,0,0,0
82 .stabs "CommonDefs.h",130,0,0,0
83 .stabs "bool_t:t(10,1)=(0,11)",128,0,56,0
84 .stabn 162,0,0,0
85 .stabs "CamInt_resetCam:F(0,15)",36,0,225,CamInt_resetCam
86 .global CamInt_resetCam
87 .type CamInt_resetCam, @function
88 CamInt_resetCam:
89 .stabd 46,0,0
1:CamInterface.c **** /*
2:CamInterface.c **** Copyright (C) 2004 John Orlando
3:CamInterface.c ****
118,10 → 117,10
22:CamInterface.c **** john@jrobot.net
23:CamInterface.c ****
24:CamInterface.c **** or go to www.jrobot.net for more details regarding the system.
GAS LISTING /tmp/cc4KZ7ps.s page 3
25:CamInterface.c **** */
GAS LISTING /tmp/ccnpicUY.s page 3
 
 
25:CamInterface.c **** */
26:CamInterface.c **** /***********************************************************
27:CamInterface.c **** Module Name: CamInterface.c
28:CamInterface.c **** Module Date: 04/12/2004
178,10 → 177,10
79:CamInterface.c **** #define CAM_PIXEL_CLK_COUNT BIT5
80:CamInterface.c **** #define CAM_HREF BIT4
81:CamInterface.c **** #define CAM_PIXEL_CLK_INT BIT3
GAS LISTING /tmp/cc4KZ7ps.s page 4
82:CamInterface.c **** #define CAM_VSYNC BIT2
GAS LISTING /tmp/ccnpicUY.s page 4
 
 
82:CamInterface.c **** #define CAM_VSYNC BIT2
83:CamInterface.c ****
84:CamInterface.c **** /* Global Variables */
85:CamInterface.c **** /* NOTE: This file MUST appear first in the Makefile for these variables to
238,10 → 237,10
136:CamInterface.c **** #if OUTPUT_INITIAL_COLOR_MAP
137:CamInterface.c **** unsigned char asciiBuffer[5];
138:CamInterface.c **** unsigned char i;
GAS LISTING /tmp/cc4KZ7ps.s page 5
139:CamInterface.c **** #endif
GAS LISTING /tmp/ccnpicUY.s page 5
 
 
139:CamInterface.c **** #endif
140:CamInterface.c ****
141:CamInterface.c **** /* set up the mega8 ports that will be interfacing
142:CamInterface.c **** with the camera */
298,10 → 297,10
193:CamInterface.c **** for (i=0; i<NUM_ELEMENTS_IN_COLOR_MAP; i++)
194:CamInterface.c **** {
195:CamInterface.c **** memset(asciiBuffer,0x00,5);
GAS LISTING /tmp/cc4KZ7ps.s page 6
196:CamInterface.c **** itoa(colorMap[i],asciiBuffer,10);
GAS LISTING /tmp/ccnpicUY.s page 6
 
 
196:CamInterface.c **** itoa(colorMap[i],asciiBuffer,10);
197:CamInterface.c **** UIMgr_txBuffer(asciiBuffer,3);
198:CamInterface.c **** UIMgr_txBuffer(" ",1);
199:CamInterface.c **** if (i==15 || i == 31)
331,8 → 330,9
223:CamInterface.c **** ***********************************************************/
224:CamInterface.c **** void CamInt_resetCam(void)
225:CamInterface.c **** {
91 .stabn 68,0,225,.LM0-CamInt_resetCam
92 .LM0:
90 .stabn 68,0,225,.LM0-.LFBB1
91 .LM0:
92 .LFBB1:
93 /* prologue: frame size=0 */
94 /* prologue end (size=0) */
95 /* epilogue: frame size=0 */
340,8 → 340,8
97 /* epilogue end (size=1) */
98 /* function CamInt_resetCam size 1 (0) */
99 .size CamInt_resetCam, .-CamInt_resetCam
100 .Lscope0:
101 .stabs "",36,0,0,.Lscope0-CamInt_resetCam
100 .Lscope1:
101 .stabs "",36,0,0,.Lscope1-.LFBB1
102 .stabd 78,0,0
103 .stabs "CamInt_init:F(0,15)",36,0,135,CamInt_init
104 .global CamInt_init
348,429 → 348,430
105 .type CamInt_init, @function
106 CamInt_init:
107 .stabd 46,0,0
108 .stabn 68,0,135,.LM1-CamInt_init
108 .stabn 68,0,135,.LM1-.LFBB2
109 .LM1:
110 /* prologue: frame size=0 */
111 /* prologue end (size=0) */
112 .stabn 68,0,143,.LM2-CamInt_init
113 .LM2:
114 0002 8F9A sbi 49-0x20,7
115 .stabn 68,0,144,.LM3-CamInt_init
116 .LM3:
117 0004 8F9A sbi 49-0x20,7
GAS LISTING /tmp/cc4KZ7ps.s page 7
110 .LFBB2:
111 /* prologue: frame size=0 */
112 /* prologue end (size=0) */
113 .stabn 68,0,143,.LM2-.LFBB2
114 .LM2:
115 0002 8F9A sbi 49-0x20,7
116 .stabn 68,0,144,.LM3-.LFBB2
117 .LM3:
GAS LISTING /tmp/ccnpicUY.s page 7
 
 
118 .stabn 68,0,145,.LM4-CamInt_init
119 .LM4:
120 0006 8A98 cbi 49-0x20,2
121 .stabn 68,0,146,.LM5-CamInt_init
122 .LM5:
123 0008 9798 cbi 50-0x20,7
124 .stabn 68,0,147,.LM6-CamInt_init
125 .LM6:
126 000a 87B3 in r24,55-0x20
127 000c 807F andi r24,lo8(-16)
128 000e 87BB out 55-0x20,r24
129 .stabn 68,0,148,.LM7-CamInt_init
130 .LM7:
131 0010 87B3 in r24,55-0x20
132 0012 806F ori r24,lo8(-16)
133 0014 87BB out 55-0x20,r24
134 .stabn 68,0,149,.LM8-CamInt_init
135 .LM8:
136 0016 84B3 in r24,52-0x20
137 0018 807F andi r24,lo8(-16)
138 001a 84BB out 52-0x20,r24
139 .stabn 68,0,154,.LM9-CamInt_init
140 .LM9:
141 001c 8EB5 in r24,78-0x20
142 001e 887F andi r24,lo8(-8)
143 0020 8EBD out 78-0x20,r24
144 .stabn 68,0,162,.LM10-CamInt_init
145 .LM10:
146 0022 85B7 in r24,85-0x20
147 0024 8C60 ori r24,lo8(12)
148 0026 85BF out 85-0x20,r24
149 .stabn 68,0,167,.LM11-CamInt_init
150 .LM11:
151 0028 85B7 in r24,85-0x20
152 002a 8360 ori r24,lo8(3)
153 002c 85BF out 85-0x20,r24
154 .stabn 68,0,168,.LM12-CamInt_init
155 .LM12:
156 002e 8BB7 in r24,91-0x20
157 0030 8064 ori r24,lo8(64)
158 0032 8BBF out 91-0x20,r24
159 .stabn 68,0,173,.LM13-CamInt_init
160 .LM13:
161 0034 86E0 ldi r24,lo8(6)
162 0036 83BF out 83-0x20,r24
163 .stabn 68,0,181,.LM14-CamInt_init
164 .LM14:
165 0038 85B7 in r24,85-0x20
166 003a 8F78 andi r24,lo8(-113)
167 003c 85BF out 85-0x20,r24
168 .stabn 68,0,183,.LM15-CamInt_init
169 .LM15:
170 003e 85B7 in r24,85-0x20
171 0040 8068 ori r24,lo8(-128)
172 0042 85BF out 85-0x20,r24
173 .stabn 68,0,186,.LM16-CamInt_init
174 .LM16:
GAS LISTING /tmp/cc4KZ7ps.s page 8
118 0004 8F9A sbi 49-0x20,7
119 .stabn 68,0,145,.LM4-.LFBB2
120 .LM4:
121 0006 8A98 cbi 49-0x20,2
122 .stabn 68,0,146,.LM5-.LFBB2
123 .LM5:
124 0008 9798 cbi 50-0x20,7
125 .stabn 68,0,147,.LM6-.LFBB2
126 .LM6:
127 000a 87B3 in r24,55-0x20
128 000c 807F andi r24,lo8(-16)
129 000e 87BB out 55-0x20,r24
130 .stabn 68,0,148,.LM7-.LFBB2
131 .LM7:
132 0010 87B3 in r24,55-0x20
133 0012 806F ori r24,lo8(-16)
134 0014 87BB out 55-0x20,r24
135 .stabn 68,0,149,.LM8-.LFBB2
136 .LM8:
137 0016 84B3 in r24,52-0x20
138 0018 807F andi r24,lo8(-16)
139 001a 84BB out 52-0x20,r24
140 .stabn 68,0,154,.LM9-.LFBB2
141 .LM9:
142 001c 8EB5 in r24,78-0x20
143 001e 887F andi r24,lo8(-8)
144 0020 8EBD out 78-0x20,r24
145 .stabn 68,0,162,.LM10-.LFBB2
146 .LM10:
147 0022 85B7 in r24,85-0x20
148 0024 8C60 ori r24,lo8(12)
149 0026 85BF out 85-0x20,r24
150 .stabn 68,0,167,.LM11-.LFBB2
151 .LM11:
152 0028 85B7 in r24,85-0x20
153 002a 8360 ori r24,lo8(3)
154 002c 85BF out 85-0x20,r24
155 .stabn 68,0,168,.LM12-.LFBB2
156 .LM12:
157 002e 8BB7 in r24,91-0x20
158 0030 8064 ori r24,lo8(64)
159 0032 8BBF out 91-0x20,r24
160 .stabn 68,0,173,.LM13-.LFBB2
161 .LM13:
162 0034 86E0 ldi r24,lo8(6)
163 0036 83BF out 83-0x20,r24
164 .stabn 68,0,181,.LM14-.LFBB2
165 .LM14:
166 0038 85B7 in r24,85-0x20
167 003a 8F78 andi r24,lo8(-113)
168 003c 85BF out 85-0x20,r24
169 .stabn 68,0,183,.LM15-.LFBB2
170 .LM15:
171 003e 85B7 in r24,85-0x20
172 0040 8068 ori r24,lo8(-128)
173 0042 85BF out 85-0x20,r24
174 .stabn 68,0,186,.LM16-.LFBB2
GAS LISTING /tmp/ccnpicUY.s page 8
 
 
175 0044 E0E0 ldi r30,lo8(colorMap)
176 0046 F0E0 ldi r31,hi8(colorMap)
177 0048 80E3 ldi r24,lo8(48)
178 004a DF01 movw r26,r30
179 004c 982F mov r25,r24
180 004e 1D92 st X+,__zero_reg__
181 0050 9A95 dec r25
182 0052 E9F7 brne .-6
183 .LBB6:
184 .LBB7:
185 .LBB8:
186 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
187 .Ltext1:
1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Copyright (c) 2005, 2006 Bjoern Haase
3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** All rights reserved.
4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Redistribution and use in source and binary forms, with or without
6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** modification, are permitted provided that the following conditions are met:
7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions of source code must retain the above copyright
9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer.
10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions in binary form must reproduce the above copyright
12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer in
13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** the documentation and/or other materials provided with the
14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** distribution.
15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Neither the name of the copyright holders nor the names of
17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** contributors may be used to endorse or promote products derived
18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** from this software without specific prior written permission.
19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
20:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** POSSIBILITY OF SUCH DAMAGE. */
31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
32:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.1 2006/02/26 21:51:04 aesok Exp $ */
33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom.h
36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Contributors:
38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Created by Marek Michalkiewicz <marekm@linux.org.pl>
39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word and eeprom_write_block added by Artur Lipowski
40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <LAL@pro.onet.pl>
41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Complete rewrite using the original interface by Bjoern Haase
42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <bjoern.haase@de.bosch.com>.
43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
GAS LISTING /tmp/cc4KZ7ps.s page 9
175 .LM16:
176 0044 E0E0 ldi r30,lo8(colorMap)
177 0046 F0E0 ldi r31,hi8(colorMap)
178 0048 80E3 ldi r24,lo8(48)
179 004a DF01 movw r26,r30
180 004c 982F mov r25,r24
181 004e 1D92 st X+,__zero_reg__
182 0050 9A95 dec r25
183 0052 01F4 brne .-6
184 .LBB6:
185 .LBB7:
186 .LBB8:
187 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
188 .Ltext1:
1:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
2:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Copyright (c) 2005, 2006 Bjoern Haase
3:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** All rights reserved.
4:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
5:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Redistribution and use in source and binary forms, with or without
6:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** modification, are permitted provided that the following conditions are met:
7:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
8:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Redistributions of source code must retain the above copyright
9:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer.
10:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
11:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Redistributions in binary form must reproduce the above copyright
12:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer in
13:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** the documentation and/or other materials provided with the
14:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** distribution.
15:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
16:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Neither the name of the copyright holders nor the names of
17:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** contributors may be used to endorse or promote products derived
18:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** from this software without specific prior written permission.
19:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
20:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** POSSIBILITY OF SUCH DAMAGE. */
31:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
32:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.3 2006/05/23 17:18:23 aesok Exp $ */
33:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
34:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /*
35:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom.h
36:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
37:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Contributors:
38:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Created by Marek Michalkiewicz <marekm@linux.org.pl>
39:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_word and eeprom_write_block added by Artur Lipowski
40:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** <LAL@pro.onet.pl>
41:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Complete rewrite using the original interface by Bjoern Haase
42:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** <bjoern.haase@de.bosch.com>.
43:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** */
GAS LISTING /tmp/ccnpicUY.s page 9
 
 
45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
63:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** In order to be able to work without a requiring a multilib
64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** approach for dealing with controllers having the EEPROM registers
65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** at different positions in memory space, the eeprom functions evaluate
66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
67:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** the device io header and contains 6 uppercase hex digits encoding the
68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** addresses of EECR,EEDR and EEAR.
69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** First two letters: EECR address.
70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** The default 1C1D1E corresponds to the
73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** register location that is valid for most controllers. The value
74:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** of this define symbol is used for appending it to the base name of the
75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler functions. */
76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
94:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** EEPROM access to ensure that no time will be wasted in spinloops
95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
97:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note All of the read/write functions first make sure the EEPROM
98:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** is ready to be accessed. Since this may cause long delays if a
99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
100:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** should first poll the EEPROM e. g. using eeprom_is_ready() before
101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** attempting any actual I/O.
GAS LISTING /tmp/cc4KZ7ps.s page 10
44:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
45:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
46:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
47:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
48:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
49:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
50:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
51:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
52:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
53:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
54:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
55:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #else
56:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
57:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
58:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
59:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
60:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
61:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
62:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
63:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** In order to be able to work without a requiring a multilib
64:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** approach for dealing with controllers having the EEPROM registers
65:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** at different positions in memory space, the eeprom functions evaluate
66:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
67:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** the device io header and contains 6 uppercase hex digits encoding the
68:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** addresses of EECR,EEDR and EEAR.
69:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** First two letters: EECR address.
70:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
71:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
72:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** The default 1C1D1E corresponds to the
73:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** register location that is valid for most controllers. The value
74:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** of this define symbol is used for appending it to the base name of the
75:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** assembler functions. */
76:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
77:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
78:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
79:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
80:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
81:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
82:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
83:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
84:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
85:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
86:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
87:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
88:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
89:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
90:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
91:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
92:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
93:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
94:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** EEPROM access to ensure that no time will be wasted in spinloops
95:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
96:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
97:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note All of the read/write functions first make sure the EEPROM
98:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** is ready to be accessed. Since this may cause long delays if a
99:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
100:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** should first poll the EEPROM e. g. using eeprom_is_ready() before
GAS LISTING /tmp/ccnpicUY.s page 10
 
 
102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note This header file declares inline functions that call the
104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler subroutines directly. This prevents that the compiler
105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** generates push/pops for the call-clobbered registers. This way
106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** also a specific calling convention could be used for the eeprom
107:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** routines e.g. by passing values in __tmp_reg__, eeprom addresses in
108:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** X and memory addresses in Z registers. Method is optimized for code
109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size.
110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note Presently supported are two locations of the EEPROM register
112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E
113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** (see ::__EEPROM_REG_LOCATIONS__).
114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
115:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note As these functions modify IO registers, they are known to be
116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** them).
120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** not get confused by the attribute expression. */
126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline))
131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void *pointer_eeprom,
147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the .eeprom
156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** section. */
157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
GAS LISTING /tmp/cc4KZ7ps.s page 11
101:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** attempting any actual I/O.
102:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
103:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note This header file declares inline functions that call the
104:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** assembler subroutines directly. This prevents that the compiler
105:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** generates push/pops for the call-clobbered registers. This way
106:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** also a specific calling convention could be used for the eeprom
107:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** routines e.g. by passing values in __tmp_reg__, eeprom addresses in
108:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** X and memory addresses in Z registers. Method is optimized for code
109:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size.
110:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
111:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note Presently supported are two locations of the EEPROM register
112:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E
113:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** (see ::__EEPROM_REG_LOCATIONS__).
114:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
115:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note As these functions modify IO registers, they are known to be
116:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
117:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
118:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
119:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** them).
120:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
121:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** */
122:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
123:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
124:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
125:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** not get confused by the attribute expression. */
126:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
127:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
128:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
129:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
130:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline))
131:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
132:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
133:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
134:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
135:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
136:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t size);
137:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
138:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
139:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
140:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
141:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
142:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
143:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
144:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
145:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
146:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** void *pointer_eeprom,
147:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t size);
148:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
149:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
150:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
151:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /*@{*/
152:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
153:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
154:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
155:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the .eeprom
156:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** section. */
157:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
GAS LISTING /tmp/ccnpicUY.s page 11
 
 
159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
161:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \returns Nothing. */
181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \c addr. */
187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t
189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr)
190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t result;
192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile
193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "mov %1,__tmp_reg__"
195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=r" (result)
197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
202:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read one 16-bit word (little endian) from EEPROM address \c addr. */
203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t result;
207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm (
209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (result)
212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
GAS LISTING /tmp/cc4KZ7ps.s page 12
158:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
159:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
160:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
161:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
162:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
163:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
164:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
165:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
166:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
167:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
168:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
169:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
170:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
171:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #else
172:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
173:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
174:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
175:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
176:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
177:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
178:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
179:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
180:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \returns Nothing. */
181:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
182:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
183:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
184:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
185:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
186:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \c addr. */
187:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
188:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t
189:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr)
190:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
191:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t result;
192:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__
193:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
194:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "mov %1,__tmp_reg__"
195:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
196:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=r" (result)
197:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : );
198:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** return result;
199:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
200:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
201:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
202:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read one 16-bit word (little endian) from EEPROM address \c addr. */
203:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t
204:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
205:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
206:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t result;
207:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
208:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
209:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
210:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
211:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (result)
212:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : );
213:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** return result;
214:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
GAS LISTING /tmp/ccnpicUY.s page 12
 
 
216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
217:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
218:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \c pointer_ram. For constant n <= 256 bytes a library function is used.
219:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** For block sizes unknown at compile time or block sizes > 256 an inline
220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** loop is expanded. */
221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void
223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t n)
226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (!__builtin_constant_p (n)
228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** || n > 256)
229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* make sure size is a 16 bit variable. */
231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t size = n;
232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_start:" CR_TAB
235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "sbiw %2,1" CR_TAB
236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "brlt .%=_finished" CR_TAB
237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "st z+,__tmp_reg__" CR_TAB
239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "rjmp .%=_start" CR_TAB
240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_finished:"
241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "=x" (pointer_eeprom),
242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram),
243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "+w" (size)
244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "x" (pointer_eeprom),
245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n != 0)
251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n == 256)
253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "z" (pointer_ram)
259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Needed in order to truncate to 8 bit. */
264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t len;
265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** len = (uint8_t) n;
266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
188 .stabn 68,0,267,.LM17-CamInt_init
189 .LM17:
190 0054 A1E0 ldi r26,lo8(1)
191 0056 B0E0 ldi r27,hi8(1)
192 /* #APP */
GAS LISTING /tmp/cc4KZ7ps.s page 13
215:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
216:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
217:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
218:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \c pointer_ram. For constant n <= 256 bytes a library function is used.
219:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** For block sizes unknown at compile time or block sizes > 256 an inline
220:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** loop is expanded. */
221:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
222:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** void
223:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
224:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
225:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t n)
226:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
227:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (!__builtin_constant_p (n)
228:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** || n > 256)
229:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
230:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* make sure size is a 16 bit variable. */
231:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t size = n;
232:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
233:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
234:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ".%=_start:" CR_TAB
235:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "sbiw %2,1" CR_TAB
236:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "brlt .%=_finished" CR_TAB
237:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
238:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "st z+,__tmp_reg__" CR_TAB
239:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "rjmp .%=_start" CR_TAB
240:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ".%=_finished:"
241:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "=x" (pointer_eeprom),
242:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram),
243:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "+w" (size)
244:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "x" (pointer_eeprom),
245:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
246:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "memory");
247:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
248:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** else
249:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
250:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (n != 0)
251:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
252:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (n == 256)
253:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
254:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
255:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
256:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
257:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
258:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "z" (pointer_ram)
259:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "memory");
260:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
261:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** else
262:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
263:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* Needed in order to truncate to 8 bit. */
264:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t len;
265:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** len = (uint8_t) n;
266:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
267:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
189 .stabn 68,0,267,.LM17-.LFBB2
190 .LM17:
191 0054 A1E0 ldi r26,lo8(1)
192 0056 B0E0 ldi r27,hi8(1)
GAS LISTING /tmp/ccnpicUY.s page 13
 
 
193 0058 182E mov __zero_reg__,r24
194 005a 00D0 rcall __eeprom_read_block_1C1D1E
195 /* #NOAPP */
196 .LBE8:
197 .LBE7:
198 .LBE6:
199 /* epilogue: frame size=0 */
200 005c 0895 ret
201 /* epilogue end (size=1) */
202 /* function CamInt_init size 48 (47) */
203 .size CamInt_init, .-CamInt_init
204 .stabs "pointer_eeprom:r(0,16)=*(0,17)=k(0,15)",64,0,189,26
205 .stabs "pointer_ram:r(0,18)=*(0,15)",64,0,189,30
206 .stabn 192,0,0,.LBB6-CamInt_init
207 .stabn 224,0,0,.LBE6-CamInt_init
208 .Lscope1:
209 .stabs "",36,0,0,.Lscope1-CamInt_init
210 .stabd 78,0,0
211 .comm currentLineBuffer,176,1
212 .comm previousLineBuffer,176,1
213 .global colorMap
214 .section .noinit,"aw",@nobits
215 .type colorMap, @object
216 .size colorMap, 48
217 colorMap:
218 0000 0000 0000 .skip 48,0
218 0000 0000
218 0000 0000
218 0000 0000
218 0000 0000
219 .stabs "currentLineBuffer:G(0,19)=ar(0,20)=r(0,20);0;0177777;;0;175;(0,11)",32,0,114,0
220 .stabs "previousLineBuffer:G(0,19)",32,0,115,0
221 .stabs "colorMap:G(0,21)=ar(0,20);0;47;(0,11)",32,0,100,0
222 .text
223 .stabs "",100,0,0,.Letext0
224 .Letext0:
225 /* File "CamInterface.c": code 49 = 0x0031 ( 47), prologues 0, epilogues 2 */
GAS LISTING /tmp/cc4KZ7ps.s page 14
193 /* #APP */
194 0058 182E mov __zero_reg__,r24
195 005a 00D0 rcall __eeprom_read_block_1C1D1E
196 /* #NOAPP */
197 .LBE8:
198 .LBE7:
199 .LBE6:
200 /* epilogue: frame size=0 */
201 005c 0895 ret
202 /* epilogue end (size=1) */
203 /* function CamInt_init size 48 (47) */
204 .size CamInt_init, .-CamInt_init
205 .stabs "pointer_eeprom:r(0,16)=*(0,17)=k(0,15)",64,0,189,26
206 .stabs "pointer_ram:r(0,18)=*(0,15)",64,0,189,30
207 .stabn 192,0,0,.LBB6-.LFBB2
208 .stabn 224,0,0,.LBE6-.LFBB2
209 .Lscope2:
210 .stabs "",36,0,0,.Lscope2-.LFBB2
211 .stabd 78,0,0
212 .comm currentLineBuffer,176,1
213 .comm previousLineBuffer,176,1
214 .global colorMap
215 .section .noinit,"aw",@nobits
216 .type colorMap, @object
217 .size colorMap, 48
218 colorMap:
219 0000 0000 0000 .skip 48,0
219 0000 0000
219 0000 0000
219 0000 0000
219 0000 0000
220 .stabs "currentLineBuffer:G(0,19)=ar(0,20)=r(0,20);0;0177777;;0;175;(0,11)",32,0,114,0
221 .stabs "previousLineBuffer:G(0,19)",32,0,115,0
222 .stabs "colorMap:G(0,21)=ar(0,20);0;47;(0,11)",32,0,100,0
223 .text
224 .stabs "",100,0,0,.Letext0
225 .Letext0:
226 /* File "CamInterface.c": code 49 = 0x0031 ( 47), prologues 0, epilogues 2 */
GAS LISTING /tmp/ccnpicUY.s page 14
 
 
DEFINED SYMBOLS
*ABS*:00000000 CamInterface.c
/tmp/cc4KZ7ps.s:3 *ABS*:0000003f __SREG__
/tmp/cc4KZ7ps.s:4 *ABS*:0000003e __SP_H__
/tmp/cc4KZ7ps.s:5 *ABS*:0000003d __SP_L__
/tmp/cc4KZ7ps.s:6 *ABS*:00000000 __tmp_reg__
/tmp/cc4KZ7ps.s:7 *ABS*:00000001 __zero_reg__
/tmp/cc4KZ7ps.s:89 .text:00000000 CamInt_resetCam
/tmp/cc4KZ7ps.s:106 .text:00000002 CamInt_init
/tmp/cc4KZ7ps.s:217 .noinit:00000000 colorMap
/tmp/ccnpicUY.s:2 *ABS*:0000003f __SREG__
/tmp/ccnpicUY.s:3 *ABS*:0000003e __SP_H__
/tmp/ccnpicUY.s:4 *ABS*:0000003d __SP_L__
/tmp/ccnpicUY.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccnpicUY.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccnpicUY.s:88 .text:00000000 CamInt_resetCam
/tmp/ccnpicUY.s:106 .text:00000002 CamInt_init
/tmp/ccnpicUY.s:218 .noinit:00000000 colorMap
*COM*:000000b0 currentLineBuffer
*COM*:000000b0 previousLineBuffer
 
/programy/C/avr/AVRcam/CamInterfaceAsm.lst
1,4 → 1,4
GAS LISTING /tmp/ccCMjSjd.s page 1
GAS LISTING /tmp/ccowxWMg.s page 1
 
 
1 # 1 "CamInterfaceAsm.S"
58,7 → 58,7
51 ; and is turned off when it isn't needed.
52
53 #include <avr/io.h>
GAS LISTING /tmp/ccCMjSjd.s page 2
GAS LISTING /tmp/ccowxWMg.s page 2
 
 
1 /* Copyright (c) 2002,2003,2005,2006, Marek Michalkiewicz, Joerg Wunsch
91,7 → 91,7
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29 POSSIBILITY OF SUCH DAMAGE. */
30
31 /* $Id: io.h,v 1.24.2.7 2006/04/19 16:53:25 aesok Exp $ */
31 /* $Id: io.h,v 1.24.2.9 2006/09/13 20:41:41 arcanum Exp $ */
32
33 /** \defgroup avr_io <avr/io.h>: AVR device-specific IO definitions
34 \code #include <avr/io.h> \endcode
118,7 → 118,7
55 function definitions as documented
56 \ref avr_signames "here".
57
GAS LISTING /tmp/ccCMjSjd.s page 3
GAS LISTING /tmp/ccowxWMg.s page 3
 
 
58 Finally, the following macros are defined:
178,7 → 178,7
26 INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27 CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28 ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
GAS LISTING /tmp/ccCMjSjd.s page 4
GAS LISTING /tmp/ccowxWMg.s page 4
 
 
29 POSSIBILITY OF SUCH DAMAGE. */
185,7 → 185,7
30
31 /* avr/sfr_defs.h - macros for accessing AVR special function registers */
32
33 /* $Id: sfr_defs.h,v 1.16 2005/09/10 21:31:13 joerg_wunsch Exp $ */
33 /* $Id: sfr_defs.h,v 1.16.2.2 2006/05/17 08:25:10 joerg_wunsch Exp $ */
34
35 #ifndef _AVR_SFR_DEFS_H_
36 #define _AVR_SFR_DEFS_H_ 1
196,54 → 196,54
41 The \c <avr/sfr_defs.h> file is included by all of the \c <avr/ioXXXX.h>
42 files, which use macros defined here to make the special function register
43 definitions look like C variables or simple constants, depending on the
44 <tt>_SFR_ASM_COMPAT</tt> define. Some examples from \c <avr/iom128.h> to
44 <tt>_SFR_ASM_COMPAT</tt> define. Some examples from \c <avr/iocanxx.h> to
45 show how to define such macros:
46
47 \code
48 #define PORTA _SFR_IO8(0x1b)
49 #define TCNT1 _SFR_IO16(0x2c)
50 #define PORTF _SFR_MEM8(0x61)
51 #define TCNT3 _SFR_MEM16(0x88)
52 \endcode
53
54 If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
55 <tt>PORTA</tt> directly in C expressions (also on the left side of
56 assignment operators) and GCC will do the right thing (use short I/O
57 instructions if possible). The \c __SFR_OFFSET definition is not used in
58 any way in this case.
59
60 Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
61 (addresses of the I/O registers). This is necessary when included in
62 preprocessed assembler (*.S) source files, so it is done automatically if
63 \c __ASSEMBLER__ is defined. By default, all addresses are defined as if
64 they were memory addresses (used in \c lds/sts instructions). To use these
65 addresses in \c in/out instructions, you must subtract 0x20 from them.
66
67 For more backwards compatibility, insert the following at the start of your
68 old assembler source file:
69
70 \code
71 #define __SFR_OFFSET 0
72 \endcode
73
74 This automatically subtracts 0x20 from I/O space addresses, but it's a
75 hack, so it is recommended to change your source: wrap such addresses in
76 macros defined here, as shown below. After this is done, the
77 <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
78
79 Real example - this code could be used in a boot loader that is portable
80 between devices with \c SPMCR at different addresses.
81
82 \verbatim
83 <avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
84 <avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
85 \endverbatim
GAS LISTING /tmp/ccCMjSjd.s page 5
48 #define PORTA _SFR_IO8(0x02)
49 #define EEAR _SFR_IO16(0x21)
50 #define UDR0 _SFR_MEM8(0xC6)
51 #define TCNT3 _SFR_MEM16(0x94)
52 #define CANIDT _SFR_MEM32(0xF0)
53 \endcode
54
55 If \c _SFR_ASM_COMPAT is not defined, C programs can use names like
56 <tt>PORTA</tt> directly in C expressions (also on the left side of
57 assignment operators) and GCC will do the right thing (use short I/O
58 instructions if possible). The \c __SFR_OFFSET definition is not used in
59 any way in this case.
60
61 Define \c _SFR_ASM_COMPAT as 1 to make these names work as simple constants
62 (addresses of the I/O registers). This is necessary when included in
63 preprocessed assembler (*.S) source files, so it is done automatically if
64 \c __ASSEMBLER__ is defined. By default, all addresses are defined as if
65 they were memory addresses (used in \c lds/sts instructions). To use these
66 addresses in \c in/out instructions, you must subtract 0x20 from them.
67
68 For more backwards compatibility, insert the following at the start of your
69 old assembler source file:
70
71 \code
72 #define __SFR_OFFSET 0
73 \endcode
74
75 This automatically subtracts 0x20 from I/O space addresses, but it's a
76 hack, so it is recommended to change your source: wrap such addresses in
77 macros defined here, as shown below. After this is done, the
78 <tt>__SFR_OFFSET</tt> definition is no longer necessary and can be removed.
79
80 Real example - this code could be used in a boot loader that is portable
81 between devices with \c SPMCR at different addresses.
82
83 \verbatim
84 <avr/iom163.h>: #define SPMCR _SFR_IO8(0x37)
85 <avr/iom128.h>: #define SPMCR _SFR_MEM8(0x68)
GAS LISTING /tmp/ccowxWMg.s page 5
 
 
86
87 \code
86 \endverbatim
87
87
88 #ifndef __AVR_HAVE_MOVW__
89 # if defined(__AVR_ENHANCED__) && __AVR_ENHANCED__
90 # define __AVR_HAVE_MOVW__ 1
298,7 → 298,7
139 #define YL r28
140 #define YH r29
141 #endif /* #if __AVR_ARCH__ != 1 */
GAS LISTING /tmp/ccCMjSjd.s page 6
GAS LISTING /tmp/ccowxWMg.s page 6
 
 
142 #define ZL r30
350,78 → 350,86
188 # include <avr/iom1280.h>
189 #elif defined (__AVR_ATmega1281__)
190 # include <avr/iom1281.h>
191 #elif defined (__AVR_AT90CAN32__)
192 # include <avr/iocan32.h>
193 #elif defined (__AVR_AT90CAN64__)
194 # include <avr/iocan64.h>
195 #elif defined (__AVR_AT90CAN128__)
196 # include <avr/iocan128.h>
197 #elif defined (__AVR_AT90USB646__)
198 # include <avr/iousb646.h>
GAS LISTING /tmp/ccCMjSjd.s page 7
191 #elif defined (__AVR_ATmega2560__)
192 # include <avr/iom2560.h>
193 #elif defined (__AVR_ATmega2561__)
194 # include <avr/iom2561.h>
195 #elif defined (__AVR_AT90CAN32__)
196 # include <avr/iocan32.h>
197 #elif defined (__AVR_AT90CAN64__)
198 # include <avr/iocan64.h>
GAS LISTING /tmp/ccowxWMg.s page 7
 
 
199 #elif defined (__AVR_AT90USB647__)
200 # include <avr/iousb647.h>
201 #elif defined (__AVR_AT90USB1286__)
202 # include <avr/iousb1286.h>
203 #elif defined (__AVR_AT90USB1287__)
204 # include <avr/iousb1287.h>
205 #elif defined (__AVR_ATmega64__)
206 # include <avr/iom64.h>
207 #elif defined (__AVR_ATmega640__)
208 # include <avr/iom640.h>
209 #elif defined (__AVR_ATmega644__)
210 # include <avr/iom644.h>
211 #elif defined (__AVR_ATmega644P__)
212 # include <avr/iom644.h>
213 #elif defined (__AVR_ATmega645__)
214 # include <avr/iom645.h>
215 #elif defined (__AVR_ATmega6450__)
216 # include <avr/iom6450.h>
217 #elif defined (__AVR_ATmega649__)
218 # include <avr/iom649.h>
219 #elif defined (__AVR_ATmega6490__)
220 # include <avr/iom6490.h>
221 #elif defined (__AVR_ATmega103__)
222 # include <avr/iom103.h>
223 #elif defined (__AVR_ATmega32__)
224 # include <avr/iom32.h>
225 #elif defined (__AVR_ATmega323__)
226 # include <avr/iom323.h>
227 #elif defined (__AVR_ATmega324P__)
228 # include <avr/iom324.h>
229 #elif defined (__AVR_ATmega325__)
230 # include <avr/iom325.h>
231 #elif defined (__AVR_ATmega3250__)
232 # include <avr/iom3250.h>
233 #elif defined (__AVR_ATmega329__)
234 # include <avr/iom329.h>
235 #elif defined (__AVR_ATmega3290__)
236 # include <avr/iom3290.h>
237 #elif defined (__AVR_ATmega406__)
238 # include <avr/iom406.h>
239 #elif defined (__AVR_ATmega16__)
240 # include <avr/iom16.h>
241 #elif defined (__AVR_ATmega161__)
242 # include <avr/iom161.h>
243 #elif defined (__AVR_ATmega162__)
244 # include <avr/iom162.h>
245 #elif defined (__AVR_ATmega163__)
246 # include <avr/iom163.h>
247 #elif defined (__AVR_ATmega164P__)
248 # include <avr/iom164.h>
249 #elif defined (__AVR_ATmega165__)
250 # include <avr/iom165.h>
251 #elif defined (__AVR_ATmega168__)
252 # include <avr/iom168.h>
253 #elif defined (__AVR_ATmega169__)
254 # include <avr/iom169.h>
255 #elif defined (__AVR_ATmega8__)
GAS LISTING /tmp/ccCMjSjd.s page 8
199 #elif defined (__AVR_AT90CAN128__)
200 # include <avr/iocan128.h>
201 #elif defined (__AVR_AT90USB646__)
202 # include <avr/iousb646.h>
203 #elif defined (__AVR_AT90USB647__)
204 # include <avr/iousb647.h>
205 #elif defined (__AVR_AT90USB1286__)
206 # include <avr/iousb1286.h>
207 #elif defined (__AVR_AT90USB1287__)
208 # include <avr/iousb1287.h>
209 #elif defined (__AVR_ATmega64__)
210 # include <avr/iom64.h>
211 #elif defined (__AVR_ATmega640__)
212 # include <avr/iom640.h>
213 #elif defined (__AVR_ATmega644__)
214 # include <avr/iom644.h>
215 #elif defined (__AVR_ATmega644P__)
216 # include <avr/iom644.h>
217 #elif defined (__AVR_ATmega645__)
218 # include <avr/iom645.h>
219 #elif defined (__AVR_ATmega6450__)
220 # include <avr/iom6450.h>
221 #elif defined (__AVR_ATmega649__)
222 # include <avr/iom649.h>
223 #elif defined (__AVR_ATmega6490__)
224 # include <avr/iom6490.h>
225 #elif defined (__AVR_ATmega103__)
226 # include <avr/iom103.h>
227 #elif defined (__AVR_ATmega32__)
228 # include <avr/iom32.h>
229 #elif defined (__AVR_ATmega323__)
230 # include <avr/iom323.h>
231 #elif defined (__AVR_ATmega324P__)
232 # include <avr/iom324.h>
233 #elif defined (__AVR_ATmega325__)
234 # include <avr/iom325.h>
235 #elif defined (__AVR_ATmega3250__)
236 # include <avr/iom3250.h>
237 #elif defined (__AVR_ATmega329__)
238 # include <avr/iom329.h>
239 #elif defined (__AVR_ATmega3290__)
240 # include <avr/iom3290.h>
241 #elif defined (__AVR_ATmega406__)
242 # include <avr/iom406.h>
243 #elif defined (__AVR_ATmega16__)
244 # include <avr/iom16.h>
245 #elif defined (__AVR_ATmega161__)
246 # include <avr/iom161.h>
247 #elif defined (__AVR_ATmega162__)
248 # include <avr/iom162.h>
249 #elif defined (__AVR_ATmega163__)
250 # include <avr/iom163.h>
251 #elif defined (__AVR_ATmega164P__)
252 # include <avr/iom164.h>
253 #elif defined (__AVR_ATmega165__)
254 # include <avr/iom165.h>
255 #elif defined (__AVR_ATmega165P__)
GAS LISTING /tmp/ccowxWMg.s page 8
 
 
256 # include <avr/iom8.h>
256 # include <avr/iom165p.h>
257 #elif defined (__AVR_ATmega168__)
258 # include <avr/iom168.h>
259 #elif defined (__AVR_ATmega169__)
260 # include <avr/iom169.h>
261 #elif defined (__AVR_ATmega169P__)
262 # include <avr/iom169p.h>
263 #elif defined (__AVR_ATmega8__)
264 # include <avr/iom8.h>
1 /* Copyright (c) 2002, Marek Michalkiewicz
2 All rights reserved.
3
470,6 → 478,9
46 #else
47 # error "Attempt to include more than one <avr/ioXXX.h> file."
48 #endif
GAS LISTING /tmp/ccowxWMg.s page 9
 
 
49
50 /* I/O registers */
51
478,9 → 489,6
54 #define TWSR _SFR_IO8(0x01)
55 #define TWAR _SFR_IO8(0x02)
56 #define TWDR _SFR_IO8(0x03)
GAS LISTING /tmp/ccCMjSjd.s page 9
 
 
57
58 /* ADC */
59 #define ADCW _SFR_IO16(0x04)
530,6 → 538,9
103
104 /* EEPROM Address Register */
105 #define EEAR _SFR_IO16(0x1E)
GAS LISTING /tmp/ccowxWMg.s page 10
 
 
106 #define EEARL _SFR_IO8(0x1E)
107 #define EEARH _SFR_IO8(0x1F)
108
538,9 → 549,6
111
112 #define WDTCR _SFR_IO8(0x21)
113 #define ASSR _SFR_IO8(0x22)
GAS LISTING /tmp/ccCMjSjd.s page 10
 
 
114
115 /* Timer 2 */
116 #define OCR2 _SFR_IO8(0x23)
590,6 → 598,9
160 /* 0x3D..0x3E SP */
161
162 /* 0x3F SREG */
GAS LISTING /tmp/ccowxWMg.s page 11
 
 
163
164 /* Interrupt vectors */
165
598,9 → 609,6
168 #define SIG_INTERRUPT0 _VECTOR(1)
169
170 /* External Interrupt Request 1 */
GAS LISTING /tmp/ccCMjSjd.s page 11
 
 
171 #define INT1_vect _VECTOR(2)
172 #define SIG_INTERRUPT1 _VECTOR(2)
173
650,6 → 658,9
217
218 /* ADC Conversion Complete */
219 #define ADC_vect _VECTOR(14)
GAS LISTING /tmp/ccowxWMg.s page 12
 
 
220 #define SIG_ADC _VECTOR(14)
221
222 /* EEPROM Ready */
658,9 → 669,6
225
226 /* Analog Comparator */
227 #define ANA_COMP_vect _VECTOR(16)
GAS LISTING /tmp/ccCMjSjd.s page 12
 
 
228 #define SIG_COMPARATOR _VECTOR(16)
229
230 /* 2-wire Serial Interface */
691,81 → 699,92
255 #define TICIE1 5
256 #define OCIE1A 4
257 #define OCIE1B 3
257 #elif defined (__AVR_ATmega48__)
258 # include <avr/iom48.h>
259 #elif defined (__AVR_ATmega88__)
260 # include <avr/iom88.h>
261 #elif defined (__AVR_ATmega8515__)
262 # include <avr/iom8515.h>
263 #elif defined (__AVR_ATmega8535__)
264 # include <avr/iom8535.h>
265 #elif defined (__AVR_AT90S8535__)
266 # include <avr/io8535.h>
267 #elif defined (__AVR_AT90C8534__)
268 # include <avr/io8534.h>
269 #elif defined (__AVR_AT90S8515__)
270 # include <avr/io8515.h>
271 #elif defined (__AVR_AT90S4434__)
272 # include <avr/io4434.h>
273 #elif defined (__AVR_AT90S4433__)
274 # include <avr/io4433.h>
275 #elif defined (__AVR_AT90S4414__)
276 # include <avr/io4414.h>
277 #elif defined (__AVR_ATtiny22__)
278 # include <avr/iotn22.h>
279 #elif defined (__AVR_ATtiny26__)
280 # include <avr/iotn26.h>
281 #elif defined (__AVR_AT90S2343__)
282 # include <avr/io2343.h>
283 #elif defined (__AVR_AT90S2333__)
GAS LISTING /tmp/ccCMjSjd.s page 13
258 #define TOIE1 2
259 /* bit 1 reserved (OCIE0?) */
260 #define TOIE0 0
261
262 /* TIFR */
263 #define OCF2 7
264 #define TOV2 6
265 #define ICF1 5
265 #elif defined (__AVR_ATmega48__)
266 # include <avr/iom48.h>
267 #elif defined (__AVR_ATmega88__)
268 # include <avr/iom88.h>
269 #elif defined (__AVR_ATmega8515__)
270 # include <avr/iom8515.h>
271 #elif defined (__AVR_ATmega8535__)
272 # include <avr/iom8535.h>
273 #elif defined (__AVR_AT90S8535__)
274 # include <avr/io8535.h>
275 #elif defined (__AVR_AT90C8534__)
GAS LISTING /tmp/ccowxWMg.s page 13
 
 
284 # include <avr/io2333.h>
285 #elif defined (__AVR_AT90S2323__)
286 # include <avr/io2323.h>
287 #elif defined (__AVR_AT90S2313__)
288 # include <avr/io2313.h>
289 #elif defined (__AVR_ATtiny2313__)
290 # include <avr/iotn2313.h>
291 #elif defined (__AVR_ATtiny13__)
292 # include <avr/iotn13.h>
293 #elif defined (__AVR_ATtiny25__)
294 # include <avr/iotn25.h>
295 #elif defined (__AVR_ATtiny45__)
296 # include <avr/iotn45.h>
297 #elif defined (__AVR_ATtiny85__)
298 # include <avr/iotn85.h>
299 #elif defined (__AVR_ATtiny24__)
300 # include <avr/iotn24.h>
301 #elif defined (__AVR_ATtiny44__)
302 # include <avr/iotn44.h>
303 #elif defined (__AVR_ATtiny84__)
304 # include <avr/iotn84.h>
305 #elif defined (__AVR_ATtiny261__)
306 # include <avr/iotn261.h>
307 #elif defined (__AVR_ATtiny461__)
308 # include <avr/iotn461.h>
309 #elif defined (__AVR_ATtiny861__)
310 # include <avr/iotn861.h>
311 /* avr1: the following only supported for assembler programs */
312 #elif defined (__AVR_ATtiny28__)
313 # include <avr/iotn28.h>
314 #elif defined (__AVR_AT90S1200__)
315 # include <avr/io1200.h>
316 #elif defined (__AVR_ATtiny15__)
317 # include <avr/iotn15.h>
318 #elif defined (__AVR_ATtiny12__)
319 # include <avr/iotn12.h>
320 #elif defined (__AVR_ATtiny11__)
321 # include <avr/iotn11.h>
322 #else
323 # if !defined(__COMPILING_AVR_LIBC__)
324 # warning "device type not defined"
325 # endif
326 #endif
327
328 #include <avr/portpins.h>
276 # include <avr/io8534.h>
277 #elif defined (__AVR_AT90S8515__)
278 # include <avr/io8515.h>
279 #elif defined (__AVR_AT90S4434__)
280 # include <avr/io4434.h>
281 #elif defined (__AVR_AT90S4433__)
282 # include <avr/io4433.h>
283 #elif defined (__AVR_AT90S4414__)
284 # include <avr/io4414.h>
285 #elif defined (__AVR_ATtiny22__)
286 # include <avr/iotn22.h>
287 #elif defined (__AVR_ATtiny26__)
288 # include <avr/iotn26.h>
289 #elif defined (__AVR_AT90S2343__)
290 # include <avr/io2343.h>
291 #elif defined (__AVR_AT90S2333__)
292 # include <avr/io2333.h>
293 #elif defined (__AVR_AT90S2323__)
294 # include <avr/io2323.h>
295 #elif defined (__AVR_AT90S2313__)
296 # include <avr/io2313.h>
297 #elif defined (__AVR_ATtiny2313__)
298 # include <avr/iotn2313.h>
299 #elif defined (__AVR_ATtiny13__)
300 # include <avr/iotn13.h>
301 #elif defined (__AVR_ATtiny25__)
302 # include <avr/iotn25.h>
303 #elif defined (__AVR_ATtiny45__)
304 # include <avr/iotn45.h>
305 #elif defined (__AVR_ATtiny85__)
306 # include <avr/iotn85.h>
307 #elif defined (__AVR_ATtiny24__)
308 # include <avr/iotn24.h>
309 #elif defined (__AVR_ATtiny44__)
310 # include <avr/iotn44.h>
311 #elif defined (__AVR_ATtiny84__)
312 # include <avr/iotn84.h>
313 #elif defined (__AVR_ATtiny261__)
314 # include <avr/iotn261.h>
315 #elif defined (__AVR_ATtiny461__)
316 # include <avr/iotn461.h>
317 #elif defined (__AVR_ATtiny861__)
318 # include <avr/iotn861.h>
319 /* avr1: the following only supported for assembler programs */
320 #elif defined (__AVR_ATtiny28__)
321 # include <avr/iotn28.h>
322 #elif defined (__AVR_AT90S1200__)
323 # include <avr/io1200.h>
324 #elif defined (__AVR_ATtiny15__)
325 # include <avr/iotn15.h>
326 #elif defined (__AVR_ATtiny12__)
327 # include <avr/iotn12.h>
328 #elif defined (__AVR_ATtiny11__)
329 # include <avr/iotn11.h>
330 #else
331 # if !defined(__COMPILING_AVR_LIBC__)
332 # warning "device type not defined"
GAS LISTING /tmp/ccowxWMg.s page 14
 
 
333 # endif
334 #endif
335
336 #include <avr/portpins.h>
1 /* Copyright (c) 2003 Theodore A. Roth
2 All rights reserved.
3
778,9 → 797,6
10 * Redistributions in binary form must reproduce the above copyright
11 notice, this list of conditions and the following disclaimer in
12 the documentation and/or other materials provided with the
GAS LISTING /tmp/ccCMjSjd.s page 14
 
 
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
822,6 → 838,9
51 #define PORT1 1
52 #define PORT0 0
53
GAS LISTING /tmp/ccowxWMg.s page 15
 
 
54 /* Port Data Direction Register (generic) */
55 #define DD7 7
56 #define DD6 6
838,9 → 857,6
67 #define PIN5 5
68 #define PIN4 4
69 #define PIN3 3
GAS LISTING /tmp/ccCMjSjd.s page 15
 
 
70 #define PIN2 2
71 #define PIN1 1
72 #define PIN0 0
882,6 → 898,9
108 #if defined(PB1)
109 # define PORTB1 PB1
110 #endif
GAS LISTING /tmp/ccowxWMg.s page 16
 
 
111 #if defined(PB2)
112 # define PORTB2 PB2
113 #endif
898,9 → 917,6
124 # define PORTB6 PB6
125 #endif
126 #if defined(PB7)
GAS LISTING /tmp/ccCMjSjd.s page 16
 
 
127 # define PORTB7 PB7
128 #endif
129
942,6 → 958,9
165 #if defined(PD2)
166 # define PORTD2 PD2
167 #endif
GAS LISTING /tmp/ccowxWMg.s page 17
 
 
168 #if defined(PD3)
169 # define PORTD3 PD3
170 #endif
958,9 → 977,6
181 # define PORTD7 PD7
182 #endif
183
GAS LISTING /tmp/ccCMjSjd.s page 17
 
 
184 /* PORT E */
185
186 #if defined(PE0)
1002,6 → 1018,9
222 #if defined(PF3)
223 # define PORTF3 PF3
224 #endif
GAS LISTING /tmp/ccowxWMg.s page 18
 
 
225 #if defined(PF4)
226 # define PORTF4 PF4
227 #endif
1018,9 → 1037,6
238 /* PORT G */
239
240 #if defined(PG0)
GAS LISTING /tmp/ccCMjSjd.s page 18
 
 
241 # define PORTG0 PG0
242 #endif
243 #if defined(PG1)
1062,6 → 1078,9
279 #if defined(PH4)
280 # define PORTH4 PH4
281 #endif
GAS LISTING /tmp/ccowxWMg.s page 19
 
 
282 #if defined(PH5)
283 # define PORTH5 PH5
284 #endif
1078,9 → 1097,6
295 # define PORTJ0 PJ0
296 #endif
297 #if defined(PJ1)
GAS LISTING /tmp/ccCMjSjd.s page 19
 
 
298 # define PORTJ1 PJ1
299 #endif
300 #if defined(PJ2)
1113,16 → 1129,27
327 #if defined(PK2)
328 # define PORTK2 PK2
329 #endif
329
330 #if __AVR_ARCH__ != 1
331 # if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__)
332 # undef SP
333 # define SP _SFR_IO8(0x3D)
334 # undef SPH
330 #if defined(PK3)
331 # define PORTK3 PK3
332 #endif
333 #if defined(PK4)
334 # define PORTK4 PK4
335 # endif
336 #endif
336 #if defined(PK5)
337 # define PORTK5 PK5
337
338 #include <avr/version.h>
GAS LISTING /tmp/ccowxWMg.s page 20
 
 
338 #if __AVR_ARCH__ != 1
339 # if XRAMEND < 0x100 && !defined(__COMPILING_AVR_LIBC__)
340 # undef SP
341 # define SP _SFR_IO8(0x3D)
342 # undef SPH
343 # endif
344 #endif
345
346 #include <avr/version.h>
1 /* Copyright (c) 2005, Joerg Wunsch -*- c -*-
2 All rights reserved.
3
1138,9 → 1165,6
13 distribution.
14
15 * Neither the name of the copyright holders nor the names of
GAS LISTING /tmp/ccCMjSjd.s page 20
 
 
16 contributors may be used to endorse or promote products derived
17 from this software without specific prior written permission.
18
1174,6 → 1198,9
46 portable tests can be implemented using \c <avr/io.h> that can be
47 used in code that wants to remain backwards-compatible to library
48 versions prior to the date when the library version API had been
GAS LISTING /tmp/ccowxWMg.s page 21
 
 
49 added, as referenced but undefined C preprocessor macros
50 automatically evaluate to 0.
51 */
1183,7 → 1210,7
55
56 /** \ingroup avr_version
57 String literal representation of the current library version. */
58 #define __AVR_LIBC_VERSION_STRING__ "1.4.4"
58 #define __AVR_LIBC_VERSION_STRING__ "1.4.5"
59
60 /** \ingroup avr_version
61 Numerical representation of the current library version.
1193,18 → 1220,15
65 added. It is intented to provide a monotonically increasing
66 numerical value that can easily be used in numerical checks.
67 */
68 #define __AVR_LIBC_VERSION__ 10404UL
68 #define __AVR_LIBC_VERSION__ 10405UL
69
70 /** \ingroup avr_version
71 String literal representation of the release date. */
72 #define __AVR_LIBC_DATE_STRING__ "20060420"
GAS LISTING /tmp/ccCMjSjd.s page 21
 
 
72 #define __AVR_LIBC_DATE_STRING__ "20061009"
73
74 /** \ingroup avr_version
75 Numerical representation of the release date. */
76 #define __AVR_LIBC_DATE_ 20060420UL
76 #define __AVR_LIBC_DATE_ 20061009UL
77
78 /** \ingroup avr_version
79 Library major version number. */
1216,11 → 1240,11
85
86 /** \ingroup avr_version
87 Library revision number. */
88 #define __AVR_LIBC_REVISION__ 4
88 #define __AVR_LIBC_REVISION__ 5
89
90 #endif /* _AVR_VERSION_H_ */
91 ...
339
347
54 #include "Events.h"
1 #ifndef EVENTS_H
2 #define EVENTS_H
1234,6 → 1258,9
10 modify it under the terms of the GNU General Public
11 License as published by the Free Software Foundation; either
12 version 2 of the License, or (at your option) any later version.
GAS LISTING /tmp/ccowxWMg.s page 22
 
 
13
14 This program is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
1258,9 → 1285,6
34 Description: This file provides the external interface
35 to the events that can be published/processed in the
36 system. It is specifically by itself (and nothing
GAS LISTING /tmp/ccCMjSjd.s page 22
 
 
37 else should be defined in here) so that both .c and
38 .S (assembly) files can include this file without
39 a problem.
1294,6 → 1318,9
66 ; to overflow after 176 (horizontal) pixels
67
68 #define RED_MEM_OFFSET 0x00
GAS LISTING /tmp/ccowxWMg.s page 23
 
 
69 #define GREEN_MEM_OFFSET 0x10
70 #define BLUE_MEM_OFFSET 0x20
71
1318,9 → 1345,6
90
91 ; As pixel blocks are sampled, the red, green, and blue values are
92 ; used to index into their respective color maps. The color maps
GAS LISTING /tmp/ccCMjSjd.s page 23
 
 
93 ; return values that can be logically ANDed together so that a
94 ; particular RGB triplet will result in a single bit being set
95 ; after the AND operation. This single bit indicates which color
1354,6 → 1378,9
123 tmp2 = 20
124 color = 19
125 greenData = 20
GAS LISTING /tmp/ccowxWMg.s page 24
 
 
126 blueData = 21
127 colorMapLow = 22
128 colorMapHigh = 23
1378,9 → 1405,6
147 ;*****************************************************************
148 ; Function Name: CamIntAsm_waitForNewTrackingFrame
149 ; Function Description: This function is responsible for
GAS LISTING /tmp/ccCMjSjd.s page 24
 
 
150 ; going to sleep until a new frame begins (indicated by
151 ; VSYNC transitioning from low to high. This will wake
152 ; the "VSYNC sleep" up and allow it to continue with
1414,6 → 1438,9
180:CamInterfaceAsm.S **** brts _cleanUp
181 ;sbi _SFR_IO_ADDR(PORTD),PD6 ; For testing...
182 ;cbi _SFR_IO_ADDR(PORTD),PD6
GAS LISTING /tmp/ccowxWMg.s page 25
 
 
183
184:CamInterfaceAsm.S **** in tmp1,_SFR_IO_ADDR(TCCR1B) ; Enable the PCLK line to actually
185:CamInterfaceAsm.S **** ori tmp1, 0x07 ; feed Timer1
1438,9 → 1465,6
204:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TIMSK),tmp1 ; overflow
205
206:CamInterfaceAsm.S **** ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
GAS LISTING /tmp/ccCMjSjd.s page 25
 
 
207:CamInterfaceAsm.S **** ldi tmp2,0xFF ; interrupts) after 176 pixels
208:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TCNT1H),tmp2
209:CamInterfaceAsm.S **** out _SFR_IO_ADDR(TCNT1L),tmp1
1474,6 → 1498,9
237 ; of NOPs was determined emperically by trial and error.
238:CamInterfaceAsm.S **** nop
239:CamInterfaceAsm.S **** nop
GAS LISTING /tmp/ccowxWMg.s page 26
 
 
240 _acquirePixelBlock: ; Clock Cycle Count
241:CamInterfaceAsm.S **** in ZL,RB_PORT ; sample the red value (PINB) (1)
242:CamInterfaceAsm.S **** in YL,G_PORT ; sample the green value (PINC) (1)
1498,9 → 1525,6
261:CamInterfaceAsm.S **** sbi _SFR_IO_ADDR(PORTD),PD6
262:CamInterfaceAsm.S **** nop
263:CamInterfaceAsm.S **** cbi _SFR_IO_ADDR(PORTD),PD6
GAS LISTING /tmp/ccCMjSjd.s page 26
 
 
264
265:CamInterfaceAsm.S **** mov tmp2,pixelRunStart ; get the count value of the
266 ; current pixel run
1534,6 → 1558,9
294 ; get a EV_SERIAL_DATA_RECEIVED event, and the T bit set so we will end the
295 ; line's processing...however, the PCLK will keep on ticking for the rest of
296 ; the frame/line, which will cause the TCNT to eventually overflow and
GAS LISTING /tmp/ccowxWMg.s page 27
 
 
297 ; interrupt us, generating a EV_ACQUIRE_LINE_COMPLETE event. We don't want
298 ; this, so we need to actually turn off the PCLK counting each time we exit
299 ; this loop, and only turn it on when we begin acquiring lines....
1558,9 → 1585,6
318
319 ;*****************************************************************
320 ; Function Name: CamIntAsm_waitForNewDumpFrame
GAS LISTING /tmp/ccCMjSjd.s page 27
 
 
321 ; Function Description: This function is responsible for
322 ; going to sleep until a new frame begins (indicated by
323 ; VSYNC transitioning from low to high. This will wake
1594,6 → 1618,9
351:CamInterfaceAsm.S **** mov XL,currLineBuffLow ; buffer into the X pointer regs
352
353:CamInterfaceAsm.S **** mov YH,prevLineBuffHigh ; Load the pointer to the previous line
GAS LISTING /tmp/ccowxWMg.s page 28
 
 
354:CamInterfaceAsm.S **** mov YL,prevLineBuffLow ; buffer into the Y pointer regs
355
356:CamInterfaceAsm.S **** ldi tmp1,PIXEL_RUN_START_INITIAL ; set up the TCNT1 to overflow (and
1618,9 → 1645,6
375
376 ;*******************************************************************************************
377 ; Dump Frame handler
GAS LISTING /tmp/ccCMjSjd.s page 28
 
 
378 ;*******************************************************************************************
379
380 _dumpFrame:
1654,6 → 1678,9
408
409 ; if we make it here, it means the T flag is set, and we must have been interrupted
410 ; so we need to exit (what if we were interrupted for serial? should we disable it?)
GAS LISTING /tmp/ccowxWMg.s page 29
 
 
411:CamInterfaceAsm.S **** rjmp _cleanUpDumpLine
412
413 ;***********************************************************
1678,9 → 1705,6
432 ; whenever the HREF transitions (meaning the pixels
433 ; are starting after VSYNC transitioned, and we need to
434 ; start acquiring the pixel blocks
GAS LISTING /tmp/ccCMjSjd.s page 29
 
 
435 ; Inputs: none
436 ; Outputs: none
437 ;***********************************************************
1714,6 → 1738,9
465 ; Function Name: <interrupt handler for Timer1 overflow>
466 ; Function Description: This function is responsible
467 ; for handling the Timer1 overflow (hooked up to indicate
GAS LISTING /tmp/ccowxWMg.s page 30
 
 
468 ; when we have reached the end of a line of pixel data,
469 ; since PCLK is hooked up to overflow TCNT1 after 176
470 ; pixels). This routine generates an acquire line complete
1737,7 → 1764,7
488:CamInterfaceAsm.S **** reti
489
490 .end
GAS LISTING /tmp/ccCMjSjd.s page 30
GAS LISTING /tmp/ccowxWMg.s page 31
 
 
DEFINED SYMBOLS
/programy/C/avr/AVRcam/DebugInterface.lst
1,86 → 1,85
GAS LISTING /tmp/ccz6pioi.s page 1
GAS LISTING /tmp/cchJhRKj.s page 1
 
 
1 .file "DebugInterface.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "DebugInterface.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "CommonDefs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
34 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
35 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
36 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
37 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
38 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
39 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
40 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
41 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
42 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
43 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
44 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
45 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
46 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
47 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
48 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
49 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
50 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
51 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
52 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
53 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
54 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
55 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
56 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
57 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
GAS LISTING /tmp/ccz6pioi.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "DebugInterface.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "CommonDefs.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/interrupt.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
34 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
35 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
36 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
37 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
38 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
39 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
40 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
41 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
42 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
43 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
44 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
45 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
46 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
47 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
48 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
49 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
50 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
51 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
52 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
53 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
54 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
55 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
56 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
57 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
GAS LISTING /tmp/cchJhRKj.s page 2
 
 
58 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
59 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
60 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
61 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
62 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
63 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
64 .stabn 162,0,0,0
65 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
66 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
58 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
59 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
60 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
61 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
62 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
63 .stabn 162,0,0,0
64 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
65 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabn 162,0,0,0
69 .stabn 162,0,0,0
70 .stabn 162,0,0,0
71 .stabs "bool_t:t(1,1)=(0,11)",128,0,56,0
72 .stabn 162,0,0,0
73 .stabs "DebugInt_init:F(0,15)",36,0,71,DebugInt_init
74 .global DebugInt_init
75 .type DebugInt_init, @function
76 DebugInt_init:
77 .stabd 46,0,0
70 .stabs "bool_t:t(1,1)=(0,11)",128,0,56,0
71 .stabn 162,0,0,0
72 .stabs "DebugInt_init:F(0,15)",36,0,71,DebugInt_init
73 .global DebugInt_init
74 .type DebugInt_init, @function
75 DebugInt_init:
76 .stabd 46,0,0
1:DebugInterface.c **** /*
2:DebugInterface.c **** Copyright (C) 2004 John Orlando
3:DebugInterface.c ****
118,10 → 117,10
35:DebugInterface.c **** addition to the LED hooked up at PORTD bit 6.
36:DebugInterface.c ****
37:DebugInterface.c **** Revision History:
GAS LISTING /tmp/ccz6pioi.s page 3
38:DebugInterface.c **** Date Rel Ver. Notes
GAS LISTING /tmp/cchJhRKj.s page 3
 
 
38:DebugInterface.c **** Date Rel Ver. Notes
39:DebugInterface.c **** 4/10/2004 0.1 Module created
40:DebugInterface.c **** 6/30/2004 1.0 Initial release for Circuit Cellar
41:DebugInterface.c **** contest.
155,81 → 154,82
69:DebugInterface.c **** ***********************************************************/
70:DebugInterface.c **** void DebugInt_init(void)
71:DebugInterface.c **** {
78 .stabn 68,0,71,.LM0-DebugInt_init
79 .LM0:
77 .stabn 68,0,71,.LM0-.LFBB1
78 .LM0:
79 .LFBB1:
80 /* prologue: frame size=0 */
81 /* prologue end (size=0) */
72:DebugInterface.c **** /* set PortD pin6 for output */
73:DebugInterface.c **** DDRD |= 0x40;
82 .stabn 68,0,73,.LM1-DebugInt_init
82 .stabn 68,0,73,.LM1-.LFBB1
83 .LM1:
84 0000 8E9A sbi 49-0x20,6
74:DebugInterface.c **** /* turn on LED */
75:DebugInterface.c **** PORTD |= 0x40;
85 .stabn 68,0,75,.LM2-DebugInt_init
85 .stabn 68,0,75,.LM2-.LFBB1
86 .LM2:
87 0002 969A sbi 50-0x20,6
76:DebugInterface.c **** Utility_delay(500);
88 .stabn 68,0,76,.LM3-DebugInt_init
88 .stabn 68,0,76,.LM3-.LFBB1
89 .LM3:
90 0004 84EF ldi r24,lo8(500)
91 0006 91E0 ldi r25,hi8(500)
92 0008 00D0 rcall Utility_delay
77:DebugInterface.c **** PORTD &= 0xBF;
93 .stabn 68,0,77,.LM4-DebugInt_init
93 .stabn 68,0,77,.LM4-.LFBB1
94 .LM4:
GAS LISTING /tmp/ccz6pioi.s page 4
GAS LISTING /tmp/cchJhRKj.s page 4
 
 
95 000a 9698 cbi 50-0x20,6
78:DebugInterface.c **** Utility_delay(500);
96 .stabn 68,0,78,.LM5-DebugInt_init
96 .stabn 68,0,78,.LM5-.LFBB1
97 .LM5:
98 000c 84EF ldi r24,lo8(500)
99 000e 91E0 ldi r25,hi8(500)
100 0010 00D0 rcall Utility_delay
79:DebugInterface.c **** PORTD |= 0x40;
101 .stabn 68,0,79,.LM6-DebugInt_init
101 .stabn 68,0,79,.LM6-.LFBB1
102 .LM6:
103 0012 969A sbi 50-0x20,6
80:DebugInterface.c **** Utility_delay(500);
104 .stabn 68,0,80,.LM7-DebugInt_init
104 .stabn 68,0,80,.LM7-.LFBB1
105 .LM7:
106 0014 84EF ldi r24,lo8(500)
107 0016 91E0 ldi r25,hi8(500)
108 0018 00D0 rcall Utility_delay
81:DebugInterface.c **** PORTD &= 0xBF;
109 .stabn 68,0,81,.LM8-DebugInt_init
109 .stabn 68,0,81,.LM8-.LFBB1
110 .LM8:
111 001a 9698 cbi 50-0x20,6
82:DebugInterface.c **** Utility_delay(500);
112 .stabn 68,0,82,.LM9-DebugInt_init
112 .stabn 68,0,82,.LM9-.LFBB1
113 .LM9:
114 001c 84EF ldi r24,lo8(500)
115 001e 91E0 ldi r25,hi8(500)
116 0020 00D0 rcall Utility_delay
83:DebugInterface.c **** PORTD |= 0x40;
117 .stabn 68,0,83,.LM10-DebugInt_init
117 .stabn 68,0,83,.LM10-.LFBB1
118 .LM10:
119 0022 969A sbi 50-0x20,6
84:DebugInterface.c **** Utility_delay(500);
120 .stabn 68,0,84,.LM11-DebugInt_init
120 .stabn 68,0,84,.LM11-.LFBB1
121 .LM11:
122 0024 84EF ldi r24,lo8(500)
123 0026 91E0 ldi r25,hi8(500)
124 0028 00D0 rcall Utility_delay
85:DebugInterface.c **** PORTD &= 0xBF;
125 .stabn 68,0,85,.LM12-DebugInt_init
125 .stabn 68,0,85,.LM12-.LFBB1
126 .LM12:
127 002a 9698 cbi 50-0x20,6
86:DebugInterface.c **** Utility_delay(500);
128 .stabn 68,0,86,.LM13-DebugInt_init
128 .stabn 68,0,86,.LM13-.LFBB1
129 .LM13:
130 002c 84EF ldi r24,lo8(500)
131 002e 91E0 ldi r25,hi8(500)
132 0030 00D0 rcall Utility_delay
87:DebugInterface.c **** PORTD |= 0x40;
133 .stabn 68,0,87,.LM14-DebugInt_init
133 .stabn 68,0,87,.LM14-.LFBB1
134 .LM14:
135 0032 969A sbi 50-0x20,6
136 /* epilogue: frame size=0 */
237,26 → 237,26
138 /* epilogue end (size=1) */
139 /* function DebugInt_init size 27 (26) */
140 .size DebugInt_init, .-DebugInt_init
141 .Lscope0:
GAS LISTING /tmp/ccz6pioi.s page 5
141 .Lscope1:
GAS LISTING /tmp/cchJhRKj.s page 5
 
 
142 .stabs "",36,0,0,.Lscope0-DebugInt_init
142 .stabs "",36,0,0,.Lscope1-.LFBB1
143 .stabd 78,0,0
144 .stabs "",100,0,0,.Letext0
145 .Letext0:
146 /* File "DebugInterface.c": code 27 = 0x001b ( 26), prologues 0, epilogues 1 */
GAS LISTING /tmp/ccz6pioi.s page 6
GAS LISTING /tmp/cchJhRKj.s page 6
 
 
DEFINED SYMBOLS
*ABS*:00000000 DebugInterface.c
/tmp/ccz6pioi.s:3 *ABS*:0000003f __SREG__
/tmp/ccz6pioi.s:4 *ABS*:0000003e __SP_H__
/tmp/ccz6pioi.s:5 *ABS*:0000003d __SP_L__
/tmp/ccz6pioi.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccz6pioi.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccz6pioi.s:76 .text:00000000 DebugInt_init
/tmp/cchJhRKj.s:2 *ABS*:0000003f __SREG__
/tmp/cchJhRKj.s:3 *ABS*:0000003e __SP_H__
/tmp/cchJhRKj.s:4 *ABS*:0000003d __SP_L__
/tmp/cchJhRKj.s:5 *ABS*:00000000 __tmp_reg__
/tmp/cchJhRKj.s:6 *ABS*:00000001 __zero_reg__
/tmp/cchJhRKj.s:75 .text:00000000 DebugInt_init
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/Executive.lst
1,101 → 1,100
GAS LISTING /tmp/ccYxWDEV.s page 1
GAS LISTING /tmp/ccYEZtaB.s page 1
 
 
1 .file "Executive.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "Executive.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
32 .stabs "size_t:t(2,1)=(0,4)",128,0,214,0
33 .stabs "wchar_t:t(2,2)=(0,1)",128,0,326,0
34 .stabn 162,0,0,0
35 .stabs "div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
36 .stabs "ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
37 .stabs "__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
38 .stabn 162,0,0,0
39 .stabs "CommonDefs.h",130,0,0,0
40 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
41 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
42 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
43 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
44 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
45 .stabs "int8_t:t(8,1)=(0,10)",128,0,116,0
46 .stabs "uint8_t:t(8,2)=(0,11)",128,0,117,0
47 .stabs "int16_t:t(8,3)=(0,1)",128,0,118,0
48 .stabs "uint16_t:t(8,4)=(0,4)",128,0,119,0
49 .stabs "int32_t:t(8,5)=(0,3)",128,0,120,0
50 .stabs "uint32_t:t(8,6)=(0,5)",128,0,121,0
51 .stabs "int64_t:t(8,7)=(0,6)",128,0,122,0
52 .stabs "uint64_t:t(8,8)=(0,7)",128,0,123,0
53 .stabs "intptr_t:t(8,9)=(8,3)",128,0,135,0
54 .stabs "uintptr_t:t(8,10)=(8,4)",128,0,140,0
55 .stabs "int_least8_t:t(8,11)=(8,1)",128,0,152,0
56 .stabs "uint_least8_t:t(8,12)=(8,2)",128,0,157,0
57 .stabs "int_least16_t:t(8,13)=(8,3)",128,0,162,0
GAS LISTING /tmp/ccYxWDEV.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "Executive.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
31 .stabs "size_t:t(2,1)=(0,4)",128,0,214,0
32 .stabs "wchar_t:t(2,2)=(0,1)",128,0,326,0
33 .stabn 162,0,0,0
34 .stabs "div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
35 .stabs "ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
36 .stabs "__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
37 .stabn 162,0,0,0
38 .stabs "CommonDefs.h",130,0,0,0
39 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/interrupt.h",130,0,0,0
40 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
41 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
42 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
43 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
44 .stabs "int8_t:t(8,1)=(0,10)",128,0,116,0
45 .stabs "uint8_t:t(8,2)=(0,11)",128,0,117,0
46 .stabs "int16_t:t(8,3)=(0,1)",128,0,118,0
47 .stabs "uint16_t:t(8,4)=(0,4)",128,0,119,0
48 .stabs "int32_t:t(8,5)=(0,3)",128,0,120,0
49 .stabs "uint32_t:t(8,6)=(0,5)",128,0,121,0
50 .stabs "int64_t:t(8,7)=(0,6)",128,0,122,0
51 .stabs "uint64_t:t(8,8)=(0,7)",128,0,123,0
52 .stabs "intptr_t:t(8,9)=(8,3)",128,0,135,0
53 .stabs "uintptr_t:t(8,10)=(8,4)",128,0,140,0
54 .stabs "int_least8_t:t(8,11)=(8,1)",128,0,152,0
55 .stabs "uint_least8_t:t(8,12)=(8,2)",128,0,157,0
56 .stabs "int_least16_t:t(8,13)=(8,3)",128,0,162,0
57 .stabs "uint_least16_t:t(8,14)=(8,4)",128,0,167,0
GAS LISTING /tmp/ccYEZtaB.s page 2
 
 
58 .stabs "uint_least16_t:t(8,14)=(8,4)",128,0,167,0
59 .stabs "int_least32_t:t(8,15)=(8,5)",128,0,172,0
60 .stabs "uint_least32_t:t(8,16)=(8,6)",128,0,177,0
61 .stabs "int_least64_t:t(8,17)=(8,7)",128,0,182,0
62 .stabs "uint_least64_t:t(8,18)=(8,8)",128,0,187,0
63 .stabs "int_fast8_t:t(8,19)=(8,1)",128,0,200,0
64 .stabs "uint_fast8_t:t(8,20)=(8,2)",128,0,205,0
65 .stabs "int_fast16_t:t(8,21)=(8,3)",128,0,210,0
66 .stabs "uint_fast16_t:t(8,22)=(8,4)",128,0,215,0
67 .stabs "int_fast32_t:t(8,23)=(8,5)",128,0,220,0
68 .stabs "uint_fast32_t:t(8,24)=(8,6)",128,0,225,0
69 .stabs "int_fast64_t:t(8,25)=(8,7)",128,0,230,0
70 .stabs "uint_fast64_t:t(8,26)=(8,8)",128,0,235,0
71 .stabs "intmax_t:t(8,27)=(8,7)",128,0,249,0
72 .stabs "uintmax_t:t(8,28)=(8,8)",128,0,254,0
73 .stabn 162,0,0,0
74 .stabs "int_farptr_t:t(7,1)=(8,5)",128,0,76,0
75 .stabs "uint_farptr_t:t(7,2)=(8,6)",128,0,80,0
58 .stabs "int_least32_t:t(8,15)=(8,5)",128,0,172,0
59 .stabs "uint_least32_t:t(8,16)=(8,6)",128,0,177,0
60 .stabs "int_least64_t:t(8,17)=(8,7)",128,0,182,0
61 .stabs "uint_least64_t:t(8,18)=(8,8)",128,0,187,0
62 .stabs "int_fast8_t:t(8,19)=(8,1)",128,0,200,0
63 .stabs "uint_fast8_t:t(8,20)=(8,2)",128,0,205,0
64 .stabs "int_fast16_t:t(8,21)=(8,3)",128,0,210,0
65 .stabs "uint_fast16_t:t(8,22)=(8,4)",128,0,215,0
66 .stabs "int_fast32_t:t(8,23)=(8,5)",128,0,220,0
67 .stabs "uint_fast32_t:t(8,24)=(8,6)",128,0,225,0
68 .stabs "int_fast64_t:t(8,25)=(8,7)",128,0,230,0
69 .stabs "uint_fast64_t:t(8,26)=(8,8)",128,0,235,0
70 .stabs "intmax_t:t(8,27)=(8,7)",128,0,249,0
71 .stabs "uintmax_t:t(8,28)=(8,8)",128,0,254,0
72 .stabn 162,0,0,0
73 .stabs "int_farptr_t:t(7,1)=(8,5)",128,0,76,0
74 .stabs "uint_farptr_t:t(7,2)=(8,6)",128,0,80,0
75 .stabn 162,0,0,0
76 .stabn 162,0,0,0
77 .stabn 162,0,0,0
78 .stabn 162,0,0,0
79 .stabn 162,0,0,0
80 .stabs "bool_t:t(3,1)=(0,11)",128,0,56,0
81 .stabn 162,0,0,0
82 .stabs "CamConfig.h",130,0,0,0
83 .stabs "I2CInterface.h",130,0,0,0
84 .stabs "i2cCmd_t:t(10,1)=(10,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
79 .stabs "bool_t:t(3,1)=(0,11)",128,0,56,0
80 .stabn 162,0,0,0
81 .stabs "CamConfig.h",130,0,0,0
82 .stabs "I2CInterface.h",130,0,0,0
83 .stabs "i2cCmd_t:t(10,1)=(10,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
84 .stabn 162,0,0,0
85 .stabn 162,0,0,0
86 .stabn 162,0,0,0
87 .stabs "Exec_writeEventFifo:F(0,15)",36,0,208,Exec_writeEventFifo
88 .stabs "event:P(0,11)",64,0,207,24
89 .global Exec_writeEventFifo
90 .type Exec_writeEventFifo, @function
91 Exec_writeEventFifo:
92 .stabd 46,0,0
86 .stabs "Exec_writeEventFifo:F(0,15)",36,0,208,Exec_writeEventFifo
87 .stabs "event:P(0,11)",64,0,207,24
88 .global Exec_writeEventFifo
89 .type Exec_writeEventFifo, @function
90 Exec_writeEventFifo:
91 .stabd 46,0,0
1:Executive.c **** /*
2:Executive.c **** Copyright (C) 2004 John Orlando
3:Executive.c ****
118,10 → 117,10
20:Executive.c **** For more information on the AVRcam, please contact:
21:Executive.c ****
22:Executive.c **** john@jrobot.net
GAS LISTING /tmp/ccYxWDEV.s page 3
23:Executive.c ****
GAS LISTING /tmp/ccYEZtaB.s page 3
 
 
23:Executive.c ****
24:Executive.c **** or go to www.jrobot.net for more details regarding the system.
25:Executive.c **** */
26:Executive.c **** /***********************************************************
178,10 → 177,10
77:Executive.c **** #define IS_DATA_IN_EVENT_FIFO() (!(Exec_eventFifoHead == Exec_eventFifoTail))
78:Executive.c **** /***********************************************************
79:Executive.c **** Function Name: Exec_run
GAS LISTING /tmp/ccYxWDEV.s page 4
80:Executive.c **** Function Description: This function is responsible for
GAS LISTING /tmp/ccYEZtaB.s page 4
 
 
80:Executive.c **** Function Description: This function is responsible for
81:Executive.c **** running the main control loop. The control loop is
82:Executive.c **** based on checking both the fast-event bitmask (for high
83:Executive.c **** priority events) and the event FIFO to determine if an
238,10 → 237,10
134:Executive.c **** case (EV_ENABLE_TRACKING):
135:Executive.c **** FrameMgr_dispatchEvent(eventGenerated);
136:Executive.c **** break;
GAS LISTING /tmp/ccYxWDEV.s page 5
137:Executive.c ****
GAS LISTING /tmp/ccYEZtaB.s page 5
 
 
137:Executive.c ****
138:Executive.c **** case (EV_DISABLE_TRACKING):
139:Executive.c **** FrameMgr_dispatchEvent(eventGenerated);
140:Executive.c **** break;
298,10 → 297,10
191:Executive.c **** dataByte = Exec_eventFifo[Exec_eventFifoTail];
192:Executive.c **** tmpTail = (Exec_eventFifoTail+1) & (EXEC_EVENT_FIFO_MASK);
193:Executive.c **** Exec_eventFifoTail = tmpTail;
GAS LISTING /tmp/ccYxWDEV.s page 6
194:Executive.c **** ENABLE_INTS();
GAS LISTING /tmp/ccYEZtaB.s page 6
 
 
194:Executive.c **** ENABLE_INTS();
195:Executive.c ****
196:Executive.c **** return(dataByte);
197:Executive.c **** }
316,19 → 315,20
206:Executive.c **** ***********************************************************/
207:Executive.c **** void Exec_writeEventFifo(unsigned char event)
208:Executive.c **** {
93 .stabn 68,0,208,.LM0-Exec_writeEventFifo
94 .LM0:
92 .stabn 68,0,208,.LM0-.LFBB1
93 .LM0:
94 .LFBB1:
95 /* prologue: frame size=0 */
96 /* prologue end (size=0) */
209:Executive.c **** unsigned char tmpHead;
210:Executive.c ****
211:Executive.c **** DISABLE_INTS();
97 .stabn 68,0,211,.LM1-Exec_writeEventFifo
97 .stabn 68,0,211,.LM1-.LFBB1
98 .LM1:
99 /* #APP */
100 0000 F894 cli
212:Executive.c **** Exec_eventFifo[Exec_eventFifoHead] = event;
101 .stabn 68,0,212,.LM2-Exec_writeEventFifo
101 .stabn 68,0,212,.LM2-.LFBB1
102 .LM2:
103 /* #NOAPP */
104 0002 9091 0000 lds r25,Exec_eventFifoHead
341,13 → 341,13
214:Executive.c **** /* now move the head up */
215:Executive.c **** tmpHead = (Exec_eventFifoHead + 1) & (EXEC_EVENT_FIFO_MASK);
216:Executive.c **** Exec_eventFifoHead = tmpHead;
110 .stabn 68,0,216,.LM3-Exec_writeEventFifo
110 .stabn 68,0,216,.LM3-.LFBB1
111 .LM3:
112 0010 9F5F subi r25,lo8(-(1))
113 0012 9770 andi r25,lo8(7)
114 0014 9093 0000 sts Exec_eventFifoHead,r25
217:Executive.c **** ENABLE_INTS();
115 .stabn 68,0,217,.LM4-Exec_writeEventFifo
115 .stabn 68,0,217,.LM4-.LFBB1
116 .LM4:
117 /* #APP */
118 0018 7894 sei
357,11 → 357,11
122 /* epilogue end (size=1) */
123 /* function Exec_writeEventFifo size 16 (15) */
124 .size Exec_writeEventFifo, .-Exec_writeEventFifo
125 .Lscope0:
GAS LISTING /tmp/ccYxWDEV.s page 7
125 .Lscope1:
GAS LISTING /tmp/ccYEZtaB.s page 7
 
 
126 .stabs "",36,0,0,.Lscope0-Exec_writeEventFifo
126 .stabs "",36,0,0,.Lscope1-.LFBB1
127 .stabd 78,0,0
128 .stabs "Exec_run:F(0,15)",36,0,90,Exec_run
129 .global Exec_run
368,264 → 368,274
130 .type Exec_run, @function
131 Exec_run:
132 .stabd 46,0,0
133 .stabn 68,0,90,.LM5-Exec_run
133 .stabn 68,0,90,.LM5-.LFBB2
134 .LM5:
135 /* prologue: frame size=0 */
136 /* prologue end (size=0) */
137 .L30:
138 .stabn 68,0,95,.LM6-Exec_run
139 .LM6:
140 001c 8091 0000 lds r24,fastEventBitmask
141 0020 8823 tst r24
142 0022 99F0 breq .L6
143 .stabn 68,0,100,.LM7-Exec_run
144 .LM7:
145 0024 80FF sbrs r24,0
146 0026 07C0 rjmp .L8
147 .stabn 68,0,102,.LM8-Exec_run
148 .LM8:
149 /* #APP */
150 0028 F894 cli
151 .stabn 68,0,103,.LM9-Exec_run
152 .LM9:
153 /* #NOAPP */
154 002a 8E7F andi r24,lo8(-2)
155 002c 8093 0000 sts fastEventBitmask,r24
156 .stabn 68,0,104,.LM10-Exec_run
157 .LM10:
158 /* #APP */
159 0030 7894 sei
160 .stabn 68,0,105,.LM11-Exec_run
161 .LM11:
162 /* #NOAPP */
163 0032 00D0 rcall FrameMgr_processLine
164 .stabn 68,0,109,.LM12-Exec_run
165 .LM12:
166 0034 00D0 rcall UIMgr_transmitPendingData
167 .L8:
168 .stabn 68,0,116,.LM13-Exec_run
169 .LM13:
170 0036 8091 0000 lds r24,fastEventBitmask
171 003a 81FF sbrs r24,1
172 003c 06C0 rjmp .L6
173 .stabn 68,0,118,.LM14-Exec_run
174 .LM14:
175 /* #APP */
176 003e F894 cli
177 .stabn 68,0,119,.LM15-Exec_run
178 .LM15:
179 /* #NOAPP */
180 0040 8D7F andi r24,lo8(-3)
181 0042 8093 0000 sts fastEventBitmask,r24
182 .stabn 68,0,120,.LM16-Exec_run
GAS LISTING /tmp/ccYxWDEV.s page 8
135 .LFBB2:
136 /* prologue: frame size=0 */
137 001c CF93 push r28
138 001e DF93 push r29
139 /* prologue end (size=2) */
140 .LBB4:
141 .LBB5:
142 .stabn 68,0,191,.LM6-.LFBB2
143 .LM6:
144 0020 C0E0 ldi r28,lo8(Exec_eventFifo)
145 0022 D0E0 ldi r29,hi8(Exec_eventFifo)
146 .L28:
147 .LBE5:
148 .LBE4:
149 .stabn 68,0,95,.LM7-.LFBB2
150 .LM7:
151 0024 8091 0000 lds r24,fastEventBitmask
152 0028 8823 tst r24
153 002a 01F0 breq .L6
154 .stabn 68,0,100,.LM8-.LFBB2
155 .LM8:
156 002c 80FF sbrs r24,0
157 002e 00C0 rjmp .L8
158 .stabn 68,0,102,.LM9-.LFBB2
159 .LM9:
160 /* #APP */
161 0030 F894 cli
162 .stabn 68,0,103,.LM10-.LFBB2
163 .LM10:
164 /* #NOAPP */
165 0032 8E7F andi r24,lo8(-2)
166 0034 8093 0000 sts fastEventBitmask,r24
167 .stabn 68,0,104,.LM11-.LFBB2
168 .LM11:
169 /* #APP */
170 0038 7894 sei
171 .stabn 68,0,105,.LM12-.LFBB2
172 .LM12:
173 /* #NOAPP */
174 003a 00D0 rcall FrameMgr_processLine
175 .stabn 68,0,109,.LM13-.LFBB2
176 .LM13:
177 003c 00D0 rcall UIMgr_transmitPendingData
178 .L8:
179 .stabn 68,0,116,.LM14-.LFBB2
180 .LM14:
181 003e 8091 0000 lds r24,fastEventBitmask
182 0042 81FF sbrs r24,1
GAS LISTING /tmp/ccYEZtaB.s page 8
 
 
183 .LM16:
184 /* #APP */
185 0046 7894 sei
186 .stabn 68,0,121,.LM17-Exec_run
187 .LM17:
188 /* #NOAPP */
189 0048 00D0 rcall FrameMgr_acquireLine
190 .L6:
191 .stabn 68,0,125,.LM18-Exec_run
192 .LM18:
193 004a 2091 0000 lds r18,Exec_eventFifoTail
194 004e 8091 0000 lds r24,Exec_eventFifoHead
195 0052 8217 cp r24,r18
196 0054 19F3 breq .L30
197 .LBB4:
198 .LBB5:
199 .stabn 68,0,189,.LM19-Exec_run
200 .LM19:
201 /* #APP */
202 0056 F894 cli
203 .stabn 68,0,191,.LM20-Exec_run
204 .LM20:
205 /* #NOAPP */
206 0058 E22F mov r30,r18
207 005a FF27 clr r31
208 005c E050 subi r30,lo8(-(Exec_eventFifo))
209 005e F040 sbci r31,hi8(-(Exec_eventFifo))
210 0060 9081 ld r25,Z
211 .stabn 68,0,193,.LM21-Exec_run
212 .LM21:
213 0062 822F mov r24,r18
214 0064 8F5F subi r24,lo8(-(1))
215 0066 8770 andi r24,lo8(7)
216 0068 8093 0000 sts Exec_eventFifoTail,r24
217 .stabn 68,0,194,.LM22-Exec_run
218 .LM22:
219 /* #APP */
220 006c 7894 sei
221 /* #NOAPP */
222 .LBE5:
223 .LBE4:
224 .stabn 68,0,128,.LM23-Exec_run
225 .LM23:
226 006e 892F mov r24,r25
227 0070 9927 clr r25
228 0072 8031 cpi r24,lo8(16)
229 0074 31F1 breq .L16
230 0076 8131 cpi r24,lo8(17)
231 0078 68F4 brsh .L21
232 007a 8230 cpi r24,lo8(2)
233 007c C9F0 breq .L13
234 007e 8330 cpi r24,lo8(3)
235 0080 18F4 brsh .L22
236 0082 8130 cpi r24,lo8(1)
237 0084 59F6 brne .L30
238 0086 2BC0 rjmp .L12
239 .L22:
GAS LISTING /tmp/ccYxWDEV.s page 9
183 0044 00C0 rjmp .L6
184 .stabn 68,0,118,.LM15-.LFBB2
185 .LM15:
186 /* #APP */
187 0046 F894 cli
188 .stabn 68,0,119,.LM16-.LFBB2
189 .LM16:
190 /* #NOAPP */
191 0048 8D7F andi r24,lo8(-3)
192 004a 8093 0000 sts fastEventBitmask,r24
193 .stabn 68,0,120,.LM17-.LFBB2
194 .LM17:
195 /* #APP */
196 004e 7894 sei
197 .stabn 68,0,121,.LM18-.LFBB2
198 .LM18:
199 /* #NOAPP */
200 0050 00D0 rcall FrameMgr_acquireLine
201 .L6:
202 .stabn 68,0,125,.LM19-.LFBB2
203 .LM19:
204 0052 9091 0000 lds r25,Exec_eventFifoTail
205 0056 8091 0000 lds r24,Exec_eventFifoHead
206 005a 8917 cp r24,r25
207 005c 01F0 breq .L28
208 .LBB7:
209 .LBB6:
210 .stabn 68,0,189,.LM20-.LFBB2
211 .LM20:
212 /* #APP */
213 005e F894 cli
214 .stabn 68,0,191,.LM21-.LFBB2
215 .LM21:
216 /* #NOAPP */
217 0060 FE01 movw r30,r28
218 0062 E90F add r30,r25
219 0064 F11D adc r31,__zero_reg__
220 0066 E081 ld r30,Z
221 .stabn 68,0,193,.LM22-.LFBB2
222 .LM22:
223 0068 892F mov r24,r25
224 006a 8F5F subi r24,lo8(-(1))
225 006c 8770 andi r24,lo8(7)
226 006e 8093 0000 sts Exec_eventFifoTail,r24
227 .stabn 68,0,194,.LM23-.LFBB2
228 .LM23:
229 /* #APP */
230 0072 7894 sei
231 /* #NOAPP */
232 .LBE6:
233 .LBE7:
234 .stabn 68,0,128,.LM24-.LFBB2
235 .LM24:
236 0074 E031 cpi r30,lo8(16)
237 0076 01F0 breq .L16
238 0078 E131 cpi r30,lo8(17)
239 007a 00F4 brsh .L21
GAS LISTING /tmp/ccYEZtaB.s page 9
 
 
240 0088 8430 cpi r24,lo8(4)
241 008a 31F1 breq .L14
242 008c 8830 cpi r24,lo8(8)
243 008e 09F0 breq .+2
244 0090 C5CF rjmp .L30
245 0092 1FC0 rjmp .L15
246 .L21:
247 0094 8038 cpi r24,lo8(-128)
248 0096 79F0 breq .L18
249 0098 8138 cpi r24,lo8(-127)
250 009a 20F4 brsh .L23
251 009c 8032 cpi r24,lo8(32)
252 009e 09F0 breq .+2
253 00a0 BDCF rjmp .L30
254 00a2 14C0 rjmp .L17
255 .L23:
256 00a4 8138 cpi r24,lo8(-127)
257 00a6 51F0 breq .L19
258 00a8 8039 cpi r24,lo8(-112)
259 00aa 09F0 breq .+2
260 00ac B7CF rjmp .L30
261 00ae 1CC0 rjmp .L20
262 .L13:
263 .stabn 68,0,131,.LM24-Exec_run
264 .LM24:
265 00b0 82E0 ldi r24,lo8(2)
266 00b2 00D0 rcall FrameMgr_dispatchEvent
267 00b4 B3CF rjmp .L30
268 .L18:
269 .stabn 68,0,135,.LM25-Exec_run
270 .LM25:
271 00b6 80E8 ldi r24,lo8(-128)
272 00b8 00D0 rcall FrameMgr_dispatchEvent
273 00ba B0CF rjmp .L30
274 .L19:
275 .stabn 68,0,139,.LM26-Exec_run
276 .LM26:
277 00bc 81E8 ldi r24,lo8(-127)
278 00be 00D0 rcall FrameMgr_dispatchEvent
279 00c0 ADCF rjmp .L30
280 .L16:
281 .stabn 68,0,143,.LM27-Exec_run
282 .LM27:
283 00c2 80E1 ldi r24,lo8(16)
284 00c4 00D0 rcall FrameMgr_dispatchEvent
285 .stabn 68,0,144,.LM28-Exec_run
286 .LM28:
287 00c6 80E1 ldi r24,lo8(16)
288 00c8 00D0 rcall UIMgr_dispatchEvent
289 00ca A8CF rjmp .L30
290 .L17:
291 .stabn 68,0,148,.LM29-Exec_run
292 .LM29:
293 00cc 80E2 ldi r24,lo8(32)
294 00ce 00D0 rcall FrameMgr_dispatchEvent
295 00d0 A5CF rjmp .L30
296 .L15:
GAS LISTING /tmp/ccYxWDEV.s page 10
240 007c E230 cpi r30,lo8(2)
241 007e 01F0 breq .L13
242 0080 E330 cpi r30,lo8(3)
243 0082 00F4 brsh .L22
244 0084 E130 cpi r30,lo8(1)
245 0086 01F4 brne .L28
246 0088 00C0 rjmp .L12
247 .L22:
248 008a E430 cpi r30,lo8(4)
249 008c 01F0 breq .L14
250 008e E830 cpi r30,lo8(8)
251 0090 01F4 brne .L28
252 0092 00C0 rjmp .L15
253 .L21:
254 0094 E038 cpi r30,lo8(-128)
255 0096 01F0 breq .L18
256 0098 E138 cpi r30,lo8(-127)
257 009a 00F4 brsh .L23
258 009c E032 cpi r30,lo8(32)
259 009e 01F0 breq .+2
260 00a0 00C0 rjmp .L28
261 00a2 00C0 rjmp .L17
262 .L23:
263 00a4 E138 cpi r30,lo8(-127)
264 00a6 01F0 breq .L19
265 00a8 E039 cpi r30,lo8(-112)
266 00aa 01F0 breq .+2
267 00ac 00C0 rjmp .L28
268 00ae 00C0 rjmp .L20
269 .L13:
270 .stabn 68,0,131,.LM25-.LFBB2
271 .LM25:
272 00b0 82E0 ldi r24,lo8(2)
273 00b2 00D0 rcall FrameMgr_dispatchEvent
274 00b4 00C0 rjmp .L28
275 .L18:
276 .stabn 68,0,135,.LM26-.LFBB2
277 .LM26:
278 00b6 80E8 ldi r24,lo8(-128)
279 00b8 00D0 rcall FrameMgr_dispatchEvent
280 00ba 00C0 rjmp .L28
281 .L19:
282 .stabn 68,0,139,.LM27-.LFBB2
283 .LM27:
284 00bc 81E8 ldi r24,lo8(-127)
285 00be 00D0 rcall FrameMgr_dispatchEvent
286 00c0 00C0 rjmp .L28
287 .L16:
288 .stabn 68,0,143,.LM28-.LFBB2
289 .LM28:
290 00c2 80E1 ldi r24,lo8(16)
291 00c4 00D0 rcall FrameMgr_dispatchEvent
292 .stabn 68,0,144,.LM29-.LFBB2
293 .LM29:
294 00c6 80E1 ldi r24,lo8(16)
295 00c8 00D0 rcall UIMgr_dispatchEvent
296 00ca 00C0 rjmp .L28
GAS LISTING /tmp/ccYEZtaB.s page 10
 
 
297 .stabn 68,0,152,.LM30-Exec_run
298 .LM30:
299 00d2 88E0 ldi r24,lo8(8)
300 00d4 00D0 rcall FrameMgr_dispatchEvent
301 00d6 A2CF rjmp .L30
302 .L14:
303 .stabn 68,0,156,.LM31-Exec_run
304 .LM31:
305 00d8 84E0 ldi r24,lo8(4)
306 00da 00D0 rcall FrameMgr_dispatchEvent
307 00dc 9FCF rjmp .L30
308 .L12:
309 .stabn 68,0,160,.LM32-Exec_run
310 .LM32:
311 00de 81E0 ldi r24,lo8(1)
312 00e0 00D0 rcall UIMgr_dispatchEvent
313 .stabn 68,0,161,.LM33-Exec_run
314 .LM33:
315 00e2 81E0 ldi r24,lo8(1)
316 00e4 00D0 rcall FrameMgr_dispatchEvent
317 00e6 9ACF rjmp .L30
318 .L20:
319 .stabn 68,0,165,.LM34-Exec_run
320 .LM34:
321 00e8 80E9 ldi r24,lo8(-112)
322 00ea 00D0 rcall UIMgr_dispatchEvent
323 00ec 97CF rjmp .L30
324 /* epilogue: frame size=0 */
325 /* epilogue: noreturn */
326 /* epilogue end (size=0) */
327 /* function Exec_run size 111 (111) */
328 .size Exec_run, .-Exec_run
329 .stabs "dataByte:r(0,11)",64,0,187,25
330 .stabn 192,0,0,.LBB5-Exec_run
331 .stabn 224,0,0,.LBE5-Exec_run
332 .Lscope1:
333 .stabs "",36,0,0,.Lscope1-Exec_run
334 .stabd 78,0,0
335 .global Exec_eventFifoHead
336 .global Exec_eventFifoHead
337 .section .bss
338 .type Exec_eventFifoHead, @object
339 .size Exec_eventFifoHead, 1
340 Exec_eventFifoHead:
341 0000 00 .skip 1,0
342 .global Exec_eventFifoTail
343 .global Exec_eventFifoTail
344 .type Exec_eventFifoTail, @object
345 .size Exec_eventFifoTail, 1
346 Exec_eventFifoTail:
347 0001 00 .skip 1,0
348 .global fastEventBitmask
349 .global fastEventBitmask
350 .type fastEventBitmask, @object
351 .size fastEventBitmask, 1
352 fastEventBitmask:
353 0002 00 .skip 1,0
GAS LISTING /tmp/ccYxWDEV.s page 11
297 .L17:
298 .stabn 68,0,148,.LM30-.LFBB2
299 .LM30:
300 00cc 80E2 ldi r24,lo8(32)
301 00ce 00D0 rcall FrameMgr_dispatchEvent
302 00d0 00C0 rjmp .L28
303 .L15:
304 .stabn 68,0,152,.LM31-.LFBB2
305 .LM31:
306 00d2 88E0 ldi r24,lo8(8)
307 00d4 00D0 rcall FrameMgr_dispatchEvent
308 00d6 00C0 rjmp .L28
309 .L14:
310 .stabn 68,0,156,.LM32-.LFBB2
311 .LM32:
312 00d8 84E0 ldi r24,lo8(4)
313 00da 00D0 rcall FrameMgr_dispatchEvent
314 00dc 00C0 rjmp .L28
315 .L12:
316 .stabn 68,0,160,.LM33-.LFBB2
317 .LM33:
318 00de 81E0 ldi r24,lo8(1)
319 00e0 00D0 rcall UIMgr_dispatchEvent
320 .stabn 68,0,161,.LM34-.LFBB2
321 .LM34:
322 00e2 81E0 ldi r24,lo8(1)
323 00e4 00D0 rcall FrameMgr_dispatchEvent
324 00e6 00C0 rjmp .L28
325 .L20:
326 .stabn 68,0,165,.LM35-.LFBB2
327 .LM35:
328 00e8 80E9 ldi r24,lo8(-112)
329 00ea 00D0 rcall UIMgr_dispatchEvent
330 00ec 00C0 rjmp .L28
331 /* epilogue: frame size=0 */
332 /* epilogue: noreturn */
333 /* epilogue end (size=0) */
334 /* function Exec_run size 111 (109) */
335 .size Exec_run, .-Exec_run
336 .stabs "dataByte:r(0,11)",64,0,187,30
337 .stabn 192,0,0,.LBB5-.LFBB2
338 .stabn 224,0,0,.LBE5-.LFBB2
339 .stabs "dataByte:r(0,11)",64,0,187,30
340 .stabn 192,0,0,.LBB6-.LFBB2
341 .stabn 224,0,0,.LBE6-.LFBB2
342 .Lscope2:
343 .stabs "",36,0,0,.Lscope2-.LFBB2
344 .stabd 78,0,0
345 .global Exec_eventFifoHead
346 .global Exec_eventFifoHead
347 .section .bss
348 .type Exec_eventFifoHead, @object
349 .size Exec_eventFifoHead, 1
350 Exec_eventFifoHead:
351 0000 00 .skip 1,0
352 .global Exec_eventFifoTail
353 .global Exec_eventFifoTail
GAS LISTING /tmp/ccYEZtaB.s page 11
 
 
354 .comm Exec_eventFifo,8,1
355 .stabs "fastEventBitmask:G(0,11)",32,0,74,0
356 .stabs "Exec_eventFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(0,11)",32,0,63,0
357 .stabs "Exec_eventFifoHead:G(0,11)",32,0,64,0
358 .stabs "Exec_eventFifoTail:G(0,11)",32,0,65,0
359 .text
360 .stabs "",100,0,0,.Letext0
361 .Letext0:
362 /* File "Executive.c": code 127 = 0x007f ( 126), prologues 0, epilogues 1 */
GAS LISTING /tmp/ccYxWDEV.s page 12
354 .type Exec_eventFifoTail, @object
355 .size Exec_eventFifoTail, 1
356 Exec_eventFifoTail:
357 0001 00 .skip 1,0
358 .global fastEventBitmask
359 .global fastEventBitmask
360 .type fastEventBitmask, @object
361 .size fastEventBitmask, 1
362 fastEventBitmask:
363 0002 00 .skip 1,0
364 .comm Exec_eventFifo,8,1
365 .stabs "fastEventBitmask:G(0,11)",32,0,74,0
366 .stabs "Exec_eventFifo:G(0,16)=ar(0,17)=r(0,17);0;0177777;;0;7;(0,11)",32,0,63,0
367 .stabs "Exec_eventFifoHead:G(0,11)",32,0,64,0
368 .stabs "Exec_eventFifoTail:G(0,11)",32,0,65,0
369 .text
370 .stabs "",100,0,0,.Letext0
371 .Letext0:
372 /* File "Executive.c": code 127 = 0x007f ( 124), prologues 2, epilogues 1 */
GAS LISTING /tmp/ccYEZtaB.s page 12
 
 
DEFINED SYMBOLS
*ABS*:00000000 Executive.c
/tmp/ccYxWDEV.s:3 *ABS*:0000003f __SREG__
/tmp/ccYxWDEV.s:4 *ABS*:0000003e __SP_H__
/tmp/ccYxWDEV.s:5 *ABS*:0000003d __SP_L__
/tmp/ccYxWDEV.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccYxWDEV.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccYxWDEV.s:91 .text:00000000 Exec_writeEventFifo
/tmp/ccYxWDEV.s:340 .bss:00000000 Exec_eventFifoHead
/tmp/ccYEZtaB.s:2 *ABS*:0000003f __SREG__
/tmp/ccYEZtaB.s:3 *ABS*:0000003e __SP_H__
/tmp/ccYEZtaB.s:4 *ABS*:0000003d __SP_L__
/tmp/ccYEZtaB.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccYEZtaB.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccYEZtaB.s:90 .text:00000000 Exec_writeEventFifo
/tmp/ccYEZtaB.s:350 .bss:00000000 Exec_eventFifoHead
*COM*:00000008 Exec_eventFifo
/tmp/ccYxWDEV.s:131 .text:0000001c Exec_run
/tmp/ccYxWDEV.s:352 .bss:00000002 fastEventBitmask
/tmp/ccYxWDEV.s:346 .bss:00000001 Exec_eventFifoTail
/tmp/ccYEZtaB.s:131 .text:0000001c Exec_run
/tmp/ccYEZtaB.s:362 .bss:00000002 fastEventBitmask
/tmp/ccYEZtaB.s:356 .bss:00000001 Exec_eventFifoTail
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/FrameMgr.lst
1,101 → 1,100
GAS LISTING /tmp/ccQRbLT3.s page 1
GAS LISTING /tmp/cc0XjEMJ.s page 1
 
 
1 .file "FrameMgr.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "FrameMgr.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
32 .stabs "size_t:t(2,1)=(0,4)",128,0,214,0
33 .stabs "wchar_t:t(2,2)=(0,1)",128,0,326,0
34 .stabn 162,0,0,0
35 .stabs "div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
36 .stabs "ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
37 .stabs "__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
38 .stabn 162,0,0,0
39 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
40 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
41 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
42 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
43 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
44 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
45 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
46 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
47 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
48 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
49 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
50 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
51 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
52 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
53 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
54 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
55 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
56 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
57 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
GAS LISTING /tmp/ccQRbLT3.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "FrameMgr.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
31 .stabs "size_t:t(2,1)=(0,4)",128,0,214,0
32 .stabs "wchar_t:t(2,2)=(0,1)",128,0,326,0
33 .stabn 162,0,0,0
34 .stabs "div_t:t(1,1)=(1,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
35 .stabs "ldiv_t:t(1,3)=(1,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
36 .stabs "__compar_fn_t:t(1,5)=(1,6)=*(1,7)=f(0,1)",128,0,78,0
37 .stabn 162,0,0,0
38 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
39 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
40 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
41 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
42 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
43 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
44 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
45 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
46 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
47 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
48 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
49 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
50 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
51 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
52 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
53 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
54 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
55 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
56 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
57 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
GAS LISTING /tmp/cc0XjEMJ.s page 2
 
 
58 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
59 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
60 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
61 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
62 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
63 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
64 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
65 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
66 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
67 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
68 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
69 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
70 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
71 .stabn 162,0,0,0
72 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
73 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
58 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
59 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
60 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
61 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
62 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
63 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
64 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
65 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
66 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
67 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
68 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
69 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
70 .stabn 162,0,0,0
71 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
72 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
73 .stabn 162,0,0,0
74 .stabn 162,0,0,0
75 .stabn 162,0,0,0
76 .stabn 162,0,0,0
77 .stabs "I2CInterface.h",130,0,0,0
78 .stabs "CommonDefs.h",130,0,0,0
79 .stabs "bool_t:t(8,1)=(0,11)",128,0,56,0
80 .stabn 162,0,0,0
81 .stabs "i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
82 .stabn 162,0,0,0
83 .stabs " :T(0,16)=@s8;eST_FrameMgr_idle:0,ST_FrameMgr_TrackingFrame:1,ST_FrameMgr_DumpingFrame:2,;
84 .stabs "FrameMgr_State_t:t(0,17)=(0,11)",128,0,72,0
85 .stabs " :T(0,18)=@s8;enotTracked:0,color1:1,color2:2,color3:3,color4:4,color5:5,color6:6,color7:7
86 .stabs "trackedColor_t:t(0,19)=(0,11)",128,0,127,0
87 .stabs "trackedObject_t:t(0,20)=(0,21)=s8color:(0,19),0,8;lastLineXStart:(0,11),8,8;lastLineXFinis
88 .stabs "FrameMgr_processFrame:F(0,15)",36,0,517,FrameMgr_processFrame
89 .global FrameMgr_processFrame
90 .type FrameMgr_processFrame, @function
91 FrameMgr_processFrame:
92 .stabd 46,0,0
76 .stabs "I2CInterface.h",130,0,0,0
77 .stabs "CommonDefs.h",130,0,0,0
78 .stabs "bool_t:t(8,1)=(0,11)",128,0,56,0
79 .stabn 162,0,0,0
80 .stabs "i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
81 .stabn 162,0,0,0
82 .stabs " :T(0,16)=@s8;eST_FrameMgr_idle:0,ST_FrameMgr_TrackingFrame:1,ST_FrameMgr_DumpingFrame:2,;
83 .stabs "FrameMgr_State_t:t(0,17)=(0,11)",128,0,72,0
84 .stabs " :T(0,18)=@s8;enotTracked:0,color1:1,color2:2,color3:3,color4:4,color5:5,color6:6,color7:7
85 .stabs "trackedColor_t:t(0,19)=(0,11)",128,0,127,0
86 .stabs "trackedObject_t:t(0,20)=(0,21)=s8color:(0,19),0,8;lastLineXStart:(0,11),8,8;lastLineXFinis
87 .stabs "FrameMgr_processFrame:F(0,15)",36,0,517,FrameMgr_processFrame
88 .global FrameMgr_processFrame
89 .type FrameMgr_processFrame, @function
90 FrameMgr_processFrame:
91 .stabd 46,0,0
1:FrameMgr.c **** /*
2:FrameMgr.c **** Copyright (C) 2004 John Orlando
3:FrameMgr.c ****
118,10 → 117,10
20:FrameMgr.c **** For more information on the AVRcam, please contact:
21:FrameMgr.c ****
22:FrameMgr.c **** john@jrobot.net
GAS LISTING /tmp/ccQRbLT3.s page 3
23:FrameMgr.c ****
GAS LISTING /tmp/cc0XjEMJ.s page 3
 
 
23:FrameMgr.c ****
24:FrameMgr.c **** or go to www.jrobot.net for more details regarding the system.
25:FrameMgr.c **** */
26:FrameMgr.c **** /*********************************************************
178,10 → 177,10
77:FrameMgr.c **** sent out during a frame (one byte per line, 144 lines per frame)
78:FrameMgr.c **** with the number of bytes in a tracked object (7) + some wiggle
79:FrameMgr.c **** room :-) ... I guess this could be increased to around 20 if
GAS LISTING /tmp/ccQRbLT3.s page 4
80:FrameMgr.c **** we had enough room and cycles to process objects between lines */
GAS LISTING /tmp/cc0XjEMJ.s page 4
 
 
80:FrameMgr.c **** we had enough room and cycles to process objects between lines */
81:FrameMgr.c **** #define MAX_TRACKED_OBJECTS 8
82:FrameMgr.c ****
83:FrameMgr.c **** /* This defines the number of bytes that make up a trackedObject_t
238,10 → 237,10
134:FrameMgr.c **** unsigned char lastLineXStart;
135:FrameMgr.c **** unsigned char lastLineXFinish;
136:FrameMgr.c **** unsigned char x_upperLeft;
GAS LISTING /tmp/ccQRbLT3.s page 5
137:FrameMgr.c **** unsigned char y_upperLeft;
GAS LISTING /tmp/cc0XjEMJ.s page 5
 
 
137:FrameMgr.c **** unsigned char y_upperLeft;
138:FrameMgr.c **** unsigned char x_lowerRight;
139:FrameMgr.c **** unsigned char y_lowerRight;
140:FrameMgr.c **** unsigned char objectValid; /* used to be a fill byte...now it is
298,10 → 297,10
191:FrameMgr.c **** {
192:FrameMgr.c **** memset(trackedObjectTable,0x00,sizeof(trackedObjectTable));
193:FrameMgr.c **** }
GAS LISTING /tmp/ccQRbLT3.s page 6
194:FrameMgr.c ****
GAS LISTING /tmp/cc0XjEMJ.s page 6
 
 
194:FrameMgr.c ****
195:FrameMgr.c ****
196:FrameMgr.c **** /***********************************************************
197:FrameMgr.c **** Function Name: FrameMgr_dispatchEvent
358,10 → 357,10
248:FrameMgr.c **** }
249:FrameMgr.c **** }
250:FrameMgr.c ****
GAS LISTING /tmp/ccQRbLT3.s page 7
251:FrameMgr.c **** /***********************************************************
GAS LISTING /tmp/cc0XjEMJ.s page 7
 
 
251:FrameMgr.c **** /***********************************************************
252:FrameMgr.c **** Function Name: FrameMgr_acquireFrame
253:FrameMgr.c **** Function Description: This function is responsible for
254:FrameMgr.c **** beginning of the acquisition of a new frame of data
418,10 → 417,10
305:FrameMgr.c **** memset(currentLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
306:FrameMgr.c **** memset(previousLineBuffer,0x00,LENGTH_OF_LINE_BUFFER);
307:FrameMgr.c **** /* wait for another VSYNC so we know which frame to use
GAS LISTING /tmp/ccQRbLT3.s page 8
308:FrameMgr.c **** to start looking for a line to receive */
GAS LISTING /tmp/cc0XjEMJ.s page 8
 
 
308:FrameMgr.c **** to start looking for a line to receive */
309:FrameMgr.c **** WAIT_FOR_VSYNC_HIGH();
310:FrameMgr.c **** WAIT_FOR_VSYNC_LOW();
311:FrameMgr.c ****
478,10 → 477,10
362:FrameMgr.c **** UartInt_txByte(lineCount); /* send the line count */
363:FrameMgr.c **** for (i=0; i<NUM_PIXELS_IN_A_DUMP_LINE; i+=2)
364:FrameMgr.c **** {
GAS LISTING /tmp/ccQRbLT3.s page 9
365:FrameMgr.c **** /* when a dump line is sampled, the upper byte can potentially
GAS LISTING /tmp/cc0XjEMJ.s page 9
 
 
365:FrameMgr.c **** /* when a dump line is sampled, the upper byte can potentially
366:FrameMgr.c **** have garbage in it...we don't have time to mask it off as we're
367:FrameMgr.c **** sampling, so it is done here before we send it out...we also
368:FrameMgr.c **** combine the samples together so we really are sending up a
538,10 → 537,10
419:FrameMgr.c **** itoa(trackedLineCount,asciiBuffer,10);
420:FrameMgr.c **** UIMgr_txBuffer(asciiBuffer,3);
421:FrameMgr.c **** UIMgr_txBuffer(" ",1);
GAS LISTING /tmp/ccQRbLT3.s page 10
422:FrameMgr.c **** while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)
GAS LISTING /tmp/cc0XjEMJ.s page 10
 
 
422:FrameMgr.c **** while(pixelCount < ACTUAL_NUM_PIXELS_IN_A_LINE)
423:FrameMgr.c **** {
424:FrameMgr.c **** memset(asciiBuffer,0x00,5);
425:FrameMgr.c **** itoa(*pSendData++,asciiBuffer,10); /* color is first byte */
598,10 → 597,10
476:FrameMgr.c **** /* invalidate the object */
477:FrameMgr.c **** *(pTrackedObjectData + VALID_OBJECT_OFFSET) = FALSE;
478:FrameMgr.c **** numCurrTrackedObjects--;
GAS LISTING /tmp/ccQRbLT3.s page 11
479:FrameMgr.c **** }
GAS LISTING /tmp/cc0XjEMJ.s page 11
 
 
479:FrameMgr.c **** }
480:FrameMgr.c **** }
481:FrameMgr.c **** }
482:FrameMgr.c **** pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
640,8 → 639,9
515:FrameMgr.c **** ***********************************************************/
516:FrameMgr.c **** void FrameMgr_processFrame(void)
517:FrameMgr.c **** {
93 .stabn 68,0,517,.LM0-FrameMgr_processFrame
94 .LM0:
92 .stabn 68,0,517,.LM0-.LFBB1
93 .LM0:
94 .LFBB1:
95 /* prologue: frame size=0 */
96 0000 DF92 push r13
97 0002 EF92 push r14
657,8 → 657,8
521:FrameMgr.c **** unsigned char j;
522:FrameMgr.c **** #endif
523:FrameMgr.c **** unsigned char *pTableData = (unsigned char *)pCurrentTrackedObjectTable;
104 .stabn 68,0,523,.LM1-FrameMgr_processFrame
GAS LISTING /tmp/ccQRbLT3.s page 12
104 .stabn 68,0,523,.LM1-.LFBB1
GAS LISTING /tmp/cc0XjEMJ.s page 12
 
 
105 .LM1:
694,18 → 694,18
551:FrameMgr.c **** /* we only send tracking packets if there are tracked objects */
552:FrameMgr.c ****
553:FrameMgr.c **** if (numCurrTrackedObjects > 0)
108 .stabn 68,0,553,.LM2-FrameMgr_processFrame
108 .stabn 68,0,553,.LM2-.LFBB1
109 .LM2:
110 0016 8091 0000 lds r24,numCurrTrackedObjects
111 001a 8823 tst r24
112 001c 09F4 brne .+2
113 001e 3FC0 rjmp .L2
114 .stabn 68,0,523,.LM3-FrameMgr_processFrame
112 001c 01F4 brne .+2
113 001e 00C0 rjmp .L2
114 .stabn 68,0,523,.LM3-.LFBB1
115 .LM3:
116 0020 E901 movw r28,r18
554:FrameMgr.c **** {
555:FrameMgr.c **** UIMgr_writeTxFifo(0x0A); /* header byte for a tracking packet */
117 .stabn 68,0,555,.LM4-FrameMgr_processFrame
117 .stabn 68,0,555,.LM4-.LFBB1
118 .LM4:
119 0022 8AE0 ldi r24,lo8(10)
120 0024 00D0 rcall UIMgr_writeTxFifo
713,12 → 713,12
557:FrameMgr.c **** pTableData = (unsigned char *)pCurrentTrackedObjectTable;
558:FrameMgr.c ****
559:FrameMgr.c **** UIMgr_writeTxFifo(numCurrTrackedObjects); /* num of objects tracked */
121 .stabn 68,0,559,.LM5-FrameMgr_processFrame
121 .stabn 68,0,559,.LM5-.LFBB1
122 .LM5:
123 0026 8091 0000 lds r24,numCurrTrackedObjects
124 002a 00D0 rcall UIMgr_writeTxFifo
125 002c DD24 clr r13
GAS LISTING /tmp/ccQRbLT3.s page 13
GAS LISTING /tmp/cc0XjEMJ.s page 13
 
 
126 .L4:
727,151 → 727,151
562:FrameMgr.c **** /* we only want to process objects that have their objectValid flag
563:FrameMgr.c **** set to TRUE */
564:FrameMgr.c **** if ( *(pTableData + VALID_OBJECT_OFFSET) == TRUE)
127 .stabn 68,0,564,.LM6-FrameMgr_processFrame
127 .stabn 68,0,564,.LM6-.LFBB1
128 .LM6:
129 002e 8F81 ldd r24,Y+7
130 0030 8130 cpi r24,lo8(1)
131 0032 69F5 brne .L5
131 0032 01F4 brne .L5
565:FrameMgr.c **** {
566:FrameMgr.c **** /* the object is valid...convert the color from bit position to value...remember,
567:FrameMgr.c **** each bit in the "color" byte corresponds to a color */
568:FrameMgr.c **** k=0;
569:FrameMgr.c **** color = *(pTableData + COLOR_OFFSET);
132 .stabn 68,0,569,.LM7-FrameMgr_processFrame
132 .stabn 68,0,569,.LM7-.LFBB1
133 .LM7:
134 0034 8881 ld r24,Y
570:FrameMgr.c **** if (color == 128) k=0;
135 .stabn 68,0,570,.LM8-FrameMgr_processFrame
135 .stabn 68,0,570,.LM8-.LFBB1
136 .LM8:
137 0036 8038 cpi r24,lo8(-128)
138 0038 E1F0 breq .L7
138 0038 01F0 breq .L7
571:FrameMgr.c **** else if (color == 64) k=1;
139 .stabn 68,0,571,.LM9-FrameMgr_processFrame
139 .stabn 68,0,571,.LM9-.LFBB1
140 .LM9:
141 003a 8034 cpi r24,lo8(64)
142 003c 11F4 brne .L9
142 003c 01F4 brne .L9
143 003e 81E0 ldi r24,lo8(1)
144 0040 19C0 rjmp .L11
144 0040 00C0 rjmp .L11
145 .L9:
572:FrameMgr.c **** else if (color == 32) k=2;
146 .stabn 68,0,572,.LM10-FrameMgr_processFrame
146 .stabn 68,0,572,.LM10-.LFBB1
147 .LM10:
148 0042 8032 cpi r24,lo8(32)
149 0044 11F4 brne .L12
149 0044 01F4 brne .L12
150 0046 82E0 ldi r24,lo8(2)
151 0048 15C0 rjmp .L11
151 0048 00C0 rjmp .L11
152 .L12:
573:FrameMgr.c **** else if (color == 16) k=3;
153 .stabn 68,0,573,.LM11-FrameMgr_processFrame
153 .stabn 68,0,573,.LM11-.LFBB1
154 .LM11:
155 004a 8031 cpi r24,lo8(16)
156 004c 11F4 brne .L14
156 004c 01F4 brne .L14
157 004e 83E0 ldi r24,lo8(3)
158 0050 11C0 rjmp .L11
158 0050 00C0 rjmp .L11
159 .L14:
574:FrameMgr.c **** else if (color == 8) k=4;
160 .stabn 68,0,574,.LM12-FrameMgr_processFrame
160 .stabn 68,0,574,.LM12-.LFBB1
161 .LM12:
162 0052 8830 cpi r24,lo8(8)
163 0054 11F4 brne .L16
163 0054 01F4 brne .L16
164 0056 84E0 ldi r24,lo8(4)
165 0058 0DC0 rjmp .L11
165 0058 00C0 rjmp .L11
166 .L16:
575:FrameMgr.c **** else if (color == 4) k=5;
GAS LISTING /tmp/ccQRbLT3.s page 14
GAS LISTING /tmp/cc0XjEMJ.s page 14
 
 
167 .stabn 68,0,575,.LM13-FrameMgr_processFrame
167 .stabn 68,0,575,.LM13-.LFBB1
168 .LM13:
169 005a 8430 cpi r24,lo8(4)
170 005c 11F4 brne .L18
170 005c 01F4 brne .L18
171 005e 85E0 ldi r24,lo8(5)
172 0060 09C0 rjmp .L11
172 0060 00C0 rjmp .L11
173 .L18:
576:FrameMgr.c **** else if (color == 2) k=6;
174 .stabn 68,0,576,.LM14-FrameMgr_processFrame
174 .stabn 68,0,576,.LM14-.LFBB1
175 .LM14:
176 0062 8230 cpi r24,lo8(2)
177 0064 11F4 brne .L20
177 0064 01F4 brne .L20
178 0066 86E0 ldi r24,lo8(6)
179 0068 05C0 rjmp .L11
179 0068 00C0 rjmp .L11
180 .L20:
577:FrameMgr.c **** else if (color == 1) k=7;
181 .stabn 68,0,577,.LM15-FrameMgr_processFrame
181 .stabn 68,0,577,.LM15-.LFBB1
182 .LM15:
183 006a 8130 cpi r24,lo8(1)
184 006c 11F4 brne .L7
184 006c 01F4 brne .L7
185 006e 87E0 ldi r24,lo8(7)
186 0070 01C0 rjmp .L11
186 0070 00C0 rjmp .L11
187 .L7:
188 0072 80E0 ldi r24,lo8(0)
189 .L11:
578:FrameMgr.c ****
579:FrameMgr.c **** tmpUpperLeftX = *(pTableData + X_UPPER_LEFT_OFFSET); /* get the upper left X */
190 .stabn 68,0,579,.LM16-FrameMgr_processFrame
190 .stabn 68,0,579,.LM16-.LFBB1
191 .LM16:
192 0074 1B81 ldd r17,Y+3
580:FrameMgr.c **** tmpUpperLeftY = *(pTableData + Y_UPPER_LEFT_OFFSET); /* get the upper left Y */
193 .stabn 68,0,580,.LM17-FrameMgr_processFrame
193 .stabn 68,0,580,.LM17-.LFBB1
194 .LM17:
195 0076 0C81 ldd r16,Y+4
581:FrameMgr.c **** tmpLowerRightX = *(pTableData + X_LOWER_RIGHT_OFFSET); /* get the lower right X */
196 .stabn 68,0,581,.LM18-FrameMgr_processFrame
196 .stabn 68,0,581,.LM18-.LFBB1
197 .LM18:
198 0078 FD80 ldd r15,Y+5
582:FrameMgr.c **** tmpLowerRightY = *(pTableData + Y_LOWER_RIGHT_OFFSET); /* get the lower right Y */
199 .stabn 68,0,582,.LM19-FrameMgr_processFrame
199 .stabn 68,0,582,.LM19-.LFBB1
200 .LM19:
201 007a EE80 ldd r14,Y+6
583:FrameMgr.c ****
584:FrameMgr.c **** UIMgr_writeTxFifo(k); /* send the color first */
202 .stabn 68,0,584,.LM20-FrameMgr_processFrame
202 .stabn 68,0,584,.LM20-.LFBB1
203 .LM20:
204 007c 00D0 rcall UIMgr_writeTxFifo
585:FrameMgr.c **** UIMgr_writeTxFifo(tmpUpperLeftX);
205 .stabn 68,0,585,.LM21-FrameMgr_processFrame
205 .stabn 68,0,585,.LM21-.LFBB1
206 .LM21:
207 007e 812F mov r24,r17
208 0080 00D0 rcall UIMgr_writeTxFifo
586:FrameMgr.c **** UIMgr_writeTxFifo(tmpUpperLeftY);
209 .stabn 68,0,586,.LM22-FrameMgr_processFrame
209 .stabn 68,0,586,.LM22-.LFBB1
210 .LM22:
211 0082 802F mov r24,r16
212 0084 00D0 rcall UIMgr_writeTxFifo
GAS LISTING /tmp/ccQRbLT3.s page 15
GAS LISTING /tmp/cc0XjEMJ.s page 15
 
 
587:FrameMgr.c **** UIMgr_writeTxFifo(tmpLowerRightX);
213 .stabn 68,0,587,.LM23-FrameMgr_processFrame
213 .stabn 68,0,587,.LM23-.LFBB1
214 .LM23:
215 0086 8F2D mov r24,r15
216 0088 00D0 rcall UIMgr_writeTxFifo
588:FrameMgr.c **** UIMgr_writeTxFifo(tmpLowerRightY);
217 .stabn 68,0,588,.LM24-FrameMgr_processFrame
217 .stabn 68,0,588,.LM24-.LFBB1
218 .LM24:
219 008a 8E2D mov r24,r14
220 008c 00D0 rcall UIMgr_writeTxFifo
221 .L5:
222 .stabn 68,0,560,.LM25-FrameMgr_processFrame
222 .stabn 68,0,560,.LM25-.LFBB1
223 .LM25:
224 008e D394 inc r13
225 0090 88E0 ldi r24,lo8(8)
226 0092 D816 cp r13,r24
227 0094 11F0 breq .L23
227 0094 01F0 breq .L23
589:FrameMgr.c **** }
590:FrameMgr.c ****
591:FrameMgr.c **** /* move our pointer up to the beginning of the next object */
592:FrameMgr.c **** pTableData += SIZE_OF_TRACKED_OBJECT;
228 .stabn 68,0,592,.LM26-FrameMgr_processFrame
228 .stabn 68,0,592,.LM26-.LFBB1
229 .LM26:
230 0096 2896 adiw r28,8
231 0098 CACF rjmp .L4
231 0098 00C0 rjmp .L4
232 .L23:
593:FrameMgr.c **** }
594:FrameMgr.c ****
595:FrameMgr.c **** /* all done...send the end of tracking packets char */
596:FrameMgr.c **** UIMgr_writeTxFifo(0xFF);
233 .stabn 68,0,596,.LM27-FrameMgr_processFrame
233 .stabn 68,0,596,.LM27-.LFBB1
234 .LM27:
235 009a 8FEF ldi r24,lo8(-1)
236 009c 00D0 rcall UIMgr_writeTxFifo
885,7 → 885,7
603:FrameMgr.c ****
604:FrameMgr.c **** /* schedule the next action to acquire a new frame */
605:FrameMgr.c **** PUBLISH_EVENT(EV_PROCESS_FRAME_COMPLETE);
238 .stabn 68,0,605,.LM28-FrameMgr_processFrame
238 .stabn 68,0,605,.LM28-.LFBB1
239 .LM28:
240 009e 84E0 ldi r24,lo8(4)
241 00a0 00D0 rcall Exec_writeEventFifo
898,7 → 898,7
248 00ac EF90 pop r14
249 00ae DF90 pop r13
250 00b0 0895 ret
GAS LISTING /tmp/ccQRbLT3.s page 16
GAS LISTING /tmp/cc0XjEMJ.s page 16
 
 
251 /* epilogue end (size=8) */
912,10 → 912,10
259 .stabs "tmpUpperLeftY:r(0,11)",64,0,524,16
260 .stabs "tmpLowerRightX:r(0,11)",64,0,524,15
261 .stabs "tmpLowerRightY:r(0,11)",64,0,524,14
262 .stabn 192,0,0,FrameMgr_processFrame-FrameMgr_processFrame
263 .stabn 224,0,0,.Lscope0-FrameMgr_processFrame
264 .Lscope0:
265 .stabs "",36,0,0,.Lscope0-FrameMgr_processFrame
262 .stabn 192,0,0,.LFBB1-.LFBB1
263 .stabn 224,0,0,.Lscope1-.LFBB1
264 .Lscope1:
265 .stabs "",36,0,0,.Lscope1-.LFBB1
266 .stabd 78,0,0
267 .stabs "FrameMgr_processLine:F(0,15)",36,0,342,FrameMgr_processLine
268 .global FrameMgr_processLine
922,214 → 922,195
269 .type FrameMgr_processLine, @function
270 FrameMgr_processLine:
271 .stabd 46,0,0
272 .stabn 68,0,342,.LM29-FrameMgr_processLine
272 .stabn 68,0,342,.LM29-.LFBB2
273 .LM29:
274 /* prologue: frame size=1 */
275 00b2 2F92 push r2
276 00b4 3F92 push r3
277 00b6 4F92 push r4
278 00b8 5F92 push r5
279 00ba 6F92 push r6
280 00bc 7F92 push r7
281 00be 8F92 push r8
282 00c0 9F92 push r9
283 00c2 AF92 push r10
284 00c4 BF92 push r11
285 00c6 CF92 push r12
286 00c8 DF92 push r13
287 00ca EF92 push r14
288 00cc FF92 push r15
289 00ce 0F93 push r16
290 00d0 1F93 push r17
291 00d2 CF93 push r28
292 00d4 DF93 push r29
293 00d6 CDB7 in r28,__SP_L__
294 00d8 DEB7 in r29,__SP_H__
295 00da 2197 sbiw r28,1
296 00dc 0FB6 in __tmp_reg__,__SREG__
297 00de F894 cli
298 00e0 DEBF out __SP_H__,r29
299 00e2 0FBE out __SREG__,__tmp_reg__
300 00e4 CDBF out __SP_L__,r28
301 /* prologue end (size=26) */
302 .stabn 68,0,345,.LM30-FrameMgr_processLine
274 .LFBB2:
275 /* prologue: frame size=1 */
276 00b2 2F92 push r2
277 00b4 3F92 push r3
278 00b6 4F92 push r4
279 00b8 5F92 push r5
280 00ba 6F92 push r6
281 00bc 7F92 push r7
282 00be 8F92 push r8
283 00c0 9F92 push r9
284 00c2 BF92 push r11
285 00c4 CF92 push r12
286 00c6 DF92 push r13
287 00c8 EF92 push r14
288 00ca FF92 push r15
289 00cc 0F93 push r16
290 00ce 1F93 push r17
291 00d0 CF93 push r28
292 00d2 DF93 push r29
293 00d4 CDB7 in r28,__SP_L__
294 00d6 DEB7 in r29,__SP_H__
295 00d8 2197 sbiw r28,1
296 00da 0FB6 in __tmp_reg__,__SREG__
297 00dc F894 cli
298 00de DEBF out __SP_H__,r29
299 00e0 0FBE out __SREG__,__tmp_reg__
300 00e2 CDBF out __SP_L__,r28
301 /* prologue end (size=25) */
302 .stabn 68,0,345,.LM30-.LFBB2
303 .LM30:
304 00e6 0091 0000 lds r16,pCurrentTrackedObjectTable
305 00ea 1091 0000 lds r17,(pCurrentTrackedObjectTable)+1
306 .stabn 68,0,352,.LM31-FrameMgr_processLine
304 00e4 4091 0000 lds r20,pCurrentTrackedObjectTable
305 00e8 5091 0000 lds r21,(pCurrentTrackedObjectTable)+1
306 .stabn 68,0,352,.LM31-.LFBB2
307 .LM31:
GAS LISTING /tmp/ccQRbLT3.s page 17
GAS LISTING /tmp/cc0XjEMJ.s page 17
 
 
308 00ee 8091 0000 lds r24,currentState
309 00f2 8230 cpi r24,lo8(2)
310 00f4 09F0 breq .+2
311 00f6 6AC0 rjmp .L27
312 .stabn 68,0,361,.LM32-FrameMgr_processLine
308 00ec 8091 0000 lds r24,currentState
309 00f0 8230 cpi r24,lo8(2)
310 00f2 01F0 breq .+2
311 00f4 00C0 rjmp .L27
312 .stabn 68,0,361,.LM32-.LFBB2
313 .LM32:
314 00f8 8BE0 ldi r24,lo8(11)
315 00fa 00D0 rcall UartInt_txByte
316 .stabn 68,0,362,.LM33-FrameMgr_processLine
314 00f6 8BE0 ldi r24,lo8(11)
315 00f8 00D0 rcall UartInt_txByte
316 .stabn 68,0,362,.LM33-.LFBB2
317 .LM33:
318 00fc 8091 0000 lds r24,lineCount
319 0100 00D0 rcall UartInt_txByte
320 0102 0F2E mov __tmp_reg__,r31
321 0104 F0E0 ldi r31,lo8(currentLineBuffer)
322 0106 CF2E mov r12,r31
323 0108 F0E0 ldi r31,hi8(currentLineBuffer)
324 010a DF2E mov r13,r31
325 010c F02D mov r31,__tmp_reg__
326 010e 00E0 ldi r16,lo8(0)
327 0110 10E0 ldi r17,hi8(0)
328 0112 0F2E mov __tmp_reg__,r31
329 0114 F0E0 ldi r31,lo8(previousLineBuffer)
330 0116 EF2E mov r14,r31
331 0118 F0E0 ldi r31,hi8(previousLineBuffer)
332 011a FF2E mov r15,r31
333 011c F02D mov r31,__tmp_reg__
334 .L29:
335 .stabn 68,0,370,.LM34-FrameMgr_processLine
336 .LM34:
337 011e F601 movw r30,r12
338 0120 8081 ld r24,Z
339 0122 8983 std Y+1,r24
340 .stabn 68,0,371,.LM35-FrameMgr_processLine
341 .LM35:
342 0124 8981 ldd r24,Y+1
343 0126 8F70 andi r24,lo8(15)
344 0128 8983 std Y+1,r24
345 .stabn 68,0,372,.LM36-FrameMgr_processLine
346 .LM36:
347 012a 8981 ldd r24,Y+1
348 012c 8295 swap r24
349 012e 807F andi r24,0xf0
350 0130 8983 std Y+1,r24
351 .stabn 68,0,373,.LM37-FrameMgr_processLine
352 .LM37:
353 0132 9981 ldd r25,Y+1
354 0134 F701 movw r30,r14
355 0136 8081 ld r24,Z
356 0138 8F70 andi r24,lo8(15)
357 013a 892B or r24,r25
358 013c 8983 std Y+1,r24
359 .stabn 68,0,376,.LM38-FrameMgr_processLine
360 .LM38:
361 013e 8981 ldd r24,Y+1
362 0140 00D0 rcall UartInt_txByte
363 .stabn 68,0,379,.LM39-FrameMgr_processLine
364 .LM39:
GAS LISTING /tmp/ccQRbLT3.s page 18
318 00fa 8091 0000 lds r24,lineCount
319 00fe 00D0 rcall UartInt_txByte
320 0100 00E0 ldi r16,lo8(currentLineBuffer)
321 0102 10E0 ldi r17,hi8(currentLineBuffer)
322 0104 0F2E mov __tmp_reg__,r31
323 0106 F0E0 ldi r31,lo8(previousLineBuffer)
324 0108 EF2E mov r14,r31
325 010a F0E0 ldi r31,hi8(previousLineBuffer)
326 010c FF2E mov r15,r31
327 010e F02D mov r31,__tmp_reg__
328 .stabn 68,0,363,.LM34-.LFBB2
329 .LM34:
330 0110 0F2E mov __tmp_reg__,r31
331 0112 F0E0 ldi r31,lo8(currentLineBuffer+176)
332 0114 CF2E mov r12,r31
333 0116 F0E0 ldi r31,hi8(currentLineBuffer+176)
334 0118 DF2E mov r13,r31
335 011a F02D mov r31,__tmp_reg__
336 .L29:
337 .stabn 68,0,370,.LM35-.LFBB2
338 .LM35:
339 011c D801 movw r26,r16
340 011e 8C91 ld r24,X
341 0120 8983 std Y+1,r24
342 .stabn 68,0,371,.LM36-.LFBB2
343 .LM36:
344 0122 8981 ldd r24,Y+1
345 0124 8F70 andi r24,lo8(15)
346 0126 8983 std Y+1,r24
347 .stabn 68,0,372,.LM37-.LFBB2
348 .LM37:
349 0128 8981 ldd r24,Y+1
350 012a 8295 swap r24
351 012c 807F andi r24,0xf0
352 012e 8983 std Y+1,r24
353 .stabn 68,0,373,.LM38-.LFBB2
354 .LM38:
355 0130 9981 ldd r25,Y+1
356 0132 F701 movw r30,r14
357 0134 8081 ld r24,Z
358 0136 8F70 andi r24,lo8(15)
359 0138 892B or r24,r25
360 013a 8983 std Y+1,r24
361 .stabn 68,0,376,.LM39-.LFBB2
362 .LM39:
363 013c 8981 ldd r24,Y+1
364 013e 00D0 rcall UartInt_txByte
GAS LISTING /tmp/cc0XjEMJ.s page 18
 
 
365 0142 D801 movw r26,r16
366 0144 1196 adiw r26,1
367 0146 FD01 movw r30,r26
368 0148 E050 subi r30,lo8(-(previousLineBuffer))
369 014a F040 sbci r31,hi8(-(previousLineBuffer))
370 014c 8081 ld r24,Z
371 014e 8983 std Y+1,r24
372 .stabn 68,0,380,.LM40-FrameMgr_processLine
373 .LM40:
374 0150 8981 ldd r24,Y+1
375 0152 8F70 andi r24,lo8(15)
376 0154 8983 std Y+1,r24
377 .stabn 68,0,381,.LM41-FrameMgr_processLine
378 .LM41:
379 0156 8981 ldd r24,Y+1
380 0158 8295 swap r24
381 015a 807F andi r24,0xf0
382 015c 8983 std Y+1,r24
383 .stabn 68,0,382,.LM42-FrameMgr_processLine
384 .LM42:
385 015e 9981 ldd r25,Y+1
386 0160 A050 subi r26,lo8(-(currentLineBuffer))
387 0162 B040 sbci r27,hi8(-(currentLineBuffer))
388 0164 8C91 ld r24,X
389 0166 8F70 andi r24,lo8(15)
390 0168 892B or r24,r25
391 016a 8983 std Y+1,r24
392 .stabn 68,0,385,.LM43-FrameMgr_processLine
393 .LM43:
394 016c 8981 ldd r24,Y+1
395 016e 00D0 rcall UartInt_txByte
396 0170 82E0 ldi r24,lo8(2)
397 0172 90E0 ldi r25,hi8(2)
398 0174 C80E add r12,r24
399 0176 D91E adc r13,r25
400 0178 0E5F subi r16,lo8(-(2))
401 017a 1F4F sbci r17,hi8(-(2))
402 017c E80E add r14,r24
403 017e F91E adc r15,r25
404 .stabn 68,0,363,.LM44-FrameMgr_processLine
405 .LM44:
406 0180 003B cpi r16,176
407 0182 1105 cpc r17,__zero_reg__
408 0184 61F6 brne .L29
409 .stabn 68,0,387,.LM45-FrameMgr_processLine
410 .LM45:
411 0186 8FE0 ldi r24,lo8(15)
412 0188 00D0 rcall UartInt_txByte
413 .stabn 68,0,391,.LM46-FrameMgr_processLine
414 .LM46:
415 018a 8091 0000 lds r24,lineCount
416 018e 8F5F subi r24,lo8(-(1))
417 0190 8093 0000 sts lineCount,r24
418 .stabn 68,0,394,.LM47-FrameMgr_processLine
419 .LM47:
420 0194 8834 cpi r24,lo8(72)
421 0196 60F0 brlo .L31
GAS LISTING /tmp/ccQRbLT3.s page 19
365 .stabn 68,0,379,.LM40-.LFBB2
366 .LM40:
367 0140 F701 movw r30,r14
368 0142 8181 ldd r24,Z+1
369 0144 8983 std Y+1,r24
370 .stabn 68,0,380,.LM41-.LFBB2
371 .LM41:
372 0146 8981 ldd r24,Y+1
373 0148 8F70 andi r24,lo8(15)
374 014a 8983 std Y+1,r24
375 .stabn 68,0,381,.LM42-.LFBB2
376 .LM42:
377 014c 8981 ldd r24,Y+1
378 014e 8295 swap r24
379 0150 807F andi r24,0xf0
380 0152 8983 std Y+1,r24
381 .stabn 68,0,382,.LM43-.LFBB2
382 .LM43:
383 0154 9981 ldd r25,Y+1
384 0156 F801 movw r30,r16
385 0158 8181 ldd r24,Z+1
386 015a 8F70 andi r24,lo8(15)
387 015c 892B or r24,r25
388 015e 8983 std Y+1,r24
389 .stabn 68,0,385,.LM44-.LFBB2
390 .LM44:
391 0160 8981 ldd r24,Y+1
392 0162 00D0 rcall UartInt_txByte
393 0164 0E5F subi r16,lo8(-(2))
394 0166 1F4F sbci r17,hi8(-(2))
395 0168 82E0 ldi r24,lo8(2)
396 016a 90E0 ldi r25,hi8(2)
397 016c E80E add r14,r24
398 016e F91E adc r15,r25
399 .stabn 68,0,363,.LM45-.LFBB2
400 .LM45:
401 0170 0C15 cp r16,r12
402 0172 1D05 cpc r17,r13
403 0174 01F4 brne .L29
404 .stabn 68,0,387,.LM46-.LFBB2
405 .LM46:
406 0176 8FE0 ldi r24,lo8(15)
407 0178 00D0 rcall UartInt_txByte
408 .stabn 68,0,391,.LM47-.LFBB2
409 .LM47:
410 017a 8091 0000 lds r24,lineCount
411 017e 8F5F subi r24,lo8(-(1))
412 0180 8093 0000 sts lineCount,r24
413 .stabn 68,0,394,.LM48-.LFBB2
414 .LM48:
415 0184 8834 cpi r24,lo8(72)
416 0186 00F0 brlo .L31
417 .stabn 68,0,398,.LM49-.LFBB2
418 .LM49:
419 0188 1092 0000 sts lineCount,__zero_reg__
420 .stabn 68,0,399,.LM50-.LFBB2
421 .LM50:
GAS LISTING /tmp/cc0XjEMJ.s page 19
 
 
422 .stabn 68,0,398,.LM48-FrameMgr_processLine
423 .LM48:
424 0198 1092 0000 sts lineCount,__zero_reg__
425 .stabn 68,0,399,.LM49-FrameMgr_processLine
426 .LM49:
427 019c 1092 0000 sts currentState,__zero_reg__
428 .stabn 68,0,402,.LM50-FrameMgr_processLine
429 .LM50:
430 01a0 89B7 in r24,89-0x20
431 01a2 8B7F andi r24,lo8(-5)
432 01a4 89BF out 89-0x20,r24
433 .stabn 68,0,404,.LM51-FrameMgr_processLine
434 .LM51:
435 01a6 60E0 ldi r22,lo8(0)
436 01a8 81E1 ldi r24,lo8(17)
437 01aa 00D0 rcall CamConfig_setCamReg
438 .stabn 68,0,405,.LM52-FrameMgr_processLine
439 .LM52:
440 01ac 00D0 rcall CamConfig_sendFifoCmds
441 01ae C8C0 rjmp .L71
442 .L31:
443 .stabn 68,0,410,.LM53-FrameMgr_processLine
444 .LM53:
445 01b0 8091 0000 lds r24,fastEventBitmask
446 01b4 8260 ori r24,lo8(2)
447 01b6 8093 0000 sts fastEventBitmask,r24
448 01ba C2C0 rjmp .L71
449 .L72:
450 .stabn 68,0,491,.LM54-FrameMgr_processLine
451 .LM54:
452 01bc 80E2 ldi r24,lo8(32)
453 01be 00D0 rcall Exec_writeEventFifo
454 .stabn 68,0,493,.LM55-FrameMgr_processLine
455 .LM55:
456 01c0 89B7 in r24,89-0x20
457 01c2 8B7F andi r24,lo8(-5)
458 01c4 89BF out 89-0x20,r24
459 .stabn 68,0,494,.LM56-FrameMgr_processLine
460 .LM56:
461 01c6 1092 0000 sts trackedLineCount,__zero_reg__
462 01ca BAC0 rjmp .L71
463 .L27:
464 .stabn 68,0,413,.LM57-FrameMgr_processLine
465 .LM57:
466 01cc 8130 cpi r24,lo8(1)
467 01ce 09F0 breq .+2
468 01d0 B7C0 rjmp .L71
469 .LBB4:
470 .LBB5:
422 018c 1092 0000 sts currentState,__zero_reg__
423 .stabn 68,0,402,.LM51-.LFBB2
424 .LM51:
425 0190 89B7 in r24,89-0x20
426 0192 8B7F andi r24,lo8(-5)
427 0194 89BF out 89-0x20,r24
428 .stabn 68,0,404,.LM52-.LFBB2
429 .LM52:
430 0196 60E0 ldi r22,lo8(0)
431 0198 81E1 ldi r24,lo8(17)
432 019a 00D0 rcall CamConfig_setCamReg
433 .stabn 68,0,405,.LM53-.LFBB2
434 .LM53:
435 019c 00D0 rcall CamConfig_sendFifoCmds
436 019e 00C0 rjmp .L72
437 .L31:
438 .stabn 68,0,410,.LM54-.LFBB2
439 .LM54:
440 01a0 8091 0000 lds r24,fastEventBitmask
441 01a4 8260 ori r24,lo8(2)
442 01a6 8093 0000 sts fastEventBitmask,r24
443 01aa 00C0 rjmp .L72
444 .L27:
445 .stabn 68,0,413,.LM55-.LFBB2
446 .LM55:
447 01ac 8130 cpi r24,lo8(1)
448 01ae 01F0 breq .+2
449 01b0 00C0 rjmp .L72
450 .LBB4:
451 .LBB5:
606:FrameMgr.c **** }
607:FrameMgr.c ****
608:FrameMgr.c **** /***********************************************************
1138,9 → 1119,6
611:FrameMgr.c **** finding the connectedness between two particular run-
612:FrameMgr.c **** length encoded lines of pixel data. It updates the
613:FrameMgr.c **** trackingTable as needed.
GAS LISTING /tmp/ccQRbLT3.s page 20
 
 
614:FrameMgr.c **** Inputs: none
615:FrameMgr.c **** Outputs: none
616:FrameMgr.c **** ***********************************************************/
1160,6 → 1138,9
630:FrameMgr.c **** do
631:FrameMgr.c **** {
632:FrameMgr.c **** /* grab both the current color and the number of pixels
GAS LISTING /tmp/cc0XjEMJ.s page 20
 
 
633:FrameMgr.c **** in the run...remember, pixels start at 1, not 0! */
634:FrameMgr.c **** colorConnected = FALSE;
635:FrameMgr.c **** currColor = *pCurrLineColorInfo++;
1191,6 → 1172,82
661:FrameMgr.c **** for (i=0; i<MAX_TRACKED_OBJECTS; i++)
662:FrameMgr.c **** {
663:FrameMgr.c **** if ( (currColor == *(pTrackedObjectData + COLOR_OFFSET)) &&
452 .stabn 68,0,663,.LM56-.LFBB2
453 .LM56:
454 01b2 B090 0000 lds r11,trackedLineCount
455 01b6 EB2C mov r14,r11
456 01b8 FF24 clr r15
457 01ba 3701 movw r6,r14
458 01bc 0894 sec
459 01be 6108 sbc r6,__zero_reg__
460 01c0 7108 sbc r7,__zero_reg__
461 01c2 0091 0000 lds r16,numCurrTrackedObjects
462 01c6 10E0 ldi r17,lo8(0)
463 01c8 60E0 ldi r22,lo8(0)
464 01ca 71E0 ldi r23,lo8(1)
465 01cc 0F2E mov __tmp_reg__,r31
466 01ce F0E0 ldi r31,lo8(currentLineBuffer)
467 01d0 2F2E mov r2,r31
468 01d2 F0E0 ldi r31,hi8(currentLineBuffer)
469 01d4 3F2E mov r3,r31
470 01d6 F02D mov r31,__tmp_reg__
471 .L35:
472 .stabn 68,0,635,.LM57-.LFBB2
473 .LM57:
474 01d8 D101 movw r26,r2
475 01da 3C91 ld r19,X
476 .stabn 68,0,636,.LM58-.LFBB2
477 .LM58:
GAS LISTING /tmp/cc0XjEMJ.s page 21
 
 
478 01dc 170F add r17,r23
479 .stabn 68,0,637,.LM59-.LFBB2
480 .LM59:
481 01de F101 movw r30,r2
482 01e0 7181 ldd r23,Z+1
483 01e2 82E0 ldi r24,lo8(2)
484 01e4 90E0 ldi r25,hi8(2)
485 01e6 280E add r2,r24
486 01e8 391E adc r3,r25
487 .stabn 68,0,638,.LM60-.LFBB2
488 .LM60:
489 01ea 670F add r22,r23
490 .stabn 68,0,643,.LM61-.LFBB2
491 .LM61:
492 01ec 3323 tst r19
493 01ee 01F4 brne .+2
494 01f0 00C0 rjmp .L36
495 01f2 7430 cpi r23,lo8(4)
496 01f4 00F4 brsh .+2
497 01f6 00C0 rjmp .L36
498 01f8 FA01 movw r30,r20
499 01fa 20E0 ldi r18,lo8(0)
500 .L39:
501 .stabn 68,0,663,.LM62-.LFBB2
502 .LM62:
503 01fc 8081 ld r24,Z
504 01fe 8317 cp r24,r19
505 0200 01F4 brne .L40
506 0202 8781 ldd r24,Z+7
507 0204 8130 cpi r24,lo8(1)
508 0206 01F4 brne .L40
509 0208 0F2E mov __tmp_reg__,r31
510 020a F6E0 ldi r31,lo8(6)
511 020c CF2E mov r12,r31
512 020e DD24 clr r13
513 0210 F02D mov r31,__tmp_reg__
514 0212 CE0E add r12,r30
515 0214 DF1E adc r13,r31
516 0216 8681 ldd r24,Z+6
517 0218 9927 clr r25
518 021a 8615 cp r24,r6
519 021c 9705 cpc r25,r7
520 021e 01F4 brne .L40
521 0220 2F01 movw r4,r30
522 0222 0894 sec
523 0224 411C adc r4,__zero_reg__
524 0226 511C adc r5,__zero_reg__
664:FrameMgr.c **** (*(pTrackedObjectData + VALID_OBJECT_OFFSET) == TRUE) &&
665:FrameMgr.c **** (*(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) == trackedLineCount - 1) )
666:FrameMgr.c **** {
1197,10 → 1254,22
667:FrameMgr.c **** /* found a color match and the object is valid...check to see if there is
668:FrameMgr.c **** connectedness */
669:FrameMgr.c **** lastLineXStart = *(pTrackedObjectData + LAST_LINE_X_START_OFFSET);
670:FrameMgr.c **** lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
GAS LISTING /tmp/ccQRbLT3.s page 21
525 .stabn 68,0,669,.LM63-.LFBB2
526 .LM63:
527 0228 8181 ldd r24,Z+1
528 022a 8824 clr r8
GAS LISTING /tmp/cc0XjEMJ.s page 22
 
 
529 022c 9924 clr r9
530 022e 6894 set
531 0230 81F8 bld r8,1
532 0232 8E0E add r8,r30
533 0234 9F1E adc r9,r31
670:FrameMgr.c **** lastLineXFinish = *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET);
534 .stabn 68,0,670,.LM64-.LFBB2
535 .LM64:
536 0236 9281 ldd r25,Z+2
671:FrameMgr.c ****
672:FrameMgr.c **** /* Check for the 5 following types of line connectedness:
673:FrameMgr.c **** ---------------------
1210,6 → 1279,23
677:FrameMgr.c **** | |
678:FrameMgr.c **** ------------------------- */
679:FrameMgr.c **** if ( ( (currPixelRunStart >= lastLineXStart) &&
537 .stabn 68,0,679,.LM65-.LFBB2
538 .LM65:
539 0238 1817 cp r17,r24
540 023a 00F0 brlo .L44
541 023c 9117 cp r25,r17
542 023e 00F4 brsh .L46
543 .L44:
544 0240 6817 cp r22,r24
545 0242 00F0 brlo .L47
546 0244 9617 cp r25,r22
547 0246 00F4 brsh .L46
548 .L47:
549 0248 8117 cp r24,r17
550 024a 00F0 brlo .L40
551 024c 6917 cp r22,r25
552 024e 00F0 brlo .L40
553 .L46:
680:FrameMgr.c **** (currPixelRunStart <= lastLineXFinish) ) ||
681:FrameMgr.c ****
682:FrameMgr.c **** /* ---------------------
1232,6 → 1318,9
699:FrameMgr.c **** /* -------------------------------
700:FrameMgr.c **** | |
701:FrameMgr.c **** -------------------------------
GAS LISTING /tmp/cc0XjEMJ.s page 23
 
 
702:FrameMgr.c **** -------------------------------
703:FrameMgr.c **** | |
704:FrameMgr.c **** -------------------------------
1248,10 → 1337,23
715:FrameMgr.c **** /* THERE IS CONNECTEDNESS...update the lastLineXStart and lastLineXFinish
716:FrameMgr.c **** data pointed to by pTrackedObjectData */
717:FrameMgr.c **** *(pTrackedObjectData + LAST_LINE_X_START_OFFSET) = currPixelRunStart;
554 .stabn 68,0,717,.LM66-.LFBB2
555 .LM66:
556 0250 D201 movw r26,r4
557 0252 1C93 st X,r17
718:FrameMgr.c **** *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET) = currPixelRunFinish;
558 .stabn 68,0,718,.LM67-.LFBB2
559 .LM67:
560 0254 D401 movw r26,r8
561 0256 6C93 st X,r22
719:FrameMgr.c ****
720:FrameMgr.c **** /* check if the bounding box needs to be updated */
721:FrameMgr.c **** if (*(pTrackedObjectData + X_UPPER_LEFT_OFFSET) > currPixelRunStart)
562 .stabn 68,0,721,.LM68-.LFBB2
563 .LM68:
564 0258 8381 ldd r24,Z+3
565 025a 1817 cp r17,r24
566 025c 00F4 brsh .L50
722:FrameMgr.c **** {
723:FrameMgr.c **** /* need to update the bounding box for the upper left point to
724:FrameMgr.c **** enclose this new left-most point...we never have to update the
1258,20 → 1360,45
725:FrameMgr.c **** upper left Y point, since each scan line we process moves from
726:FrameMgr.c **** top to bottom */
727:FrameMgr.c **** *(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart;
GAS LISTING /tmp/ccQRbLT3.s page 22
 
 
567 .stabn 68,0,727,.LM69-.LFBB2
568 .LM69:
569 025e 1383 std Z+3,r17
570 .L50:
728:FrameMgr.c **** }
729:FrameMgr.c ****
730:FrameMgr.c **** if ( *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) < currPixelRunFinish)
571 .stabn 68,0,730,.LM70-.LFBB2
572 .LM70:
573 0260 8581 ldd r24,Z+5
574 0262 8617 cp r24,r22
575 0264 00F4 brsh .L52
731:FrameMgr.c **** {
732:FrameMgr.c **** /* need to update the bounding box for the lower right X point to
733:FrameMgr.c **** enclose this new right-most point */
734:FrameMgr.c **** *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) = currPixelRunFinish;
576 .stabn 68,0,734,.LM71-.LFBB2
577 .LM71:
GAS LISTING /tmp/cc0XjEMJ.s page 24
 
 
578 0266 6583 std Z+5,r22
579 .L52:
735:FrameMgr.c **** }
736:FrameMgr.c ****
737:FrameMgr.c **** /* the lower right 'y' point always gets updated when connectedness is found */
738:FrameMgr.c **** *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) = trackedLineCount;
580 .stabn 68,0,738,.LM72-.LFBB2
581 .LM72:
582 0268 F601 movw r30,r12
583 026a B082 st Z,r11
584 026c 00C0 rjmp .L36
585 .L40:
586 .stabn 68,0,661,.LM73-.LFBB2
587 .LM73:
588 026e 2F5F subi r18,lo8(-(1))
589 0270 2830 cpi r18,lo8(8)
590 0272 01F4 brne .+2
591 0274 00C0 rjmp .L54
739:FrameMgr.c ****
740:FrameMgr.c **** /* set a flag indicating that that color run is part of another
741:FrameMgr.c **** object and thus doesn't need to be added as a new entry into the
1283,6 → 1410,14
747:FrameMgr.c ****
748:FrameMgr.c **** /* go to the next object */
749:FrameMgr.c **** pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
592 .stabn 68,0,749,.LM74-.LFBB2
593 .LM74:
594 0276 3896 adiw r30,8
595 0278 00C0 rjmp .L39
596 .L56:
597 027a FA01 movw r30,r20
598 027c 90E0 ldi r25,lo8(0)
599 .L57:
750:FrameMgr.c **** }
751:FrameMgr.c ****
752:FrameMgr.c **** if (colorConnected == FALSE)
1298,10 → 1433,27
762:FrameMgr.c **** for (i=0; i<MAX_TRACKED_OBJECTS; i++)
763:FrameMgr.c **** {
764:FrameMgr.c **** if ( *(pTrackedObjectData + VALID_OBJECT_OFFSET) == FALSE) break;
600 .stabn 68,0,764,.LM75-.LFBB2
601 .LM75:
602 027e 8781 ldd r24,Z+7
603 0280 8823 tst r24
604 0282 01F0 breq .L58
GAS LISTING /tmp/cc0XjEMJ.s page 25
 
 
765:FrameMgr.c ****
766:FrameMgr.c **** /* if we haven't broken above, then the object must have been valid...
767:FrameMgr.c **** go ahead and move the pointer to the next object to check it */
768:FrameMgr.c **** pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
605 .stabn 68,0,768,.LM76-.LFBB2
606 .LM76:
607 0284 3896 adiw r30,8
608 .stabn 68,0,762,.LM77-.LFBB2
609 .LM77:
610 0286 9F5F subi r25,lo8(-(1))
611 0288 9830 cpi r25,lo8(8)
612 028a 01F4 brne .L57
613 .L58:
769:FrameMgr.c **** }
770:FrameMgr.c ****
771:FrameMgr.c ****
1308,226 → 1460,47
772:FrameMgr.c **** /* now that we have a pointer to the tracked object to be updated, update all
773:FrameMgr.c **** the fields */
774:FrameMgr.c **** *(pTrackedObjectData + COLOR_OFFSET) = currColor; /* color */
614 .stabn 68,0,774,.LM78-.LFBB2
615 .LM78:
616 028c 3083 st Z,r19
775:FrameMgr.c **** *(pTrackedObjectData + LAST_LINE_X_START_OFFSET) = currPixelRunStart; /* lastLineXStart */
617 .stabn 68,0,775,.LM79-.LFBB2
618 .LM79:
619 028e 1183 std Z+1,r17
776:FrameMgr.c **** *(pTrackedObjectData + LAST_LINE_X_FINISH_OFFSET) = currPixelRunFinish; /* lastLineXFinish *
620 .stabn 68,0,776,.LM80-.LFBB2
621 .LM80:
622 0290 6283 std Z+2,r22
777:FrameMgr.c **** *(pTrackedObjectData + X_UPPER_LEFT_OFFSET) = currPixelRunStart; /* x_upperLeft */
623 .stabn 68,0,777,.LM81-.LFBB2
624 .LM81:
625 0292 1383 std Z+3,r17
778:FrameMgr.c **** *(pTrackedObjectData + Y_UPPER_LEFT_OFFSET) = trackedLineCount; /* y_upperLeft */
471 .stabn 68,0,778,.LM58-FrameMgr_processLine
472 .LM58:
473 01d2 F090 0000 lds r15,trackedLineCount
474 .stabn 68,0,663,.LM59-FrameMgr_processLine
475 .LM59:
476 01d6 CF2C mov r12,r15
GAS LISTING /tmp/ccQRbLT3.s page 23
 
 
477 01d8 DD24 clr r13
478 01da 3601 movw r6,r12
479 01dc 0894 sec
480 01de 6108 sbc r6,__zero_reg__
481 01e0 7108 sbc r7,__zero_reg__
482 01e2 7091 0000 lds r23,numCurrTrackedObjects
483 01e6 0F2E mov __tmp_reg__,r31
484 01e8 F0E0 ldi r31,lo8(currentLineBuffer)
485 01ea 2F2E mov r2,r31
486 01ec F0E0 ldi r31,hi8(currentLineBuffer)
487 01ee 3F2E mov r3,r31
488 01f0 F02D mov r31,__tmp_reg__
489 01f2 50E0 ldi r21,lo8(0)
490 01f4 40E0 ldi r20,lo8(0)
491 01f6 61E0 ldi r22,lo8(1)
492 01f8 EF2C mov r14,r15
493 01fa E394 inc r14
494 .L35:
495 .stabn 68,0,635,.LM60-FrameMgr_processLine
496 .LM60:
497 01fc F101 movw r30,r2
498 01fe 3081 ld r19,Z
499 .stabn 68,0,636,.LM61-FrameMgr_processLine
500 .LM61:
501 0200 560F add r21,r22
502 .stabn 68,0,637,.LM62-FrameMgr_processLine
503 .LM62:
504 0202 6181 ldd r22,Z+1
505 0204 82E0 ldi r24,lo8(2)
506 0206 90E0 ldi r25,hi8(2)
507 0208 280E add r2,r24
508 020a 391E adc r3,r25
509 .stabn 68,0,638,.LM63-FrameMgr_processLine
510 .LM63:
511 020c 460F add r20,r22
512 .stabn 68,0,643,.LM64-FrameMgr_processLine
513 .LM64:
514 020e 3323 tst r19
515 0210 09F4 brne .+2
516 0212 5CC0 rjmp .L36
517 0214 6430 cpi r22,lo8(4)
518 0216 08F4 brsh .+2
519 0218 59C0 rjmp .L36
520 021a D801 movw r26,r16
521 021c 20E0 ldi r18,lo8(0)
522 .L39:
523 .stabn 68,0,663,.LM65-FrameMgr_processLine
524 .LM65:
525 021e 8C91 ld r24,X
526 0220 3817 cp r19,r24
527 0222 C9F5 brne .L40
528 0224 FD01 movw r30,r26
529 0226 8781 ldd r24,Z+7
530 0228 8130 cpi r24,lo8(1)
531 022a A9F5 brne .L40
532 022c 0F2E mov __tmp_reg__,r31
533 022e F6E0 ldi r31,lo8(6)
GAS LISTING /tmp/ccQRbLT3.s page 24
 
 
534 0230 AF2E mov r10,r31
535 0232 BB24 clr r11
536 0234 F02D mov r31,__tmp_reg__
537 0236 AA0E add r10,r26
538 0238 BB1E adc r11,r27
539 023a 8681 ldd r24,Z+6
540 023c 9927 clr r25
541 023e 8615 cp r24,r6
542 0240 9705 cpc r25,r7
543 0242 49F5 brne .L40
544 0244 2D01 movw r4,r26
545 0246 0894 sec
546 0248 411C adc r4,__zero_reg__
547 024a 511C adc r5,__zero_reg__
548 .stabn 68,0,669,.LM66-FrameMgr_processLine
549 .LM66:
550 024c 8181 ldd r24,Z+1
551 024e 8824 clr r8
552 0250 9924 clr r9
553 0252 6894 set
554 0254 81F8 bld r8,1
555 0256 8A0E add r8,r26
556 0258 9B1E adc r9,r27
557 .stabn 68,0,670,.LM67-FrameMgr_processLine
558 .LM67:
559 025a 9281 ldd r25,Z+2
560 .stabn 68,0,679,.LM68-FrameMgr_processLine
561 .LM68:
562 025c 5817 cp r21,r24
563 025e 10F0 brlo .L44
564 0260 9517 cp r25,r21
565 0262 40F4 brsh .L46
566 .L44:
567 0264 4817 cp r20,r24
568 0266 10F0 brlo .L47
569 0268 9417 cp r25,r20
570 026a 20F4 brsh .L46
571 .L47:
572 026c 8517 cp r24,r21
573 026e 98F0 brlo .L40
574 0270 4917 cp r20,r25
575 0272 88F0 brlo .L40
576 .L46:
577 .stabn 68,0,717,.LM69-FrameMgr_processLine
578 .LM69:
579 0274 F201 movw r30,r4
580 0276 5083 st Z,r21
581 .stabn 68,0,718,.LM70-FrameMgr_processLine
582 .LM70:
583 0278 F401 movw r30,r8
584 027a 4083 st Z,r20
585 .stabn 68,0,721,.LM71-FrameMgr_processLine
586 .LM71:
587 027c FD01 movw r30,r26
588 027e 8381 ldd r24,Z+3
589 0280 5817 cp r21,r24
590 0282 08F4 brsh .L50
GAS LISTING /tmp/ccQRbLT3.s page 25
 
 
591 .stabn 68,0,727,.LM72-FrameMgr_processLine
592 .LM72:
593 0284 5383 std Z+3,r21
594 .L50:
595 .stabn 68,0,730,.LM73-FrameMgr_processLine
596 .LM73:
597 0286 FD01 movw r30,r26
598 0288 8581 ldd r24,Z+5
599 028a 8417 cp r24,r20
600 028c 08F4 brsh .L52
601 .stabn 68,0,734,.LM74-FrameMgr_processLine
602 .LM74:
603 028e 4583 std Z+5,r20
604 .L52:
605 .stabn 68,0,738,.LM75-FrameMgr_processLine
606 .LM75:
607 0290 F501 movw r30,r10
608 0292 F082 st Z,r15
609 0294 1BC0 rjmp .L36
610 .L40:
611 .stabn 68,0,661,.LM76-FrameMgr_processLine
612 .LM76:
613 0296 2F5F subi r18,lo8(-(1))
614 0298 2830 cpi r18,lo8(8)
615 029a 09F4 brne .+2
616 029c 4DC0 rjmp .L54
617 .stabn 68,0,749,.LM77-FrameMgr_processLine
618 .LM77:
619 029e 1896 adiw r26,8
620 02a0 BECF rjmp .L39
621 .L56:
622 02a2 D801 movw r26,r16
623 02a4 90E0 ldi r25,lo8(0)
624 .L57:
625 .stabn 68,0,764,.LM78-FrameMgr_processLine
626 .LM78:
627 02a6 FD01 movw r30,r26
628 02a8 8781 ldd r24,Z+7
629 02aa 8823 tst r24
630 02ac 21F0 breq .L58
631 .stabn 68,0,768,.LM79-FrameMgr_processLine
632 .LM79:
633 02ae 1896 adiw r26,8
634 .stabn 68,0,762,.LM80-FrameMgr_processLine
635 .LM80:
636 02b0 9F5F subi r25,lo8(-(1))
637 02b2 9830 cpi r25,lo8(8)
638 02b4 C1F7 brne .L57
639 .L58:
640 .stabn 68,0,774,.LM81-FrameMgr_processLine
641 .LM81:
642 02b6 3C93 st X,r19
643 .stabn 68,0,775,.LM82-FrameMgr_processLine
644 .LM82:
645 02b8 FD01 movw r30,r26
646 02ba 5183 std Z+1,r21
647 .stabn 68,0,776,.LM83-FrameMgr_processLine
GAS LISTING /tmp/ccQRbLT3.s page 26
 
 
648 .LM83:
649 02bc 4283 std Z+2,r20
650 .stabn 68,0,777,.LM84-FrameMgr_processLine
651 .LM84:
652 02be 5383 std Z+3,r21
653 .stabn 68,0,778,.LM85-FrameMgr_processLine
654 .LM85:
655 02c0 F482 std Z+4,r15
626 .stabn 68,0,778,.LM82-.LFBB2
627 .LM82:
628 0294 B482 std Z+4,r11
779:FrameMgr.c **** *(pTrackedObjectData + X_LOWER_RIGHT_OFFSET) = currPixelRunFinish; /* x_lowerRight */
656 .stabn 68,0,779,.LM86-FrameMgr_processLine
657 .LM86:
658 02c2 4583 std Z+5,r20
629 .stabn 68,0,779,.LM83-.LFBB2
630 .LM83:
631 0296 6583 std Z+5,r22
780:FrameMgr.c **** *(pTrackedObjectData + Y_LOWER_RIGHT_OFFSET) = trackedLineCount; /* y_lowerRight */
659 .stabn 68,0,780,.LM87-FrameMgr_processLine
660 .LM87:
661 02c4 F682 std Z+6,r15
632 .stabn 68,0,780,.LM84-.LFBB2
633 .LM84:
634 0298 B682 std Z+6,r11
781:FrameMgr.c **** *(pTrackedObjectData + VALID_OBJECT_OFFSET) = TRUE; /* o
662 .stabn 68,0,781,.LM88-FrameMgr_processLine
663 .LM88:
664 02c6 81E0 ldi r24,lo8(1)
665 02c8 8783 std Z+7,r24
635 .stabn 68,0,781,.LM85-.LFBB2
636 .LM85:
637 029a 81E0 ldi r24,lo8(1)
638 029c 8783 std Z+7,r24
782:FrameMgr.c ****
783:FrameMgr.c **** numCurrTrackedObjects++;
666 .stabn 68,0,783,.LM89-FrameMgr_processLine
667 .LM89:
668 02ca 7F5F subi r23,lo8(-(1))
669 .L36:
639 .stabn 68,0,783,.LM86-.LFBB2
640 .LM86:
641 029e 0F5F subi r16,lo8(-(1))
642 .L36:
GAS LISTING /tmp/cc0XjEMJ.s page 26
 
 
784:FrameMgr.c **** }
785:FrameMgr.c **** }
786:FrameMgr.c ****
1535,489 → 1508,504
788:FrameMgr.c **** pTrackedObjectData += SIZE_OF_TRACKED_OBJECT;
789:FrameMgr.c **** }
790:FrameMgr.c **** } while(currPixelRunFinish < ACTUAL_NUM_PIXELS_IN_A_LINE);
670 .stabn 68,0,790,.LM90-FrameMgr_processLine
671 .LM90:
672 02cc 403B cpi r20,lo8(-80)
673 02ce 08F4 brsh .+2
674 02d0 95CF rjmp .L35
675 02d2 7093 0000 sts numCurrTrackedObjects,r23
676 .LBE5:
677 .LBE4:
678 .stabn 68,0,460,.LM91-FrameMgr_processLine
679 .LM91:
680 02d6 C601 movw r24,r12
681 02d8 8770 andi r24,lo8(7)
682 02da 9070 andi r25,hi8(7)
683 02dc 0797 sbiw r24,7
684 02de 01F5 brne .L61
685 02e0 D801 movw r26,r16
686 02e2 1796 adiw r26,7
687 02e4 40E0 ldi r20,lo8(0)
688 .L63:
689 .stabn 68,0,464,.LM92-FrameMgr_processLine
690 .LM92:
691 02e6 8C91 ld r24,X
692 02e8 8130 cpi r24,lo8(1)
GAS LISTING /tmp/ccQRbLT3.s page 27
643 .stabn 68,0,790,.LM87-.LFBB2
644 .LM87:
645 02a0 603B cpi r22,lo8(-80)
646 02a2 00F4 brsh .+2
647 02a4 00C0 rjmp .L35
648 02a6 0093 0000 sts numCurrTrackedObjects,r16
649 .LBE5:
650 .LBE4:
651 .stabn 68,0,460,.LM88-.LFBB2
652 .LM88:
653 02aa C701 movw r24,r14
654 02ac 8770 andi r24,lo8(7)
655 02ae 9070 andi r25,hi8(7)
656 02b0 0797 sbiw r24,7
657 02b2 01F4 brne .L61
658 02b4 60E0 ldi r22,lo8(0)
659 .L63:
660 .stabn 68,0,464,.LM89-.LFBB2
661 .LM89:
662 02b6 FA01 movw r30,r20
663 02b8 8781 ldd r24,Z+7
664 02ba 8130 cpi r24,lo8(1)
665 02bc 01F4 brne .L64
666 .stabn 68,0,468,.LM90-.LFBB2
667 .LM90:
668 02be 8681 ldd r24,Z+6
669 02c0 282F mov r18,r24
670 02c2 3327 clr r19
671 02c4 8481 ldd r24,Z+4
672 02c6 D901 movw r26,r18
673 02c8 A81B sub r26,r24
674 02ca B109 sbc r27,__zero_reg__
675 02cc 1397 sbiw r26,3
676 02ce 04F4 brge .L64
677 .stabn 68,0,474,.LM91-.LFBB2
678 .LM91:
679 02d0 C701 movw r24,r14
680 02d2 821B sub r24,r18
681 02d4 930B sbc r25,r19
682 02d6 0397 sbiw r24,3
683 02d8 04F0 brlt .L64
684 .stabn 68,0,477,.LM92-.LFBB2
685 .LM92:
686 02da 1782 std Z+7,__zero_reg__
687 .stabn 68,0,478,.LM93-.LFBB2
688 .LM93:
689 02dc 0150 subi r16,lo8(-(-1))
690 .L64:
691 .stabn 68,0,462,.LM94-.LFBB2
692 .LM94:
GAS LISTING /tmp/cc0XjEMJ.s page 27
 
 
693 02ea A1F4 brne .L64
694 02ec FD01 movw r30,r26
695 02ee 3197 sbiw r30,1
696 .stabn 68,0,468,.LM93-FrameMgr_processLine
697 .LM93:
698 02f0 9081 ld r25,Z
699 02f2 FD01 movw r30,r26
700 02f4 3397 sbiw r30,3
701 02f6 8081 ld r24,Z
702 02f8 292F mov r18,r25
703 02fa 3327 clr r19
704 02fc F901 movw r30,r18
705 02fe E81B sub r30,r24
706 0300 F109 sbc r31,__zero_reg__
707 0302 3397 sbiw r30,3
708 0304 3CF4 brge .L64
709 .stabn 68,0,474,.LM94-FrameMgr_processLine
710 .LM94:
711 0306 C601 movw r24,r12
712 0308 821B sub r24,r18
713 030a 930B sbc r25,r19
714 030c 0397 sbiw r24,3
715 030e 14F0 brlt .L64
716 .stabn 68,0,477,.LM95-FrameMgr_processLine
717 .LM95:
718 0310 1C92 st X,__zero_reg__
719 .stabn 68,0,478,.LM96-FrameMgr_processLine
720 .LM96:
721 0312 7150 subi r23,lo8(-(-1))
722 .L64:
723 .stabn 68,0,462,.LM97-FrameMgr_processLine
724 .LM97:
725 0314 4F5F subi r20,lo8(-(1))
726 0316 1896 adiw r26,8
727 0318 4830 cpi r20,lo8(8)
728 031a 29F7 brne .L63
729 031c 7093 0000 sts numCurrTrackedObjects,r23
730 .L61:
731 .stabn 68,0,486,.LM98-FrameMgr_processLine
732 .LM98:
733 0320 E092 0000 sts trackedLineCount,r14
734 .stabn 68,0,487,.LM99-FrameMgr_processLine
735 .LM99:
736 0324 F0E9 ldi r31,lo8(-112)
737 0326 EF16 cp r14,r31
738 0328 09F4 brne .+2
739 032a 48CF rjmp .L72
740 .stabn 68,0,498,.LM100-FrameMgr_processLine
741 .LM100:
742 032c 8091 0000 lds r24,fastEventBitmask
743 0330 8260 ori r24,lo8(2)
744 0332 8093 0000 sts fastEventBitmask,r24
745 0336 04C0 rjmp .L71
746 .L54:
747 .LBB6:
748 .LBB7:
749 .stabn 68,0,757,.LM101-FrameMgr_processLine
GAS LISTING /tmp/ccQRbLT3.s page 28
693 02de 6F5F subi r22,lo8(-(1))
694 02e0 6830 cpi r22,lo8(8)
695 02e2 01F0 breq .L68
696 .stabn 68,0,482,.LM95-.LFBB2
697 .LM95:
698 02e4 485F subi r20,lo8(-(8))
699 02e6 5F4F sbci r21,hi8(-(8))
700 02e8 00C0 rjmp .L63
701 .L68:
702 02ea 0093 0000 sts numCurrTrackedObjects,r16
703 .L61:
704 .stabn 68,0,486,.LM96-.LFBB2
705 .LM96:
706 02ee 8B2D mov r24,r11
707 02f0 8F5F subi r24,lo8(-(1))
708 02f2 8093 0000 sts trackedLineCount,r24
709 .stabn 68,0,487,.LM97-.LFBB2
710 .LM97:
711 02f6 8039 cpi r24,lo8(-112)
712 02f8 01F4 brne .L70
713 .stabn 68,0,491,.LM98-.LFBB2
714 .LM98:
715 02fa 80E2 ldi r24,lo8(32)
716 02fc 00D0 rcall Exec_writeEventFifo
717 .stabn 68,0,493,.LM99-.LFBB2
718 .LM99:
719 02fe 89B7 in r24,89-0x20
720 0300 8B7F andi r24,lo8(-5)
721 0302 89BF out 89-0x20,r24
722 .stabn 68,0,494,.LM100-.LFBB2
723 .LM100:
724 0304 1092 0000 sts trackedLineCount,__zero_reg__
725 0308 00C0 rjmp .L72
726 .L70:
727 .stabn 68,0,498,.LM101-.LFBB2
728 .LM101:
729 030a 8091 0000 lds r24,fastEventBitmask
730 030e 8260 ori r24,lo8(2)
731 0310 8093 0000 sts fastEventBitmask,r24
732 0314 00C0 rjmp .L72
733 .L54:
734 .LBB7:
735 .LBB6:
736 .stabn 68,0,757,.LM102-.LFBB2
737 .LM102:
738 0316 0830 cpi r16,lo8(8)
739 0318 00F4 brsh .+2
740 031a 00C0 rjmp .L56
741 031c 00C0 rjmp .L36
742 .L72:
743 .LBE6:
744 .LBE7:
745 /* epilogue: frame size=1 */
746 031e 2196 adiw r28,1
747 0320 0FB6 in __tmp_reg__,__SREG__
748 0322 F894 cli
749 0324 DEBF out __SP_H__,r29
GAS LISTING /tmp/cc0XjEMJ.s page 28
 
 
750 .LM101:
751 0338 7830 cpi r23,lo8(8)
752 033a 08F4 brsh .+2
753 033c B2CF rjmp .L56
754 033e C6CF rjmp .L36
755 .L71:
756 .LBE7:
757 .LBE6:
758 /* epilogue: frame size=1 */
759 0340 2196 adiw r28,1
760 0342 0FB6 in __tmp_reg__,__SREG__
761 0344 F894 cli
762 0346 DEBF out __SP_H__,r29
763 0348 0FBE out __SREG__,__tmp_reg__
764 034a CDBF out __SP_L__,r28
765 034c DF91 pop r29
766 034e CF91 pop r28
767 0350 1F91 pop r17
768 0352 0F91 pop r16
769 0354 FF90 pop r15
770 0356 EF90 pop r14
771 0358 DF90 pop r13
772 035a CF90 pop r12
773 035c BF90 pop r11
774 035e AF90 pop r10
775 0360 9F90 pop r9
776 0362 8F90 pop r8
777 0364 7F90 pop r7
778 0366 6F90 pop r6
779 0368 5F90 pop r5
780 036a 4F90 pop r4
781 036c 3F90 pop r3
782 036e 2F90 pop r2
783 0370 0895 ret
784 /* epilogue end (size=25) */
785 /* function FrameMgr_processLine size 355 (304) */
786 .size FrameMgr_processLine, .-FrameMgr_processLine
787 .stabs "i:r(0,11)",64,0,343,20
788 .stabs "dataToSend:(0,23)=B(0,11)",128,0,344,1
789 .stabs "pTrackedObjectData:r(0,22)",64,0,345,26
790 .stabn 192,0,0,FrameMgr_processLine-FrameMgr_processLine
791 .stabn 224,0,0,.Lscope1-FrameMgr_processLine
792 .Lscope1:
793 .stabs "",36,0,0,.Lscope1-FrameMgr_processLine
794 .stabd 78,0,0
795 .stabs "FrameMgr_init:F(0,15)",36,0,191,FrameMgr_init
796 .global FrameMgr_init
797 .type FrameMgr_init, @function
798 FrameMgr_init:
799 .stabd 46,0,0
800 .stabn 68,0,191,.LM102-FrameMgr_init
801 .LM102:
802 /* prologue: frame size=0 */
803 /* prologue end (size=0) */
804 .stabn 68,0,192,.LM103-FrameMgr_init
805 .LM103:
806 0372 80E4 ldi r24,lo8(64)
GAS LISTING /tmp/ccQRbLT3.s page 29
750 0326 0FBE out __SREG__,__tmp_reg__
751 0328 CDBF out __SP_L__,r28
752 032a DF91 pop r29
753 032c CF91 pop r28
754 032e 1F91 pop r17
755 0330 0F91 pop r16
756 0332 FF90 pop r15
757 0334 EF90 pop r14
758 0336 DF90 pop r13
759 0338 CF90 pop r12
760 033a BF90 pop r11
761 033c 9F90 pop r9
762 033e 8F90 pop r8
763 0340 7F90 pop r7
764 0342 6F90 pop r6
765 0344 5F90 pop r5
766 0346 4F90 pop r4
767 0348 3F90 pop r3
768 034a 2F90 pop r2
769 034c 0895 ret
770 /* epilogue end (size=24) */
771 /* function FrameMgr_processLine size 337 (288) */
772 .size FrameMgr_processLine, .-FrameMgr_processLine
773 .stabs "i:r(0,11)",64,0,343,22
774 .stabs "dataToSend:(0,23)=B(0,11)",128,0,344,1
775 .stabs "pTrackedObjectData:r(0,22)",64,0,345,20
776 .stabn 192,0,0,.LFBB2-.LFBB2
777 .stabn 224,0,0,.Lscope2-.LFBB2
778 .Lscope2:
779 .stabs "",36,0,0,.Lscope2-.LFBB2
780 .stabd 78,0,0
781 .stabs "FrameMgr_init:F(0,15)",36,0,191,FrameMgr_init
782 .global FrameMgr_init
783 .type FrameMgr_init, @function
784 FrameMgr_init:
785 .stabd 46,0,0
786 .stabn 68,0,191,.LM103-.LFBB3
787 .LM103:
788 .LFBB3:
789 /* prologue: frame size=0 */
790 /* prologue end (size=0) */
791 .stabn 68,0,192,.LM104-.LFBB3
792 .LM104:
793 034e 80E4 ldi r24,lo8(64)
794 0350 E0E0 ldi r30,lo8(trackedObjectTable)
795 0352 F0E0 ldi r31,hi8(trackedObjectTable)
796 0354 1192 st Z+,__zero_reg__
797 0356 8A95 dec r24
798 0358 01F4 brne .-6
799 /* epilogue: frame size=0 */
800 035a 0895 ret
801 /* epilogue end (size=1) */
802 /* function FrameMgr_init size 7 (6) */
803 .size FrameMgr_init, .-FrameMgr_init
804 .Lscope3:
805 .stabs "",36,0,0,.Lscope3-.LFBB3
806 .stabd 78,0,0
GAS LISTING /tmp/cc0XjEMJ.s page 29
 
 
807 0374 E0E0 ldi r30,lo8(trackedObjectTable)
808 0376 F0E0 ldi r31,hi8(trackedObjectTable)
809 0378 1192 st Z+,__zero_reg__
810 037a 8A95 dec r24
811 037c E9F7 brne .-6
812 /* epilogue: frame size=0 */
813 037e 0895 ret
814 /* epilogue end (size=1) */
815 /* function FrameMgr_init size 7 (6) */
816 .size FrameMgr_init, .-FrameMgr_init
817 .Lscope2:
818 .stabs "",36,0,0,.Lscope2-FrameMgr_init
819 .stabd 78,0,0
820 .stabs "FrameMgr_acquireLine:F(0,15)",36,0,287,FrameMgr_acquireLine
821 .global FrameMgr_acquireLine
822 .type FrameMgr_acquireLine, @function
823 FrameMgr_acquireLine:
824 .stabd 46,0,0
825 .stabn 68,0,287,.LM104-FrameMgr_acquireLine
826 .LM104:
827 /* prologue: frame size=0 */
828 /* prologue end (size=0) */
829 .stabn 68,0,297,.LM105-FrameMgr_acquireLine
830 .LM105:
831 0380 8091 0000 lds r24,currentState
832 0384 8230 cpi r24,lo8(2)
833 0386 49F5 brne .L83
834 .stabn 68,0,299,.LM106-FrameMgr_acquireLine
835 .LM106:
836 0388 8091 0000 lds r24,lineCount
837 038c 282F mov r18,r24
838 038e 220F lsl r18
839 .stabn 68,0,305,.LM107-FrameMgr_acquireLine
840 .LM107:
841 0390 80EB ldi r24,lo8(-80)
842 0392 E0E0 ldi r30,lo8(currentLineBuffer)
843 0394 F0E0 ldi r31,hi8(currentLineBuffer)
844 0396 982F mov r25,r24
845 0398 1192 st Z+,__zero_reg__
846 039a 9A95 dec r25
847 039c E9F7 brne .-6
848 .stabn 68,0,306,.LM108-FrameMgr_acquireLine
849 .LM108:
850 039e E0E0 ldi r30,lo8(previousLineBuffer)
851 03a0 F0E0 ldi r31,hi8(previousLineBuffer)
852 03a2 1192 st Z+,__zero_reg__
853 03a4 8A95 dec r24
854 03a6 E9F7 brne .-6
855 .L85:
856 .stabn 68,0,309,.LM109-FrameMgr_acquireLine
857 .LM109:
858 03a8 829B sbis 48-0x20,2
859 03aa FECF rjmp .L85
860 .L101:
861 .stabn 68,0,310,.LM110-FrameMgr_acquireLine
862 .LM110:
863 03ac 829B sbis 48-0x20,2
GAS LISTING /tmp/ccQRbLT3.s page 30
807 .stabs "FrameMgr_acquireLine:F(0,15)",36,0,287,FrameMgr_acquireLine
808 .global FrameMgr_acquireLine
809 .type FrameMgr_acquireLine, @function
810 FrameMgr_acquireLine:
811 .stabd 46,0,0
812 .stabn 68,0,287,.LM105-.LFBB4
813 .LM105:
814 .LFBB4:
815 /* prologue: frame size=0 */
816 /* prologue end (size=0) */
817 .stabn 68,0,297,.LM106-.LFBB4
818 .LM106:
819 035c 8091 0000 lds r24,currentState
820 0360 8230 cpi r24,lo8(2)
821 0362 01F4 brne .L81
822 .stabn 68,0,299,.LM107-.LFBB4
823 .LM107:
824 0364 8091 0000 lds r24,lineCount
825 0368 982F mov r25,r24
826 036a 990F lsl r25
827 .stabn 68,0,305,.LM108-.LFBB4
828 .LM108:
829 036c 80EB ldi r24,lo8(-80)
830 036e E0E0 ldi r30,lo8(currentLineBuffer)
831 0370 F0E0 ldi r31,hi8(currentLineBuffer)
832 0372 282F mov r18,r24
833 0374 1192 st Z+,__zero_reg__
834 0376 2A95 dec r18
835 0378 01F4 brne .-6
836 .stabn 68,0,306,.LM109-.LFBB4
837 .LM109:
838 037a E0E0 ldi r30,lo8(previousLineBuffer)
839 037c F0E0 ldi r31,hi8(previousLineBuffer)
840 037e 1192 st Z+,__zero_reg__
841 0380 8A95 dec r24
842 0382 01F4 brne .-6
843 .L83:
844 .stabn 68,0,309,.LM110-.LFBB4
845 .LM110:
846 0384 829B sbis 48-0x20,2
847 0386 00C0 rjmp .L83
848 .L98:
849 .stabn 68,0,310,.LM111-.LFBB4
850 .LM111:
851 0388 829B sbis 48-0x20,2
852 038a 00C0 rjmp .L106
853 038c 00C0 rjmp .L98
854 .L111:
855 .stabn 68,0,316,.LM112-.LFBB4
856 .LM112:
857 038e 849B sbis 48-0x20,4
858 0390 00C0 rjmp .L111
859 .stabn 68,0,317,.LM113-.LFBB4
860 .LM113:
861 0392 9150 subi r25,lo8(-(-1))
862 .L88:
863 .stabn 68,0,318,.LM114-.LFBB4
GAS LISTING /tmp/cc0XjEMJ.s page 30
 
 
864 03ae 07C0 rjmp .L110
865 03b0 FDCF rjmp .L101
866 .L88:
867 03b2 90E0 ldi r25,lo8(0)
868 .L114:
869 .stabn 68,0,316,.LM111-FrameMgr_acquireLine
870 .LM111:
871 03b4 849B sbis 48-0x20,4
872 03b6 FECF rjmp .L114
873 .L102:
874 .stabn 68,0,318,.LM112-FrameMgr_acquireLine
875 .LM112:
876 03b8 849B sbis 48-0x20,4
877 03ba 04C0 rjmp .L111
878 03bc FDCF rjmp .L102
879 .L110:
880 .stabn 68,0,314,.LM113-FrameMgr_acquireLine
881 .LM113:
882 03be 2223 tst r18
883 03c0 C1F7 brne .L88
884 03c2 05C0 rjmp .L92
885 .L111:
886 03c4 9150 subi r25,lo8(-(-1))
887 03c6 822F mov r24,r18
888 03c8 8195 neg r24
889 03ca 9817 cp r25,r24
890 03cc 99F7 brne .L114
891 .L92:
892 .stabn 68,0,322,.LM114-FrameMgr_acquireLine
893 .LM114:
894 03ce 60E0 ldi r22,lo8(previousLineBuffer)
895 03d0 70E0 ldi r23,hi8(previousLineBuffer)
896 03d2 80E0 ldi r24,lo8(currentLineBuffer)
897 03d4 90E0 ldi r25,hi8(currentLineBuffer)
898 03d6 00D0 rcall CamIntAsm_acquireDumpLine
899 03d8 0895 ret
900 .L83:
901 .stabn 68,0,324,.LM115-FrameMgr_acquireLine
902 .LM115:
903 03da 8130 cpi r24,lo8(1)
904 03dc 39F4 brne .L96
905 .L103:
906 .stabn 68,0,326,.LM116-FrameMgr_acquireLine
907 .LM116:
908 03de 8499 sbic 48-0x20,4
909 03e0 FECF rjmp .L103
910 .stabn 68,0,327,.LM117-FrameMgr_acquireLine
911 .LM117:
912 03e2 60E0 ldi r22,lo8(colorMap)
913 03e4 70E0 ldi r23,hi8(colorMap)
914 03e6 80E0 ldi r24,lo8(currentLineBuffer)
915 03e8 90E0 ldi r25,hi8(currentLineBuffer)
916 03ea 00D0 rcall CamIntAsm_acquireTrackingLine
917 .L96:
918 03ec 0895 ret
919 /* epilogue: frame size=0 */
920 /* epilogue: noreturn */
GAS LISTING /tmp/ccQRbLT3.s page 31
864 .LM114:
865 0394 849B sbis 48-0x20,4
866 0396 00C0 rjmp .L108
867 0398 00C0 rjmp .L88
868 .L106:
869 .stabn 68,0,314,.LM115-.LFBB4
870 .LM115:
871 039a 9923 tst r25
872 039c 01F4 brne .L111
873 039e 00C0 rjmp .L90
874 .L108:
875 03a0 9923 tst r25
876 03a2 01F4 brne .L111
877 .L90:
878 .stabn 68,0,322,.LM116-.LFBB4
879 .LM116:
880 03a4 60E0 ldi r22,lo8(previousLineBuffer)
881 03a6 70E0 ldi r23,hi8(previousLineBuffer)
882 03a8 80E0 ldi r24,lo8(currentLineBuffer)
883 03aa 90E0 ldi r25,hi8(currentLineBuffer)
884 03ac 00D0 rcall CamIntAsm_acquireDumpLine
885 03ae 0895 ret
886 .L81:
887 .stabn 68,0,324,.LM117-.LFBB4
888 .LM117:
889 03b0 8130 cpi r24,lo8(1)
890 03b2 01F4 brne .L94
891 .L97:
892 .stabn 68,0,326,.LM118-.LFBB4
893 .LM118:
894 03b4 8499 sbic 48-0x20,4
895 03b6 00C0 rjmp .L97
896 .stabn 68,0,327,.LM119-.LFBB4
897 .LM119:
898 03b8 60E0 ldi r22,lo8(colorMap)
899 03ba 70E0 ldi r23,hi8(colorMap)
900 03bc 80E0 ldi r24,lo8(currentLineBuffer)
901 03be 90E0 ldi r25,hi8(currentLineBuffer)
902 03c0 00D0 rcall CamIntAsm_acquireTrackingLine
903 .L94:
904 03c2 0895 ret
905 /* epilogue: frame size=0 */
906 /* epilogue: noreturn */
907 /* epilogue end (size=0) */
908 /* function FrameMgr_acquireLine size 52 (52) */
909 .size FrameMgr_acquireLine, .-FrameMgr_acquireLine
910 .stabs "tmpLineCount:r(0,11)",64,0,288,25
911 .stabn 192,0,0,.LFBB4-.LFBB4
912 .stabn 224,0,0,.Lscope4-.LFBB4
913 .Lscope4:
914 .stabs "",36,0,0,.Lscope4-.LFBB4
915 .stabd 78,0,0
916 .stabs "FrameMgr_acquireFrame:F(0,15)",36,0,261,FrameMgr_acquireFrame
917 .global FrameMgr_acquireFrame
918 .type FrameMgr_acquireFrame, @function
919 FrameMgr_acquireFrame:
920 .stabd 46,0,0
GAS LISTING /tmp/cc0XjEMJ.s page 31
 
 
921 /* epilogue end (size=0) */
922 /* function FrameMgr_acquireLine size 55 (55) */
923 .size FrameMgr_acquireLine, .-FrameMgr_acquireLine
924 .stabs "tmpLineCount:r(0,11)",64,0,288,18
925 .stabn 192,0,0,FrameMgr_acquireLine-FrameMgr_acquireLine
926 .stabn 224,0,0,.Lscope3-FrameMgr_acquireLine
927 .Lscope3:
928 .stabs "",36,0,0,.Lscope3-FrameMgr_acquireLine
929 .stabd 78,0,0
930 .stabs "FrameMgr_acquireFrame:F(0,15)",36,0,261,FrameMgr_acquireFrame
931 .global FrameMgr_acquireFrame
932 .type FrameMgr_acquireFrame, @function
933 FrameMgr_acquireFrame:
934 .stabd 46,0,0
935 .stabn 68,0,261,.LM118-FrameMgr_acquireFrame
936 .LM118:
937 /* prologue: frame size=0 */
938 /* prologue end (size=0) */
939 .stabn 68,0,262,.LM119-FrameMgr_acquireFrame
940 .LM119:
941 03ee 8091 0000 lds r24,currentState
942 03f2 8130 cpi r24,lo8(1)
943 03f4 A9F4 brne .L120
944 .stabn 68,0,264,.LM120-FrameMgr_acquireFrame
945 .LM120:
946 03f6 1092 0000 sts trackedLineCount,__zero_reg__
947 .stabn 68,0,265,.LM121-FrameMgr_acquireFrame
948 .LM121:
949 03fa 8091 0000 lds r24,numCurrTrackedObjects
950 03fe 8093 0000 sts numPrevTrackedObjects,r24
951 .stabn 68,0,266,.LM122-FrameMgr_acquireFrame
952 .LM122:
953 0402 1092 0000 sts numCurrTrackedObjects,__zero_reg__
954 .stabn 68,0,270,.LM123-FrameMgr_acquireFrame
955 .LM123:
956 0406 80E4 ldi r24,lo8(64)
957 0408 E0E0 ldi r30,lo8(trackedObjectTable)
958 040a F0E0 ldi r31,hi8(trackedObjectTable)
959 040c 1192 st Z+,__zero_reg__
960 040e 8A95 dec r24
961 0410 E9F7 brne .-6
962 .L118:
963 .stabn 68,0,272,.LM124-FrameMgr_acquireFrame
964 .LM124:
965 0412 829B sbis 48-0x20,2
966 0414 FECF rjmp .L118
967 .stabn 68,0,273,.LM125-FrameMgr_acquireFrame
968 .LM125:
969 0416 60E0 ldi r22,lo8(colorMap)
970 0418 70E0 ldi r23,hi8(colorMap)
971 041a 80E0 ldi r24,lo8(currentLineBuffer)
972 041c 90E0 ldi r25,hi8(currentLineBuffer)
973 041e 00D0 rcall CamIntAsm_acquireTrackingLine
974 .L120:
975 0420 0895 ret
976 /* epilogue: frame size=0 */
977 /* epilogue: noreturn */
GAS LISTING /tmp/ccQRbLT3.s page 32
921 .stabn 68,0,261,.LM120-.LFBB5
922 .LM120:
923 .LFBB5:
924 /* prologue: frame size=0 */
925 /* prologue end (size=0) */
926 .stabn 68,0,262,.LM121-.LFBB5
927 .LM121:
928 03c4 8091 0000 lds r24,currentState
929 03c8 8130 cpi r24,lo8(1)
930 03ca 01F4 brne .L117
931 .stabn 68,0,264,.LM122-.LFBB5
932 .LM122:
933 03cc 1092 0000 sts trackedLineCount,__zero_reg__
934 .stabn 68,0,265,.LM123-.LFBB5
935 .LM123:
936 03d0 8091 0000 lds r24,numCurrTrackedObjects
937 03d4 8093 0000 sts numPrevTrackedObjects,r24
938 .stabn 68,0,266,.LM124-.LFBB5
939 .LM124:
940 03d8 1092 0000 sts numCurrTrackedObjects,__zero_reg__
941 .stabn 68,0,270,.LM125-.LFBB5
942 .LM125:
943 03dc 80E4 ldi r24,lo8(64)
944 03de E0E0 ldi r30,lo8(trackedObjectTable)
945 03e0 F0E0 ldi r31,hi8(trackedObjectTable)
946 03e2 1192 st Z+,__zero_reg__
947 03e4 8A95 dec r24
948 03e6 01F4 brne .-6
949 .L115:
950 .stabn 68,0,272,.LM126-.LFBB5
951 .LM126:
952 03e8 829B sbis 48-0x20,2
953 03ea 00C0 rjmp .L115
954 .stabn 68,0,273,.LM127-.LFBB5
955 .LM127:
956 03ec 60E0 ldi r22,lo8(colorMap)
957 03ee 70E0 ldi r23,hi8(colorMap)
958 03f0 80E0 ldi r24,lo8(currentLineBuffer)
959 03f2 90E0 ldi r25,hi8(currentLineBuffer)
960 03f4 00D0 rcall CamIntAsm_acquireTrackingLine
961 .L117:
962 03f6 0895 ret
963 /* epilogue: frame size=0 */
964 /* epilogue: noreturn */
965 /* epilogue end (size=0) */
966 /* function FrameMgr_acquireFrame size 26 (26) */
967 .size FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
968 .Lscope5:
969 .stabs "",36,0,0,.Lscope5-.LFBB5
970 .stabd 78,0,0
971 .stabs "FrameMgr_dispatchEvent:F(0,15)",36,0,205,FrameMgr_dispatchEvent
972 .stabs "event:P(0,11)",64,0,204,24
973 .global FrameMgr_dispatchEvent
974 .type FrameMgr_dispatchEvent, @function
975 FrameMgr_dispatchEvent:
976 .stabd 46,0,0
977 .stabn 68,0,205,.LM128-.LFBB6
GAS LISTING /tmp/cc0XjEMJ.s page 32
 
 
978 /* epilogue end (size=0) */
979 /* function FrameMgr_acquireFrame size 26 (26) */
980 .size FrameMgr_acquireFrame, .-FrameMgr_acquireFrame
981 .Lscope4:
982 .stabs "",36,0,0,.Lscope4-FrameMgr_acquireFrame
983 .stabd 78,0,0
984 .stabs "FrameMgr_dispatchEvent:F(0,15)",36,0,205,FrameMgr_dispatchEvent
985 .stabs "event:P(0,11)",64,0,204,24
986 .global FrameMgr_dispatchEvent
987 .type FrameMgr_dispatchEvent, @function
988 FrameMgr_dispatchEvent:
989 .stabd 46,0,0
990 .stabn 68,0,205,.LM126-FrameMgr_dispatchEvent
991 .LM126:
992 /* prologue: frame size=0 */
993 /* prologue end (size=0) */
994 .stabn 68,0,206,.LM127-FrameMgr_dispatchEvent
995 .LM127:
996 0422 8430 cpi r24,lo8(4)
997 0424 19F1 breq .L127
998 .stabn 68,0,206,.LM128-FrameMgr_dispatchEvent
999 .LM128:
1000 0426 8530 cpi r24,lo8(5)
1001 0428 28F4 brsh .L131
1002 042a 8130 cpi r24,lo8(1)
1003 042c 09F1 breq .L125
1004 042e 8230 cpi r24,lo8(2)
1005 0430 41F5 brne .L133
1006 0432 07C0 rjmp .L126
1007 .L131:
1008 0434 8038 cpi r24,lo8(-128)
1009 0436 99F0 breq .L129
1010 0438 8138 cpi r24,lo8(-127)
1011 043a 09F1 breq .L130
1012 043c 8032 cpi r24,lo8(32)
1013 043e 09F5 brne .L133
1014 0440 13C0 rjmp .L128
1015 .L126:
1016 .stabn 68,0,211,.LM129-FrameMgr_dispatchEvent
1017 .LM129:
1018 0442 61E0 ldi r22,lo8(1)
1019 0444 81E1 ldi r24,lo8(17)
1020 0446 00D0 rcall CamConfig_setCamReg
1021 .stabn 68,0,212,.LM130-FrameMgr_dispatchEvent
1022 .LM130:
1023 0448 00D0 rcall CamConfig_sendFifoCmds
1024 .stabn 68,0,213,.LM131-FrameMgr_dispatchEvent
1025 .LM131:
1026 044a 88EE ldi r24,lo8(1000)
1027 044c 93E0 ldi r25,hi8(1000)
1028 044e 00D0 rcall Utility_delay
1029 .stabn 68,0,214,.LM132-FrameMgr_dispatchEvent
1030 .LM132:
1031 0450 1092 0000 sts lineCount,__zero_reg__
1032 .stabn 68,0,215,.LM133-FrameMgr_dispatchEvent
1033 .LM133:
1034 0454 82E0 ldi r24,lo8(2)
GAS LISTING /tmp/ccQRbLT3.s page 33
978 .LM128:
979 .LFBB6:
980 /* prologue: frame size=0 */
981 /* prologue end (size=0) */
982 .stabn 68,0,206,.LM129-.LFBB6
983 .LM129:
984 03f8 8430 cpi r24,lo8(4)
985 03fa 01F0 breq .L124
986 .stabn 68,0,206,.LM130-.LFBB6
987 .LM130:
988 03fc 8530 cpi r24,lo8(5)
989 03fe 00F4 brsh .L128
990 0400 8130 cpi r24,lo8(1)
991 0402 01F0 breq .L122
992 0404 8230 cpi r24,lo8(2)
993 0406 01F4 brne .L130
994 0408 00C0 rjmp .L123
995 .L128:
996 040a 8038 cpi r24,lo8(-128)
997 040c 01F0 breq .L126
998 040e 8138 cpi r24,lo8(-127)
999 0410 01F0 breq .L127
1000 0412 8032 cpi r24,lo8(32)
1001 0414 01F4 brne .L130
1002 0416 00C0 rjmp .L125
1003 .L123:
1004 .stabn 68,0,211,.LM131-.LFBB6
1005 .LM131:
1006 0418 61E0 ldi r22,lo8(1)
1007 041a 81E1 ldi r24,lo8(17)
1008 041c 00D0 rcall CamConfig_setCamReg
1009 .stabn 68,0,212,.LM132-.LFBB6
1010 .LM132:
1011 041e 00D0 rcall CamConfig_sendFifoCmds
1012 .stabn 68,0,213,.LM133-.LFBB6
1013 .LM133:
1014 0420 88EE ldi r24,lo8(1000)
1015 0422 93E0 ldi r25,hi8(1000)
1016 0424 00D0 rcall Utility_delay
1017 .stabn 68,0,214,.LM134-.LFBB6
1018 .LM134:
1019 0426 1092 0000 sts lineCount,__zero_reg__
1020 .stabn 68,0,215,.LM135-.LFBB6
1021 .LM135:
1022 042a 82E0 ldi r24,lo8(2)
1023 042c 8093 0000 sts currentState,r24
1024 .stabn 68,0,217,.LM136-.LFBB6
1025 .LM136:
1026 0430 00D0 rcall FrameMgr_acquireLine
1027 0432 0895 ret
1028 .L126:
1029 .stabn 68,0,221,.LM137-.LFBB6
1030 .LM137:
1031 0434 81E0 ldi r24,lo8(1)
1032 0436 8093 0000 sts currentState,r24
1033 .stabn 68,0,222,.LM138-.LFBB6
1034 .LM138:
GAS LISTING /tmp/cc0XjEMJ.s page 33
 
 
1035 0456 8093 0000 sts currentState,r24
1036 .stabn 68,0,217,.LM134-FrameMgr_dispatchEvent
1037 .LM134:
1038 045a 92DF rcall FrameMgr_acquireLine
1039 045c 0895 ret
1040 .L129:
1041 .stabn 68,0,221,.LM135-FrameMgr_dispatchEvent
1042 .LM135:
1043 045e 81E0 ldi r24,lo8(1)
1044 0460 8093 0000 sts currentState,r24
1045 .stabn 68,0,222,.LM136-FrameMgr_dispatchEvent
1046 .LM136:
1047 0464 C4DF rcall FrameMgr_acquireFrame
1048 0466 0895 ret
1049 .L128:
1050 .stabn 68,0,226,.LM137-FrameMgr_dispatchEvent
1051 .LM137:
1052 0468 CBDD rcall FrameMgr_processFrame
1053 046a 0895 ret
1054 .L127:
1055 .stabn 68,0,230,.LM138-FrameMgr_dispatchEvent
1056 .LM138:
1057 046c C0DF rcall FrameMgr_acquireFrame
1058 046e 0895 ret
1059 .L125:
1060 .stabn 68,0,234,.LM139-FrameMgr_dispatchEvent
1061 .LM139:
1062 0470 8091 0000 lds r24,currentState
1063 0474 8823 tst r24
1064 0476 29F0 breq .L133
1065 .stabn 68,0,240,.LM140-FrameMgr_dispatchEvent
1066 .LM140:
1067 0478 84E0 ldi r24,lo8(4)
1068 047a 00D0 rcall Exec_writeEventFifo
1069 047c 0895 ret
1070 .L130:
1071 .stabn 68,0,246,.LM141-FrameMgr_dispatchEvent
1072 .LM141:
1073 047e 1092 0000 sts currentState,__zero_reg__
1074 .L133:
1075 0482 0895 ret
1076 /* epilogue: frame size=0 */
1077 /* epilogue: noreturn */
1078 /* epilogue end (size=0) */
1079 /* function FrameMgr_dispatchEvent size 49 (49) */
1080 .size FrameMgr_dispatchEvent, .-FrameMgr_dispatchEvent
1081 .Lscope5:
1082 .stabs "",36,0,0,.Lscope5-FrameMgr_dispatchEvent
1083 .stabd 78,0,0
1084 .data
1085 .type pCurrentTrackedObjectTable, @object
1086 .size pCurrentTrackedObjectTable, 2
1087 pCurrentTrackedObjectTable:
1088 0000 0000 .word trackedObjectTable
1089 .lcomm numCurrTrackedObjects,1
1090 .lcomm currentState,1
1091 .lcomm lineCount,1
GAS LISTING /tmp/ccQRbLT3.s page 34
1035 043a 00D0 rcall FrameMgr_acquireFrame
1036 043c 0895 ret
1037 .L125:
1038 .stabn 68,0,226,.LM139-.LFBB6
1039 .LM139:
1040 043e 00D0 rcall FrameMgr_processFrame
1041 0440 0895 ret
1042 .L124:
1043 .stabn 68,0,230,.LM140-.LFBB6
1044 .LM140:
1045 0442 00D0 rcall FrameMgr_acquireFrame
1046 0444 0895 ret
1047 .L122:
1048 .stabn 68,0,234,.LM141-.LFBB6
1049 .LM141:
1050 0446 8091 0000 lds r24,currentState
1051 044a 8823 tst r24
1052 044c 01F0 breq .L130
1053 .stabn 68,0,240,.LM142-.LFBB6
1054 .LM142:
1055 044e 84E0 ldi r24,lo8(4)
1056 0450 00D0 rcall Exec_writeEventFifo
1057 0452 0895 ret
1058 .L127:
1059 .stabn 68,0,246,.LM143-.LFBB6
1060 .LM143:
1061 0454 1092 0000 sts currentState,__zero_reg__
1062 .L130:
1063 0458 0895 ret
1064 /* epilogue: frame size=0 */
1065 /* epilogue: noreturn */
1066 /* epilogue end (size=0) */
1067 /* function FrameMgr_dispatchEvent size 49 (49) */
1068 .size FrameMgr_dispatchEvent, .-FrameMgr_dispatchEvent
1069 .Lscope6:
1070 .stabs "",36,0,0,.Lscope6-.LFBB6
1071 .stabd 78,0,0
1072 .data
1073 .type pCurrentTrackedObjectTable, @object
1074 .size pCurrentTrackedObjectTable, 2
1075 pCurrentTrackedObjectTable:
1076 0000 0000 .word trackedObjectTable
1077 .lcomm numCurrTrackedObjects,1
1078 .lcomm currentState,1
1079 .lcomm lineCount,1
1080 .lcomm trackedLineCount,1
1081 .lcomm numPrevTrackedObjects,1
1082 .lcomm trackedObjectTable,64
1083 .stabs "trackedObjectTable:S(0,24)=ar(0,25)=r(0,25);0;0177777;;0;7;(0,20)",40,0,162,trackedObjectT
1084 .stabs "pCurrentTrackedObjectTable:S(0,26)=*(0,20)",38,0,163,pCurrentTrackedObjectTable
1085 .stabs "lineCount:S(0,11)",38,0,164,lineCount
1086 .stabs "currentState:S(0,17)",38,0,165,currentState
1087 .stabs "numCurrTrackedObjects:S(0,11)",38,0,166,numCurrTrackedObjects
1088 .stabs "numPrevTrackedObjects:S(0,11)",38,0,167,numPrevTrackedObjects
1089 .stabs "trackedLineCount:S(0,11)",38,0,168,trackedLineCount
1090 .text
1091 .stabs "",100,0,0,.Letext0
GAS LISTING /tmp/cc0XjEMJ.s page 34
 
 
1092 .lcomm trackedLineCount,1
1093 .lcomm numPrevTrackedObjects,1
1094 .lcomm trackedObjectTable,64
1095 .stabs "trackedObjectTable:S(0,24)=ar(0,25)=r(0,25);0;0177777;;0;7;(0,20)",40,0,162,trackedObjectT
1096 .stabs "pCurrentTrackedObjectTable:S(0,26)=*(0,20)",38,0,163,pCurrentTrackedObjectTable
1097 .stabs "lineCount:S(0,11)",38,0,164,lineCount
1098 .stabs "currentState:S(0,17)",38,0,165,currentState
1099 .stabs "numCurrTrackedObjects:S(0,11)",38,0,166,numCurrTrackedObjects
1100 .stabs "numPrevTrackedObjects:S(0,11)",38,0,167,numPrevTrackedObjects
1101 .stabs "trackedLineCount:S(0,11)",38,0,168,trackedLineCount
1102 .text
1103 .stabs "",100,0,0,.Letext0
1104 .Letext0:
1105 /* File "FrameMgr.c": code 580 = 0x0244 ( 513), prologues 33, epilogues 34 */
GAS LISTING /tmp/ccQRbLT3.s page 35
1092 .Letext0:
1093 /* File "FrameMgr.c": code 559 = 0x022f ( 494), prologues 32, epilogues 33 */
GAS LISTING /tmp/cc0XjEMJ.s page 35
 
 
DEFINED SYMBOLS
*ABS*:00000000 FrameMgr.c
/tmp/ccQRbLT3.s:3 *ABS*:0000003f __SREG__
/tmp/ccQRbLT3.s:4 *ABS*:0000003e __SP_H__
/tmp/ccQRbLT3.s:5 *ABS*:0000003d __SP_L__
/tmp/ccQRbLT3.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccQRbLT3.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccQRbLT3.s:91 .text:00000000 FrameMgr_processFrame
/tmp/ccQRbLT3.s:1087 .data:00000000 pCurrentTrackedObjectTable
/tmp/cc0XjEMJ.s:2 *ABS*:0000003f __SREG__
/tmp/cc0XjEMJ.s:3 *ABS*:0000003e __SP_H__
/tmp/cc0XjEMJ.s:4 *ABS*:0000003d __SP_L__
/tmp/cc0XjEMJ.s:5 *ABS*:00000000 __tmp_reg__
/tmp/cc0XjEMJ.s:6 *ABS*:00000001 __zero_reg__
/tmp/cc0XjEMJ.s:90 .text:00000000 FrameMgr_processFrame
/tmp/cc0XjEMJ.s:1075 .data:00000000 pCurrentTrackedObjectTable
.bss:00000000 numCurrTrackedObjects
/tmp/ccQRbLT3.s:270 .text:000000b2 FrameMgr_processLine
/tmp/ccQRbLT3.s:1089 .bss:00000001 currentState
/tmp/ccQRbLT3.s:1090 .bss:00000002 lineCount
/tmp/ccQRbLT3.s:1091 .bss:00000003 trackedLineCount
/tmp/ccQRbLT3.s:798 .text:00000372 FrameMgr_init
/tmp/ccQRbLT3.s:1093 .bss:00000005 trackedObjectTable
/tmp/ccQRbLT3.s:823 .text:00000380 FrameMgr_acquireLine
/tmp/ccQRbLT3.s:933 .text:000003ee FrameMgr_acquireFrame
/tmp/ccQRbLT3.s:1092 .bss:00000004 numPrevTrackedObjects
/tmp/ccQRbLT3.s:988 .text:00000422 FrameMgr_dispatchEvent
/tmp/cc0XjEMJ.s:270 .text:000000b2 FrameMgr_processLine
/tmp/cc0XjEMJ.s:1077 .bss:00000001 currentState
/tmp/cc0XjEMJ.s:1078 .bss:00000002 lineCount
/tmp/cc0XjEMJ.s:1079 .bss:00000003 trackedLineCount
/tmp/cc0XjEMJ.s:784 .text:0000034e FrameMgr_init
/tmp/cc0XjEMJ.s:1081 .bss:00000005 trackedObjectTable
/tmp/cc0XjEMJ.s:810 .text:0000035c FrameMgr_acquireLine
/tmp/cc0XjEMJ.s:919 .text:000003c4 FrameMgr_acquireFrame
/tmp/cc0XjEMJ.s:1080 .bss:00000004 numPrevTrackedObjects
/tmp/cc0XjEMJ.s:975 .text:000003f8 FrameMgr_dispatchEvent
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/I2CInterface.lst
1,89 → 1,88
GAS LISTING /tmp/ccZHfAgR.s page 1
GAS LISTING /tmp/ccfEG7oP.s page 1
 
 
1 .file "I2CInterface.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "I2CInterface.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
GAS LISTING /tmp/ccZHfAgR.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "I2CInterface.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
33 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
34 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
35 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
36 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
37 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
38 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
39 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
40 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
41 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
42 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
43 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
44 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
45 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
46 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
47 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
48 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
49 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
50 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
51 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
52 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
53 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
54 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
55 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
56 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
57 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
GAS LISTING /tmp/ccfEG7oP.s page 2
 
 
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
58 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
59 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
60 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
61 .stabn 162,0,0,0
62 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
63 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabs "CamConfig.h",130,0,0,0
69 .stabs "I2CInterface.h",130,0,0,0
70 .stabs "CommonDefs.h",130,0,0,0
71 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
72 .stabn 162,0,0,0
73 .stabs "i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
67 .stabs "CamConfig.h",130,0,0,0
68 .stabs "I2CInterface.h",130,0,0,0
69 .stabs "CommonDefs.h",130,0,0,0
70 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
71 .stabn 162,0,0,0
72 .stabs "i2cCmd_t:t(6,1)=(6,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
73 .stabn 162,0,0,0
74 .stabn 162,0,0,0
75 .stabn 162,0,0,0
76 .stabs "I2CInt_init:F(0,15)",36,0,85,I2CInt_init
77 .global I2CInt_init
78 .type I2CInt_init, @function
79 I2CInt_init:
80 .stabd 46,0,0
75 .stabs "I2CInt_init:F(0,15)",36,0,85,I2CInt_init
76 .global I2CInt_init
77 .type I2CInt_init, @function
78 I2CInt_init:
79 .stabd 46,0,0
1:I2CInterface.c **** /*
2:I2CInterface.c **** Copyright (C) 2004 John Orlando
3:I2CInterface.c ****
118,10 → 117,10
32:I2CInterface.c **** low-level interface to the I2C hardware resident on the
33:I2CInterface.c **** mega8 processor (also known as the Two-Wire Interface,
34:I2CInterface.c **** or TWI). The interface is needed to configure the
GAS LISTING /tmp/ccZHfAgR.s page 3
35:I2CInterface.c **** needed registers in the OV6620 camera. This interface
GAS LISTING /tmp/ccfEG7oP.s page 3
 
 
35:I2CInterface.c **** needed registers in the OV6620 camera. This interface
36:I2CInterface.c **** is interrupt-driven based on the events that should
37:I2CInterface.c **** occur upon successful writing of an I2C register.
38:I2CInterface.c ****
172,13 → 171,14
83:I2CInterface.c **** ***********************************************************/
84:I2CInterface.c **** void I2CInt_init(void)
85:I2CInterface.c **** {
81 .stabn 68,0,85,.LM0-I2CInt_init
82 .LM0:
80 .stabn 68,0,85,.LM0-.LFBB1
81 .LM0:
82 .LFBB1:
83 /* prologue: frame size=0 */
84 /* prologue end (size=0) */
86:I2CInterface.c **** TWSR = 0;
85 .stabn 68,0,86,.LM1-I2CInt_init
GAS LISTING /tmp/ccZHfAgR.s page 4
85 .stabn 68,0,86,.LM1-.LFBB1
GAS LISTING /tmp/ccfEG7oP.s page 4
 
 
86 .LM1:
187,7 → 187,7
88:I2CInterface.c **** /* init the speed of the I2C interface, running at
89:I2CInterface.c **** 100 Kbps */
90:I2CInterface.c **** TWBR = (FOSC / I2C_SPEED - 16)/2;
88 .stabn 68,0,90,.LM2-I2CInt_init
88 .stabn 68,0,90,.LM2-.LFBB1
89 .LM2:
90 0002 88E4 ldi r24,lo8(72)
91 0004 80B9 out 32-0x20,r24
196,8 → 196,8
94 /* epilogue end (size=1) */
95 /* function I2CInt_init size 4 (3) */
96 .size I2CInt_init, .-I2CInt_init
97 .Lscope0:
98 .stabs "",36,0,0,.Lscope0-I2CInt_init
97 .Lscope1:
98 .stabs "",36,0,0,.Lscope1-.LFBB1
99 .stabd 78,0,0
100 .stabs "I2CInt_writeData:F(0,15)",36,0,108,I2CInt_writeData
101 .stabs "address:P(0,11)",64,0,107,25
225,86 → 225,87
106:I2CInterface.c **** ***********************************************************/
107:I2CInterface.c **** void I2CInt_writeData(unsigned char address, unsigned char *data, unsigned char bytes)
108:I2CInterface.c **** {
108 .stabn 68,0,108,.LM3-I2CInt_writeData
108 .stabn 68,0,108,.LM3-.LFBB2
109 .LM3:
110 /* prologue: frame size=0 */
111 /* prologue end (size=0) */
112 0008 982F mov r25,r24
113 .L5:
110 .LFBB2:
111 /* prologue: frame size=0 */
112 /* prologue end (size=0) */
113 0008 982F mov r25,r24
114 .L5:
109:I2CInterface.c **** while(status & (1<<BUSY)); /* Bus is busy wait (or exit with error code) */
114 .stabn 68,0,109,.LM4-I2CInt_writeData
115 .LM4:
116 000a 8091 0000 lds r24,status
117 000e 8823 tst r24
118 0010 E4F3 brlt .L5
119 .L9:
GAS LISTING /tmp/ccZHfAgR.s page 5
115 .stabn 68,0,109,.LM4-.LFBB2
116 .LM4:
117 000a 8091 0000 lds r24,status
118 000e 8823 tst r24
119 0010 04F0 brlt .L5
GAS LISTING /tmp/ccfEG7oP.s page 5
 
 
120 .L9:
110:I2CInterface.c **** while(TWCR & (1<<TWSTO));
120 .stabn 68,0,110,.LM5-I2CInt_writeData
121 .LM5:
122 0012 06B6 in __tmp_reg__,86-0x20
123 0014 04FC sbrc __tmp_reg__,4
124 0016 FDCF rjmp .L9
121 .stabn 68,0,110,.LM5-.LFBB2
122 .LM5:
123 0012 06B6 in __tmp_reg__,86-0x20
124 0014 04FC sbrc __tmp_reg__,4
125 0016 00C0 rjmp .L9
111:I2CInterface.c ****
112:I2CInterface.c **** /* copy the needed data and state info to our local I2C command structure */
113:I2CInterface.c **** twi_address = address;
125 .stabn 68,0,113,.LM6-I2CInt_writeData
126 .LM6:
127 0018 9093 0000 sts twi_address,r25
126 .stabn 68,0,113,.LM6-.LFBB2
127 .LM6:
128 0018 9093 0000 sts twi_address,r25
114:I2CInterface.c **** twi_data = data;
128 .stabn 68,0,114,.LM7-I2CInt_writeData
129 .LM7:
130 001c 7093 0000 sts (twi_data)+1,r23
131 0020 6093 0000 sts twi_data,r22
129 .stabn 68,0,114,.LM7-.LFBB2
130 .LM7:
131 001c 7093 0000 sts (twi_data)+1,r23
132 0020 6093 0000 sts twi_data,r22
115:I2CInterface.c **** twi_bytes = bytes;
132 .stabn 68,0,115,.LM8-I2CInt_writeData
133 .LM8:
134 0024 4093 0000 sts twi_bytes,r20
133 .stabn 68,0,115,.LM8-.LFBB2
134 .LM8:
135 0024 4093 0000 sts twi_bytes,r20
116:I2CInterface.c **** twi_ddr = TW_WRITE;
135 .stabn 68,0,116,.LM9-I2CInt_writeData
136 .LM9:
137 0028 1092 0000 sts twi_ddr,__zero_reg__
136 .stabn 68,0,116,.LM9-.LFBB2
137 .LM9:
138 0028 1092 0000 sts twi_ddr,__zero_reg__
117:I2CInterface.c ****
118:I2CInterface.c **** retry_cnt = 0;
138 .stabn 68,0,118,.LM10-I2CInt_writeData
139 .LM10:
140 002c 1092 0000 sts retry_cnt,__zero_reg__
139 .stabn 68,0,118,.LM10-.LFBB2
140 .LM10:
141 002c 1092 0000 sts retry_cnt,__zero_reg__
119:I2CInterface.c ****
120:I2CInterface.c **** /* Generate start condition, the remainder of the transfer is interrupt driven and
121:I2CInterface.c **** will be performed in the background */
122:I2CInterface.c **** TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
141 .stabn 68,0,122,.LM11-I2CInt_writeData
142 .LM11:
143 0030 85EA ldi r24,lo8(-91)
144 0032 86BF out 86-0x20,r24
142 .stabn 68,0,122,.LM11-.LFBB2
143 .LM11:
144 0030 85EA ldi r24,lo8(-91)
145 0032 86BF out 86-0x20,r24
123:I2CInterface.c ****
124:I2CInterface.c **** status |= (1<<BUSY);
145 .stabn 68,0,124,.LM12-I2CInt_writeData
146 .LM12:
147 0034 8091 0000 lds r24,status
148 0038 8068 ori r24,lo8(-128)
149 003a 8093 0000 sts status,r24
150 /* epilogue: frame size=0 */
151 003e 0895 ret
152 /* epilogue end (size=1) */
153 /* function I2CInt_writeData size 28 (27) */
154 .size I2CInt_writeData, .-I2CInt_writeData
155 .Lscope1:
156 .stabs "",36,0,0,.Lscope1-I2CInt_writeData
157 .stabd 78,0,0
158 .stabs "I2CInt_readData:F(0,15)",36,0,138,I2CInt_readData
159 .stabs "address:P(0,11)",64,0,137,25
160 .stabs "data:P(0,16)",64,0,137,22
161 .stabs "bytes:P(0,11)",64,0,137,20
GAS LISTING /tmp/ccZHfAgR.s page 6
146 .stabn 68,0,124,.LM12-.LFBB2
147 .LM12:
148 0034 8091 0000 lds r24,status
149 0038 8068 ori r24,lo8(-128)
150 003a 8093 0000 sts status,r24
151 /* epilogue: frame size=0 */
152 003e 0895 ret
153 /* epilogue end (size=1) */
154 /* function I2CInt_writeData size 28 (27) */
155 .size I2CInt_writeData, .-I2CInt_writeData
156 .Lscope2:
157 .stabs "",36,0,0,.Lscope2-.LFBB2
158 .stabd 78,0,0
159 .stabs "I2CInt_readData:F(0,15)",36,0,138,I2CInt_readData
160 .stabs "address:P(0,11)",64,0,137,25
161 .stabs "data:P(0,16)",64,0,137,22
GAS LISTING /tmp/ccfEG7oP.s page 6
 
 
162 .global I2CInt_readData
163 .type I2CInt_readData, @function
164 I2CInt_readData:
165 .stabd 46,0,0
162 .stabs "bytes:P(0,11)",64,0,137,20
163 .global I2CInt_readData
164 .type I2CInt_readData, @function
165 I2CInt_readData:
166 .stabd 46,0,0
125:I2CInterface.c **** }
126:I2CInterface.c ****
127:I2CInterface.c **** /***********************************************************
319,74 → 320,75
136:I2CInterface.c **** ***********************************************************/
137:I2CInterface.c **** void I2CInt_readData(unsigned char address, unsigned char *data, unsigned char bytes)
138:I2CInterface.c **** {
166 .stabn 68,0,138,.LM13-I2CInt_readData
167 .LM13:
168 /* prologue: frame size=0 */
169 /* prologue end (size=0) */
170 0040 982F mov r25,r24
171 .L15:
167 .stabn 68,0,138,.LM13-.LFBB3
168 .LM13:
169 .LFBB3:
170 /* prologue: frame size=0 */
171 /* prologue end (size=0) */
172 0040 982F mov r25,r24
173 .L15:
139:I2CInterface.c **** /* Bus is busy wait (or exit with error code) */
140:I2CInterface.c **** while(status & (1<<BUSY));
172 .stabn 68,0,140,.LM14-I2CInt_readData
173 .LM14:
174 0042 8091 0000 lds r24,status
175 0046 8823 tst r24
176 0048 E4F3 brlt .L15
174 .stabn 68,0,140,.LM14-.LFBB3
175 .LM14:
176 0042 8091 0000 lds r24,status
177 0046 8823 tst r24
178 0048 04F0 brlt .L15
141:I2CInterface.c ****
142:I2CInterface.c **** twi_address = address;
177 .stabn 68,0,142,.LM15-I2CInt_readData
178 .LM15:
179 004a 9093 0000 sts twi_address,r25
179 .stabn 68,0,142,.LM15-.LFBB3
180 .LM15:
181 004a 9093 0000 sts twi_address,r25
143:I2CInterface.c **** twi_data = data;
180 .stabn 68,0,143,.LM16-I2CInt_readData
181 .LM16:
182 004e 7093 0000 sts (twi_data)+1,r23
183 0052 6093 0000 sts twi_data,r22
182 .stabn 68,0,143,.LM16-.LFBB3
183 .LM16:
184 004e 7093 0000 sts (twi_data)+1,r23
185 0052 6093 0000 sts twi_data,r22
144:I2CInterface.c **** twi_bytes = bytes;
184 .stabn 68,0,144,.LM17-I2CInt_readData
185 .LM17:
186 0056 4093 0000 sts twi_bytes,r20
186 .stabn 68,0,144,.LM17-.LFBB3
187 .LM17:
188 0056 4093 0000 sts twi_bytes,r20
145:I2CInterface.c **** twi_ddr = TW_READ;
187 .stabn 68,0,145,.LM18-I2CInt_readData
188 .LM18:
189 005a 81E0 ldi r24,lo8(1)
190 005c 8093 0000 sts twi_ddr,r24
189 .stabn 68,0,145,.LM18-.LFBB3
190 .LM18:
191 005a 81E0 ldi r24,lo8(1)
192 005c 8093 0000 sts twi_ddr,r24
146:I2CInterface.c ****
147:I2CInterface.c **** retry_cnt = 0;
191 .stabn 68,0,147,.LM19-I2CInt_readData
192 .LM19:
193 0060 1092 0000 sts retry_cnt,__zero_reg__
193 .stabn 68,0,147,.LM19-.LFBB3
194 .LM19:
195 0060 1092 0000 sts retry_cnt,__zero_reg__
GAS LISTING /tmp/ccfEG7oP.s page 7
 
 
148:I2CInterface.c ****
149:I2CInterface.c **** /* Generate start condition, the remainder of the transfer is interrupt driven and
GAS LISTING /tmp/ccZHfAgR.s page 7
 
 
150:I2CInterface.c **** will be performed in the background */
151:I2CInterface.c **** TWCR = (1<<TWINT)|(1<<TWSTA)|(1<<TWEN)|(1<<TWIE);
194 .stabn 68,0,151,.LM20-I2CInt_readData
195 .LM20:
196 0064 85EA ldi r24,lo8(-91)
197 0066 86BF out 86-0x20,r24
196 .stabn 68,0,151,.LM20-.LFBB3
197 .LM20:
198 0064 85EA ldi r24,lo8(-91)
199 0066 86BF out 86-0x20,r24
152:I2CInterface.c ****
153:I2CInterface.c **** status |= (1<<BUSY);
198 .stabn 68,0,153,.LM21-I2CInt_readData
199 .LM21:
200 0068 8091 0000 lds r24,status
201 006c 8068 ori r24,lo8(-128)
202 006e 8093 0000 sts status,r24
203 /* epilogue: frame size=0 */
204 0072 0895 ret
205 /* epilogue end (size=1) */
206 /* function I2CInt_readData size 26 (25) */
207 .size I2CInt_readData, .-I2CInt_readData
208 .Lscope2:
209 .stabs "",36,0,0,.Lscope2-I2CInt_readData
210 .stabd 78,0,0
211 .stabs "I2CInt_isI2cBusy:F(7,1)",36,0,166,I2CInt_isI2cBusy
212 .global I2CInt_isI2cBusy
213 .type I2CInt_isI2cBusy, @function
214 I2CInt_isI2cBusy:
215 .stabd 46,0,0
200 .stabn 68,0,153,.LM21-.LFBB3
201 .LM21:
202 0068 8091 0000 lds r24,status
203 006c 8068 ori r24,lo8(-128)
204 006e 8093 0000 sts status,r24
205 /* epilogue: frame size=0 */
206 0072 0895 ret
207 /* epilogue end (size=1) */
208 /* function I2CInt_readData size 26 (25) */
209 .size I2CInt_readData, .-I2CInt_readData
210 .Lscope3:
211 .stabs "",36,0,0,.Lscope3-.LFBB3
212 .stabd 78,0,0
213 .stabs "I2CInt_isI2cBusy:F(7,1)",36,0,166,I2CInt_isI2cBusy
214 .global I2CInt_isI2cBusy
215 .type I2CInt_isI2cBusy, @function
216 I2CInt_isI2cBusy:
217 .stabd 46,0,0
154:I2CInterface.c **** }
155:I2CInterface.c ****
156:I2CInterface.c **** /***********************************************************
400,43 → 402,44
164:I2CInterface.c **** ***********************************************************/
165:I2CInterface.c **** bool_t I2CInt_isI2cBusy(void)
166:I2CInterface.c **** {
216 .stabn 68,0,166,.LM22-I2CInt_isI2cBusy
217 .LM22:
218 /* prologue: frame size=0 */
219 /* prologue end (size=0) */
218 .stabn 68,0,166,.LM22-.LFBB4
219 .LM22:
220 .LFBB4:
221 /* prologue: frame size=0 */
222 /* prologue end (size=0) */
167:I2CInterface.c **** bool_t retVal = FALSE;
168:I2CInterface.c **** if ( (status & (1<<BUSY)) != 0)
220 .stabn 68,0,168,.LM23-I2CInt_isI2cBusy
221 .LM23:
222 0074 8091 0000 lds r24,status
223 0078 881F rol r24
224 007a 8827 clr r24
225 007c 881F rol r24
223 .stabn 68,0,168,.LM23-.LFBB4
224 .LM23:
225 0074 8091 0000 lds r24,status
226 0078 881F rol r24
227 007a 8827 clr r24
228 007c 881F rol r24
169:I2CInterface.c **** {
170:I2CInterface.c **** retVal = TRUE;
171:I2CInterface.c **** }
GAS LISTING /tmp/ccfEG7oP.s page 8
 
 
172:I2CInterface.c ****
173:I2CInterface.c **** return(retVal);
174:I2CInterface.c **** }
GAS LISTING /tmp/ccZHfAgR.s page 8
 
 
226 .stabn 68,0,174,.LM24-I2CInt_isI2cBusy
227 .LM24:
228 007e 9927 clr r25
229 /* epilogue: frame size=0 */
230 0080 0895 ret
231 /* epilogue end (size=1) */
232 /* function I2CInt_isI2cBusy size 7 (6) */
233 .size I2CInt_isI2cBusy, .-I2CInt_isI2cBusy
234 .Lscope3:
235 .stabs "",36,0,0,.Lscope3-I2CInt_isI2cBusy
236 .stabd 78,0,0
237 .stabs "__vector_17:F(0,15)",36,0,185,__vector_17
238 .global __vector_17
239 .type __vector_17, @function
240 __vector_17:
241 .stabd 46,0,0
229 .stabn 68,0,174,.LM24-.LFBB4
230 .LM24:
231 007e 9927 clr r25
232 /* epilogue: frame size=0 */
233 0080 0895 ret
234 /* epilogue end (size=1) */
235 /* function I2CInt_isI2cBusy size 7 (6) */
236 .size I2CInt_isI2cBusy, .-I2CInt_isI2cBusy
237 .Lscope4:
238 .stabs "",36,0,0,.Lscope4-.LFBB4
239 .stabd 78,0,0
240 .stabs "__vector_17:F(0,15)",36,0,185,__vector_17
241 .global __vector_17
242 .type __vector_17, @function
243 __vector_17:
244 .stabd 46,0,0
175:I2CInterface.c ****
176:I2CInterface.c **** /***********************************************************
177:I2CInterface.c **** Function Name: <interrupt handler for I2C>
448,303 → 451,302
183:I2CInterface.c **** ***********************************************************/
184:I2CInterface.c **** SIGNAL(SIG_2WIRE_SERIAL)
185:I2CInterface.c **** {
242 .stabn 68,0,185,.LM25-__vector_17
243 .LM25:
244 /* prologue: frame size=0 */
245 0082 1F92 push __zero_reg__
246 0084 0F92 push __tmp_reg__
247 0086 0FB6 in __tmp_reg__,__SREG__
248 0088 0F92 push __tmp_reg__
249 008a 1124 clr __zero_reg__
250 008c 8F93 push r24
251 008e 9F93 push r25
252 0090 AF93 push r26
253 0092 BF93 push r27
254 0094 EF93 push r30
255 0096 FF93 push r31
256 /* prologue end (size=11) */
245 .stabn 68,0,185,.LM25-.LFBB5
246 .LM25:
247 .LFBB5:
248 /* prologue: frame size=0 */
249 0082 1F92 push __zero_reg__
250 0084 0F92 push __tmp_reg__
251 0086 0FB6 in __tmp_reg__,__SREG__
252 0088 0F92 push __tmp_reg__
253 008a 1124 clr __zero_reg__
254 008c 8F93 push r24
255 008e 9F93 push r25
256 0090 AF93 push r26
257 0092 BF93 push r27
258 0094 EF93 push r30
259 0096 FF93 push r31
260 /* prologue end (size=11) */
186:I2CInterface.c **** unsigned char TWI_status = TWSR & TW_STATUS_MASK; /* grab just the status bits */
257 .stabn 68,0,186,.LM26-__vector_17
258 .LM26:
259 0098 81B1 in r24,33-0x20
261 .stabn 68,0,186,.LM26-.LFBB5
262 .LM26:
263 0098 81B1 in r24,33-0x20
187:I2CInterface.c ****
188:I2CInterface.c **** /* the entire I2C handler is state-based...determine
189:I2CInterface.c **** what needs to be done based on TWI_status */
190:I2CInterface.c **** switch(TWI_status)
260 .stabn 68,0,190,.LM27-__vector_17
261 .LM27:
262 009a 9927 clr r25
263 009c AA27 clr r26
264 009e BB27 clr r27
265 00a0 887F andi r24,lo8(248)
266 00a2 9070 andi r25,hi8(248)
GAS LISTING /tmp/ccZHfAgR.s page 9
264 .stabn 68,0,190,.LM27-.LFBB5
265 .LM27:
266 009a 9927 clr r25
GAS LISTING /tmp/ccfEG7oP.s page 9
 
 
267 00a4 A070 andi r26,hlo8(248)
268 00a6 B070 andi r27,hhi8(248)
269 00a8 FC01 movw r30,r24
270 00aa 3897 sbiw r30,8
271 00ac E135 cpi r30,81
272 00ae F105 cpc r31,__zero_reg__
273 00b0 08F0 brlo .+2
274 00b2 9AC0 rjmp .L42
275 .stabn 68,0,190,.LM28-__vector_17
276 .LM28:
277 00b4 E050 subi r30,lo8(-(pm(.L33)))
278 00b6 F040 sbci r31,hi8(-(pm(.L33)))
279 00b8 0994 ijmp
280 .data
281 .section .progmem.gcc_sw_table, "ax", @progbits
282 .p2align 1
283 .L33:
267 009c AA27 clr r26
268 009e BB27 clr r27
269 00a0 887F andi r24,lo8(248)
270 00a2 9070 andi r25,hi8(248)
271 00a4 A070 andi r26,hlo8(248)
272 00a6 B070 andi r27,hhi8(248)
273 00a8 FC01 movw r30,r24
274 00aa 3897 sbiw r30,8
275 00ac E135 cpi r30,81
276 00ae F105 cpc r31,__zero_reg__
277 00b0 00F0 brlo .+2
278 00b2 00C0 rjmp .L42
279 .stabn 68,0,190,.LM28-.LFBB5
280 .LM28:
281 00b4 E050 subi r30,lo8(-(pm(.L33)))
282 00b6 F040 sbci r31,hi8(-(pm(.L33)))
283 00b8 0994 ijmp
284 .data
285 .section .progmem.gcc_sw_table, "ax", @progbits
286 .p2align 1
287 0000 00C0 rjmp .L25
288 0002 00C0 rjmp .L42
289 0004 00C0 rjmp .L42
290 0006 00C0 rjmp .L42
291 0008 00C0 rjmp .L42
292 000a 00C0 rjmp .L42
293 000c 00C0 rjmp .L42
294 000e 00C0 rjmp .L42
295 0010 00C0 rjmp .L25
296 0012 00C0 rjmp .L42
297 0014 00C0 rjmp .L42
298 0016 00C0 rjmp .L42
299 0018 00C0 rjmp .L42
300 001a 00C0 rjmp .L42
301 001c 00C0 rjmp .L42
302 001e 00C0 rjmp .L42
303 0020 00C0 rjmp .L26
304 0022 00C0 rjmp .L42
305 0024 00C0 rjmp .L42
306 0026 00C0 rjmp .L42
307 0028 00C0 rjmp .L42
308 002a 00C0 rjmp .L42
309 002c 00C0 rjmp .L42
310 002e 00C0 rjmp .L42
311 0030 00C0 rjmp .L27
312 0032 00C0 rjmp .L42
313 0034 00C0 rjmp .L42
314 0036 00C0 rjmp .L42
315 0038 00C0 rjmp .L42
316 003a 00C0 rjmp .L42
317 003c 00C0 rjmp .L42
318 003e 00C0 rjmp .L42
319 0040 00C0 rjmp .L28
320 0042 00C0 rjmp .L42
321 0044 00C0 rjmp .L42
322 0046 00C0 rjmp .L42
323 0048 00C0 rjmp .L42
GAS LISTING /tmp/ccZHfAgR.s page 10
287 .L33:
288 .data
289 .section .progmem.gcc_sw_table, "ax", @progbits
290 .p2align 1
291 0000 00C0 rjmp .L25
292 0002 00C0 rjmp .L42
293 0004 00C0 rjmp .L42
294 0006 00C0 rjmp .L42
295 0008 00C0 rjmp .L42
296 000a 00C0 rjmp .L42
297 000c 00C0 rjmp .L42
298 000e 00C0 rjmp .L42
299 0010 00C0 rjmp .L25
300 0012 00C0 rjmp .L42
301 0014 00C0 rjmp .L42
302 0016 00C0 rjmp .L42
303 0018 00C0 rjmp .L42
304 001a 00C0 rjmp .L42
305 001c 00C0 rjmp .L42
306 001e 00C0 rjmp .L42
307 0020 00C0 rjmp .L26
308 0022 00C0 rjmp .L42
309 0024 00C0 rjmp .L42
310 0026 00C0 rjmp .L42
311 0028 00C0 rjmp .L42
312 002a 00C0 rjmp .L42
313 002c 00C0 rjmp .L42
314 002e 00C0 rjmp .L42
315 0030 00C0 rjmp .L27
316 0032 00C0 rjmp .L42
317 0034 00C0 rjmp .L42
318 0036 00C0 rjmp .L42
319 0038 00C0 rjmp .L42
320 003a 00C0 rjmp .L42
321 003c 00C0 rjmp .L42
322 003e 00C0 rjmp .L42
323 0040 00C0 rjmp .L28
GAS LISTING /tmp/ccfEG7oP.s page 10
 
 
324 004a 00C0 rjmp .L42
325 004c 00C0 rjmp .L42
326 004e 00C0 rjmp .L42
327 0050 00C0 rjmp .L29
328 0052 00C0 rjmp .L42
329 0054 00C0 rjmp .L42
330 0056 00C0 rjmp .L42
331 0058 00C0 rjmp .L42
332 005a 00C0 rjmp .L42
333 005c 00C0 rjmp .L42
334 005e 00C0 rjmp .L42
335 0060 00C0 rjmp .L42
336 0062 00C0 rjmp .L42
337 0064 00C0 rjmp .L42
338 0066 00C0 rjmp .L42
339 0068 00C0 rjmp .L42
340 006a 00C0 rjmp .L42
341 006c 00C0 rjmp .L42
342 006e 00C0 rjmp .L42
343 0070 00C0 rjmp .L30
344 0072 00C0 rjmp .L42
345 0074 00C0 rjmp .L42
346 0076 00C0 rjmp .L42
347 0078 00C0 rjmp .L42
348 007a 00C0 rjmp .L42
349 007c 00C0 rjmp .L42
350 007e 00C0 rjmp .L42
351 0080 00C0 rjmp .L27
352 0082 00C0 rjmp .L42
353 0084 00C0 rjmp .L42
354 0086 00C0 rjmp .L42
355 0088 00C0 rjmp .L42
356 008a 00C0 rjmp .L42
357 008c 00C0 rjmp .L42
358 008e 00C0 rjmp .L42
359 0090 00C0 rjmp .L31
360 0092 00C0 rjmp .L42
361 0094 00C0 rjmp .L42
362 0096 00C0 rjmp .L42
363 0098 00C0 rjmp .L42
364 009a 00C0 rjmp .L42
365 009c 00C0 rjmp .L42
366 009e 00C0 rjmp .L42
367 00a0 00C0 rjmp .L32
368 .text
369 .L25:
324 0042 00C0 rjmp .L42
325 0044 00C0 rjmp .L42
326 0046 00C0 rjmp .L42
327 0048 00C0 rjmp .L42
328 004a 00C0 rjmp .L42
329 004c 00C0 rjmp .L42
330 004e 00C0 rjmp .L42
331 0050 00C0 rjmp .L29
332 0052 00C0 rjmp .L42
333 0054 00C0 rjmp .L42
334 0056 00C0 rjmp .L42
335 0058 00C0 rjmp .L42
336 005a 00C0 rjmp .L42
337 005c 00C0 rjmp .L42
338 005e 00C0 rjmp .L42
339 0060 00C0 rjmp .L42
340 0062 00C0 rjmp .L42
341 0064 00C0 rjmp .L42
342 0066 00C0 rjmp .L42
343 0068 00C0 rjmp .L42
344 006a 00C0 rjmp .L42
345 006c 00C0 rjmp .L42
346 006e 00C0 rjmp .L42
347 0070 00C0 rjmp .L30
348 0072 00C0 rjmp .L42
349 0074 00C0 rjmp .L42
350 0076 00C0 rjmp .L42
351 0078 00C0 rjmp .L42
352 007a 00C0 rjmp .L42
353 007c 00C0 rjmp .L42
354 007e 00C0 rjmp .L42
355 0080 00C0 rjmp .L27
356 0082 00C0 rjmp .L42
357 0084 00C0 rjmp .L42
358 0086 00C0 rjmp .L42
359 0088 00C0 rjmp .L42
360 008a 00C0 rjmp .L42
361 008c 00C0 rjmp .L42
362 008e 00C0 rjmp .L42
363 0090 00C0 rjmp .L31
364 0092 00C0 rjmp .L42
365 0094 00C0 rjmp .L42
366 0096 00C0 rjmp .L42
367 0098 00C0 rjmp .L42
368 009a 00C0 rjmp .L42
369 009c 00C0 rjmp .L42
370 009e 00C0 rjmp .L42
371 00a0 00C0 rjmp .L32
372 .text
373 .L25:
191:I2CInterface.c **** {
192:I2CInterface.c **** case TW_START: /* Start condition */
193:I2CInterface.c **** case TW_REP_START: /* Repeated start condition */
194:I2CInterface.c **** if(retry_cnt > MAX_TWI_RETRIES)
370 .stabn 68,0,194,.LM29-__vector_17
371 .LM29:
372 00ba 8091 0000 lds r24,retry_cnt
373 00be 8330 cpi r24,lo8(3)
374 00c0 48F0 brlo .L34
374 .stabn 68,0,194,.LM29-.LFBB5
375 .LM29:
376 00ba 8091 0000 lds r24,retry_cnt
GAS LISTING /tmp/ccfEG7oP.s page 11
 
 
377 00be 8330 cpi r24,lo8(3)
378 00c0 00F0 brlo .L34
195:I2CInterface.c **** {
196:I2CInterface.c **** /* generate stop condition if we've reached our retry limit */
GAS LISTING /tmp/ccZHfAgR.s page 11
 
 
197:I2CInterface.c **** TWCR |= (1<<TWINT)|(1<<TWSTO);
375 .stabn 68,0,197,.LM30-__vector_17
376 .LM30:
377 00c2 86B7 in r24,86-0x20
378 00c4 8069 ori r24,lo8(-112)
379 00c6 86BF out 86-0x20,r24
379 .stabn 68,0,197,.LM30-.LFBB5
380 .LM30:
381 00c2 86B7 in r24,86-0x20
382 00c4 8069 ori r24,lo8(-112)
383 00c6 86BF out 86-0x20,r24
198:I2CInterface.c **** status &= ~(1<<BUSY);
380 .stabn 68,0,198,.LM31-__vector_17
381 .LM31:
382 00c8 8091 0000 lds r24,status
383 00cc 8F77 andi r24,lo8(127)
384 00ce 8093 0000 sts status,r24
385 00d2 8AC0 rjmp .L42
386 .L34:
384 .stabn 68,0,198,.LM31-.LFBB5
385 .LM31:
386 00c8 8091 0000 lds r24,status
387 00cc 8F77 andi r24,lo8(127)
388 00ce 8093 0000 sts status,r24
389 00d2 00C0 rjmp .L42
390 .L34:
199:I2CInterface.c **** return;
200:I2CInterface.c **** }
201:I2CInterface.c **** /* indicate read or write */
202:I2CInterface.c **** TWDR = (twi_address<<1) + twi_ddr;
387 .stabn 68,0,202,.LM32-__vector_17
388 .LM32:
389 00d4 8091 0000 lds r24,twi_address
390 00d8 9091 0000 lds r25,twi_ddr
391 00dc 880F lsl r24
392 00de 890F add r24,r25
393 00e0 83B9 out 35-0x20,r24
391 .stabn 68,0,202,.LM32-.LFBB5
392 .LM32:
393 00d4 8091 0000 lds r24,twi_address
394 00d8 9091 0000 lds r25,twi_ddr
395 00dc 880F lsl r24
396 00de 890F add r24,r25
397 00e0 83B9 out 35-0x20,r24
203:I2CInterface.c **** /* TWSTA must be cleared...also clears TWINT */
204:I2CInterface.c **** TWCR &= ~(1<<TWSTA);
394 .stabn 68,0,204,.LM33-__vector_17
395 .LM33:
396 00e2 86B7 in r24,86-0x20
397 00e4 8F7D andi r24,lo8(-33)
398 00e6 86BF out 86-0x20,r24
399 00e8 7FC0 rjmp .L42
400 .L26:
398 .stabn 68,0,204,.LM33-.LFBB5
399 .LM33:
400 00e2 86B7 in r24,86-0x20
401 00e4 8F7D andi r24,lo8(-33)
402 00e6 86BF out 86-0x20,r24
403 00e8 00C0 rjmp .L42
404 .L26:
205:I2CInterface.c **** break;
206:I2CInterface.c ****
207:I2CInterface.c **** case TW_MT_SLA_ACK: /* Slave acknowledged address, */
208:I2CInterface.c **** retry_cnt = 0;
401 .stabn 68,0,208,.LM34-__vector_17
402 .LM34:
403 00ea 1092 0000 sts retry_cnt,__zero_reg__
405 .stabn 68,0,208,.LM34-.LFBB5
406 .LM34:
407 00ea 1092 0000 sts retry_cnt,__zero_reg__
209:I2CInterface.c **** /* tx the data, and increment the data pointer */
210:I2CInterface.c **** TWDR = *twi_data;
404 .stabn 68,0,210,.LM35-__vector_17
405 .LM35:
406 00ee E091 0000 lds r30,twi_data
407 00f2 F091 0000 lds r31,(twi_data)+1
408 00f6 8081 ld r24,Z
409 00f8 83B9 out 35-0x20,r24
408 .stabn 68,0,210,.LM35-.LFBB5
409 .LM35:
410 00ee E091 0000 lds r30,twi_data
411 00f2 F091 0000 lds r31,(twi_data)+1
412 00f6 8191 ld r24,Z+
413 00f8 83B9 out 35-0x20,r24
211:I2CInterface.c **** twi_data++;
410 .stabn 68,0,211,.LM36-__vector_17
411 .LM36:
412 00fa 3196 adiw r30,1
413 00fc F093 0000 sts (twi_data)+1,r31
414 0100 E093 0000 sts twi_data,r30
414 .stabn 68,0,211,.LM36-.LFBB5
415 .LM36:
416 00fa F093 0000 sts (twi_data)+1,r31
GAS LISTING /tmp/ccfEG7oP.s page 12
 
 
417 00fe E093 0000 sts twi_data,r30
212:I2CInterface.c ****
213:I2CInterface.c **** /* clear the int to continue */
GAS LISTING /tmp/ccZHfAgR.s page 12
 
 
214:I2CInterface.c **** TWCR |= (1<<TWINT);
415 .stabn 68,0,214,.LM37-__vector_17
416 .LM37:
417 0104 86B7 in r24,86-0x20
418 0106 8068 ori r24,lo8(-128)
419 0108 86BF out 86-0x20,r24
420 010a 6EC0 rjmp .L42
421 .L27:
418 .stabn 68,0,214,.LM37-.LFBB5
419 .LM37:
420 0102 86B7 in r24,86-0x20
421 0104 8068 ori r24,lo8(-128)
422 0106 86BF out 86-0x20,r24
423 0108 00C0 rjmp .L42
424 .L27:
215:I2CInterface.c **** break;
216:I2CInterface.c ****
217:I2CInterface.c **** case TW_MT_SLA_NACK: /* Slave didn't acknowledge address, */
218:I2CInterface.c **** case TW_MR_SLA_NACK:
219:I2CInterface.c **** retry_cnt++;
422 .stabn 68,0,219,.LM38-__vector_17
423 .LM38:
424 010c 8091 0000 lds r24,retry_cnt
425 0110 8F5F subi r24,lo8(-(1))
426 0112 8093 0000 sts retry_cnt,r24
425 .stabn 68,0,219,.LM38-.LFBB5
426 .LM38:
427 010a 8091 0000 lds r24,retry_cnt
428 010e 8F5F subi r24,lo8(-(1))
429 0110 8093 0000 sts retry_cnt,r24
220:I2CInterface.c ****
221:I2CInterface.c **** /* retry...*/
222:I2CInterface.c **** TWCR |= (1<<TWINT)|(1<<TWSTA)|(1<<TWSTO);
427 .stabn 68,0,222,.LM39-__vector_17
428 .LM39:
429 0116 86B7 in r24,86-0x20
430 0118 806B ori r24,lo8(-80)
431 011a 86BF out 86-0x20,r24
432 011c 65C0 rjmp .L42
433 .L28:
430 .stabn 68,0,222,.LM39-.LFBB5
431 .LM39:
432 0114 86B7 in r24,86-0x20
433 0116 806B ori r24,lo8(-80)
434 0118 86BF out 86-0x20,r24
435 011a 00C0 rjmp .L42
436 .L28:
223:I2CInterface.c **** break;
224:I2CInterface.c ****
225:I2CInterface.c **** case TW_MT_DATA_ACK: /* Slave Acknowledged data, */
226:I2CInterface.c **** if(--twi_bytes > 0)
434 .stabn 68,0,226,.LM40-__vector_17
435 .LM40:
436 011e 8091 0000 lds r24,twi_bytes
437 0122 8150 subi r24,lo8(-(-1))
438 0124 8093 0000 sts twi_bytes,r24
439 0128 8091 0000 lds r24,twi_bytes
440 012c 8823 tst r24
441 012e 79F0 breq .L36
437 .stabn 68,0,226,.LM40-.LFBB5
438 .LM40:
439 011c 8091 0000 lds r24,twi_bytes
440 0120 8150 subi r24,lo8(-(-1))
441 0122 8093 0000 sts twi_bytes,r24
442 0126 8091 0000 lds r24,twi_bytes
443 012a 8823 tst r24
444 012c 01F0 breq .L36
227:I2CInterface.c **** {
228:I2CInterface.c **** /* more data to send, so send it */
229:I2CInterface.c **** TWDR = *twi_data;
442 .stabn 68,0,229,.LM41-__vector_17
443 .LM41:
444 0130 E091 0000 lds r30,twi_data
445 0134 F091 0000 lds r31,(twi_data)+1
446 0138 8081 ld r24,Z
447 013a 83B9 out 35-0x20,r24
445 .stabn 68,0,229,.LM41-.LFBB5
446 .LM41:
447 012e E091 0000 lds r30,twi_data
448 0132 F091 0000 lds r31,(twi_data)+1
449 0136 8191 ld r24,Z+
450 0138 83B9 out 35-0x20,r24
230:I2CInterface.c **** twi_data++;
448 .stabn 68,0,230,.LM42-__vector_17
449 .LM42:
450 013c 3196 adiw r30,1
451 013e F093 0000 sts (twi_data)+1,r31
452 0142 E093 0000 sts twi_data,r30
231:I2CInterface.c **** TWCR |= (1<<TWINT);
453 .stabn 68,0,231,.LM43-__vector_17
GAS LISTING /tmp/ccZHfAgR.s page 13
451 .stabn 68,0,230,.LM42-.LFBB5
452 .LM42:
453 013a F093 0000 sts (twi_data)+1,r31
454 013e E093 0000 sts twi_data,r30
GAS LISTING /tmp/ccfEG7oP.s page 13
 
 
454 .LM43:
455 0146 86B7 in r24,86-0x20
456 0148 8068 ori r24,lo8(-128)
457 014a 86BF out 86-0x20,r24
458 014c 4DC0 rjmp .L42
459 .L36:
231:I2CInterface.c **** TWCR |= (1<<TWINT);
455 .stabn 68,0,231,.LM43-.LFBB5
456 .LM43:
457 0142 86B7 in r24,86-0x20
458 0144 8068 ori r24,lo8(-128)
459 0146 86BF out 86-0x20,r24
460 0148 00C0 rjmp .L42
461 .L36:
232:I2CInterface.c **** }
233:I2CInterface.c **** else
234:I2CInterface.c **** {
235:I2CInterface.c **** /* generate the stop condition if needed */
236:I2CInterface.c **** TWCR |= (1<<TWSTO)|(1<<TWINT);
460 .stabn 68,0,236,.LM44-__vector_17
461 .LM44:
462 014e 86B7 in r24,86-0x20
463 0150 8069 ori r24,lo8(-112)
464 0152 86BF out 86-0x20,r24
462 .stabn 68,0,236,.LM44-.LFBB5
463 .LM44:
464 014a 86B7 in r24,86-0x20
465 014c 8069 ori r24,lo8(-112)
466 014e 86BF out 86-0x20,r24
237:I2CInterface.c **** status &= ~(1<<BUSY);
465 .stabn 68,0,237,.LM45-__vector_17
466 .LM45:
467 0154 8091 0000 lds r24,status
468 0158 8F77 andi r24,lo8(127)
469 015a 8093 0000 sts status,r24
470 015e 44C0 rjmp .L42
471 .L29:
467 .stabn 68,0,237,.LM45-.LFBB5
468 .LM45:
469 0150 8091 0000 lds r24,status
470 0154 8F77 andi r24,lo8(127)
471 0156 8093 0000 sts status,r24
472 015a 00C0 rjmp .L42
473 .L29:
238:I2CInterface.c **** }
239:I2CInterface.c **** break;
240:I2CInterface.c ****
751,56 → 753,56
241:I2CInterface.c **** case TW_MT_DATA_NACK: /* Slave didn't acknowledge data */
242:I2CInterface.c **** /* send the stop condition */
243:I2CInterface.c **** TWCR |= (1<<TWINT)|(1<<TWSTO);
472 .stabn 68,0,243,.LM46-__vector_17
473 .LM46:
474 0160 86B7 in r24,86-0x20
475 0162 8069 ori r24,lo8(-112)
476 0164 86BF out 86-0x20,r24
474 .stabn 68,0,243,.LM46-.LFBB5
475 .LM46:
476 015c 86B7 in r24,86-0x20
477 015e 8069 ori r24,lo8(-112)
478 0160 86BF out 86-0x20,r24
244:I2CInterface.c **** status &= ~(1<<BUSY);
477 .stabn 68,0,244,.LM47-__vector_17
478 .LM47:
479 0166 8091 0000 lds r24,status
480 016a 8F77 andi r24,lo8(127)
481 016c 8093 0000 sts status,r24
482 0170 3BC0 rjmp .L42
483 .L30:
479 .stabn 68,0,244,.LM47-.LFBB5
480 .LM47:
481 0162 8091 0000 lds r24,status
482 0166 8F77 andi r24,lo8(127)
483 0168 8093 0000 sts status,r24
484 016c 00C0 rjmp .L42
485 .L30:
245:I2CInterface.c **** break;
246:I2CInterface.c ****
247:I2CInterface.c **** case TW_MR_SLA_ACK: /* Slave acknowledged address */
248:I2CInterface.c **** if(--twi_bytes > 0)
484 .stabn 68,0,248,.LM48-__vector_17
485 .LM48:
486 0172 8091 0000 lds r24,twi_bytes
487 0176 8150 subi r24,lo8(-(-1))
488 0178 8093 0000 sts twi_bytes,r24
489 017c 8091 0000 lds r24,twi_bytes
490 0180 8823 tst r24
491 0182 21F0 breq .L38
486 .stabn 68,0,248,.LM48-.LFBB5
487 .LM48:
488 016e 8091 0000 lds r24,twi_bytes
489 0172 8150 subi r24,lo8(-(-1))
490 0174 8093 0000 sts twi_bytes,r24
491 0178 8091 0000 lds r24,twi_bytes
492 017c 8823 tst r24
493 017e 01F0 breq .L38
GAS LISTING /tmp/ccfEG7oP.s page 14
 
 
249:I2CInterface.c **** {
250:I2CInterface.c **** /* if there is more than one byte to read, acknowledge */
GAS LISTING /tmp/ccZHfAgR.s page 14
 
 
251:I2CInterface.c **** TWCR |= (1<<TWEA)|(1<<TWINT);
492 .stabn 68,0,251,.LM49-__vector_17
493 .LM49:
494 0184 86B7 in r24,86-0x20
495 0186 806C ori r24,lo8(-64)
496 0188 86BF out 86-0x20,r24
497 018a 2EC0 rjmp .L42
498 .L38:
494 .stabn 68,0,251,.LM49-.LFBB5
495 .LM49:
496 0180 86B7 in r24,86-0x20
497 0182 806C ori r24,lo8(-64)
498 0184 86BF out 86-0x20,r24
499 0186 00C0 rjmp .L42
500 .L38:
252:I2CInterface.c **** }
253:I2CInterface.c **** else
254:I2CInterface.c **** {
255:I2CInterface.c **** /* no acknowledge */
256:I2CInterface.c **** TWCR |= (1<<TWINT);
499 .stabn 68,0,256,.LM50-__vector_17
500 .LM50:
501 018c 86B7 in r24,86-0x20
502 018e 8068 ori r24,lo8(-128)
503 0190 86BF out 86-0x20,r24
504 0192 2AC0 rjmp .L42
505 .L31:
501 .stabn 68,0,256,.LM50-.LFBB5
502 .LM50:
503 0188 86B7 in r24,86-0x20
504 018a 8068 ori r24,lo8(-128)
505 018c 86BF out 86-0x20,r24
506 018e 00C0 rjmp .L42
507 .L31:
257:I2CInterface.c **** }
258:I2CInterface.c **** break;
259:I2CInterface.c ****
808,52 → 810,51
261:I2CInterface.c ****
262:I2CInterface.c **** /* grab the received data */
263:I2CInterface.c **** *twi_data = TWDR;
506 .stabn 68,0,263,.LM51-__vector_17
507 .LM51:
508 0194 E091 0000 lds r30,twi_data
509 0198 F091 0000 lds r31,(twi_data)+1
510 019c 83B1 in r24,35-0x20
511 019e 8083 st Z,r24
508 .stabn 68,0,263,.LM51-.LFBB5
509 .LM51:
510 0190 E091 0000 lds r30,twi_data
511 0194 F091 0000 lds r31,(twi_data)+1
512 0198 83B1 in r24,35-0x20
513 019a 8193 st Z+,r24
264:I2CInterface.c **** twi_data++;
512 .stabn 68,0,264,.LM52-__vector_17
513 .LM52:
514 01a0 3196 adiw r30,1
515 01a2 F093 0000 sts (twi_data)+1,r31
516 01a6 E093 0000 sts twi_data,r30
514 .stabn 68,0,264,.LM52-.LFBB5
515 .LM52:
516 019c F093 0000 sts (twi_data)+1,r31
517 01a0 E093 0000 sts twi_data,r30
265:I2CInterface.c **** if(--twi_bytes > 0)
517 .stabn 68,0,265,.LM53-__vector_17
518 .LM53:
519 01aa 8091 0000 lds r24,twi_bytes
520 01ae 8150 subi r24,lo8(-(-1))
521 01b0 8093 0000 sts twi_bytes,r24
522 01b4 8091 0000 lds r24,twi_bytes
523 01b8 8823 tst r24
524 01ba 21F0 breq .L40
518 .stabn 68,0,265,.LM53-.LFBB5
519 .LM53:
520 01a4 8091 0000 lds r24,twi_bytes
521 01a8 8150 subi r24,lo8(-(-1))
522 01aa 8093 0000 sts twi_bytes,r24
523 01ae 8091 0000 lds r24,twi_bytes
524 01b2 8823 tst r24
525 01b4 01F0 breq .L40
266:I2CInterface.c **** {
267:I2CInterface.c **** /* get the next data byte and ack */
268:I2CInterface.c **** TWCR |= (1<<TWEA)|(1<<TWINT);
525 .stabn 68,0,268,.LM54-__vector_17
526 .LM54:
527 01bc 86B7 in r24,86-0x20
528 01be 806C ori r24,lo8(-64)
529 01c0 86BF out 86-0x20,r24
530 01c2 12C0 rjmp .L42
GAS LISTING /tmp/ccZHfAgR.s page 15
526 .stabn 68,0,268,.LM54-.LFBB5
527 .LM54:
528 01b6 86B7 in r24,86-0x20
529 01b8 806C ori r24,lo8(-64)
530 01ba 86BF out 86-0x20,r24
GAS LISTING /tmp/ccfEG7oP.s page 15
 
 
531 .L40:
531 01bc 00C0 rjmp .L42
532 .L40:
269:I2CInterface.c **** }
270:I2CInterface.c **** else
271:I2CInterface.c **** {
272:I2CInterface.c **** /* clear out the enable acknowledge bit */
273:I2CInterface.c **** TWCR &= ~(1<<TWEA);
532 .stabn 68,0,273,.LM55-__vector_17
533 .LM55:
534 01c4 86B7 in r24,86-0x20
535 01c6 8F7B andi r24,lo8(-65)
536 01c8 86BF out 86-0x20,r24
537 01ca 0EC0 rjmp .L42
538 .L32:
533 .stabn 68,0,273,.LM55-.LFBB5
534 .LM55:
535 01be 86B7 in r24,86-0x20
536 01c0 8F7B andi r24,lo8(-65)
537 01c2 86BF out 86-0x20,r24
538 01c4 00C0 rjmp .L42
539 .L32:
274:I2CInterface.c **** }
275:I2CInterface.c **** break;
276:I2CInterface.c ****
860,82 → 861,82
277:I2CInterface.c **** case TW_MR_DATA_NACK: /* Master didn't acknowledge data -> end of read process */
278:I2CInterface.c **** /* read data, and generate the stop condition */
279:I2CInterface.c **** *twi_data = TWDR;
539 .stabn 68,0,279,.LM56-__vector_17
540 .LM56:
541 01cc E091 0000 lds r30,twi_data
542 01d0 F091 0000 lds r31,(twi_data)+1
543 01d4 83B1 in r24,35-0x20
544 01d6 8083 st Z,r24
540 .stabn 68,0,279,.LM56-.LFBB5
541 .LM56:
542 01c6 E091 0000 lds r30,twi_data
543 01ca F091 0000 lds r31,(twi_data)+1
544 01ce 83B1 in r24,35-0x20
545 01d0 8083 st Z,r24
280:I2CInterface.c **** TWCR |= (1<<TWSTO)|(1<<TWINT);
545 .stabn 68,0,280,.LM57-__vector_17
546 .LM57:
547 01d8 86B7 in r24,86-0x20
548 01da 8069 ori r24,lo8(-112)
549 01dc 86BF out 86-0x20,r24
546 .stabn 68,0,280,.LM57-.LFBB5
547 .LM57:
548 01d2 86B7 in r24,86-0x20
549 01d4 8069 ori r24,lo8(-112)
550 01d6 86BF out 86-0x20,r24
281:I2CInterface.c **** status &= ~(1<<BUSY);
550 .stabn 68,0,281,.LM58-__vector_17
551 .LM58:
552 01de 8091 0000 lds r24,status
553 01e2 8F77 andi r24,lo8(127)
554 01e4 8093 0000 sts status,r24
555 .L42:
556 /* epilogue: frame size=0 */
557 01e8 FF91 pop r31
558 01ea EF91 pop r30
559 01ec BF91 pop r27
560 01ee AF91 pop r26
561 01f0 9F91 pop r25
562 01f2 8F91 pop r24
563 01f4 0F90 pop __tmp_reg__
564 01f6 0FBE out __SREG__,__tmp_reg__
565 01f8 0F90 pop __tmp_reg__
566 01fa 1F90 pop __zero_reg__
567 01fc 1895 reti
568 /* epilogue end (size=11) */
569 /* function __vector_17 size 271 (249) */
570 .size __vector_17, .-__vector_17
571 .Lscope4:
572 .stabs "",36,0,0,.Lscope4-__vector_17
573 .stabd 78,0,0
574 .lcomm twi_address,1
GAS LISTING /tmp/ccZHfAgR.s page 16
551 .stabn 68,0,281,.LM58-.LFBB5
552 .LM58:
553 01d8 8091 0000 lds r24,status
554 01dc 8F77 andi r24,lo8(127)
555 01de 8093 0000 sts status,r24
556 .L42:
557 /* epilogue: frame size=0 */
558 01e2 FF91 pop r31
559 01e4 EF91 pop r30
560 01e6 BF91 pop r27
561 01e8 AF91 pop r26
562 01ea 9F91 pop r25
563 01ec 8F91 pop r24
564 01ee 0F90 pop __tmp_reg__
565 01f0 0FBE out __SREG__,__tmp_reg__
566 01f2 0F90 pop __tmp_reg__
567 01f4 1F90 pop __zero_reg__
568 01f6 1895 reti
569 /* epilogue end (size=11) */
570 /* function __vector_17 size 268 (246) */
571 .size __vector_17, .-__vector_17
572 .Lscope5:
573 .stabs "",36,0,0,.Lscope5-.LFBB5
574 .stabd 78,0,0
GAS LISTING /tmp/ccfEG7oP.s page 16
 
 
575 .lcomm twi_data,2
576 .lcomm twi_ddr,1
577 .lcomm twi_bytes,1
578 .lcomm status,1
579 .lcomm retry_cnt,1
580 .stabs "twi_address:S(0,17)=B(0,11)",40,0,59,twi_address
581 .stabs "twi_data:S(0,18)=*(0,17)",40,0,60,twi_data
582 .stabs "twi_ddr:S(0,17)",40,0,61,twi_ddr
583 .stabs "twi_bytes:S(0,17)",40,0,62,twi_bytes
584 .stabs "status:S(0,17)",40,0,63,status
585 .stabs "retry_cnt:S(0,17)",40,0,64,retry_cnt
586 .stabs "",100,0,0,.Letext0
587 .Letext0:
588 /* File "I2CInterface.c": code 336 = 0x0150 ( 310), prologues 11, epilogues 15 */
GAS LISTING /tmp/ccZHfAgR.s page 17
575 .lcomm twi_address,1
576 .lcomm twi_data,2
577 .lcomm twi_ddr,1
578 .lcomm twi_bytes,1
579 .lcomm status,1
580 .lcomm retry_cnt,1
581 .stabs "twi_address:S(0,17)=B(0,11)",40,0,59,twi_address
582 .stabs "twi_data:S(0,18)=*(0,17)",40,0,60,twi_data
583 .stabs "twi_ddr:S(0,17)",40,0,61,twi_ddr
584 .stabs "twi_bytes:S(0,17)",40,0,62,twi_bytes
585 .stabs "status:S(0,17)",40,0,63,status
586 .stabs "retry_cnt:S(0,17)",40,0,64,retry_cnt
587 .stabs "",100,0,0,.Letext0
588 .Letext0:
589 /* File "I2CInterface.c": code 333 = 0x014d ( 307), prologues 11, epilogues 15 */
GAS LISTING /tmp/ccfEG7oP.s page 17
 
 
DEFINED SYMBOLS
*ABS*:00000000 I2CInterface.c
/tmp/ccZHfAgR.s:3 *ABS*:0000003f __SREG__
/tmp/ccZHfAgR.s:4 *ABS*:0000003e __SP_H__
/tmp/ccZHfAgR.s:5 *ABS*:0000003d __SP_L__
/tmp/ccZHfAgR.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccZHfAgR.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccZHfAgR.s:79 .text:00000000 I2CInt_init
/tmp/ccZHfAgR.s:106 .text:00000008 I2CInt_writeData
/tmp/ccZHfAgR.s:577 .bss:00000005 status
/tmp/ccfEG7oP.s:2 *ABS*:0000003f __SREG__
/tmp/ccfEG7oP.s:3 *ABS*:0000003e __SP_H__
/tmp/ccfEG7oP.s:4 *ABS*:0000003d __SP_L__
/tmp/ccfEG7oP.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccfEG7oP.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccfEG7oP.s:78 .text:00000000 I2CInt_init
/tmp/ccfEG7oP.s:106 .text:00000008 I2CInt_writeData
/tmp/ccfEG7oP.s:578 .bss:00000005 status
.bss:00000000 twi_address
/tmp/ccZHfAgR.s:574 .bss:00000001 twi_data
/tmp/ccZHfAgR.s:576 .bss:00000004 twi_bytes
/tmp/ccZHfAgR.s:575 .bss:00000003 twi_ddr
/tmp/ccZHfAgR.s:578 .bss:00000006 retry_cnt
/tmp/ccZHfAgR.s:164 .text:00000040 I2CInt_readData
/tmp/ccZHfAgR.s:214 .text:00000074 I2CInt_isI2cBusy
/tmp/ccZHfAgR.s:240 .text:00000082 __vector_17
/tmp/ccfEG7oP.s:575 .bss:00000001 twi_data
/tmp/ccfEG7oP.s:577 .bss:00000004 twi_bytes
/tmp/ccfEG7oP.s:576 .bss:00000003 twi_ddr
/tmp/ccfEG7oP.s:579 .bss:00000006 retry_cnt
/tmp/ccfEG7oP.s:165 .text:00000040 I2CInt_readData
/tmp/ccfEG7oP.s:216 .text:00000074 I2CInt_isI2cBusy
/tmp/ccfEG7oP.s:243 .text:00000082 __vector_17
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/Main.lst
1,96 → 1,95
GAS LISTING /tmp/ccgNUTZJ.s page 1
GAS LISTING /tmp/ccupeLRq.s page 1
 
 
1 .file "Main.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "Main.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
GAS LISTING /tmp/ccgNUTZJ.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "Main.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
33 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
34 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
35 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
36 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
37 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
38 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
39 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
40 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
41 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
42 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
43 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
44 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
45 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
46 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
47 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
48 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
49 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
50 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
51 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
52 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
53 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
54 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
55 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
56 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
57 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
GAS LISTING /tmp/ccupeLRq.s page 2
 
 
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
58 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
59 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
60 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
61 .stabn 162,0,0,0
62 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
63 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
69 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
70 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0
71 .stabs "wchar_t:t(6,2)=(0,1)",128,0,326,0
72 .stabn 162,0,0,0
73 .stabs "div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
74 .stabs "ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
75 .stabs "__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
76 .stabn 162,0,0,0
77 .stabs "I2CInterface.h",130,0,0,0
78 .stabs "CommonDefs.h",130,0,0,0
79 .stabs "bool_t:t(8,1)=(0,11)",128,0,56,0
80 .stabn 162,0,0,0
81 .stabs "i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
82 .stabn 162,0,0,0
83 .stabs "main:F(0,1)",36,0,70,main
84 .global main
85 .type main, @function
86 main:
87 .stabd 46,0,0
67 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
68 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
69 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0
70 .stabs "wchar_t:t(6,2)=(0,1)",128,0,326,0
71 .stabn 162,0,0,0
72 .stabs "div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
73 .stabs "ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
74 .stabs "__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
75 .stabn 162,0,0,0
76 .stabs "I2CInterface.h",130,0,0,0
77 .stabs "CommonDefs.h",130,0,0,0
78 .stabs "bool_t:t(8,1)=(0,11)",128,0,56,0
79 .stabn 162,0,0,0
80 .stabs "i2cCmd_t:t(7,1)=(7,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
81 .stabn 162,0,0,0
82 .stabs "main:F(0,1)",36,0,70,main
83 .global main
84 .type main, @function
85 main:
86 .stabd 46,0,0
1:Main.c **** /*
2:Main.c **** Copyright (C) 2004 John Orlando
3:Main.c ****
118,10 → 117,10
25:Main.c **** */
26:Main.c **** /***********************************************************
27:Main.c **** Module Name: Main.c
GAS LISTING /tmp/ccgNUTZJ.s page 3
28:Main.c **** Module Date: 04/10/2004
GAS LISTING /tmp/ccupeLRq.s page 3
 
 
28:Main.c **** Module Date: 04/10/2004
29:Main.c **** Module Auth: John Orlando
30:Main.c ****
31:Main.c **** Description: This module is responsible for providing
164,8 → 163,9
68:Main.c **** ***********************************************************/
69:Main.c **** int main(void)
70:Main.c **** {
88 .stabn 68,0,70,.LM0-main
89 .LM0:
87 .stabn 68,0,70,.LM0-.LFBB1
88 .LM0:
89 .LFBB1:
90 /* prologue: frame size=0 */
91 0000 C0E0 ldi r28,lo8(__stack - 0)
92 0002 D0E0 ldi r29,hi8(__stack - 0)
174,22 → 174,22
95 /* prologue end (size=4) */
71:Main.c **** /* initialize all of the interface modules */
72:Main.c **** DebugInt_init();
96 .stabn 68,0,72,.LM1-main
96 .stabn 68,0,72,.LM1-.LFBB1
97 .LM1:
98 0008 00D0 rcall DebugInt_init
73:Main.c **** UartInt_init();
GAS LISTING /tmp/ccgNUTZJ.s page 4
GAS LISTING /tmp/ccupeLRq.s page 4
 
 
99 .stabn 68,0,73,.LM2-main
99 .stabn 68,0,73,.LM2-.LFBB1
100 .LM2:
101 000a 00D0 rcall UartInt_init
74:Main.c **** I2CInt_init();
102 .stabn 68,0,74,.LM3-main
102 .stabn 68,0,74,.LM3-.LFBB1
103 .LM3:
104 000c 00D0 rcall I2CInt_init
75:Main.c **** CamInt_init();
105 .stabn 68,0,75,.LM4-main
105 .stabn 68,0,75,.LM4-.LFBB1
106 .LM4:
107 000e 00D0 rcall CamInt_init
76:Main.c ****
196,21 → 196,21
77:Main.c **** /* initialize the remaining modules that will process
78:Main.c **** data...interrupts need to be on for these */
79:Main.c **** ENABLE_INTS();
108 .stabn 68,0,79,.LM5-main
108 .stabn 68,0,79,.LM5-.LFBB1
109 .LM5:
110 /* #APP */
111 0010 7894 sei
80:Main.c **** CamConfig_init();
112 .stabn 68,0,80,.LM6-main
112 .stabn 68,0,80,.LM6-.LFBB1
113 .LM6:
114 /* #NOAPP */
115 0012 00D0 rcall CamConfig_init
81:Main.c **** UIMgr_init();
116 .stabn 68,0,81,.LM7-main
116 .stabn 68,0,81,.LM7-.LFBB1
117 .LM7:
118 0014 00D0 rcall UIMgr_init
82:Main.c **** FrameMgr_init();
119 .stabn 68,0,82,.LM8-main
119 .stabn 68,0,82,.LM8-.LFBB1
120 .LM8:
121 0016 00D0 rcall FrameMgr_init
83:Main.c ****
217,7 → 217,7
84:Main.c **** /* provide a short delay for the camera to stabilize before
85:Main.c **** we let the executive start up */
86:Main.c **** Utility_delay(1000);
122 .stabn 68,0,86,.LM9-main
122 .stabn 68,0,86,.LM9-.LFBB1
123 .LM9:
124 0018 88EE ldi r24,lo8(1000)
125 001a 93E0 ldi r25,hi8(1000)
226,7 → 226,7
88:Main.c **** /* the rest of the application will be under the
89:Main.c **** control of the Executive. */
90:Main.c **** Exec_run();
127 .stabn 68,0,90,.LM10-main
127 .stabn 68,0,90,.LM10-.LFBB1
128 .LM10:
129 001e 00D0 rcall Exec_run
91:Main.c ****
233,12 → 233,12
92:Main.c **** /* this should never be reached */
93:Main.c **** return(0);
94:Main.c **** }
130 .stabn 68,0,94,.LM11-main
130 .stabn 68,0,94,.LM11-.LFBB1
131 .LM11:
132 0020 80E0 ldi r24,lo8(0)
133 0022 90E0 ldi r25,hi8(0)
134 /* epilogue: frame size=0 */
GAS LISTING /tmp/ccgNUTZJ.s page 5
GAS LISTING /tmp/ccupeLRq.s page 5
 
 
135 0024 00C0 rjmp exit
245,23 → 245,23
136 /* epilogue end (size=1) */
137 /* function main size 20 (15) */
138 .size main, .-main
139 .Lscope0:
140 .stabs "",36,0,0,.Lscope0-main
139 .Lscope1:
140 .stabs "",36,0,0,.Lscope1-.LFBB1
141 .stabd 78,0,0
142 .stabs "",100,0,0,.Letext0
143 .Letext0:
144 /* File "Main.c": code 20 = 0x0014 ( 15), prologues 4, epilogues 1 */
GAS LISTING /tmp/ccgNUTZJ.s page 6
GAS LISTING /tmp/ccupeLRq.s page 6
 
 
DEFINED SYMBOLS
*ABS*:00000000 Main.c
/tmp/ccgNUTZJ.s:3 *ABS*:0000003f __SREG__
/tmp/ccgNUTZJ.s:4 *ABS*:0000003e __SP_H__
/tmp/ccgNUTZJ.s:5 *ABS*:0000003d __SP_L__
/tmp/ccgNUTZJ.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccgNUTZJ.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccgNUTZJ.s:86 .text:00000000 main
/tmp/ccupeLRq.s:2 *ABS*:0000003f __SREG__
/tmp/ccupeLRq.s:3 *ABS*:0000003e __SP_H__
/tmp/ccupeLRq.s:4 *ABS*:0000003d __SP_L__
/tmp/ccupeLRq.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccupeLRq.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccupeLRq.s:85 .text:00000000 main
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/UIMgr.lst
1,104 → 1,103
GAS LISTING /tmp/ccRvT1Qm.s page 1
GAS LISTING /tmp/ccs6Vjbf.s page 1
 
 
1 .file "UIMgr.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "UIMgr.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
GAS LISTING /tmp/ccRvT1Qm.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "UIMgr.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
33 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
34 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
35 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
36 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
37 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
38 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
39 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
40 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
41 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
42 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
43 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
44 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
45 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
46 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
47 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
48 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
49 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
50 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
51 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
52 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
53 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
54 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
55 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
56 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
57 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
GAS LISTING /tmp/ccs6Vjbf.s page 2
 
 
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
58 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
59 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
60 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
61 .stabn 162,0,0,0
62 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
63 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdlib.h",130,0,0,0
69 .stabs "/usr/lib/gcc/avr/4.1.0/include/stddef.h",130,0,0,0
70 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0
71 .stabs "wchar_t:t(6,2)=(0,1)",128,0,326,0
72 .stabn 162,0,0,0
73 .stabs "div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
74 .stabs "ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
75 .stabs "__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
76 .stabn 162,0,0,0
77 .stabs "CommonDefs.h",130,0,0,0
78 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
79 .stabn 162,0,0,0
80 .stabs "CamConfig.h",130,0,0,0
81 .stabs "I2CInterface.h",130,0,0,0
82 .stabs "i2cCmd_t:t(9,1)=(9,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
67 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdlib.h",130,0,0,0
68 .stabs "/usr/lib/gcc/avr/4.2.1/include/stddef.h",130,0,0,0
69 .stabs "size_t:t(6,1)=(0,4)",128,0,214,0
70 .stabs "wchar_t:t(6,2)=(0,1)",128,0,326,0
71 .stabn 162,0,0,0
72 .stabs "div_t:t(5,1)=(5,2)=s4quot:(0,1),0,16;rem:(0,1),16,16;;",128,0,69,0
73 .stabs "ldiv_t:t(5,3)=(5,4)=s8quot:(0,3),0,32;rem:(0,3),32,32;;",128,0,75,0
74 .stabs "__compar_fn_t:t(5,5)=(5,6)=*(5,7)=f(0,1)",128,0,78,0
75 .stabn 162,0,0,0
76 .stabs "CommonDefs.h",130,0,0,0
77 .stabs "bool_t:t(7,1)=(0,11)",128,0,56,0
78 .stabn 162,0,0,0
79 .stabs "CamConfig.h",130,0,0,0
80 .stabs "I2CInterface.h",130,0,0,0
81 .stabs "i2cCmd_t:t(9,1)=(9,2)=s2configReg:(0,11),0,8;data:(0,11),8,8;;",128,0,53,0
82 .stabn 162,0,0,0
83 .stabn 162,0,0,0
84 .stabn 162,0,0,0
85 .stabs " :T(0,16)=@s8;egetVersionCmd:0,pingCmd:1,setCameraRegsCmd:2,dumpFrameCmd:3,enableTrackingC
86 .stabs "UIMgr_Cmd_t:t(0,17)=(0,16)",128,0,81,0
87 .stabs " :T(0,18)=@s8;esetRed:0,setGreen:1,setBlue:2,;",128,0,0,0
88 .stabs "setColorState_t:t(0,19)=(0,18)",128,0,88,0
89 .stabs "UIMgr_writeBufferToTxFifo:F(0,15)",36,0,547,UIMgr_writeBufferToTxFifo
90 .stabs "pData:P(0,20)=*(0,11)",64,0,546,26
91 .stabs "length:P(0,11)",64,0,546,24
92 .global UIMgr_writeBufferToTxFifo
93 .type UIMgr_writeBufferToTxFifo, @function
94 UIMgr_writeBufferToTxFifo:
95 .stabd 46,0,0
84 .stabs " :T(0,16)=@s8;egetVersionCmd:0,pingCmd:1,setCameraRegsCmd:2,dumpFrameCmd:3,enableTrackingC
85 .stabs "UIMgr_Cmd_t:t(0,17)=(0,16)",128,0,81,0
86 .stabs " :T(0,18)=@s8;esetRed:0,setGreen:1,setBlue:2,;",128,0,0,0
87 .stabs "setColorState_t:t(0,19)=(0,18)",128,0,88,0
88 .stabs "UIMgr_writeBufferToTxFifo:F(0,15)",36,0,547,UIMgr_writeBufferToTxFifo
89 .stabs "pData:P(0,20)=*(0,11)",64,0,546,26
90 .stabs "length:P(0,11)",64,0,546,22
91 .global UIMgr_writeBufferToTxFifo
92 .type UIMgr_writeBufferToTxFifo, @function
93 UIMgr_writeBufferToTxFifo:
94 .stabd 46,0,0
1:UIMgr.c **** /*
2:UIMgr.c **** Copyright (C) 2004 John Orlando
3:UIMgr.c ****
118,10 → 117,10
17:UIMgr.c **** License along with this program; if not, write to the Free Software
18:UIMgr.c **** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19:UIMgr.c ****
GAS LISTING /tmp/ccRvT1Qm.s page 3
20:UIMgr.c **** For more information on the AVRcam, please contact:
GAS LISTING /tmp/ccs6Vjbf.s page 3
 
 
20:UIMgr.c **** For more information on the AVRcam, please contact:
21:UIMgr.c ****
22:UIMgr.c **** john@jrobot.net
23:UIMgr.c ****
178,10 → 177,10
74:UIMgr.c **** dumpFrameCmd,
75:UIMgr.c **** enableTrackingCmd,
76:UIMgr.c **** disableTrackingCmd,
GAS LISTING /tmp/ccRvT1Qm.s page 4
77:UIMgr.c **** setColorMapCmd,
GAS LISTING /tmp/ccs6Vjbf.s page 4
 
 
77:UIMgr.c **** setColorMapCmd,
78:UIMgr.c **** resetCameraCmd,
79:UIMgr.c **** noCmd,
80:UIMgr.c **** invalidCmd
238,10 → 237,10
131:UIMgr.c **** initializing the UIMgr module. It sets up the fifo
132:UIMgr.c **** used to hold incoming data, etc.
133:UIMgr.c **** Inputs: none
GAS LISTING /tmp/ccRvT1Qm.s page 5
134:UIMgr.c **** Outputs: none
GAS LISTING /tmp/ccs6Vjbf.s page 5
 
 
134:UIMgr.c **** Outputs: none
135:UIMgr.c **** ***********************************************************/
136:UIMgr.c **** void UIMgr_init(void)
137:UIMgr.c **** {
298,10 → 297,10
188:UIMgr.c **** parsing any serial data waiting in the rx fifo
189:UIMgr.c **** Inputs: none
190:UIMgr.c **** Outputs: none
GAS LISTING /tmp/ccRvT1Qm.s page 6
191:UIMgr.c **** ***********************************************************/
GAS LISTING /tmp/ccs6Vjbf.s page 6
 
 
191:UIMgr.c **** ***********************************************************/
192:UIMgr.c **** void UIMgr_processReceivedData(void)
193:UIMgr.c **** {
194:UIMgr.c **** unsigned char tmpData = 0;
358,10 → 357,10
245:UIMgr.c **** means we have received a token, with tokenCount == 0, which means it is a
246:UIMgr.c **** command...why is this contributing to tokenCount?
247:UIMgr.c **** This might cause the set color map command to include too much data, since
GAS LISTING /tmp/ccRvT1Qm.s page 7
248:UIMgr.c **** it sets the color map based on tokenCount...CHECK*/
GAS LISTING /tmp/ccs6Vjbf.s page 7
 
 
248:UIMgr.c **** it sets the color map based on tokenCount...CHECK*/
249:UIMgr.c **** }
250:UIMgr.c **** else
251:UIMgr.c **** {
418,10 → 417,10
302:UIMgr.c **** executing whatever cmd is stored in the receivedCmd
303:UIMgr.c **** object.
304:UIMgr.c **** Inputs: none
GAS LISTING /tmp/ccRvT1Qm.s page 8
305:UIMgr.c **** Outputs: none
GAS LISTING /tmp/ccs6Vjbf.s page 8
 
 
305:UIMgr.c **** Outputs: none
306:UIMgr.c **** ***********************************************************/
307:UIMgr.c **** static void UIMgr_executeCmd(void)
308:UIMgr.c **** {
478,10 → 477,10
359:UIMgr.c **** }
360:UIMgr.c **** else if (receivedCmd == disableTrackingCmd)
361:UIMgr.c **** {
GAS LISTING /tmp/ccRvT1Qm.s page 9
362:UIMgr.c **** PUBLISH_EVENT(EV_DISABLE_TRACKING);
GAS LISTING /tmp/ccs6Vjbf.s page 9
 
 
362:UIMgr.c **** PUBLISH_EVENT(EV_DISABLE_TRACKING);
363:UIMgr.c **** }
364:UIMgr.c **** else if (receivedCmd == setColorMapCmd)
365:UIMgr.c **** {
538,10 → 537,10
416:UIMgr.c **** access the asciiTokenBuffer directly, and store the
417:UIMgr.c **** result in the appropriate token buffer.
418:UIMgr.c **** Inputs: none
GAS LISTING /tmp/ccRvT1Qm.s page 10
419:UIMgr.c **** Outputs: none
GAS LISTING /tmp/ccs6Vjbf.s page 10
 
 
419:UIMgr.c **** Outputs: none
420:UIMgr.c **** ***********************************************************/
421:UIMgr.c **** static void UIMgr_convertTokenToValue(void)
422:UIMgr.c **** {
598,10 → 597,10
473:UIMgr.c **** /* the user wants to set registers in the OV6620 */
474:UIMgr.c **** receivedCmd = setCameraRegsCmd;
475:UIMgr.c **** }
GAS LISTING /tmp/ccRvT1Qm.s page 11
476:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'E') &&
GAS LISTING /tmp/ccs6Vjbf.s page 11
 
 
476:UIMgr.c **** else if ( (asciiTokenBuffer[0] == 'E') &&
477:UIMgr.c **** (asciiTokenBuffer[1] == 'T') )
478:UIMgr.c **** {
479:UIMgr.c **** /* the user wants to enable tracking */
658,10 → 657,10
530:UIMgr.c **** {
531:UIMgr.c **** UIMgr_writeTxFifo('N');
532:UIMgr.c **** UIMgr_writeTxFifo('C');
GAS LISTING /tmp/ccRvT1Qm.s page 12
533:UIMgr.c **** UIMgr_writeTxFifo('K');
GAS LISTING /tmp/ccs6Vjbf.s page 12
 
 
533:UIMgr.c **** UIMgr_writeTxFifo('K');
534:UIMgr.c **** UIMgr_writeTxFifo('\r');
535:UIMgr.c **** }
536:UIMgr.c ****
676,90 → 675,90
545:UIMgr.c **** ***********************************************************/
546:UIMgr.c **** void UIMgr_writeBufferToTxFifo(unsigned char *pData, unsigned char length)
547:UIMgr.c **** {
96 .stabn 68,0,547,.LM0-UIMgr_writeBufferToTxFifo
97 .LM0:
95 .stabn 68,0,547,.LM0-.LFBB1
96 .LM0:
97 .LFBB1:
98 /* prologue: frame size=0 */
99 /* prologue end (size=0) */
100 0000 DC01 movw r26,r24
101 0002 862F mov r24,r22
548:UIMgr.c **** unsigned char tmpHead;
549:UIMgr.c **** if (length == 0)
102 .stabn 68,0,549,.LM1-UIMgr_writeBufferToTxFifo
103 .LM1:
104 0004 6623 tst r22
105 0006 C9F0 breq .L7
101 .stabn 68,0,549,.LM1-.LFBB1
102 .LM1:
103 0002 6623 tst r22
104 0004 01F0 breq .L8
550:UIMgr.c **** {
551:UIMgr.c **** return;
552:UIMgr.c **** }
553:UIMgr.c ****
554:UIMgr.c **** DISABLE_INTS();
106 .stabn 68,0,554,.LM2-UIMgr_writeBufferToTxFifo
107 .LM2:
108 /* #APP */
109 0008 F894 cli
105 .stabn 68,0,554,.LM2-.LFBB1
106 .LM2:
107 /* #APP */
108 0006 F894 cli
555:UIMgr.c **** while(length-- != 0)
110 .stabn 68,0,555,.LM3-UIMgr_writeBufferToTxFifo
111 .LM3:
112 /* #NOAPP */
113 000a 6150 subi r22,lo8(-(-1))
114 000c 6F3F cpi r22,lo8(-1)
115 000e A1F0 breq .L4
116 0010 262F mov r18,r22
117 0012 40E0 ldi r20,lo8(UIMgr_txFifo)
118 0014 50E0 ldi r21,hi8(UIMgr_txFifo)
119 0016 861B sub r24,r22
120 0018 682F mov r22,r24
121 001a 6250 subi r22,lo8(-(-2))
122 .L6:
109 .stabn 68,0,555,.LM3-.LFBB1
110 .LM3:
111 /* #NOAPP */
112 0008 6150 subi r22,lo8(-(-1))
113 000a 6F3F cpi r22,lo8(-1)
114 000c 01F0 breq .L4
115 000e 9091 0000 lds r25,UIMgr_txFifoHead
556:UIMgr.c **** {
557:UIMgr.c **** UIMgr_txFifo[UIMgr_txFifoHead] = *pData++;
123 .stabn 68,0,557,.LM4-UIMgr_writeBufferToTxFifo
124 .LM4:
125 001c 8091 0000 lds r24,UIMgr_txFifoHead
126 0020 FA01 movw r30,r20
127 0022 E80F add r30,r24
GAS LISTING /tmp/ccRvT1Qm.s page 13
116 .stabn 68,0,557,.LM4-.LFBB1
117 .LM4:
118 0012 20E0 ldi r18,lo8(UIMgr_txFifo)
119 0014 30E0 ldi r19,hi8(UIMgr_txFifo)
120 .L6:
121 0016 F901 movw r30,r18
122 0018 E90F add r30,r25
123 001a F11D adc r31,__zero_reg__
124 001c 8D91 ld r24,X+
125 001e 8083 st Z,r24
558:UIMgr.c ****
559:UIMgr.c **** /* now move the head up */
GAS LISTING /tmp/ccs6Vjbf.s page 13
 
 
128 0024 F11D adc r31,__zero_reg__
129 0026 9D91 ld r25,X+
130 0028 9083 st Z,r25
558:UIMgr.c ****
559:UIMgr.c **** /* now move the head up */
560:UIMgr.c **** tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
126 .stabn 68,0,560,.LM5-.LFBB1
127 .LM5:
128 0020 892F mov r24,r25
129 0022 8F5F subi r24,lo8(-(1))
130 0024 982F mov r25,r24
131 0026 9F73 andi r25,lo8(63)
132 .stabn 68,0,555,.LM6-.LFBB1
133 .LM6:
134 0028 6150 subi r22,1
135 002a 00F4 brcc .L6
136 002c 9093 0000 sts UIMgr_txFifoHead,r25
137 .L4:
561:UIMgr.c **** UIMgr_txFifoHead = tmpHead;
131 .stabn 68,0,561,.LM5-UIMgr_writeBufferToTxFifo
132 .LM5:
133 002a 8F5F subi r24,lo8(-(1))
134 002c 8F73 andi r24,lo8(63)
135 002e 8093 0000 sts UIMgr_txFifoHead,r24
136 .stabn 68,0,555,.LM6-UIMgr_writeBufferToTxFifo
137 .LM6:
138 0032 2150 subi r18,lo8(-(-1))
139 0034 6217 cp r22,r18
140 0036 91F7 brne .L6
141 .L4:
562:UIMgr.c **** }
563:UIMgr.c **** ENABLE_INTS();
142 .stabn 68,0,563,.LM7-UIMgr_writeBufferToTxFifo
143 .LM7:
144 /* #APP */
145 0038 7894 sei
146 /* #NOAPP */
147 .L7:
148 003a 0895 ret
149 /* epilogue: frame size=0 */
150 /* epilogue: noreturn */
151 /* epilogue end (size=0) */
152 /* function UIMgr_writeBufferToTxFifo size 32 (32) */
153 .size UIMgr_writeBufferToTxFifo, .-UIMgr_writeBufferToTxFifo
154 .Lscope0:
155 .stabs "",36,0,0,.Lscope0-UIMgr_writeBufferToTxFifo
156 .stabd 78,0,0
157 .stabs "UIMgr_readTxFifo:f(0,11)",36,0,630,UIMgr_readTxFifo
158 .type UIMgr_readTxFifo, @function
159 UIMgr_readTxFifo:
160 .stabd 46,0,0
138 .stabn 68,0,563,.LM7-.LFBB1
139 .LM7:
140 /* #APP */
141 0030 7894 sei
142 /* #NOAPP */
143 .L8:
144 0032 0895 ret
145 /* epilogue: frame size=0 */
146 /* epilogue: noreturn */
147 /* epilogue end (size=0) */
148 /* function UIMgr_writeBufferToTxFifo size 29 (29) */
149 .size UIMgr_writeBufferToTxFifo, .-UIMgr_writeBufferToTxFifo
150 .stabs "tmpHead:r(0,11)",64,0,548,25
151 .stabn 192,0,0,.LFBB1-.LFBB1
152 .stabn 224,0,0,.Lscope1-.LFBB1
153 .Lscope1:
154 .stabs "",36,0,0,.Lscope1-.LFBB1
155 .stabd 78,0,0
156 .stabs "UIMgr_readTxFifo:f(0,11)",36,0,630,UIMgr_readTxFifo
157 .type UIMgr_readTxFifo, @function
158 UIMgr_readTxFifo:
159 .stabd 46,0,0
564:UIMgr.c **** }
565:UIMgr.c ****
566:UIMgr.c **** /***********************************************************
778,10 → 777,10
579:UIMgr.c **** UartInt_txByte(*pData++);
580:UIMgr.c **** }
581:UIMgr.c **** }
GAS LISTING /tmp/ccRvT1Qm.s page 14
582:UIMgr.c ****
GAS LISTING /tmp/ccs6Vjbf.s page 14
 
 
582:UIMgr.c ****
583:UIMgr.c **** /***********************************************************
584:UIMgr.c **** Function Name: UIMgr_flushTxBuffer
585:UIMgr.c **** Function Description: This function is responsible for
830,8 → 829,9
628:UIMgr.c **** ***********************************************************/
629:UIMgr.c **** static unsigned char UIMgr_readTxFifo(void)
630:UIMgr.c **** {
161 .stabn 68,0,630,.LM8-UIMgr_readTxFifo
162 .LM8:
160 .stabn 68,0,630,.LM8-.LFBB2
161 .LM8:
162 .LFBB2:
163 /* prologue: frame size=0 */
164 /* prologue end (size=0) */
631:UIMgr.c **** unsigned char dataByte, tmpTail;
838,52 → 838,52
632:UIMgr.c ****
633:UIMgr.c **** /* just return the current tail from the tx fifo */
634:UIMgr.c **** DISABLE_INTS();
GAS LISTING /tmp/ccRvT1Qm.s page 15
GAS LISTING /tmp/ccs6Vjbf.s page 15
 
 
165 .stabn 68,0,634,.LM9-UIMgr_readTxFifo
165 .stabn 68,0,634,.LM9-.LFBB2
166 .LM9:
167 /* #APP */
168 003c F894 cli
168 0034 F894 cli
635:UIMgr.c **** dataByte = UIMgr_txFifo[UIMgr_txFifoTail];
169 .stabn 68,0,635,.LM10-UIMgr_readTxFifo
169 .stabn 68,0,635,.LM10-.LFBB2
170 .LM10:
171 /* #NOAPP */
172 003e 9091 0000 lds r25,UIMgr_txFifoTail
173 0042 E0E0 ldi r30,lo8(UIMgr_txFifo)
174 0044 F0E0 ldi r31,hi8(UIMgr_txFifo)
175 0046 E90F add r30,r25
176 0048 F11D adc r31,__zero_reg__
177 004a 8081 ld r24,Z
172 0036 9091 0000 lds r25,UIMgr_txFifoTail
173 003a E0E0 ldi r30,lo8(UIMgr_txFifo)
174 003c F0E0 ldi r31,hi8(UIMgr_txFifo)
175 003e E90F add r30,r25
176 0040 F11D adc r31,__zero_reg__
177 0042 8081 ld r24,Z
636:UIMgr.c **** tmpTail = (UIMgr_txFifoTail+1) & (UI_MGR_TX_FIFO_MASK);
637:UIMgr.c **** UIMgr_txFifoTail = tmpTail;
178 .stabn 68,0,637,.LM11-UIMgr_readTxFifo
178 .stabn 68,0,637,.LM11-.LFBB2
179 .LM11:
180 004c 9F5F subi r25,lo8(-(1))
181 004e 9F73 andi r25,lo8(63)
182 0050 9093 0000 sts UIMgr_txFifoTail,r25
180 0044 9F5F subi r25,lo8(-(1))
181 0046 9F73 andi r25,lo8(63)
182 0048 9093 0000 sts UIMgr_txFifoTail,r25
638:UIMgr.c **** ENABLE_INTS();
183 .stabn 68,0,638,.LM12-UIMgr_readTxFifo
183 .stabn 68,0,638,.LM12-.LFBB2
184 .LM12:
185 /* #APP */
186 0054 7894 sei
186 004c 7894 sei
639:UIMgr.c ****
640:UIMgr.c **** return(dataByte);
641:UIMgr.c **** }
187 .stabn 68,0,641,.LM13-UIMgr_readTxFifo
187 .stabn 68,0,641,.LM13-.LFBB2
188 .LM13:
189 /* #NOAPP */
190 0056 9927 clr r25
190 004e 9927 clr r25
191 /* epilogue: frame size=0 */
192 0058 0895 ret
192 0050 0895 ret
193 /* epilogue end (size=1) */
194 /* function UIMgr_readTxFifo size 17 (16) */
195 .size UIMgr_readTxFifo, .-UIMgr_readTxFifo
196 .stabs "dataByte:r(0,11)",64,0,631,24
197 .stabn 192,0,0,UIMgr_readTxFifo-UIMgr_readTxFifo
198 .stabn 224,0,0,.Lscope1-UIMgr_readTxFifo
199 .Lscope1:
200 .stabs "",36,0,0,.Lscope1-UIMgr_readTxFifo
197 .stabn 192,0,0,.LFBB2-.LFBB2
198 .stabn 224,0,0,.Lscope2-.LFBB2
199 .Lscope2:
200 .stabs "",36,0,0,.Lscope2-.LFBB2
201 .stabd 78,0,0
202 .stabs "UIMgr_writeTxFifo:F(0,15)",36,0,652,UIMgr_writeTxFifo
203 .stabs "data:P(0,11)",64,0,651,24
898,7 → 898,7
646:UIMgr.c **** writing a single byte to the TxFifo and
647:UIMgr.c **** updating the appropriate pointers.
648:UIMgr.c **** Inputs: data - the byte to write to the Fifo
GAS LISTING /tmp/ccRvT1Qm.s page 16
GAS LISTING /tmp/ccs6Vjbf.s page 16
 
 
649:UIMgr.c **** Outputs: none
905,1448 → 905,1510
650:UIMgr.c **** ***********************************************************/
651:UIMgr.c **** void UIMgr_writeTxFifo(unsigned char data)
652:UIMgr.c **** {
208 .stabn 68,0,652,.LM14-UIMgr_writeTxFifo
208 .stabn 68,0,652,.LM14-.LFBB3
209 .LM14:
210 /* prologue: frame size=0 */
211 /* prologue end (size=0) */
210 .LFBB3:
211 /* prologue: frame size=0 */
212 /* prologue end (size=0) */
653:UIMgr.c **** unsigned char tmpHead;
654:UIMgr.c ****
655:UIMgr.c **** DISABLE_INTS();
212 .stabn 68,0,655,.LM15-UIMgr_writeTxFifo
213 .LM15:
214 /* #APP */
215 005a F894 cli
213 .stabn 68,0,655,.LM15-.LFBB3
214 .LM15:
215 /* #APP */
216 0052 F894 cli
656:UIMgr.c **** UIMgr_txFifo[UIMgr_txFifoHead] = data;
216 .stabn 68,0,656,.LM16-UIMgr_writeTxFifo
217 .LM16:
218 /* #NOAPP */
219 005c 9091 0000 lds r25,UIMgr_txFifoHead
220 0060 E0E0 ldi r30,lo8(UIMgr_txFifo)
221 0062 F0E0 ldi r31,hi8(UIMgr_txFifo)
222 0064 E90F add r30,r25
223 0066 F11D adc r31,__zero_reg__
224 0068 8083 st Z,r24
217 .stabn 68,0,656,.LM16-.LFBB3
218 .LM16:
219 /* #NOAPP */
220 0054 9091 0000 lds r25,UIMgr_txFifoHead
221 0058 E0E0 ldi r30,lo8(UIMgr_txFifo)
222 005a F0E0 ldi r31,hi8(UIMgr_txFifo)
223 005c E90F add r30,r25
224 005e F11D adc r31,__zero_reg__
225 0060 8083 st Z,r24
657:UIMgr.c ****
658:UIMgr.c **** /* now move the head up */
659:UIMgr.c **** tmpHead = (UIMgr_txFifoHead + 1) & (UI_MGR_TX_FIFO_MASK);
660:UIMgr.c **** UIMgr_txFifoHead = tmpHead;
225 .stabn 68,0,660,.LM17-UIMgr_writeTxFifo
226 .LM17:
227 006a 9F5F subi r25,lo8(-(1))
228 006c 9F73 andi r25,lo8(63)
229 006e 9093 0000 sts UIMgr_txFifoHead,r25
226 .stabn 68,0,660,.LM17-.LFBB3
227 .LM17:
228 0062 9F5F subi r25,lo8(-(1))
229 0064 9F73 andi r25,lo8(63)
230 0066 9093 0000 sts UIMgr_txFifoHead,r25
661:UIMgr.c **** ENABLE_INTS();
230 .stabn 68,0,661,.LM18-UIMgr_writeTxFifo
231 .LM18:
232 /* #APP */
233 0072 7894 sei
234 /* #NOAPP */
235 /* epilogue: frame size=0 */
236 0074 0895 ret
237 /* epilogue end (size=1) */
238 /* function UIMgr_writeTxFifo size 16 (15) */
239 .size UIMgr_writeTxFifo, .-UIMgr_writeTxFifo
240 .Lscope2:
241 .stabs "",36,0,0,.Lscope2-UIMgr_writeTxFifo
242 .stabd 78,0,0
243 .stabs "UIMgr_flushTxBuffer:F(0,15)",36,0,592,UIMgr_flushTxBuffer
244 .global UIMgr_flushTxBuffer
245 .type UIMgr_flushTxBuffer, @function
246 UIMgr_flushTxBuffer:
247 .stabd 46,0,0
248 .stabn 68,0,592,.LM19-UIMgr_flushTxBuffer
249 .LM19:
250 /* prologue: frame size=0 */
251 /* prologue end (size=0) */
GAS LISTING /tmp/ccRvT1Qm.s page 17
231 .stabn 68,0,661,.LM18-.LFBB3
232 .LM18:
233 /* #APP */
234 006a 7894 sei
235 /* #NOAPP */
236 /* epilogue: frame size=0 */
237 006c 0895 ret
238 /* epilogue end (size=1) */
239 /* function UIMgr_writeTxFifo size 16 (15) */
240 .size UIMgr_writeTxFifo, .-UIMgr_writeTxFifo
241 .Lscope3:
242 .stabs "",36,0,0,.Lscope3-.LFBB3
243 .stabd 78,0,0
244 .stabs "UIMgr_flushTxBuffer:F(0,15)",36,0,592,UIMgr_flushTxBuffer
245 .global UIMgr_flushTxBuffer
246 .type UIMgr_flushTxBuffer, @function
247 UIMgr_flushTxBuffer:
248 .stabd 46,0,0
249 .stabn 68,0,592,.LM19-.LFBB4
250 .LM19:
251 .LFBB4:
GAS LISTING /tmp/ccs6Vjbf.s page 17
 
 
252 .stabn 68,0,593,.LM20-UIMgr_flushTxBuffer
253 .LM20:
254 0076 9091 0000 lds r25,UIMgr_txFifoHead
255 007a 8091 0000 lds r24,UIMgr_txFifoTail
256 007e 9817 cp r25,r24
257 0080 41F0 breq .L16
258 .L17:
259 .stabn 68,0,595,.LM21-UIMgr_flushTxBuffer
260 .LM21:
261 0082 DCDF rcall UIMgr_readTxFifo
262 0084 00D0 rcall UartInt_txByte
263 .stabn 68,0,593,.LM22-UIMgr_flushTxBuffer
264 .LM22:
265 0086 9091 0000 lds r25,UIMgr_txFifoHead
266 008a 8091 0000 lds r24,UIMgr_txFifoTail
267 008e 9817 cp r25,r24
268 0090 C1F7 brne .L17
269 .L16:
270 0092 0895 ret
271 /* epilogue: frame size=0 */
272 /* epilogue: noreturn */
273 /* epilogue end (size=0) */
274 /* function UIMgr_flushTxBuffer size 15 (15) */
275 .size UIMgr_flushTxBuffer, .-UIMgr_flushTxBuffer
276 .Lscope3:
277 .stabs "",36,0,0,.Lscope3-UIMgr_flushTxBuffer
278 .stabd 78,0,0
279 .stabs "UIMgr_txBuffer:F(0,15)",36,0,576,UIMgr_txBuffer
280 .stabs "pData:P(0,20)",64,0,575,28
281 .stabs "length:P(0,11)",64,0,575,24
282 .global UIMgr_txBuffer
283 .type UIMgr_txBuffer, @function
284 UIMgr_txBuffer:
285 .stabd 46,0,0
286 .stabn 68,0,576,.LM23-UIMgr_txBuffer
287 .LM23:
288 /* prologue: frame size=0 */
289 0094 0F93 push r16
290 0096 1F93 push r17
291 0098 CF93 push r28
292 009a DF93 push r29
293 /* prologue end (size=4) */
294 009c EC01 movw r28,r24
295 009e 862F mov r24,r22
296 .stabn 68,0,577,.LM24-UIMgr_txBuffer
297 .LM24:
298 00a0 6150 subi r22,lo8(-(-1))
299 00a2 6F3F cpi r22,lo8(-1)
300 00a4 49F0 breq .L23
301 .stabn 68,0,577,.LM25-UIMgr_txBuffer
302 .LM25:
303 00a6 162F mov r17,r22
304 00a8 861B sub r24,r22
305 00aa 082F mov r16,r24
306 00ac 0250 subi r16,lo8(-(-2))
307 .L22:
308 .stabn 68,0,579,.LM26-UIMgr_txBuffer
GAS LISTING /tmp/ccRvT1Qm.s page 18
252 /* prologue: frame size=0 */
253 /* prologue end (size=0) */
254 .stabn 68,0,593,.LM20-.LFBB4
255 .LM20:
256 006e 9091 0000 lds r25,UIMgr_txFifoHead
257 0072 8091 0000 lds r24,UIMgr_txFifoTail
258 0076 9817 cp r25,r24
259 0078 01F0 breq .L18
260 .L19:
261 .stabn 68,0,595,.LM21-.LFBB4
262 .LM21:
263 007a 00D0 rcall UIMgr_readTxFifo
264 007c 00D0 rcall UartInt_txByte
265 .stabn 68,0,593,.LM22-.LFBB4
266 .LM22:
267 007e 9091 0000 lds r25,UIMgr_txFifoHead
268 0082 8091 0000 lds r24,UIMgr_txFifoTail
269 0086 9817 cp r25,r24
270 0088 01F4 brne .L19
271 .L18:
272 008a 0895 ret
273 /* epilogue: frame size=0 */
274 /* epilogue: noreturn */
275 /* epilogue end (size=0) */
276 /* function UIMgr_flushTxBuffer size 15 (15) */
277 .size UIMgr_flushTxBuffer, .-UIMgr_flushTxBuffer
278 .Lscope4:
279 .stabs "",36,0,0,.Lscope4-.LFBB4
280 .stabd 78,0,0
281 .stabs "UIMgr_txBuffer:F(0,15)",36,0,576,UIMgr_txBuffer
282 .stabs "pData:P(0,20)",64,0,575,28
283 .stabs "length:P(0,11)",64,0,575,22
284 .global UIMgr_txBuffer
285 .type UIMgr_txBuffer, @function
286 UIMgr_txBuffer:
287 .stabd 46,0,0
288 .stabn 68,0,576,.LM23-.LFBB5
289 .LM23:
290 .LFBB5:
291 /* prologue: frame size=0 */
292 008c 1F93 push r17
293 008e CF93 push r28
294 0090 DF93 push r29
295 /* prologue end (size=3) */
296 0092 EC01 movw r28,r24
297 .stabn 68,0,577,.LM24-.LFBB5
298 .LM24:
299 0094 162F mov r17,r22
300 0096 1150 subi r17,lo8(-(-1))
301 0098 1F3F cpi r17,lo8(-1)
302 009a 01F0 breq .L24
303 .L25:
304 .stabn 68,0,579,.LM25-.LFBB5
305 .LM25:
306 009c 8991 ld r24,Y+
307 009e 00D0 rcall UartInt_txByte
308 .stabn 68,0,577,.LM26-.LFBB5
GAS LISTING /tmp/ccs6Vjbf.s page 18
 
 
309 .LM26:
310 00ae 8991 ld r24,Y+
311 00b0 00D0 rcall UartInt_txByte
312 .stabn 68,0,577,.LM27-UIMgr_txBuffer
313 .LM27:
314 00b2 1150 subi r17,lo8(-(-1))
315 00b4 0117 cp r16,r17
316 00b6 D9F7 brne .L22
317 .L23:
318 /* epilogue: frame size=0 */
319 00b8 DF91 pop r29
320 00ba CF91 pop r28
321 00bc 1F91 pop r17
322 00be 0F91 pop r16
323 00c0 0895 ret
324 /* epilogue end (size=5) */
325 /* function UIMgr_txBuffer size 23 (14) */
326 .size UIMgr_txBuffer, .-UIMgr_txBuffer
327 .Lscope4:
328 .stabs "",36,0,0,.Lscope4-UIMgr_txBuffer
329 .stabd 78,0,0
330 .stabs "UIMgr_transmitPendingData:F(0,15)",36,0,178,UIMgr_transmitPendingData
331 .global UIMgr_transmitPendingData
332 .type UIMgr_transmitPendingData, @function
333 UIMgr_transmitPendingData:
334 .stabd 46,0,0
335 .stabn 68,0,178,.LM28-UIMgr_transmitPendingData
336 .LM28:
337 /* prologue: frame size=0 */
338 /* prologue end (size=0) */
339 .stabn 68,0,179,.LM29-UIMgr_transmitPendingData
340 .LM29:
341 00c2 9091 0000 lds r25,UIMgr_txFifoHead
342 00c6 8091 0000 lds r24,UIMgr_txFifoTail
343 00ca 9817 cp r25,r24
344 00cc 11F0 breq .L28
345 .stabn 68,0,182,.LM30-UIMgr_transmitPendingData
346 .LM30:
347 00ce B6DF rcall UIMgr_readTxFifo
348 00d0 00D0 rcall UartInt_txByte
349 .L28:
350 00d2 0895 ret
351 /* epilogue: frame size=0 */
352 /* epilogue: noreturn */
353 /* epilogue end (size=0) */
354 /* function UIMgr_transmitPendingData size 9 (9) */
355 .size UIMgr_transmitPendingData, .-UIMgr_transmitPendingData
356 .Lscope5:
357 .stabs "",36,0,0,.Lscope5-UIMgr_transmitPendingData
358 .stabd 78,0,0
359 .stabs "UIMgr_convertTokenToCmd:f(0,15)",36,0,450,UIMgr_convertTokenToCmd
360 .type UIMgr_convertTokenToCmd, @function
361 UIMgr_convertTokenToCmd:
362 .stabd 46,0,0
363 .stabn 68,0,450,.LM31-UIMgr_convertTokenToCmd
310 00a0 1150 subi r17,1
311 00a2 00F4 brcc .L25
312 .L24:
313 /* epilogue: frame size=0 */
314 00a4 DF91 pop r29
315 00a6 CF91 pop r28
316 00a8 1F91 pop r17
317 00aa 0895 ret
318 /* epilogue end (size=4) */
319 /* function UIMgr_txBuffer size 17 (10) */
320 .size UIMgr_txBuffer, .-UIMgr_txBuffer
321 .Lscope5:
322 .stabs "",36,0,0,.Lscope5-.LFBB5
323 .stabd 78,0,0
324 .stabs "UIMgr_transmitPendingData:F(0,15)",36,0,178,UIMgr_transmitPendingData
325 .global UIMgr_transmitPendingData
326 .type UIMgr_transmitPendingData, @function
327 UIMgr_transmitPendingData:
328 .stabd 46,0,0
329 .stabn 68,0,178,.LM27-.LFBB6
330 .LM27:
331 .LFBB6:
332 /* prologue: frame size=0 */
333 /* prologue end (size=0) */
334 .stabn 68,0,179,.LM28-.LFBB6
335 .LM28:
336 00ac 9091 0000 lds r25,UIMgr_txFifoHead
337 00b0 8091 0000 lds r24,UIMgr_txFifoTail
338 00b4 9817 cp r25,r24
339 00b6 01F0 breq .L30
340 .stabn 68,0,182,.LM29-.LFBB6
341 .LM29:
342 00b8 00D0 rcall UIMgr_readTxFifo
343 00ba 00D0 rcall UartInt_txByte
344 .L30:
345 00bc 0895 ret
346 /* epilogue: frame size=0 */
347 /* epilogue: noreturn */
348 /* epilogue end (size=0) */
349 /* function UIMgr_transmitPendingData size 9 (9) */
350 .size UIMgr_transmitPendingData, .-UIMgr_transmitPendingData
351 .Lscope6:
352 .stabs "",36,0,0,.Lscope6-.LFBB6
353 .stabd 78,0,0
354 .stabs "UIMgr_convertTokenToCmd:f(0,15)",36,0,450,UIMgr_convertTokenToCmd
355 .type UIMgr_convertTokenToCmd, @function
356 UIMgr_convertTokenToCmd:
357 .stabd 46,0,0
358 .stabn 68,0,450,.LM30-.LFBB7
359 .LM30:
360 .LFBB7:
361 /* prologue: frame size=0 */
362 /* prologue end (size=0) */
363 .stabn 68,0,451,.LM31-.LFBB7
364 .LM31:
365 /* prologue: frame size=0 */
GAS LISTING /tmp/ccRvT1Qm.s page 19
365 00be 9091 0000 lds r25,asciiTokenBuffer
GAS LISTING /tmp/ccs6Vjbf.s page 19
 
 
366 /* prologue end (size=0) */
367 .stabn 68,0,451,.LM32-UIMgr_convertTokenToCmd
368 .LM32:
369 00d4 9091 0000 lds r25,asciiTokenBuffer
370 00d8 9035 cpi r25,lo8(80)
371 00da 41F4 brne .L30
372 .stabn 68,0,451,.LM33-UIMgr_convertTokenToCmd
373 .LM33:
374 00dc 8091 0000 lds r24,asciiTokenBuffer+1
375 00e0 8734 cpi r24,lo8(71)
376 00e2 09F5 brne .L32
377 .stabn 68,0,456,.LM34-UIMgr_convertTokenToCmd
378 .LM34:
379 00e4 81E0 ldi r24,lo8(1)
380 00e6 8093 0000 sts receivedCmd,r24
381 00ea 48C0 rjmp .L34
382 .L30:
383 .stabn 68,0,458,.LM35-UIMgr_convertTokenToCmd
384 .LM35:
385 00ec 9734 cpi r25,lo8(71)
386 00ee 39F4 brne .L35
387 00f0 8091 0000 lds r24,asciiTokenBuffer+1
388 00f4 8635 cpi r24,lo8(86)
389 00f6 09F5 brne .L37
390 .stabn 68,0,462,.LM36-UIMgr_convertTokenToCmd
391 .LM36:
392 00f8 1092 0000 sts receivedCmd,__zero_reg__
393 00fc 3FC0 rjmp .L34
394 .L35:
395 .stabn 68,0,464,.LM37-UIMgr_convertTokenToCmd
396 .LM37:
397 00fe 9434 cpi r25,lo8(68)
398 0100 41F4 brne .L39
399 0102 8091 0000 lds r24,asciiTokenBuffer+1
400 0106 8634 cpi r24,lo8(70)
401 0108 11F5 brne .L41
402 .stabn 68,0,468,.LM38-UIMgr_convertTokenToCmd
403 .LM38:
404 010a 83E0 ldi r24,lo8(3)
405 010c 8093 0000 sts receivedCmd,r24
406 0110 35C0 rjmp .L34
407 .L39:
408 .stabn 68,0,470,.LM39-UIMgr_convertTokenToCmd
409 .LM39:
410 0112 9334 cpi r25,lo8(67)
411 0114 41F4 brne .L32
412 0116 8091 0000 lds r24,asciiTokenBuffer+1
413 011a 8235 cpi r24,lo8(82)
414 011c 11F5 brne .L44
415 .stabn 68,0,474,.LM40-UIMgr_convertTokenToCmd
416 .LM40:
417 011e 82E0 ldi r24,lo8(2)
418 0120 8093 0000 sts receivedCmd,r24
419 0124 2BC0 rjmp .L34
420 .L32:
421 .stabn 68,0,476,.LM41-UIMgr_convertTokenToCmd
422 .LM41:
GAS LISTING /tmp/ccRvT1Qm.s page 20
366 00c2 9035 cpi r25,lo8(80)
367 00c4 01F4 brne .L32
368 .stabn 68,0,451,.LM32-.LFBB7
369 .LM32:
370 00c6 8091 0000 lds r24,asciiTokenBuffer+1
371 00ca 8734 cpi r24,lo8(71)
372 00cc 01F4 brne .L34
373 .stabn 68,0,456,.LM33-.LFBB7
374 .LM33:
375 00ce 81E0 ldi r24,lo8(1)
376 00d0 8093 0000 sts receivedCmd,r24
377 00d4 00C0 rjmp .L36
378 .L32:
379 .stabn 68,0,458,.LM34-.LFBB7
380 .LM34:
381 00d6 9734 cpi r25,lo8(71)
382 00d8 01F4 brne .L37
383 00da 8091 0000 lds r24,asciiTokenBuffer+1
384 00de 8635 cpi r24,lo8(86)
385 00e0 01F4 brne .L39
386 .stabn 68,0,462,.LM35-.LFBB7
387 .LM35:
388 00e2 1092 0000 sts receivedCmd,__zero_reg__
389 00e6 00C0 rjmp .L36
390 .L37:
391 .stabn 68,0,464,.LM36-.LFBB7
392 .LM36:
393 00e8 9434 cpi r25,lo8(68)
394 00ea 01F4 brne .L41
395 00ec 8091 0000 lds r24,asciiTokenBuffer+1
396 00f0 8634 cpi r24,lo8(70)
397 00f2 01F4 brne .L43
398 .stabn 68,0,468,.LM37-.LFBB7
399 .LM37:
400 00f4 83E0 ldi r24,lo8(3)
401 00f6 8093 0000 sts receivedCmd,r24
402 00fa 00C0 rjmp .L36
403 .L41:
404 .stabn 68,0,470,.LM38-.LFBB7
405 .LM38:
406 00fc 9334 cpi r25,lo8(67)
407 00fe 01F4 brne .L34
408 0100 8091 0000 lds r24,asciiTokenBuffer+1
409 0104 8235 cpi r24,lo8(82)
410 0106 01F4 brne .L46
411 .stabn 68,0,474,.LM39-.LFBB7
412 .LM39:
413 0108 82E0 ldi r24,lo8(2)
414 010a 8093 0000 sts receivedCmd,r24
415 010e 00C0 rjmp .L36
416 .L34:
417 .stabn 68,0,476,.LM40-.LFBB7
418 .LM40:
419 0110 9534 cpi r25,lo8(69)
420 0112 01F4 brne .L39
421 0114 8091 0000 lds r24,asciiTokenBuffer+1
422 0118 8435 cpi r24,lo8(84)
GAS LISTING /tmp/ccs6Vjbf.s page 20
 
 
423 0126 9534 cpi r25,lo8(69)
424 0128 41F4 brne .L37
425 012a 8091 0000 lds r24,asciiTokenBuffer+1
426 012e 8435 cpi r24,lo8(84)
427 0130 11F5 brne .L47
428 .stabn 68,0,480,.LM42-UIMgr_convertTokenToCmd
429 .LM42:
430 0132 84E0 ldi r24,lo8(4)
431 0134 8093 0000 sts receivedCmd,r24
432 0138 21C0 rjmp .L34
433 .L37:
434 .stabn 68,0,482,.LM43-UIMgr_convertTokenToCmd
435 .LM43:
436 013a 9335 cpi r25,lo8(83)
437 013c 41F4 brne .L41
438 013e 8091 0000 lds r24,asciiTokenBuffer+1
439 0142 8D34 cpi r24,lo8(77)
440 0144 C1F4 brne .L47
441 .stabn 68,0,486,.LM44-UIMgr_convertTokenToCmd
442 .LM44:
443 0146 86E0 ldi r24,lo8(6)
444 0148 8093 0000 sts receivedCmd,r24
445 014c 17C0 rjmp .L34
446 .L41:
447 .stabn 68,0,488,.LM45-UIMgr_convertTokenToCmd
448 .LM45:
449 014e 9434 cpi r25,lo8(68)
450 0150 41F4 brne .L44
451 0152 8091 0000 lds r24,asciiTokenBuffer+1
452 0156 8435 cpi r24,lo8(84)
453 0158 71F4 brne .L47
454 .stabn 68,0,491,.LM46-UIMgr_convertTokenToCmd
455 .LM46:
456 015a 85E0 ldi r24,lo8(5)
457 015c 8093 0000 sts receivedCmd,r24
458 0160 0DC0 rjmp .L34
459 .L44:
460 .stabn 68,0,493,.LM47-UIMgr_convertTokenToCmd
461 .LM47:
462 0162 9235 cpi r25,lo8(82)
463 0164 41F4 brne .L47
464 0166 8091 0000 lds r24,asciiTokenBuffer+1
465 016a 8335 cpi r24,lo8(83)
466 016c 21F4 brne .L47
467 .stabn 68,0,496,.LM48-UIMgr_convertTokenToCmd
468 .LM48:
469 016e 87E0 ldi r24,lo8(7)
470 0170 8093 0000 sts receivedCmd,r24
471 0174 03C0 rjmp .L34
472 .L47:
473 .stabn 68,0,501,.LM49-UIMgr_convertTokenToCmd
474 .LM49:
475 0176 89E0 ldi r24,lo8(9)
476 0178 8093 0000 sts receivedCmd,r24
477 .L34:
478 .stabn 68,0,503,.LM50-UIMgr_convertTokenToCmd
479 .LM50:
GAS LISTING /tmp/ccRvT1Qm.s page 21
423 011a 01F4 brne .L49
424 .stabn 68,0,480,.LM41-.LFBB7
425 .LM41:
426 011c 84E0 ldi r24,lo8(4)
427 011e 8093 0000 sts receivedCmd,r24
428 0122 00C0 rjmp .L36
429 .L39:
430 .stabn 68,0,482,.LM42-.LFBB7
431 .LM42:
432 0124 9335 cpi r25,lo8(83)
433 0126 01F4 brne .L43
434 0128 8091 0000 lds r24,asciiTokenBuffer+1
435 012c 8D34 cpi r24,lo8(77)
436 012e 01F4 brne .L49
437 .stabn 68,0,486,.LM43-.LFBB7
438 .LM43:
439 0130 86E0 ldi r24,lo8(6)
440 0132 8093 0000 sts receivedCmd,r24
441 0136 00C0 rjmp .L36
442 .L43:
443 .stabn 68,0,488,.LM44-.LFBB7
444 .LM44:
445 0138 9434 cpi r25,lo8(68)
446 013a 01F4 brne .L46
447 013c 8091 0000 lds r24,asciiTokenBuffer+1
448 0140 8435 cpi r24,lo8(84)
449 0142 01F4 brne .L49
450 .stabn 68,0,491,.LM45-.LFBB7
451 .LM45:
452 0144 85E0 ldi r24,lo8(5)
453 0146 8093 0000 sts receivedCmd,r24
454 014a 00C0 rjmp .L36
455 .L46:
456 .stabn 68,0,493,.LM46-.LFBB7
457 .LM46:
458 014c 9235 cpi r25,lo8(82)
459 014e 01F4 brne .L49
460 0150 8091 0000 lds r24,asciiTokenBuffer+1
461 0154 8335 cpi r24,lo8(83)
462 0156 01F4 brne .L49
463 .stabn 68,0,496,.LM47-.LFBB7
464 .LM47:
465 0158 87E0 ldi r24,lo8(7)
466 015a 8093 0000 sts receivedCmd,r24
467 015e 00C0 rjmp .L36
468 .L49:
469 .stabn 68,0,501,.LM48-.LFBB7
470 .LM48:
471 0160 89E0 ldi r24,lo8(9)
472 0162 8093 0000 sts receivedCmd,r24
473 .L36:
474 .stabn 68,0,503,.LM49-.LFBB7
475 .LM49:
476 0166 83E0 ldi r24,lo8(3)
477 0168 E0E0 ldi r30,lo8(asciiTokenBuffer)
478 016a F0E0 ldi r31,hi8(asciiTokenBuffer)
479 016c 1192 st Z+,__zero_reg__
GAS LISTING /tmp/ccs6Vjbf.s page 21
 
 
480 017c 83E0 ldi r24,lo8(3)
481 017e E0E0 ldi r30,lo8(asciiTokenBuffer)
482 0180 F0E0 ldi r31,hi8(asciiTokenBuffer)
483 0182 1192 st Z+,__zero_reg__
484 0184 8A95 dec r24
485 0186 E9F7 brne .-6
486 .stabn 68,0,504,.LM51-UIMgr_convertTokenToCmd
487 .LM51:
488 0188 1092 0000 sts charIndex,__zero_reg__
489 .stabn 68,0,505,.LM52-UIMgr_convertTokenToCmd
490 .LM52:
491 018c 1092 0000 sts charCount,__zero_reg__
492 /* epilogue: frame size=0 */
493 0190 0895 ret
494 /* epilogue end (size=1) */
495 /* function UIMgr_convertTokenToCmd size 95 (94) */
496 .size UIMgr_convertTokenToCmd, .-UIMgr_convertTokenToCmd
497 .Lscope6:
498 .stabs "",36,0,0,.Lscope6-UIMgr_convertTokenToCmd
499 .stabd 78,0,0
500 .stabs "UIMgr_init:F(0,15)",36,0,137,UIMgr_init
501 .global UIMgr_init
502 .type UIMgr_init, @function
503 UIMgr_init:
504 .stabd 46,0,0
505 .stabn 68,0,137,.LM53-UIMgr_init
506 .LM53:
507 /* prologue: frame size=0 */
508 /* prologue end (size=0) */
509 .stabn 68,0,138,.LM54-UIMgr_init
510 .LM54:
511 0192 1092 0000 sts asciiTokenBuffer,__zero_reg__
512 0196 1092 0000 sts (asciiTokenBuffer)+1,__zero_reg__
513 019a 1092 0000 sts (asciiTokenBuffer)+2,__zero_reg__
514 019e 1092 0000 sts (asciiTokenBuffer)+3,__zero_reg__
515 .stabn 68,0,139,.LM55-UIMgr_init
516 .LM55:
517 01a2 80E4 ldi r24,lo8(64)
518 01a4 E0E0 ldi r30,lo8(tokenBuffer)
519 01a6 F0E0 ldi r31,hi8(tokenBuffer)
520 01a8 982F mov r25,r24
521 01aa 1192 st Z+,__zero_reg__
522 01ac 9A95 dec r25
523 01ae E9F7 brne .-6
524 .stabn 68,0,140,.LM56-UIMgr_init
525 .LM56:
526 01b0 E0E0 ldi r30,lo8(UIMgr_txFifo)
527 01b2 F0E0 ldi r31,hi8(UIMgr_txFifo)
528 01b4 1192 st Z+,__zero_reg__
529 01b6 8A95 dec r24
530 01b8 E9F7 brne .-6
531 .stabn 68,0,141,.LM57-UIMgr_init
532 .LM57:
533 01ba 80E2 ldi r24,lo8(32)
534 01bc E0E0 ldi r30,lo8(UIMgr_rxFifo)
535 01be F0E0 ldi r31,hi8(UIMgr_rxFifo)
536 01c0 1192 st Z+,__zero_reg__
GAS LISTING /tmp/ccRvT1Qm.s page 22
480 016e 8A95 dec r24
481 0170 01F4 brne .-6
482 .stabn 68,0,504,.LM50-.LFBB7
483 .LM50:
484 0172 1092 0000 sts charIndex,__zero_reg__
485 .stabn 68,0,505,.LM51-.LFBB7
486 .LM51:
487 0176 1092 0000 sts charCount,__zero_reg__
488 /* epilogue: frame size=0 */
489 017a 0895 ret
490 /* epilogue end (size=1) */
491 /* function UIMgr_convertTokenToCmd size 95 (94) */
492 .size UIMgr_convertTokenToCmd, .-UIMgr_convertTokenToCmd
493 .Lscope7:
494 .stabs "",36,0,0,.Lscope7-.LFBB7
495 .stabd 78,0,0
496 .stabs "UIMgr_init:F(0,15)",36,0,137,UIMgr_init
497 .global UIMgr_init
498 .type UIMgr_init, @function
499 UIMgr_init:
500 .stabd 46,0,0
501 .stabn 68,0,137,.LM52-.LFBB8
502 .LM52:
503 .LFBB8:
504 /* prologue: frame size=0 */
505 /* prologue end (size=0) */
506 .stabn 68,0,138,.LM53-.LFBB8
507 .LM53:
508 017c 1092 0000 sts asciiTokenBuffer,__zero_reg__
509 0180 1092 0000 sts (asciiTokenBuffer)+1,__zero_reg__
510 0184 1092 0000 sts (asciiTokenBuffer)+2,__zero_reg__
511 0188 1092 0000 sts (asciiTokenBuffer)+3,__zero_reg__
512 .stabn 68,0,139,.LM54-.LFBB8
513 .LM54:
514 018c 80E4 ldi r24,lo8(64)
515 018e E0E0 ldi r30,lo8(tokenBuffer)
516 0190 F0E0 ldi r31,hi8(tokenBuffer)
517 0192 982F mov r25,r24
518 0194 1192 st Z+,__zero_reg__
519 0196 9A95 dec r25
520 0198 01F4 brne .-6
521 .stabn 68,0,140,.LM55-.LFBB8
522 .LM55:
523 019a E0E0 ldi r30,lo8(UIMgr_txFifo)
524 019c F0E0 ldi r31,hi8(UIMgr_txFifo)
525 019e 1192 st Z+,__zero_reg__
526 01a0 8A95 dec r24
527 01a2 01F4 brne .-6
528 .stabn 68,0,141,.LM56-.LFBB8
529 .LM56:
530 01a4 80E2 ldi r24,lo8(32)
531 01a6 E0E0 ldi r30,lo8(UIMgr_rxFifo)
532 01a8 F0E0 ldi r31,hi8(UIMgr_rxFifo)
533 01aa 1192 st Z+,__zero_reg__
534 01ac 8A95 dec r24
535 01ae 01F4 brne .-6
536 /* epilogue: frame size=0 */
GAS LISTING /tmp/ccs6Vjbf.s page 22
 
 
537 01c2 8A95 dec r24
538 01c4 E9F7 brne .-6
539 /* epilogue: frame size=0 */
540 01c6 0895 ret
541 /* epilogue end (size=1) */
542 /* function UIMgr_init size 27 (26) */
543 .size UIMgr_init, .-UIMgr_init
544 .Lscope7:
545 .stabs "",36,0,0,.Lscope7-UIMgr_init
546 .stabd 78,0,0
547 .stabs "UIMgr_convertTokenToValue:f(0,15)",36,0,422,UIMgr_convertTokenToValue
548 .type UIMgr_convertTokenToValue, @function
549 UIMgr_convertTokenToValue:
550 .stabd 46,0,0
551 .stabn 68,0,422,.LM58-UIMgr_convertTokenToValue
552 .LM58:
553 /* prologue: frame size=0 */
554 /* prologue end (size=0) */
555 .stabn 68,0,425,.LM59-UIMgr_convertTokenToValue
556 .LM59:
557 01c8 80E0 ldi r24,lo8(asciiTokenBuffer)
558 01ca 90E0 ldi r25,hi8(asciiTokenBuffer)
559 01cc 00D0 rcall atoi
560 01ce 9C01 movw r18,r24
561 .stabn 68,0,426,.LM60-UIMgr_convertTokenToValue
562 .LM60:
563 01d0 8F3F cpi r24,255
564 01d2 9105 cpc r25,__zero_reg__
565 01d4 69F0 breq .L59
566 01d6 60F0 brlo .L59
567 .stabn 68,0,429,.LM61-UIMgr_convertTokenToValue
568 .LM61:
569 01d8 89E0 ldi r24,lo8(9)
570 01da 8093 0000 sts receivedCmd,r24
571 .stabn 68,0,430,.LM62-UIMgr_convertTokenToValue
572 .LM62:
573 01de 8091 0000 lds r24,tokenCount
574 01e2 E0E0 ldi r30,lo8(tokenBuffer)
575 01e4 F0E0 ldi r31,hi8(tokenBuffer)
576 01e6 E80F add r30,r24
577 01e8 F11D adc r31,__zero_reg__
578 01ea 8FEF ldi r24,lo8(-1)
579 01ec 8083 st Z,r24
580 01ee 07C0 rjmp .L61
581 .L59:
582 .stabn 68,0,435,.LM63-UIMgr_convertTokenToValue
583 .LM63:
584 01f0 8091 0000 lds r24,tokenCount
585 01f4 E0E0 ldi r30,lo8(tokenBuffer)
586 01f6 F0E0 ldi r31,hi8(tokenBuffer)
587 01f8 E80F add r30,r24
588 01fa F11D adc r31,__zero_reg__
589 01fc 2083 st Z,r18
590 .L61:
591 .stabn 68,0,437,.LM64-UIMgr_convertTokenToValue
592 .LM64:
593 01fe 83E0 ldi r24,lo8(3)
GAS LISTING /tmp/ccRvT1Qm.s page 23
537 01b0 0895 ret
538 /* epilogue end (size=1) */
539 /* function UIMgr_init size 27 (26) */
540 .size UIMgr_init, .-UIMgr_init
541 .Lscope8:
542 .stabs "",36,0,0,.Lscope8-.LFBB8
543 .stabd 78,0,0
544 .stabs "UIMgr_convertTokenToValue:f(0,15)",36,0,422,UIMgr_convertTokenToValue
545 .type UIMgr_convertTokenToValue, @function
546 UIMgr_convertTokenToValue:
547 .stabd 46,0,0
548 .stabn 68,0,422,.LM57-.LFBB9
549 .LM57:
550 .LFBB9:
551 /* prologue: frame size=0 */
552 /* prologue end (size=0) */
553 .stabn 68,0,425,.LM58-.LFBB9
554 .LM58:
555 01b2 80E0 ldi r24,lo8(asciiTokenBuffer)
556 01b4 90E0 ldi r25,hi8(asciiTokenBuffer)
557 01b6 00D0 rcall atoi
558 01b8 9C01 movw r18,r24
559 .stabn 68,0,426,.LM59-.LFBB9
560 .LM59:
561 01ba 8F3F cpi r24,255
562 01bc 9105 cpc r25,__zero_reg__
563 01be 01F0 breq .L61
564 01c0 00F0 brlo .L61
565 .stabn 68,0,429,.LM60-.LFBB9
566 .LM60:
567 01c2 89E0 ldi r24,lo8(9)
568 01c4 8093 0000 sts receivedCmd,r24
569 .stabn 68,0,430,.LM61-.LFBB9
570 .LM61:
571 01c8 8091 0000 lds r24,tokenCount
572 01cc E0E0 ldi r30,lo8(tokenBuffer)
573 01ce F0E0 ldi r31,hi8(tokenBuffer)
574 01d0 E80F add r30,r24
575 01d2 F11D adc r31,__zero_reg__
576 01d4 8FEF ldi r24,lo8(-1)
577 01d6 8083 st Z,r24
578 01d8 00C0 rjmp .L63
579 .L61:
580 .stabn 68,0,435,.LM62-.LFBB9
581 .LM62:
582 01da 8091 0000 lds r24,tokenCount
583 01de E0E0 ldi r30,lo8(tokenBuffer)
584 01e0 F0E0 ldi r31,hi8(tokenBuffer)
585 01e2 E80F add r30,r24
586 01e4 F11D adc r31,__zero_reg__
587 01e6 2083 st Z,r18
588 .L63:
589 .stabn 68,0,437,.LM63-.LFBB9
590 .LM63:
591 01e8 83E0 ldi r24,lo8(3)
592 01ea E0E0 ldi r30,lo8(asciiTokenBuffer)
593 01ec F0E0 ldi r31,hi8(asciiTokenBuffer)
GAS LISTING /tmp/ccs6Vjbf.s page 23
 
 
594 0200 E0E0 ldi r30,lo8(asciiTokenBuffer)
595 0202 F0E0 ldi r31,hi8(asciiTokenBuffer)
596 0204 1192 st Z+,__zero_reg__
597 0206 8A95 dec r24
598 0208 E9F7 brne .-6
599 .stabn 68,0,438,.LM65-UIMgr_convertTokenToValue
600 .LM65:
601 020a 1092 0000 sts charIndex,__zero_reg__
602 .stabn 68,0,439,.LM66-UIMgr_convertTokenToValue
603 .LM66:
604 020e 1092 0000 sts charCount,__zero_reg__
605 /* epilogue: frame size=0 */
606 0212 0895 ret
607 /* epilogue end (size=1) */
608 /* function UIMgr_convertTokenToValue size 38 (37) */
609 .size UIMgr_convertTokenToValue, .-UIMgr_convertTokenToValue
610 .stabs "newValue:r(0,4)",64,0,423,18
611 .stabn 192,0,0,UIMgr_convertTokenToValue-UIMgr_convertTokenToValue
612 .stabn 224,0,0,.Lscope8-UIMgr_convertTokenToValue
613 .Lscope8:
614 .stabs "",36,0,0,.Lscope8-UIMgr_convertTokenToValue
615 .stabd 78,0,0
616 .stabs "UIMgr_processReceivedData:F(0,15)",36,0,193,UIMgr_processReceivedData
617 .global UIMgr_processReceivedData
618 .type UIMgr_processReceivedData, @function
619 UIMgr_processReceivedData:
620 .stabd 46,0,0
621 .stabn 68,0,193,.LM67-UIMgr_processReceivedData
622 .LM67:
623 /* prologue: frame size=0 */
624 0214 FF92 push r15
625 0216 0F93 push r16
626 0218 1F93 push r17
627 021a CF93 push r28
628 021c DF93 push r29
629 /* prologue end (size=5) */
630 021e 0F2E mov __tmp_reg__,r31
631 0220 F9E0 ldi r31,lo8(9)
632 0222 FF2E mov r15,r31
633 0224 F02D mov r31,__tmp_reg__
634 0226 FFC0 rjmp .L119
635 .L65:
636 .LBB22:
637 .LBB23:
638 .stabn 68,0,612,.LM68-UIMgr_processReceivedData
639 .LM68:
640 /* #APP */
641 0228 F894 cli
642 .stabn 68,0,613,.LM69-UIMgr_processReceivedData
643 .LM69:
644 /* #NOAPP */
645 022a E22F mov r30,r18
646 022c FF27 clr r31
647 022e E050 subi r30,lo8(-(UIMgr_rxFifo))
648 0230 F040 sbci r31,hi8(-(UIMgr_rxFifo))
649 0232 9081 ld r25,Z
650 .stabn 68,0,615,.LM70-UIMgr_processReceivedData
GAS LISTING /tmp/ccRvT1Qm.s page 24
594 01ee 1192 st Z+,__zero_reg__
595 01f0 8A95 dec r24
596 01f2 01F4 brne .-6
597 .stabn 68,0,438,.LM64-.LFBB9
598 .LM64:
599 01f4 1092 0000 sts charIndex,__zero_reg__
600 .stabn 68,0,439,.LM65-.LFBB9
601 .LM65:
602 01f8 1092 0000 sts charCount,__zero_reg__
603 /* epilogue: frame size=0 */
604 01fc 0895 ret
605 /* epilogue end (size=1) */
606 /* function UIMgr_convertTokenToValue size 38 (37) */
607 .size UIMgr_convertTokenToValue, .-UIMgr_convertTokenToValue
608 .stabs "newValue:r(0,4)",64,0,423,18
609 .stabn 192,0,0,.LFBB9-.LFBB9
610 .stabn 224,0,0,.Lscope9-.LFBB9
611 .Lscope9:
612 .stabs "",36,0,0,.Lscope9-.LFBB9
613 .stabd 78,0,0
614 .stabs "UIMgr_processReceivedData:F(0,15)",36,0,193,UIMgr_processReceivedData
615 .global UIMgr_processReceivedData
616 .type UIMgr_processReceivedData, @function
617 UIMgr_processReceivedData:
618 .stabd 46,0,0
619 .stabn 68,0,193,.LM66-.LFBB10
620 .LM66:
621 .LFBB10:
622 /* prologue: frame size=0 */
623 01fe 6F92 push r6
624 0200 7F92 push r7
625 0202 8F92 push r8
626 0204 9F92 push r9
627 0206 AF92 push r10
628 0208 BF92 push r11
629 020a CF92 push r12
630 020c DF92 push r13
631 020e EF92 push r14
632 0210 FF92 push r15
633 0212 1F93 push r17
634 0214 CF93 push r28
635 0216 DF93 push r29
636 /* prologue end (size=13) */
637 .LBB22:
638 .LBB23:
639 .stabn 68,0,613,.LM67-.LFBB10
640 .LM67:
641 0218 0F2E mov __tmp_reg__,r31
642 021a F0E0 ldi r31,lo8(UIMgr_rxFifo)
643 021c CF2E mov r12,r31
644 021e F0E0 ldi r31,hi8(UIMgr_rxFifo)
645 0220 DF2E mov r13,r31
646 0222 F02D mov r31,__tmp_reg__
647 .LBE23:
648 .LBE22:
649 .stabn 68,0,276,.LM68-.LFBB10
650 .LM68:
GAS LISTING /tmp/ccs6Vjbf.s page 24
 
 
651 .LM70:
652 0234 822F mov r24,r18
653 0236 8F5F subi r24,lo8(-(1))
654 0238 8F71 andi r24,lo8(31)
655 023a 8093 0000 sts UIMgr_rxFifoTail,r24
656 .stabn 68,0,616,.LM71-UIMgr_processReceivedData
657 .LM71:
658 /* #APP */
659 023e 7894 sei
660 /* #NOAPP */
661 .LBE23:
662 .LBE22:
663 .stabn 68,0,202,.LM72-UIMgr_processReceivedData
664 .LM72:
665 0240 9D30 cpi r25,lo8(13)
666 0242 09F0 breq .+2
667 0244 B1C0 rjmp .L66
668 .stabn 68,0,205,.LM73-UIMgr_processReceivedData
669 .LM73:
670 0246 8091 0000 lds r24,tokenCount
671 024a 8823 tst r24
672 024c 11F4 brne .L68
673 .stabn 68,0,208,.LM74-UIMgr_processReceivedData
674 .LM74:
675 024e 42DF rcall UIMgr_convertTokenToCmd
676 0250 06C0 rjmp .L70
677 .L68:
678 .stabn 68,0,213,.LM75-UIMgr_processReceivedData
679 .LM75:
680 0252 BADF rcall UIMgr_convertTokenToValue
681 .stabn 68,0,214,.LM76-UIMgr_processReceivedData
682 .LM76:
683 0254 8091 0000 lds r24,tokenCount
684 0258 8F5F subi r24,lo8(-(1))
685 025a 8093 0000 sts tokenCount,r24
686 .L70:
687 .stabn 68,0,218,.LM77-UIMgr_processReceivedData
688 .LM77:
689 025e 84E6 ldi r24,lo8(100)
690 0260 90E0 ldi r25,hi8(100)
691 0262 00D0 rcall Utility_delay
692 .stabn 68,0,219,.LM78-UIMgr_processReceivedData
693 .LM78:
694 0264 8091 0000 lds r24,receivedCmd
695 0268 8850 subi r24,lo8(-(-8))
696 026a 8230 cpi r24,lo8(2)
697 026c 58F4 brsh .L71
698 .LBB24:
699 .LBB25:
700 .stabn 68,0,531,.LM79-UIMgr_processReceivedData
701 .LM79:
702 026e 8EE4 ldi r24,lo8(78)
703 0270 F4DE rcall UIMgr_writeTxFifo
704 .stabn 68,0,532,.LM80-UIMgr_processReceivedData
705 .LM80:
706 0272 83E4 ldi r24,lo8(67)
707 0274 F2DE rcall UIMgr_writeTxFifo
GAS LISTING /tmp/ccRvT1Qm.s page 25
651 0224 0F2E mov __tmp_reg__,r31
652 0226 F0E0 ldi r31,lo8(asciiTokenBuffer)
653 0228 AF2E mov r10,r31
654 022a F0E0 ldi r31,hi8(asciiTokenBuffer)
655 022c BF2E mov r11,r31
656 022e F02D mov r31,__tmp_reg__
657 .stabn 68,0,236,.LM69-.LFBB10
658 .LM69:
659 0230 0F2E mov __tmp_reg__,r31
660 0232 F0E0 ldi r31,lo8(tokenBuffer)
661 0234 EF2E mov r14,r31
662 0236 F0E0 ldi r31,hi8(tokenBuffer)
663 0238 FF2E mov r15,r31
664 023a F02D mov r31,__tmp_reg__
665 .LBB25:
666 .LBB26:
667 .stabn 68,0,369,.LM70-.LFBB10
668 .LM70:
669 023c 0F2E mov __tmp_reg__,r31
670 023e F0E0 ldi r31,lo8(colorMap)
671 0240 8F2E mov r8,r31
672 0242 F0E0 ldi r31,hi8(colorMap)
673 0244 9F2E mov r9,r31
674 0246 F02D mov r31,__tmp_reg__
675 .stabn 68,0,322,.LM71-.LFBB10
676 .LM71:
677 0248 0F2E mov __tmp_reg__,r31
678 024a F0E0 ldi r31,lo8(AVRcamVersion)
679 024c 6F2E mov r6,r31
680 024e F0E0 ldi r31,hi8(AVRcamVersion)
681 0250 7F2E mov r7,r31
682 0252 F02D mov r31,__tmp_reg__
683 0254 00C0 rjmp .L119
684 .L67:
685 .LBE26:
686 .LBE25:
687 .LBB42:
688 .LBB24:
689 .stabn 68,0,612,.LM72-.LFBB10
690 .LM72:
691 /* #APP */
692 0256 F894 cli
693 .stabn 68,0,613,.LM73-.LFBB10
694 .LM73:
695 /* #NOAPP */
696 0258 F601 movw r30,r12
697 025a E90F add r30,r25
698 025c F11D adc r31,__zero_reg__
699 025e 2081 ld r18,Z
700 .stabn 68,0,615,.LM74-.LFBB10
701 .LM74:
702 0260 892F mov r24,r25
703 0262 8F5F subi r24,lo8(-(1))
704 0264 8F71 andi r24,lo8(31)
705 0266 8093 0000 sts UIMgr_rxFifoTail,r24
706 .stabn 68,0,616,.LM75-.LFBB10
707 .LM75:
GAS LISTING /tmp/ccs6Vjbf.s page 25
 
 
708 .stabn 68,0,533,.LM81-UIMgr_processReceivedData
709 .LM81:
710 0276 8BE4 ldi r24,lo8(75)
711 0278 F0DE rcall UIMgr_writeTxFifo
712 .stabn 68,0,534,.LM82-UIMgr_processReceivedData
713 .LM82:
714 027a 8DE0 ldi r24,lo8(13)
715 027c EEDE rcall UIMgr_writeTxFifo
716 .LBE25:
717 .LBE24:
718 .stabn 68,0,223,.LM83-UIMgr_processReceivedData
719 .LM83:
720 027e 80E9 ldi r24,lo8(-112)
721 0280 00D0 rcall Exec_writeEventFifo
722 0282 89C0 rjmp .L73
723 .L71:
724 .LBB26:
725 .LBB27:
726 .stabn 68,0,516,.LM84-UIMgr_processReceivedData
727 .LM84:
728 0284 81E4 ldi r24,lo8(65)
729 0286 E9DE rcall UIMgr_writeTxFifo
730 .stabn 68,0,517,.LM85-UIMgr_processReceivedData
731 .LM85:
732 0288 83E4 ldi r24,lo8(67)
733 028a E7DE rcall UIMgr_writeTxFifo
734 .stabn 68,0,518,.LM86-UIMgr_processReceivedData
735 .LM86:
736 028c 8BE4 ldi r24,lo8(75)
737 028e E5DE rcall UIMgr_writeTxFifo
738 .stabn 68,0,519,.LM87-UIMgr_processReceivedData
739 .LM87:
740 0290 8DE0 ldi r24,lo8(13)
741 0292 E3DE rcall UIMgr_writeTxFifo
742 .LBE27:
743 .LBE26:
744 .stabn 68,0,230,.LM88-UIMgr_processReceivedData
745 .LM88:
746 0294 80E9 ldi r24,lo8(-112)
747 0296 00D0 rcall Exec_writeEventFifo
748 .LBB28:
749 .LBB29:
750 .stabn 68,0,316,.LM89-UIMgr_processReceivedData
751 .LM89:
752 0298 8091 0000 lds r24,receivedCmd
753 029c 8130 cpi r24,lo8(1)
754 029e 09F4 brne .+2
755 02a0 7AC0 rjmp .L73
756 .stabn 68,0,319,.LM90-UIMgr_processReceivedData
757 .LM90:
758 02a2 8823 tst r24
759 02a4 71F4 brne .L75
760 .stabn 68,0,322,.LM91-UIMgr_processReceivedData
761 .LM91:
762 02a6 8091 0000 lds r24,AVRcamVersion
763 02aa 8823 tst r24
764 02ac 09F4 brne .+2
GAS LISTING /tmp/ccRvT1Qm.s page 26
708 /* #APP */
709 026a 7894 sei
710 /* #NOAPP */
711 .LBE24:
712 .LBE42:
713 .stabn 68,0,202,.LM76-.LFBB10
714 .LM76:
715 026c 2D30 cpi r18,lo8(13)
716 026e 01F0 breq .+2
717 0270 00C0 rjmp .L68
718 .stabn 68,0,205,.LM77-.LFBB10
719 .LM77:
720 0272 8091 0000 lds r24,tokenCount
721 0276 8823 tst r24
722 0278 01F4 brne .L70
723 .stabn 68,0,208,.LM78-.LFBB10
724 .LM78:
725 027a 00D0 rcall UIMgr_convertTokenToCmd
726 027c 00C0 rjmp .L72
727 .L70:
728 .stabn 68,0,213,.LM79-.LFBB10
729 .LM79:
730 027e 00D0 rcall UIMgr_convertTokenToValue
731 .stabn 68,0,214,.LM80-.LFBB10
732 .LM80:
733 0280 8091 0000 lds r24,tokenCount
734 0284 8F5F subi r24,lo8(-(1))
735 0286 8093 0000 sts tokenCount,r24
736 .L72:
737 .stabn 68,0,218,.LM81-.LFBB10
738 .LM81:
739 028a 84E6 ldi r24,lo8(100)
740 028c 90E0 ldi r25,hi8(100)
741 028e 00D0 rcall Utility_delay
742 .stabn 68,0,219,.LM82-.LFBB10
743 .LM82:
744 0290 8091 0000 lds r24,receivedCmd
745 0294 8850 subi r24,lo8(-(-8))
746 0296 8230 cpi r24,lo8(2)
747 0298 00F4 brsh .L73
748 .LBB43:
749 .LBB44:
750 .stabn 68,0,531,.LM83-.LFBB10
751 .LM83:
752 029a 8EE4 ldi r24,lo8(78)
753 029c 00D0 rcall UIMgr_writeTxFifo
754 .stabn 68,0,532,.LM84-.LFBB10
755 .LM84:
756 029e 83E4 ldi r24,lo8(67)
757 02a0 00D0 rcall UIMgr_writeTxFifo
758 .stabn 68,0,533,.LM85-.LFBB10
759 .LM85:
760 02a2 8BE4 ldi r24,lo8(75)
761 02a4 00D0 rcall UIMgr_writeTxFifo
762 .stabn 68,0,534,.LM86-.LFBB10
763 .LM86:
764 02a6 8DE0 ldi r24,lo8(13)
GAS LISTING /tmp/ccs6Vjbf.s page 26
 
 
765 02ae 73C0 rjmp .L73
766 02b0 C0E0 ldi r28,lo8(AVRcamVersion)
767 02b2 D0E0 ldi r29,hi8(AVRcamVersion)
768 .L78:
769 .stabn 68,0,324,.LM92-UIMgr_processReceivedData
770 .LM92:
771 02b4 2196 adiw r28,1
772 02b6 D1DE rcall UIMgr_writeTxFifo
773 .stabn 68,0,322,.LM93-UIMgr_processReceivedData
774 .LM93:
775 02b8 8881 ld r24,Y
776 02ba 8823 tst r24
777 02bc 09F4 brne .+2
778 02be 6BC0 rjmp .L73
779 02c0 F9CF rjmp .L78
780 .L75:
781 .stabn 68,0,327,.LM94-UIMgr_processReceivedData
782 .LM94:
783 02c2 8730 cpi r24,lo8(7)
784 02c4 11F4 brne .L79
785 .stabn 68,0,329,.LM95-UIMgr_processReceivedData
786 .LM95:
787 02c6 00D0 rcall CamInt_resetCam
788 02c8 66C0 rjmp .L73
789 .L79:
790 .stabn 68,0,331,.LM96-UIMgr_processReceivedData
791 .LM96:
792 02ca 8330 cpi r24,lo8(3)
793 02cc 31F4 brne .L81
794 .stabn 68,0,340,.LM97-UIMgr_processReceivedData
795 .LM97:
796 02ce 84E6 ldi r24,lo8(100)
797 02d0 90E0 ldi r25,hi8(100)
798 02d2 00D0 rcall Utility_delay
799 .stabn 68,0,341,.LM98-UIMgr_processReceivedData
800 .LM98:
801 02d4 82E0 ldi r24,lo8(2)
802 02d6 00D0 rcall Exec_writeEventFifo
803 02d8 5EC0 rjmp .L73
804 .L81:
805 .stabn 68,0,343,.LM99-UIMgr_processReceivedData
806 .LM99:
807 02da 8230 cpi r24,lo8(2)
808 02dc 99F4 brne .L83
809 .stabn 68,0,347,.LM100-UIMgr_processReceivedData
810 .LM100:
811 02de 8091 0000 lds r24,tokenCount
812 02e2 8230 cpi r24,lo8(2)
813 02e4 68F0 brlo .L85
814 02e6 11E0 ldi r17,lo8(1)
815 .L87:
816 .stabn 68,0,350,.LM101-UIMgr_processReceivedData
817 .LM101:
818 02e8 E12F mov r30,r17
819 02ea FF27 clr r31
820 02ec E050 subi r30,lo8(-(tokenBuffer))
821 02ee F040 sbci r31,hi8(-(tokenBuffer))
GAS LISTING /tmp/ccRvT1Qm.s page 27
765 02a8 00D0 rcall UIMgr_writeTxFifo
766 .LBE44:
767 .LBE43:
768 .stabn 68,0,223,.LM87-.LFBB10
769 .LM87:
770 02aa 80E9 ldi r24,lo8(-112)
771 02ac 00D0 rcall Exec_writeEventFifo
772 02ae 00C0 rjmp .L75
773 .L73:
774 .LBB45:
775 .LBB46:
776 .stabn 68,0,516,.LM88-.LFBB10
777 .LM88:
778 02b0 81E4 ldi r24,lo8(65)
779 02b2 00D0 rcall UIMgr_writeTxFifo
780 .stabn 68,0,517,.LM89-.LFBB10
781 .LM89:
782 02b4 83E4 ldi r24,lo8(67)
783 02b6 00D0 rcall UIMgr_writeTxFifo
784 .stabn 68,0,518,.LM90-.LFBB10
785 .LM90:
786 02b8 8BE4 ldi r24,lo8(75)
787 02ba 00D0 rcall UIMgr_writeTxFifo
788 .stabn 68,0,519,.LM91-.LFBB10
789 .LM91:
790 02bc 8DE0 ldi r24,lo8(13)
791 02be 00D0 rcall UIMgr_writeTxFifo
792 .LBE46:
793 .LBE45:
794 .stabn 68,0,230,.LM92-.LFBB10
795 .LM92:
796 02c0 80E9 ldi r24,lo8(-112)
797 02c2 00D0 rcall Exec_writeEventFifo
798 .LBB47:
799 .LBB41:
800 .stabn 68,0,316,.LM93-.LFBB10
801 .LM93:
802 02c4 8091 0000 lds r24,receivedCmd
803 02c8 8130 cpi r24,lo8(1)
804 02ca 01F4 brne .+2
805 02cc 00C0 rjmp .L75
806 .stabn 68,0,319,.LM94-.LFBB10
807 .LM94:
808 02ce 8823 tst r24
809 02d0 01F4 brne .L77
810 .stabn 68,0,322,.LM95-.LFBB10
811 .LM95:
812 02d2 8091 0000 lds r24,AVRcamVersion
813 02d6 8823 tst r24
814 02d8 01F4 brne .+2
815 02da 00C0 rjmp .L75
816 02dc E301 movw r28,r6
817 .L80:
818 .stabn 68,0,324,.LM96-.LFBB10
819 .LM96:
820 02de 2196 adiw r28,1
821 02e0 00D0 rcall UIMgr_writeTxFifo
GAS LISTING /tmp/ccs6Vjbf.s page 27
 
 
822 02f0 6181 ldd r22,Z+1
823 02f2 8081 ld r24,Z
824 02f4 00D0 rcall CamConfig_setCamReg
825 .stabn 68,0,347,.LM102-UIMgr_processReceivedData
826 .LM102:
827 02f6 1E5F subi r17,lo8(-(2))
828 02f8 8091 0000 lds r24,tokenCount
829 02fc 1817 cp r17,r24
830 02fe A0F3 brlo .L87
831 .L85:
832 .stabn 68,0,352,.LM103-UIMgr_processReceivedData
833 .LM103:
834 0300 00D0 rcall CamConfig_sendFifoCmds
835 0302 49C0 rjmp .L73
836 .L83:
837 .stabn 68,0,354,.LM104-UIMgr_processReceivedData
838 .LM104:
839 0304 8430 cpi r24,lo8(4)
840 0306 31F4 brne .L88
841 .stabn 68,0,357,.LM105-UIMgr_processReceivedData
842 .LM105:
843 0308 84E6 ldi r24,lo8(100)
844 030a 90E0 ldi r25,hi8(100)
845 030c 00D0 rcall Utility_delay
846 .stabn 68,0,358,.LM106-UIMgr_processReceivedData
847 .LM106:
848 030e 80E8 ldi r24,lo8(-128)
849 0310 00D0 rcall Exec_writeEventFifo
850 0312 41C0 rjmp .L73
851 .L88:
852 .stabn 68,0,360,.LM107-UIMgr_processReceivedData
853 .LM107:
854 0314 8530 cpi r24,lo8(5)
855 0316 19F4 brne .L90
856 .stabn 68,0,362,.LM108-UIMgr_processReceivedData
857 .LM108:
858 0318 81E8 ldi r24,lo8(-127)
859 031a 00D0 rcall Exec_writeEventFifo
860 031c 3CC0 rjmp .L73
861 .L90:
862 .stabn 68,0,364,.LM109-UIMgr_processReceivedData
863 .LM109:
864 031e 8630 cpi r24,lo8(6)
865 0320 09F0 breq .+2
866 0322 39C0 rjmp .L73
867 .stabn 68,0,367,.LM110-UIMgr_processReceivedData
868 .LM110:
869 0324 8091 0000 lds r24,tokenCount
870 0328 8823 tst r24
871 032a 09F4 brne .+2
872 032c 34C0 rjmp .L73
873 032e 40E0 ldi r20,lo8(0)
874 0330 00E0 ldi r16,lo8(tokenBuffer)
875 0332 10E0 ldi r17,hi8(tokenBuffer)
876 0334 60E0 ldi r22,lo8(colorMap)
877 0336 70E0 ldi r23,hi8(colorMap)
878 .L94:
GAS LISTING /tmp/ccRvT1Qm.s page 28
822 .stabn 68,0,322,.LM97-.LFBB10
823 .LM97:
824 02e2 8881 ld r24,Y
825 02e4 8823 tst r24
826 02e6 01F4 brne .+2
827 02e8 00C0 rjmp .L75
828 02ea 00C0 rjmp .L80
829 .L77:
830 .stabn 68,0,327,.LM98-.LFBB10
831 .LM98:
832 02ec 8730 cpi r24,lo8(7)
833 02ee 01F4 brne .L81
834 .stabn 68,0,329,.LM99-.LFBB10
835 .LM99:
836 02f0 00D0 rcall CamInt_resetCam
837 02f2 00C0 rjmp .L75
838 .L81:
839 .stabn 68,0,331,.LM100-.LFBB10
840 .LM100:
841 02f4 8330 cpi r24,lo8(3)
842 02f6 01F4 brne .L83
843 .stabn 68,0,340,.LM101-.LFBB10
844 .LM101:
845 02f8 84E6 ldi r24,lo8(100)
846 02fa 90E0 ldi r25,hi8(100)
847 02fc 00D0 rcall Utility_delay
848 .stabn 68,0,341,.LM102-.LFBB10
849 .LM102:
850 02fe 82E0 ldi r24,lo8(2)
851 0300 00D0 rcall Exec_writeEventFifo
852 0302 00C0 rjmp .L75
853 .L83:
854 .stabn 68,0,343,.LM103-.LFBB10
855 .LM103:
856 0304 8230 cpi r24,lo8(2)
857 0306 01F4 brne .L85
858 .stabn 68,0,347,.LM104-.LFBB10
859 .LM104:
860 0308 8091 0000 lds r24,tokenCount
861 030c 8230 cpi r24,lo8(2)
862 030e 00F0 brlo .L87
863 0310 11E0 ldi r17,lo8(1)
864 .L89:
865 .stabn 68,0,350,.LM105-.LFBB10
866 .LM105:
867 0312 F701 movw r30,r14
868 0314 E10F add r30,r17
869 0316 F11D adc r31,__zero_reg__
870 0318 6181 ldd r22,Z+1
871 031a 8081 ld r24,Z
872 031c 00D0 rcall CamConfig_setCamReg
873 .stabn 68,0,347,.LM106-.LFBB10
874 .LM106:
875 031e 1E5F subi r17,lo8(-(2))
876 0320 8091 0000 lds r24,tokenCount
877 0324 1817 cp r17,r24
878 0326 00F0 brlo .L89
GAS LISTING /tmp/ccs6Vjbf.s page 28
 
 
879 .stabn 68,0,369,.LM111-UIMgr_processReceivedData
880 .LM111:
881 0338 842F mov r24,r20
882 033a 9927 clr r25
883 033c 9C01 movw r18,r24
884 033e 2F5F subi r18,lo8(-(1))
885 0340 3F4F sbci r19,hi8(-(1))
886 0342 F901 movw r30,r18
887 0344 E00F add r30,r16
888 0346 F11F adc r31,r17
889 0348 E081 ld r30,Z
890 034a EC01 movw r28,r24
891 034c C60F add r28,r22
892 034e D71F adc r29,r23
893 0350 E883 st Y,r30
894 .LBB30:
895 .LBB31:
896 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
897 .Ltext1:
1:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
2:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Copyright (c) 2005, 2006 Bjoern Haase
3:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** All rights reserved.
4:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
5:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Redistribution and use in source and binary forms, with or without
6:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** modification, are permitted provided that the following conditions are met:
7:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
8:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions of source code must retain the above copyright
9:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer.
10:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
11:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Redistributions in binary form must reproduce the above copyright
12:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer in
13:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** the documentation and/or other materials provided with the
14:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** distribution.
15:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
16:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** * Neither the name of the copyright holders nor the names of
17:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** contributors may be used to endorse or promote products derived
18:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** from this software without specific prior written permission.
19:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
20:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** POSSIBILITY OF SUCH DAMAGE. */
31:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
32:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.1 2006/02/26 21:51:04 aesok Exp $ */
33:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
34:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*
35:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom.h
36:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
37:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Contributors:
38:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Created by Marek Michalkiewicz <marekm@linux.org.pl>
GAS LISTING /tmp/ccRvT1Qm.s page 29
879 .L87:
880 .stabn 68,0,352,.LM107-.LFBB10
881 .LM107:
882 0328 00D0 rcall CamConfig_sendFifoCmds
883 032a 00C0 rjmp .L75
884 .L85:
885 .stabn 68,0,354,.LM108-.LFBB10
886 .LM108:
887 032c 8430 cpi r24,lo8(4)
888 032e 01F4 brne .L90
889 .stabn 68,0,357,.LM109-.LFBB10
890 .LM109:
891 0330 84E6 ldi r24,lo8(100)
892 0332 90E0 ldi r25,hi8(100)
893 0334 00D0 rcall Utility_delay
894 .stabn 68,0,358,.LM110-.LFBB10
895 .LM110:
896 0336 80E8 ldi r24,lo8(-128)
897 0338 00D0 rcall Exec_writeEventFifo
898 033a 00C0 rjmp .L75
899 .L90:
900 .stabn 68,0,360,.LM111-.LFBB10
901 .LM111:
902 033c 8530 cpi r24,lo8(5)
903 033e 01F4 brne .L92
904 .stabn 68,0,362,.LM112-.LFBB10
905 .LM112:
906 0340 81E8 ldi r24,lo8(-127)
907 0342 00D0 rcall Exec_writeEventFifo
908 0344 00C0 rjmp .L75
909 .L92:
910 .stabn 68,0,364,.LM113-.LFBB10
911 .LM113:
912 0346 8630 cpi r24,lo8(6)
913 0348 01F0 breq .+2
914 034a 00C0 rjmp .L75
915 .stabn 68,0,367,.LM114-.LFBB10
916 .LM114:
917 034c 8091 0000 lds r24,tokenCount
918 0350 8823 tst r24
919 0352 01F0 breq .L75
920 0354 40E0 ldi r20,lo8(0)
921 .L96:
922 .stabn 68,0,369,.LM115-.LFBB10
923 .LM115:
924 0356 842F mov r24,r20
925 0358 9927 clr r25
926 035a 9C01 movw r18,r24
927 035c 2F5F subi r18,lo8(-(1))
928 035e 3F4F sbci r19,hi8(-(1))
929 0360 F901 movw r30,r18
930 0362 EE0D add r30,r14
931 0364 FF1D adc r31,r15
932 0366 E081 ld r30,Z
933 0368 EC01 movw r28,r24
934 036a C80D add r28,r8
935 036c D91D adc r29,r9
GAS LISTING /tmp/ccs6Vjbf.s page 29
 
 
39:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word and eeprom_write_block added by Artur Lipowski
40:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <LAL@pro.onet.pl>
41:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Complete rewrite using the original interface by Bjoern Haase
42:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** <bjoern.haase@de.bosch.com>.
43:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
44:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
45:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
46:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
47:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
48:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
49:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
50:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
51:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
52:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
53:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
54:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
55:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
56:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
57:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
58:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
59:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
60:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
61:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
62:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
63:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** In order to be able to work without a requiring a multilib
64:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** approach for dealing with controllers having the EEPROM registers
65:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** at different positions in memory space, the eeprom functions evaluate
66:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
67:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** the device io header and contains 6 uppercase hex digits encoding the
68:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** addresses of EECR,EEDR and EEAR.
69:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** First two letters: EECR address.
70:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
71:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
72:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** The default 1C1D1E corresponds to the
73:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** register location that is valid for most controllers. The value
74:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** of this define symbol is used for appending it to the base name of the
75:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler functions. */
76:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
77:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
78:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
79:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
80:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
81:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
82:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
83:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
84:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
85:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
86:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
87:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
88:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
89:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
90:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
91:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
92:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
93:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
94:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** EEPROM access to ensure that no time will be wasted in spinloops
95:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
GAS LISTING /tmp/ccRvT1Qm.s page 30
936 036e E883 st Y,r30
937 .LBB27:
938 .LBB28:
939 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext1
940 .Ltext1:
1:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* Copyright (c) 2002, 2003, 2004 Marek Michalkiewicz
2:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Copyright (c) 2005, 2006 Bjoern Haase
3:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** All rights reserved.
4:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
5:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Redistribution and use in source and binary forms, with or without
6:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** modification, are permitted provided that the following conditions are met:
7:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
8:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Redistributions of source code must retain the above copyright
9:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer.
10:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
11:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Redistributions in binary form must reproduce the above copyright
12:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** notice, this list of conditions and the following disclaimer in
13:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** the documentation and/or other materials provided with the
14:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** distribution.
15:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
16:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** * Neither the name of the copyright holders nor the names of
17:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** contributors may be used to endorse or promote products derived
18:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** from this software without specific prior written permission.
19:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
20:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
30:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** POSSIBILITY OF SUCH DAMAGE. */
31:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
32:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* $Id: eeprom.h,v 1.17.2.3 2006/05/23 17:18:23 aesok Exp $ */
33:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
34:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /*
35:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom.h
36:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
37:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Contributors:
38:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Created by Marek Michalkiewicz <marekm@linux.org.pl>
39:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_word and eeprom_write_block added by Artur Lipowski
40:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** <LAL@pro.onet.pl>
41:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Complete rewrite using the original interface by Bjoern Haase
42:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** <bjoern.haase@de.bosch.com>.
43:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** */
44:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
45:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef _EEPROM_H_
46:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _EEPROM_H_ 1
47:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
48:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define __need_size_t
49:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <stddef.h>
50:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <inttypes.h>
51:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
52:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
GAS LISTING /tmp/ccs6Vjbf.s page 30
 
 
96:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
97:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note All of the read/write functions first make sure the EEPROM
98:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** is ready to be accessed. Since this may cause long delays if a
99:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
100:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** should first poll the EEPROM e. g. using eeprom_is_ready() before
101:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** attempting any actual I/O.
102:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
103:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note This header file declares inline functions that call the
104:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** assembler subroutines directly. This prevents that the compiler
105:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** generates push/pops for the call-clobbered registers. This way
106:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** also a specific calling convention could be used for the eeprom
107:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** routines e.g. by passing values in __tmp_reg__, eeprom addresses in
108:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** X and memory addresses in Z registers. Method is optimized for code
109:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size.
110:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
111:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note Presently supported are two locations of the EEPROM register
112:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E
113:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** (see ::__EEPROM_REG_LOCATIONS__).
114:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
115:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \note As these functions modify IO registers, they are known to be
116:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
117:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
118:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
119:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** them).
120:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
121:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** */
122:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
123:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
124:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
125:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** not get confused by the attribute expression. */
126:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
127:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
128:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
129:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
130:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline))
131:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
132:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
133:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
134:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
135:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
136:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
137:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
138:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
139:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
140:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
141:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
142:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
143:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
144:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
145:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
146:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void *pointer_eeprom,
147:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t size);
148:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
149:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
150:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
151:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /*@{*/
152:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
GAS LISTING /tmp/ccRvT1Qm.s page 31
53:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifdef __AVR_MEGA__
54:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define XCALL "call"
55:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #else
56:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define XCALL "rcall"
57:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
58:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
59:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #include <avr/io.h>
60:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef __EEPROM_REG_LOCATIONS__
61:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def __EEPROM_REG_LOCATIONS__
62:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
63:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** In order to be able to work without a requiring a multilib
64:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** approach for dealing with controllers having the EEPROM registers
65:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** at different positions in memory space, the eeprom functions evaluate
66:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __EEPROM_REG_LOCATIONS__: It is assumed to be defined by
67:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** the device io header and contains 6 uppercase hex digits encoding the
68:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** addresses of EECR,EEDR and EEAR.
69:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** First two letters: EECR address.
70:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Second two letters: EEDR address.
71:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Last two letters: EEAR address.
72:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** The default 1C1D1E corresponds to the
73:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** register location that is valid for most controllers. The value
74:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** of this define symbol is used for appending it to the base name of the
75:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** assembler functions. */
76:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define __EEPROM_REG_LOCATIONS__ 1C1D1E
77:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
78:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _STR2(EXP) _STR1(EXP)
79:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _STR1(EXP) #EXP
80:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define _REG_LOCATION_SUFFIX _STR2(__EEPROM_REG_LOCATIONS__)
81:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
82:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #ifndef CR_TAB
83:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define CR_TAB "\n\t"
84:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
85:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
86:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
87:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \defgroup avr_eeprom <avr/eeprom.h>: EEPROM handling
88:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \code #include <avr/eeprom.h> \endcode
89:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
90:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** This header file declares the interface to some simple library
91:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** routines suitable for handling the data EEPROM contained in the
92:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** AVR microcontrollers. The implementation uses a simple polled
93:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** mode interface. Applications that require interrupt-controlled
94:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** EEPROM access to ensure that no time will be wasted in spinloops
95:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** will have to deploy their own implementation.
96:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
97:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note All of the read/write functions first make sure the EEPROM
98:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** is ready to be accessed. Since this may cause long delays if a
99:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** write operation is still pending, time-critical applications
100:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** should first poll the EEPROM e. g. using eeprom_is_ready() before
101:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** attempting any actual I/O.
102:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
103:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note This header file declares inline functions that call the
104:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** assembler subroutines directly. This prevents that the compiler
105:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** generates push/pops for the call-clobbered registers. This way
106:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** also a specific calling convention could be used for the eeprom
107:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** routines e.g. by passing values in __tmp_reg__, eeprom addresses in
108:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** X and memory addresses in Z registers. Method is optimized for code
109:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size.
GAS LISTING /tmp/ccs6Vjbf.s page 31
 
 
153:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
154:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
155:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the .eeprom
156:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** section. */
157:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
158:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
159:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
160:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
161:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
162:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
163:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
164:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
165:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
166:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
167:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
168:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
169:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
170:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
171:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #else
172:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
173:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #endif
174:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
175:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
176:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
177:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
178:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
179:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
180:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \returns Nothing. */
181:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
182:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
183:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
184:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
185:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
186:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \c addr. */
187:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
188:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t
189:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr)
190:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
191:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t result;
192:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile
898 .stabn 68,0,192,.LM112-UIMgr_processReceivedData
899 .LM112:
900 0352 D901 movw r26,r18
901 /* #APP */
902 0354 00D0 rcall __eeprom_read_byte_1C1D1E
903 0356 802D mov r24,__tmp_reg__
904 /* #NOAPP */
905 .LBE31:
906 .LBE30:
907 .stabs "UIMgr.c",132,0,0,.Ltext2
908 .Ltext2:
909 .stabn 68,0,374,.LM113-UIMgr_processReceivedData
910 .LM113:
911 0358 E817 cp r30,r24
912 035a C1F0 breq .L95
913 .LBB32:
914 .LBB33:
GAS LISTING /tmp/ccRvT1Qm.s page 32
110:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
111:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note Presently supported are two locations of the EEPROM register
112:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** set: 0x1F,0x20,0x21 and 0x1C,0x1D,0x1E
113:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** (see ::__EEPROM_REG_LOCATIONS__).
114:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
115:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \note As these functions modify IO registers, they are known to be
116:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** non-reentrant. If any of these functions are used from both,
117:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** standard and interrupt context, the applications must ensure
118:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** proper protection (e.g. by disabling interrupts before accessing
119:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** them).
120:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
121:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** */
122:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
123:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
124:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* forward declarations of the inline functions so that doxygen does
125:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** not get confused by the attribute expression. */
126:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
127:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline uint8_t __attribute__ ((always_inline))
128:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr);
129:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
130:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline uint16_t __attribute__ ((always_inline))
131:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr);
132:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
133:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
134:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
135:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
136:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t size);
137:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
138:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
139:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value);
140:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
141:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
142:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_word (uint16_t *addr,uint16_t value);
143:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
144:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** static inline void __attribute__ ((always_inline))
145:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_block (const void *pointer_ram,
146:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** void *pointer_eeprom,
147:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t size);
148:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
149:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \name avr-libc declarations */
150:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
151:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /*@{*/
152:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
153:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def EEMEM
154:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
155:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Attribute expression causing a variable to be allocated within the .eeprom
156:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** section. */
157:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define EEMEM __attribute__((section(".eeprom")))
158:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
159:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_is_ready
160:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
161:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \returns 1 if EEPROM is ready for a new read/write operation, 0 if not. */
162:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
163:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #if defined(__DOXYGEN__)
164:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready()
165:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(EEWE)
166:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEWE)
GAS LISTING /tmp/ccs6Vjbf.s page 32
 
 
915 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext3
916 .Ltext3:
193:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
194:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "mov %1,__tmp_reg__"
195:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
196:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=r" (result)
197:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
198:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
199:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
200:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
201:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
202:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read one 16-bit word (little endian) from EEPROM address \c addr. */
203:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t
204:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
205:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
206:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t result;
207:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
208:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm (
209:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
210:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
211:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (result)
212:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : );
213:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** return result;
214:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
215:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
216:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
217:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
218:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** \c pointer_ram. For constant n <= 256 bytes a library function is used.
219:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** For block sizes unknown at compile time or block sizes > 256 an inline
220:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** loop is expanded. */
221:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
222:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void
223:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
224:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
225:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** size_t n)
226:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
227:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (!__builtin_constant_p (n)
228:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** || n > 256)
229:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
230:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* make sure size is a 16 bit variable. */
231:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint16_t size = n;
232:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
233:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
234:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_start:" CR_TAB
235:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "sbiw %2,1" CR_TAB
236:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "brlt .%=_finished" CR_TAB
237:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
238:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "st z+,__tmp_reg__" CR_TAB
239:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "rjmp .%=_start" CR_TAB
240:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** ".%=_finished:"
241:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "=x" (pointer_eeprom),
242:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram),
243:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "+w" (size)
244:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "x" (pointer_eeprom),
245:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
246:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
247:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
GAS LISTING /tmp/ccRvT1Qm.s page 33
167:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(EEPE)
168:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(EECR, EEPE)
169:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #elif defined(DEECR) && defined(EEL)
170:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # define eeprom_is_ready() bit_is_clear(DEECR, EEL)
171:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #else
172:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** # error "No write enable bit known for this device's EEPROM."
173:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #endif
174:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
175:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \def eeprom_busy_wait
176:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \ingroup avr_eeprom
177:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
178:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Loops until the eeprom is no longer busy.
179:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
180:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \returns Nothing. */
181:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
182:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** #define eeprom_busy_wait() do {} while (!eeprom_is_ready())
183:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
184:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
185:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
186:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read one byte from EEPROM address \c addr. */
187:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
188:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t
189:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_byte (const uint8_t *addr)
190:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
191:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t result;
192:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__
941 .stabn 68,0,192,.LM116-.LFBB10
942 .LM116:
943 0370 D901 movw r26,r18
944 /* #APP */
945 0372 00D0 rcall __eeprom_read_byte_1C1D1E
946 0374 802D mov r24,__tmp_reg__
947 /* #NOAPP */
948 .LBE28:
949 .LBE27:
950 .stabs "UIMgr.c",132,0,0,.Ltext2
951 .Ltext2:
952 .stabn 68,0,374,.LM117-.LFBB10
953 .LM117:
954 0376 E817 cp r30,r24
955 0378 01F0 breq .L97
956 .LBB29:
957 .LBB31:
958 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext3
959 .Ltext3:
193:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ( XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
194:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "mov %1,__tmp_reg__"
195:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
196:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=r" (result)
197:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : );
198:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** return result;
199:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
200:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
201:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
202:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read one 16-bit word (little endian) from EEPROM address \c addr. */
203:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t
204:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_word (const uint16_t *addr)
GAS LISTING /tmp/ccs6Vjbf.s page 33
 
 
248:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
249:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
250:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n != 0)
251:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
252:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** if (n == 256)
253:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
254:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
255:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
256:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
257:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
258:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "z" (pointer_ram)
259:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
260:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
261:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** else
262:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
263:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /* Needed in order to truncate to 8 bit. */
264:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** uint8_t len;
265:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** len = (uint8_t) n;
266:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
267:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
268:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "mov __zero_reg__,%2" CR_TAB
269:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
270:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
271:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
272:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "r" (len),
273:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
274:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** : "memory");
275:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
276:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
277:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
278:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** }
279:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
280:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
281:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** Write a byte \c value to EEPROM address \c addr. */
282:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h ****
283:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** void
284:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
285:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** {
286:/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h **** asm volatile (
917 .stabn 68,0,286,.LM114-UIMgr_processReceivedData
918 .LM114:
919 035c D901 movw r26,r18
920 /* #APP */
921 035e 0E2E mov __tmp_reg__,r30
922 0360 00D0 rcall __eeprom_write_byte_1C1D1E
923 /* #NOAPP */
924 .LBE33:
925 .LBE32:
926 .LBB34:
927 .LBB35:
928 .stabn 68,0,192,.LM115-UIMgr_processReceivedData
929 .LM115:
930 0362 D901 movw r26,r18
931 /* #APP */
932 0364 00D0 rcall __eeprom_read_byte_1C1D1E
933 0366 802D mov r24,__tmp_reg__
934 /* #NOAPP */
GAS LISTING /tmp/ccRvT1Qm.s page 34
205:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
206:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t result;
207:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
208:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
209:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_word_" _REG_LOCATION_SUFFIX CR_TAB
210:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (addr),
211:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (result)
212:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : );
213:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** return result;
214:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
215:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
216:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
217:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Read a block of \c n bytes from EEPROM address \c pointer_eeprom to
218:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** \c pointer_ram. For constant n <= 256 bytes a library function is used.
219:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** For block sizes unknown at compile time or block sizes > 256 an inline
220:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** loop is expanded. */
221:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
222:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** void
223:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_read_block (void *pointer_ram,
224:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** const void *pointer_eeprom,
225:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** size_t n)
226:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
227:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (!__builtin_constant_p (n)
228:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** || n > 256)
229:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
230:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* make sure size is a 16 bit variable. */
231:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint16_t size = n;
232:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
233:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
234:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ".%=_start:" CR_TAB
235:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "sbiw %2,1" CR_TAB
236:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "brlt .%=_finished" CR_TAB
237:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_byte_" _REG_LOCATION_SUFFIX CR_TAB
238:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "st z+,__tmp_reg__" CR_TAB
239:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "rjmp .%=_start" CR_TAB
240:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** ".%=_finished:"
241:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "=x" (pointer_eeprom),
242:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram),
243:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "+w" (size)
244:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "x" (pointer_eeprom),
245:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
246:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "memory");
247:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
248:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** else
249:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
250:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (n != 0)
251:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
252:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** if (n == 256)
253:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
254:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
255:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
256:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
257:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
258:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "z" (pointer_ram)
259:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "memory");
260:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
261:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** else
GAS LISTING /tmp/ccs6Vjbf.s page 34
 
 
935 .LBE35:
936 .LBE34:
937 .stabs "UIMgr.c",132,0,0,.Ltext4
938 .Ltext4:
939 .stabn 68,0,384,.LM116-UIMgr_processReceivedData
940 .LM116:
941 0368 9881 ld r25,Y
942 036a 9817 cp r25,r24
943 036c 79F0 breq .L95
944 .LBB36:
945 .LBB37:
946 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext5
947 .Ltext5:
948 .stabn 68,0,286,.LM117-UIMgr_processReceivedData
949 .LM117:
950 036e D901 movw r26,r18
951 /* #APP */
952 0370 092E mov __tmp_reg__,r25
953 0372 00D0 rcall __eeprom_write_byte_1C1D1E
954 /* #NOAPP */
955 .LBE37:
956 .LBE36:
957 .LBB38:
958 .LBB39:
959 .stabn 68,0,192,.LM118-UIMgr_processReceivedData
960 .LM118:
961 0374 D901 movw r26,r18
962 /* #APP */
963 0376 00D0 rcall __eeprom_read_byte_1C1D1E
964 0378 802D mov r24,__tmp_reg__
965 /* #NOAPP */
966 .LBE39:
967 .LBE38:
968 .stabs "UIMgr.c",132,0,0,.Ltext6
969 .Ltext6:
970 .stabn 68,0,384,.LM119-UIMgr_processReceivedData
971 .LM119:
972 037a 9881 ld r25,Y
973 037c 9817 cp r25,r24
974 037e 31F0 breq .L95
975 .LBB40:
976 .LBB41:
977 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext7
978 .Ltext7:
979 .stabn 68,0,286,.LM120-UIMgr_processReceivedData
980 .LM120:
981 0380 D901 movw r26,r18
982 /* #APP */
983 0382 092E mov __tmp_reg__,r25
984 0384 00D0 rcall __eeprom_write_byte_1C1D1E
985 /* #NOAPP */
986 .LBE41:
987 .LBE40:
988 .LBB42:
989 .LBB43:
990 .stabn 68,0,192,.LM121-UIMgr_processReceivedData
991 .LM121:
GAS LISTING /tmp/ccRvT1Qm.s page 35
262:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
263:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /* Needed in order to truncate to 8 bit. */
264:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** uint8_t len;
265:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** len = (uint8_t) n;
266:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
267:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
268:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "mov __zero_reg__,%2" CR_TAB
269:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** XCALL " __eeprom_read_block_" _REG_LOCATION_SUFFIX
270:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "+x" (pointer_eeprom),
271:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "=z" (pointer_ram)
272:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "r" (len),
273:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** "z" (pointer_ram)
274:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** : "memory");
275:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
276:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
277:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
278:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** }
279:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
280:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** /** \ingroup avr_eeprom
281:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** Write a byte \c value to EEPROM address \c addr. */
282:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h ****
283:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** void
284:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** eeprom_write_byte (uint8_t *addr,uint8_t value)
285:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** {
286:/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h **** __asm__ __volatile__ (
960 .stabn 68,0,286,.LM118-.LFBB10
961 .LM118:
962 037a D901 movw r26,r18
963 /* #APP */
964 037c 0E2E mov __tmp_reg__,r30
965 037e 00D0 rcall __eeprom_write_byte_1C1D1E
966 /* #NOAPP */
967 .LBE31:
968 .LBE29:
969 .LBB33:
970 .LBB35:
971 .stabn 68,0,192,.LM119-.LFBB10
972 .LM119:
973 0380 D901 movw r26,r18
974 /* #APP */
975 0382 00D0 rcall __eeprom_read_byte_1C1D1E
976 0384 802D mov r24,__tmp_reg__
977 /* #NOAPP */
978 .LBE35:
979 .LBE33:
980 .stabs "UIMgr.c",132,0,0,.Ltext4
981 .Ltext4:
982 .stabn 68,0,384,.LM120-.LFBB10
983 .LM120:
984 0386 9881 ld r25,Y
985 .stabn 68,0,379,.LM121-.LFBB10
986 .LM121:
987 0388 8917 cp r24,r25
988 038a 01F0 breq .L97
989 .LBB37:
990 .LBB30:
991 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext5
GAS LISTING /tmp/ccs6Vjbf.s page 35
 
 
992 0386 D901 movw r26,r18
993 /* #APP */
994 0388 00D0 rcall __eeprom_read_byte_1C1D1E
995 038a 802D mov r24,__tmp_reg__
996 /* #NOAPP */
997 .L95:
998 .LBE43:
999 .LBE42:
1000 .stabs "UIMgr.c",132,0,0,.Ltext8
1001 .Ltext8:
1002 .stabn 68,0,367,.LM122-UIMgr_processReceivedData
1003 .LM122:
1004 038c 4F5F subi r20,lo8(-(1))
1005 038e 8091 0000 lds r24,tokenCount
1006 0392 4817 cp r20,r24
1007 0394 88F2 brlo .L94
1008 .L73:
1009 .LBE29:
1010 .LBE28:
1011 .stabn 68,0,235,.LM123-UIMgr_processReceivedData
1012 .LM123:
1013 0396 1092 0000 sts tokenCount,__zero_reg__
1014 .stabn 68,0,236,.LM124-UIMgr_processReceivedData
1015 .LM124:
1016 039a 80E4 ldi r24,lo8(64)
1017 039c E0E0 ldi r30,lo8(tokenBuffer)
1018 039e F0E0 ldi r31,hi8(tokenBuffer)
1019 03a0 1192 st Z+,__zero_reg__
1020 03a2 8A95 dec r24
1021 03a4 E9F7 brne .-6
1022 03a6 3FC0 rjmp .L119
1023 .L66:
1024 .stabn 68,0,238,.LM125-UIMgr_processReceivedData
1025 .LM125:
1026 03a8 9032 cpi r25,lo8(32)
1027 03aa F1F4 brne .L99
1028 .stabn 68,0,241,.LM126-UIMgr_processReceivedData
1029 .LM126:
1030 03ac 8091 0000 lds r24,tokenCount
1031 03b0 8823 tst r24
1032 03b2 39F4 brne .L101
1033 .stabn 68,0,243,.LM127-UIMgr_processReceivedData
1034 .LM127:
1035 03b4 8FDE rcall UIMgr_convertTokenToCmd
1036 .stabn 68,0,244,.LM128-UIMgr_processReceivedData
1037 .LM128:
1038 03b6 8091 0000 lds r24,tokenCount
1039 03ba 8F5F subi r24,lo8(-(1))
1040 03bc 8093 0000 sts tokenCount,r24
1041 03c0 32C0 rjmp .L119
1042 .L101:
1043 .stabn 68,0,254,.LM129-UIMgr_processReceivedData
1044 .LM129:
1045 03c2 9927 clr r25
1046 03c4 CF97 sbiw r24,63
1047 03c6 4CF0 brlt .L103
1048 .stabn 68,0,259,.LM130-UIMgr_processReceivedData
GAS LISTING /tmp/ccRvT1Qm.s page 36
992 .Ltext5:
993 .stabn 68,0,286,.LM122-.LFBB10
994 .LM122:
995 038c D901 movw r26,r18
996 /* #APP */
997 038e 092E mov __tmp_reg__,r25
998 0390 00D0 rcall __eeprom_write_byte_1C1D1E
999 /* #NOAPP */
1000 .LBE30:
1001 .LBE37:
1002 .LBB38:
1003 .LBB34:
1004 .stabn 68,0,192,.LM123-.LFBB10
1005 .LM123:
1006 0392 D901 movw r26,r18
1007 /* #APP */
1008 0394 00D0 rcall __eeprom_read_byte_1C1D1E
1009 0396 802D mov r24,__tmp_reg__
1010 /* #NOAPP */
1011 .LBE34:
1012 .LBE38:
1013 .stabs "UIMgr.c",132,0,0,.Ltext6
1014 .Ltext6:
1015 .stabn 68,0,384,.LM124-.LFBB10
1016 .LM124:
1017 0398 9881 ld r25,Y
1018 .stabn 68,0,379,.LM125-.LFBB10
1019 .LM125:
1020 039a 8917 cp r24,r25
1021 039c 01F0 breq .L97
1022 .LBB39:
1023 .LBB32:
1024 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/eeprom.h",132,0,0,.Ltext7
1025 .Ltext7:
1026 .stabn 68,0,286,.LM126-.LFBB10
1027 .LM126:
1028 039e D901 movw r26,r18
1029 /* #APP */
1030 03a0 092E mov __tmp_reg__,r25
1031 03a2 00D0 rcall __eeprom_write_byte_1C1D1E
1032 /* #NOAPP */
1033 .LBE32:
1034 .LBE39:
1035 .LBB40:
1036 .LBB36:
1037 .stabn 68,0,192,.LM127-.LFBB10
1038 .LM127:
1039 03a4 D901 movw r26,r18
1040 /* #APP */
1041 03a6 00D0 rcall __eeprom_read_byte_1C1D1E
1042 03a8 802D mov r24,__tmp_reg__
1043 /* #NOAPP */
1044 .L97:
1045 .LBE36:
1046 .LBE40:
1047 .stabs "UIMgr.c",132,0,0,.Ltext8
1048 .Ltext8:
GAS LISTING /tmp/ccs6Vjbf.s page 36
 
 
1049 .LM130:
1050 03c8 1092 0000 sts charCount,__zero_reg__
1051 .stabn 68,0,260,.LM131-UIMgr_processReceivedData
1052 .LM131:
1053 03cc 1092 0000 sts charIndex,__zero_reg__
1054 .stabn 68,0,261,.LM132-UIMgr_processReceivedData
1055 .LM132:
1056 03d0 1092 0000 sts tokenCount,__zero_reg__
1057 .stabn 68,0,262,.LM133-UIMgr_processReceivedData
1058 .LM133:
1059 03d4 F092 0000 sts receivedCmd,r15
1060 03d8 26C0 rjmp .L119
1061 .L103:
1062 .stabn 68,0,267,.LM134-UIMgr_processReceivedData
1063 .LM134:
1064 03da F6DE rcall UIMgr_convertTokenToValue
1065 .stabn 68,0,268,.LM135-UIMgr_processReceivedData
1066 .LM135:
1067 03dc 8091 0000 lds r24,tokenCount
1068 03e0 8F5F subi r24,lo8(-(1))
1069 03e2 8093 0000 sts tokenCount,r24
1070 03e6 1FC0 rjmp .L119
1071 .L99:
1072 .stabn 68,0,272,.LM136-UIMgr_processReceivedData
1073 .LM136:
1074 03e8 892F mov r24,r25
1075 03ea 8154 subi r24,lo8(-(-65))
1076 03ec 8A31 cpi r24,lo8(26)
1077 03ee 18F0 brlo .L105
1078 03f0 8F5E subi r24,lo8(-(17))
1079 03f2 8A30 cpi r24,lo8(10)
1080 03f4 B0F4 brsh .L107
1081 .L105:
1082 .stabn 68,0,276,.LM137-UIMgr_processReceivedData
1083 .LM137:
1084 03f6 8091 0000 lds r24,charIndex
1085 03fa E82F mov r30,r24
1086 03fc FF27 clr r31
1087 03fe E050 subi r30,lo8(-(asciiTokenBuffer))
1088 0400 F040 sbci r31,hi8(-(asciiTokenBuffer))
1089 0402 9083 st Z,r25
1090 .stabn 68,0,277,.LM138-UIMgr_processReceivedData
1091 .LM138:
1092 0404 9091 0000 lds r25,charCount
1093 0408 9F5F subi r25,lo8(-(1))
1094 040a 9093 0000 sts charCount,r25
1095 .stabn 68,0,278,.LM139-UIMgr_processReceivedData
1096 .LM139:
1097 040e 8F5F subi r24,lo8(-(1))
1098 0410 8093 0000 sts charIndex,r24
1099 .stabn 68,0,279,.LM140-UIMgr_processReceivedData
1100 .LM140:
1101 0414 9430 cpi r25,lo8(4)
1102 0416 38F0 brlo .L119
1103 .stabn 68,0,284,.LM141-UIMgr_processReceivedData
1104 .LM141:
1105 0418 F092 0000 sts receivedCmd,r15
GAS LISTING /tmp/ccRvT1Qm.s page 37
1049 .stabn 68,0,367,.LM128-.LFBB10
1050 .LM128:
1051 03aa 4F5F subi r20,lo8(-(1))
1052 03ac 8091 0000 lds r24,tokenCount
1053 03b0 4817 cp r20,r24
1054 03b2 00F0 brlo .L96
1055 .L75:
1056 .LBE41:
1057 .LBE47:
1058 .stabn 68,0,235,.LM129-.LFBB10
1059 .LM129:
1060 03b4 1092 0000 sts tokenCount,__zero_reg__
1061 .stabn 68,0,236,.LM130-.LFBB10
1062 .LM130:
1063 03b8 80E4 ldi r24,lo8(64)
1064 03ba F701 movw r30,r14
1065 03bc 1192 st Z+,__zero_reg__
1066 03be 8A95 dec r24
1067 03c0 01F4 brne .-6
1068 03c2 00C0 rjmp .L119
1069 .L68:
1070 .stabn 68,0,238,.LM131-.LFBB10
1071 .LM131:
1072 03c4 2032 cpi r18,lo8(32)
1073 03c6 01F4 brne .L101
1074 .stabn 68,0,241,.LM132-.LFBB10
1075 .LM132:
1076 03c8 8091 0000 lds r24,tokenCount
1077 03cc 8823 tst r24
1078 03ce 01F4 brne .L103
1079 .stabn 68,0,243,.LM133-.LFBB10
1080 .LM133:
1081 03d0 00D0 rcall UIMgr_convertTokenToCmd
1082 .stabn 68,0,244,.LM134-.LFBB10
1083 .LM134:
1084 03d2 8091 0000 lds r24,tokenCount
1085 03d6 8F5F subi r24,lo8(-(1))
1086 03d8 8093 0000 sts tokenCount,r24
1087 03dc 00C0 rjmp .L119
1088 .L103:
1089 .stabn 68,0,254,.LM135-.LFBB10
1090 .LM135:
1091 03de 9927 clr r25
1092 03e0 0196 adiw r24,1
1093 03e2 8034 cpi r24,64
1094 03e4 9105 cpc r25,__zero_reg__
1095 03e6 04F0 brlt .L105
1096 .stabn 68,0,259,.LM136-.LFBB10
1097 .LM136:
1098 03e8 1092 0000 sts charCount,__zero_reg__
1099 .stabn 68,0,260,.LM137-.LFBB10
1100 .LM137:
1101 03ec 1092 0000 sts charIndex,__zero_reg__
1102 .stabn 68,0,261,.LM138-.LFBB10
1103 .LM138:
1104 03f0 1092 0000 sts tokenCount,__zero_reg__
1105 .stabn 68,0,262,.LM139-.LFBB10
GAS LISTING /tmp/ccs6Vjbf.s page 37
 
 
1106 .stabn 68,0,285,.LM142-UIMgr_processReceivedData
1107 .LM142:
1108 041c 1092 0000 sts charIndex,__zero_reg__
1109 0420 02C0 rjmp .L119
1110 .L107:
1111 .stabn 68,0,291,.LM143-UIMgr_processReceivedData
1112 .LM143:
1113 0422 F092 0000 sts receivedCmd,r15
1114 .L119:
1115 .stabn 68,0,199,.LM144-UIMgr_processReceivedData
1116 .LM144:
1117 0426 2091 0000 lds r18,UIMgr_rxFifoTail
1118 042a 8091 0000 lds r24,UIMgr_rxFifoHead
1119 042e 8217 cp r24,r18
1120 0430 09F0 breq .+2
1121 0432 FACE rjmp .L65
1122 .stabn 68,0,295,.LM145-UIMgr_processReceivedData
1123 .LM145:
1124 /* #APP */
1125 0434 E894 clt
1126 /* #NOAPP */
1127 /* epilogue: frame size=0 */
1128 0436 DF91 pop r29
1129 0438 CF91 pop r28
1130 043a 1F91 pop r17
1131 043c 0F91 pop r16
1132 043e FF90 pop r15
1133 0440 0895 ret
1134 /* epilogue end (size=6) */
1135 /* function UIMgr_processReceivedData size 297 (286) */
1136 .size UIMgr_processReceivedData, .-UIMgr_processReceivedData
1137 .stabs "tmpData:r(0,11)",64,0,194,25
1138 .stabn 192,0,0,UIMgr_processReceivedData-UIMgr_processReceivedData
1139 .stabs "dataByte:r(0,11)",64,0,609,25
1140 .stabn 192,0,0,.LBB23-UIMgr_processReceivedData
1141 .stabn 224,0,0,.LBE23-UIMgr_processReceivedData
1142 .stabn 224,0,0,.Lscope9-UIMgr_processReceivedData
1143 .Lscope9:
1144 .stabs "",36,0,0,.Lscope9-UIMgr_processReceivedData
1145 .stabd 78,0,0
1146 .stabs "UIMgr_dispatchEvent:F(0,15)",36,0,152,UIMgr_dispatchEvent
1147 .stabs "event:P(0,11)",64,0,151,24
1148 .global UIMgr_dispatchEvent
1149 .type UIMgr_dispatchEvent, @function
1150 UIMgr_dispatchEvent:
1151 .stabd 46,0,0
1152 .stabn 68,0,152,.LM146-UIMgr_dispatchEvent
1153 .LM146:
1154 /* prologue: frame size=0 */
1155 /* prologue end (size=0) */
1156 .stabn 68,0,153,.LM147-UIMgr_dispatchEvent
1157 .LM147:
1158 0442 8031 cpi r24,lo8(16)
1159 0444 29F0 breq .L123
1160 .stabn 68,0,153,.LM148-UIMgr_dispatchEvent
1161 .LM148:
1162 0446 8039 cpi r24,lo8(-112)
GAS LISTING /tmp/ccRvT1Qm.s page 38
1106 .LM139:
1107 03f4 89E0 ldi r24,lo8(9)
1108 03f6 8093 0000 sts receivedCmd,r24
1109 03fa 00C0 rjmp .L119
1110 .L105:
1111 .stabn 68,0,267,.LM140-.LFBB10
1112 .LM140:
1113 03fc 00D0 rcall UIMgr_convertTokenToValue
1114 .stabn 68,0,268,.LM141-.LFBB10
1115 .LM141:
1116 03fe 8091 0000 lds r24,tokenCount
1117 0402 8F5F subi r24,lo8(-(1))
1118 0404 8093 0000 sts tokenCount,r24
1119 0408 00C0 rjmp .L119
1120 .L101:
1121 .stabn 68,0,272,.LM142-.LFBB10
1122 .LM142:
1123 040a 822F mov r24,r18
1124 040c 8154 subi r24,lo8(-(-65))
1125 040e 8A31 cpi r24,lo8(26)
1126 0410 00F0 brlo .L107
1127 0412 8F5E subi r24,lo8(-(17))
1128 0414 8A30 cpi r24,lo8(10)
1129 0416 00F4 brsh .L109
1130 .L107:
1131 .stabn 68,0,276,.LM143-.LFBB10
1132 .LM143:
1133 0418 8091 0000 lds r24,charIndex
1134 041c F501 movw r30,r10
1135 041e E80F add r30,r24
1136 0420 F11D adc r31,__zero_reg__
1137 0422 2083 st Z,r18
1138 .stabn 68,0,277,.LM144-.LFBB10
1139 .LM144:
1140 0424 9091 0000 lds r25,charCount
1141 0428 9F5F subi r25,lo8(-(1))
1142 042a 9093 0000 sts charCount,r25
1143 .stabn 68,0,278,.LM145-.LFBB10
1144 .LM145:
1145 042e 8F5F subi r24,lo8(-(1))
1146 0430 8093 0000 sts charIndex,r24
1147 .stabn 68,0,279,.LM146-.LFBB10
1148 .LM146:
1149 0434 9430 cpi r25,lo8(4)
1150 0436 00F0 brlo .L119
1151 .stabn 68,0,284,.LM147-.LFBB10
1152 .LM147:
1153 0438 89E0 ldi r24,lo8(9)
1154 043a 8093 0000 sts receivedCmd,r24
1155 .stabn 68,0,285,.LM148-.LFBB10
1156 .LM148:
1157 043e 1092 0000 sts charIndex,__zero_reg__
1158 0442 00C0 rjmp .L119
1159 .L109:
1160 .stabn 68,0,291,.LM149-.LFBB10
1161 .LM149:
1162 0444 89E0 ldi r24,lo8(9)
GAS LISTING /tmp/ccs6Vjbf.s page 38
 
 
1163 0448 39F0 breq .L124
1164 044a 8130 cpi r24,lo8(1)
1165 044c 31F4 brne .L125
1166 044e 02C0 rjmp .L122
1167 .L123:
1168 .stabn 68,0,156,.LM149-UIMgr_dispatchEvent
1169 .LM149:
1170 0450 38DE rcall UIMgr_transmitPendingData
1171 0452 0895 ret
1172 .L122:
1173 .stabn 68,0,160,.LM150-UIMgr_dispatchEvent
1174 .LM150:
1175 0454 DFDE rcall UIMgr_processReceivedData
1176 0456 0895 ret
1177 .L124:
1178 .stabn 68,0,164,.LM151-UIMgr_dispatchEvent
1179 .LM151:
1180 0458 0EDE rcall UIMgr_flushTxBuffer
1181 .L125:
1182 045a 0895 ret
1183 /* epilogue: frame size=0 */
1184 /* epilogue: noreturn */
1185 /* epilogue end (size=0) */
1186 /* function UIMgr_dispatchEvent size 13 (13) */
1187 .size UIMgr_dispatchEvent, .-UIMgr_dispatchEvent
1188 .Lscope10:
1189 .stabs "",36,0,0,.Lscope10-UIMgr_dispatchEvent
1190 .stabd 78,0,0
1191 .global UIMgr_rxFifoHead
1192 .global UIMgr_rxFifoHead
1193 .section .bss
1194 .type UIMgr_rxFifoHead, @object
1195 .size UIMgr_rxFifoHead, 1
1196 UIMgr_rxFifoHead:
1197 0000 00 .skip 1,0
1198 .global UIMgr_rxFifoTail
1199 .global UIMgr_rxFifoTail
1200 .type UIMgr_rxFifoTail, @object
1201 .size UIMgr_rxFifoTail, 1
1202 UIMgr_rxFifoTail:
1203 0001 00 .skip 1,0
1204 .global UIMgr_txFifoHead
1205 .global UIMgr_txFifoHead
1206 .type UIMgr_txFifoHead, @object
1207 .size UIMgr_txFifoHead, 1
1208 UIMgr_txFifoHead:
1209 0002 00 .skip 1,0
1210 .global UIMgr_txFifoTail
1211 .global UIMgr_txFifoTail
1212 .type UIMgr_txFifoTail, @object
1213 .size UIMgr_txFifoTail, 1
1214 UIMgr_txFifoTail:
1215 0003 00 .skip 1,0
1216 .lcomm tokenCount,1
1217 .data
1218 .type receivedCmd, @object
1219 .size receivedCmd, 1
GAS LISTING /tmp/ccRvT1Qm.s page 39
1163 0446 8093 0000 sts receivedCmd,r24
1164 .L119:
1165 .stabn 68,0,199,.LM150-.LFBB10
1166 .LM150:
1167 044a 9091 0000 lds r25,UIMgr_rxFifoTail
1168 044e 8091 0000 lds r24,UIMgr_rxFifoHead
1169 0452 8917 cp r24,r25
1170 0454 01F0 breq .+2
1171 0456 00C0 rjmp .L67
1172 .stabn 68,0,295,.LM151-.LFBB10
1173 .LM151:
1174 /* #APP */
1175 0458 E894 clt
1176 /* #NOAPP */
1177 /* epilogue: frame size=0 */
1178 045a DF91 pop r29
1179 045c CF91 pop r28
1180 045e 1F91 pop r17
1181 0460 FF90 pop r15
1182 0462 EF90 pop r14
1183 0464 DF90 pop r13
1184 0466 CF90 pop r12
1185 0468 BF90 pop r11
1186 046a AF90 pop r10
1187 046c 9F90 pop r9
1188 046e 8F90 pop r8
1189 0470 7F90 pop r7
1190 0472 6F90 pop r6
1191 0474 0895 ret
1192 /* epilogue end (size=14) */
1193 /* function UIMgr_processReceivedData size 333 (306) */
1194 .size UIMgr_processReceivedData, .-UIMgr_processReceivedData
1195 .stabs "dataByte:r(0,11)",64,0,609,18
1196 .stabn 192,0,0,.LBB23-.LFBB10
1197 .stabn 224,0,0,.LBE23-.LFBB10
1198 .stabs "dataByte:r(0,11)",64,0,609,18
1199 .stabn 192,0,0,.LBB24-.LFBB10
1200 .stabn 224,0,0,.LBE24-.LFBB10
1201 .Lscope10:
1202 .stabs "",36,0,0,.Lscope10-.LFBB10
1203 .stabd 78,0,0
1204 .stabs "UIMgr_dispatchEvent:F(0,15)",36,0,152,UIMgr_dispatchEvent
1205 .stabs "event:P(0,11)",64,0,151,24
1206 .global UIMgr_dispatchEvent
1207 .type UIMgr_dispatchEvent, @function
1208 UIMgr_dispatchEvent:
1209 .stabd 46,0,0
1210 .stabn 68,0,152,.LM152-.LFBB11
1211 .LM152:
1212 .LFBB11:
1213 /* prologue: frame size=0 */
1214 /* prologue end (size=0) */
1215 .stabn 68,0,153,.LM153-.LFBB11
1216 .LM153:
1217 0476 8031 cpi r24,lo8(16)
1218 0478 01F0 breq .L123
1219 .stabn 68,0,153,.LM154-.LFBB11
GAS LISTING /tmp/ccs6Vjbf.s page 39
 
 
1220 receivedCmd:
1221 0000 08 .byte 8
1222 .lcomm charCount,1
1223 .lcomm charIndex,1
1224 .type AVRcamVersion, @object
1225 .size AVRcamVersion, 13
1226 AVRcamVersion:
1227 0001 4156 5263 .string "AVRcam v1.4\r"
1227 616D 2076
1227 312E 340D
1227 00
1228 .lcomm asciiTokenBuffer,4
1229 .lcomm tokenBuffer,64
1230 .comm UIMgr_rxFifo,32,1
1231 .comm UIMgr_txFifo,64,1
1232 .stabs "charCount:S(0,11)",38,0,92,charCount
1233 .stabs "charIndex:S(0,11)",38,0,93,charIndex
1234 .stabs "asciiTokenBuffer:S(0,21)=ar(0,22)=r(0,22);0;0177777;;0;3;(0,11)",40,0,94,asciiTokenBuffer
1235 .stabs "tokenCount:S(0,11)",38,0,95,tokenCount
1236 .stabs "tokenBuffer:S(0,23)=ar(0,22);0;63;(0,11)",40,0,96,tokenBuffer
1237 .stabs "receivedCmd:S(0,17)",38,0,97,receivedCmd
1238 .stabs "AVRcamVersion:S(0,24)=ar(0,22);0;12;(0,11)",38,0,98,AVRcamVersion
1239 .stabs "UIMgr_rxFifo:G(0,25)=ar(0,22);0;31;(0,11)",32,0,111,0
1240 .stabs "UIMgr_rxFifoHead:G(0,11)",32,0,112,0
1241 .stabs "UIMgr_rxFifoTail:G(0,11)",32,0,113,0
1242 .stabs "UIMgr_txFifo:G(0,23)",32,0,115,0
1243 .stabs "UIMgr_txFifoHead:G(0,11)",32,0,116,0
1244 .stabs "UIMgr_txFifoTail:G(0,11)",32,0,117,0
1245 .text
1246 .stabs "",100,0,0,.Letext0
1247 .Letext0:
1248 /* File "UIMgr.c": code 582 = 0x0246 ( 557), prologues 9, epilogues 16 */
GAS LISTING /tmp/ccRvT1Qm.s page 40
1220 .LM154:
1221 047a 8039 cpi r24,lo8(-112)
1222 047c 01F0 breq .L124
1223 047e 8130 cpi r24,lo8(1)
1224 0480 01F4 brne .L125
1225 0482 00C0 rjmp .L122
1226 .L123:
1227 .stabn 68,0,156,.LM155-.LFBB11
1228 .LM155:
1229 0484 00D0 rcall UIMgr_transmitPendingData
1230 0486 0895 ret
1231 .L122:
1232 .stabn 68,0,160,.LM156-.LFBB11
1233 .LM156:
1234 0488 00D0 rcall UIMgr_processReceivedData
1235 048a 0895 ret
1236 .L124:
1237 .stabn 68,0,164,.LM157-.LFBB11
1238 .LM157:
1239 048c 00D0 rcall UIMgr_flushTxBuffer
1240 .L125:
1241 048e 0895 ret
1242 /* epilogue: frame size=0 */
1243 /* epilogue: noreturn */
1244 /* epilogue end (size=0) */
1245 /* function UIMgr_dispatchEvent size 13 (13) */
1246 .size UIMgr_dispatchEvent, .-UIMgr_dispatchEvent
1247 .Lscope11:
1248 .stabs "",36,0,0,.Lscope11-.LFBB11
1249 .stabd 78,0,0
1250 .global UIMgr_rxFifoHead
1251 .global UIMgr_rxFifoHead
1252 .section .bss
1253 .type UIMgr_rxFifoHead, @object
1254 .size UIMgr_rxFifoHead, 1
1255 UIMgr_rxFifoHead:
1256 0000 00 .skip 1,0
1257 .global UIMgr_rxFifoTail
1258 .global UIMgr_rxFifoTail
1259 .type UIMgr_rxFifoTail, @object
1260 .size UIMgr_rxFifoTail, 1
1261 UIMgr_rxFifoTail:
1262 0001 00 .skip 1,0
1263 .global UIMgr_txFifoHead
1264 .global UIMgr_txFifoHead
1265 .type UIMgr_txFifoHead, @object
1266 .size UIMgr_txFifoHead, 1
1267 UIMgr_txFifoHead:
1268 0002 00 .skip 1,0
1269 .global UIMgr_txFifoTail
1270 .global UIMgr_txFifoTail
1271 .type UIMgr_txFifoTail, @object
1272 .size UIMgr_txFifoTail, 1
1273 UIMgr_txFifoTail:
1274 0003 00 .skip 1,0
1275 .lcomm tokenCount,1
1276 .data
GAS LISTING /tmp/ccs6Vjbf.s page 40
 
 
1277 .type receivedCmd, @object
1278 .size receivedCmd, 1
1279 receivedCmd:
1280 0000 08 .byte 8
1281 .lcomm charCount,1
1282 .lcomm charIndex,1
1283 .type AVRcamVersion, @object
1284 .size AVRcamVersion, 13
1285 AVRcamVersion:
1286 0001 4156 5263 .string "AVRcam v1.4\r"
1286 616D 2076
1286 312E 340D
1286 00
1287 .lcomm asciiTokenBuffer,4
1288 .lcomm tokenBuffer,64
1289 .comm UIMgr_rxFifo,32,1
1290 .comm UIMgr_txFifo,64,1
1291 .stabs "charCount:S(0,11)",38,0,92,charCount
1292 .stabs "charIndex:S(0,11)",38,0,93,charIndex
1293 .stabs "asciiTokenBuffer:S(0,21)=ar(0,22)=r(0,22);0;0177777;;0;3;(0,11)",40,0,94,asciiTokenBuffer
1294 .stabs "tokenCount:S(0,11)",38,0,95,tokenCount
1295 .stabs "tokenBuffer:S(0,23)=ar(0,22);0;63;(0,11)",40,0,96,tokenBuffer
1296 .stabs "receivedCmd:S(0,17)",38,0,97,receivedCmd
1297 .stabs "AVRcamVersion:S(0,24)=ar(0,22);0;12;(0,11)",38,0,98,AVRcamVersion
1298 .stabs "UIMgr_rxFifo:G(0,25)=ar(0,22);0;31;(0,11)",32,0,111,0
1299 .stabs "UIMgr_rxFifoHead:G(0,11)",32,0,112,0
1300 .stabs "UIMgr_rxFifoTail:G(0,11)",32,0,113,0
1301 .stabs "UIMgr_txFifo:G(0,23)",32,0,115,0
1302 .stabs "UIMgr_txFifoHead:G(0,11)",32,0,116,0
1303 .stabs "UIMgr_txFifoTail:G(0,11)",32,0,117,0
1304 .text
1305 .stabs "",100,0,0,.Letext0
1306 .Letext0:
1307 /* File "UIMgr.c": code 609 = 0x0261 ( 570), prologues 16, epilogues 23 */
GAS LISTING /tmp/ccs6Vjbf.s page 41
 
 
DEFINED SYMBOLS
*ABS*:00000000 UIMgr.c
/tmp/ccRvT1Qm.s:3 *ABS*:0000003f __SREG__
/tmp/ccRvT1Qm.s:4 *ABS*:0000003e __SP_H__
/tmp/ccRvT1Qm.s:5 *ABS*:0000003d __SP_L__
/tmp/ccRvT1Qm.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccRvT1Qm.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccRvT1Qm.s:94 .text:00000000 UIMgr_writeBufferToTxFifo
/tmp/ccs6Vjbf.s:2 *ABS*:0000003f __SREG__
/tmp/ccs6Vjbf.s:3 *ABS*:0000003e __SP_H__
/tmp/ccs6Vjbf.s:4 *ABS*:0000003d __SP_L__
/tmp/ccs6Vjbf.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccs6Vjbf.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccs6Vjbf.s:93 .text:00000000 UIMgr_writeBufferToTxFifo
/tmp/ccs6Vjbf.s:1267 .bss:00000002 UIMgr_txFifoHead
*COM*:00000040 UIMgr_txFifo
/tmp/ccRvT1Qm.s:1208 .bss:00000002 UIMgr_txFifoHead
/tmp/ccRvT1Qm.s:159 .text:0000003c UIMgr_readTxFifo
/tmp/ccRvT1Qm.s:1214 .bss:00000003 UIMgr_txFifoTail
/tmp/ccRvT1Qm.s:206 .text:0000005a UIMgr_writeTxFifo
/tmp/ccRvT1Qm.s:246 .text:00000076 UIMgr_flushTxBuffer
/tmp/ccRvT1Qm.s:284 .text:00000094 UIMgr_txBuffer
/tmp/ccRvT1Qm.s:333 .text:000000c2 UIMgr_transmitPendingData
/tmp/ccRvT1Qm.s:361 .text:000000d4 UIMgr_convertTokenToCmd
/tmp/ccRvT1Qm.s:1223 .bss:00000007 asciiTokenBuffer
/tmp/ccRvT1Qm.s:1220 .data:00000000 receivedCmd
/tmp/ccRvT1Qm.s:1222 .bss:00000006 charIndex
/tmp/ccRvT1Qm.s:1216 .bss:00000005 charCount
/tmp/ccRvT1Qm.s:503 .text:00000192 UIMgr_init
/tmp/ccRvT1Qm.s:1228 .bss:0000000b tokenBuffer
/tmp/ccs6Vjbf.s:158 .text:00000034 UIMgr_readTxFifo
/tmp/ccs6Vjbf.s:1273 .bss:00000003 UIMgr_txFifoTail
/tmp/ccs6Vjbf.s:206 .text:00000052 UIMgr_writeTxFifo
/tmp/ccs6Vjbf.s:247 .text:0000006e UIMgr_flushTxBuffer
/tmp/ccs6Vjbf.s:286 .text:0000008c UIMgr_txBuffer
/tmp/ccs6Vjbf.s:327 .text:000000ac UIMgr_transmitPendingData
/tmp/ccs6Vjbf.s:356 .text:000000be UIMgr_convertTokenToCmd
/tmp/ccs6Vjbf.s:1282 .bss:00000007 asciiTokenBuffer
/tmp/ccs6Vjbf.s:1279 .data:00000000 receivedCmd
/tmp/ccs6Vjbf.s:1281 .bss:00000006 charIndex
/tmp/ccs6Vjbf.s:1275 .bss:00000005 charCount
/tmp/ccs6Vjbf.s:499 .text:0000017c UIMgr_init
/tmp/ccs6Vjbf.s:1287 .bss:0000000b tokenBuffer
*COM*:00000020 UIMgr_rxFifo
/tmp/ccRvT1Qm.s:549 .text:000001c8 UIMgr_convertTokenToValue
/tmp/ccs6Vjbf.s:546 .text:000001b2 UIMgr_convertTokenToValue
.bss:00000004 tokenCount
/tmp/ccRvT1Qm.s:619 .text:00000214 UIMgr_processReceivedData
/tmp/ccRvT1Qm.s:1202 .bss:00000001 UIMgr_rxFifoTail
/tmp/ccRvT1Qm.s:1226 .data:00000001 AVRcamVersion
/tmp/ccRvT1Qm.s:1196 .bss:00000000 UIMgr_rxFifoHead
/tmp/ccRvT1Qm.s:1150 .text:00000442 UIMgr_dispatchEvent
/tmp/ccs6Vjbf.s:617 .text:000001fe UIMgr_processReceivedData
/tmp/ccs6Vjbf.s:1285 .data:00000001 AVRcamVersion
/tmp/ccs6Vjbf.s:1261 .bss:00000001 UIMgr_rxFifoTail
/tmp/ccs6Vjbf.s:1255 .bss:00000000 UIMgr_rxFifoHead
/tmp/ccs6Vjbf.s:1208 .text:00000476 UIMgr_dispatchEvent
 
UNDEFINED SYMBOLS
__do_copy_data
2353,11 → 2415,11
__do_clear_bss
UartInt_txByte
atoi
colorMap
Utility_delay
Exec_writeEventFifo
CamInt_resetCam
CamConfig_setCamReg
CamConfig_sendFifoCmds
colorMap
__eeprom_read_byte_1C1D1E
__eeprom_write_byte_1C1D1E
/programy/C/avr/AVRcam/UartInterface.lst
1,84 → 1,83
GAS LISTING /tmp/ccZtX2VJ.s page 1
GAS LISTING /tmp/ccX0nxLF.s page 1
 
 
1 .file "UartInterface.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "UartInterface.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
34 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
35 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
36 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
37 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
38 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
39 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
40 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
41 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
42 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
43 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
44 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
45 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
46 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
47 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
48 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
49 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
50 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
51 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
52 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
53 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
54 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
55 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
56 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
57 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
GAS LISTING /tmp/ccZtX2VJ.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "UartInterface.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
33 .stabs "int8_t:t(4,1)=(0,10)",128,0,116,0
34 .stabs "uint8_t:t(4,2)=(0,11)",128,0,117,0
35 .stabs "int16_t:t(4,3)=(0,1)",128,0,118,0
36 .stabs "uint16_t:t(4,4)=(0,4)",128,0,119,0
37 .stabs "int32_t:t(4,5)=(0,3)",128,0,120,0
38 .stabs "uint32_t:t(4,6)=(0,5)",128,0,121,0
39 .stabs "int64_t:t(4,7)=(0,6)",128,0,122,0
40 .stabs "uint64_t:t(4,8)=(0,7)",128,0,123,0
41 .stabs "intptr_t:t(4,9)=(4,3)",128,0,135,0
42 .stabs "uintptr_t:t(4,10)=(4,4)",128,0,140,0
43 .stabs "int_least8_t:t(4,11)=(4,1)",128,0,152,0
44 .stabs "uint_least8_t:t(4,12)=(4,2)",128,0,157,0
45 .stabs "int_least16_t:t(4,13)=(4,3)",128,0,162,0
46 .stabs "uint_least16_t:t(4,14)=(4,4)",128,0,167,0
47 .stabs "int_least32_t:t(4,15)=(4,5)",128,0,172,0
48 .stabs "uint_least32_t:t(4,16)=(4,6)",128,0,177,0
49 .stabs "int_least64_t:t(4,17)=(4,7)",128,0,182,0
50 .stabs "uint_least64_t:t(4,18)=(4,8)",128,0,187,0
51 .stabs "int_fast8_t:t(4,19)=(4,1)",128,0,200,0
52 .stabs "uint_fast8_t:t(4,20)=(4,2)",128,0,205,0
53 .stabs "int_fast16_t:t(4,21)=(4,3)",128,0,210,0
54 .stabs "uint_fast16_t:t(4,22)=(4,4)",128,0,215,0
55 .stabs "int_fast32_t:t(4,23)=(4,5)",128,0,220,0
56 .stabs "uint_fast32_t:t(4,24)=(4,6)",128,0,225,0
57 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
GAS LISTING /tmp/ccX0nxLF.s page 2
 
 
58 .stabs "int_fast64_t:t(4,25)=(4,7)",128,0,230,0
59 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
60 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
61 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
62 .stabn 162,0,0,0
63 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
64 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
58 .stabs "uint_fast64_t:t(4,26)=(4,8)",128,0,235,0
59 .stabs "intmax_t:t(4,27)=(4,7)",128,0,249,0
60 .stabs "uintmax_t:t(4,28)=(4,8)",128,0,254,0
61 .stabn 162,0,0,0
62 .stabs "int_farptr_t:t(3,1)=(4,5)",128,0,76,0
63 .stabs "uint_farptr_t:t(3,2)=(4,6)",128,0,80,0
64 .stabn 162,0,0,0
65 .stabn 162,0,0,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabs "CommonDefs.h",130,0,0,0
69 .stabs "bool_t:t(5,1)=(0,11)",128,0,56,0
70 .stabn 162,0,0,0
71 .stabs "UartInt_init:F(0,15)",36,0,76,UartInt_init
72 .global UartInt_init
73 .type UartInt_init, @function
74 UartInt_init:
75 .stabd 46,0,0
67 .stabs "CommonDefs.h",130,0,0,0
68 .stabs "bool_t:t(5,1)=(0,11)",128,0,56,0
69 .stabn 162,0,0,0
70 .stabs "UartInt_init:F(0,15)",36,0,76,UartInt_init
71 .global UartInt_init
72 .type UartInt_init, @function
73 UartInt_init:
74 .stabd 46,0,0
1:UartInterface.c **** /*
2:UartInterface.c **** Copyright (C) 2004 John Orlando
3:UartInterface.c ****
118,10 → 117,10
37:UartInterface.c **** 4/10/2004 0.1 Module created
38:UartInterface.c **** 6/30/2004 1.0 Initial release for Circuit Cellar
39:UartInterface.c **** contest.
GAS LISTING /tmp/ccZtX2VJ.s page 3
40:UartInterface.c **** 11/15/2004 1.2 Updated UART baud rate regs so that
GAS LISTING /tmp/ccX0nxLF.s page 3
 
 
40:UartInterface.c **** 11/15/2004 1.2 Updated UART baud rate regs so that
41:UartInterface.c **** it runs at 115.2 kbps when the input
42:UartInterface.c **** crystal is at 17.7 MHz (which is the
43:UartInterface.c **** speed of the OV6620's crystal).
158,20 → 157,21
74:UartInterface.c **** ***********************************************************/
75:UartInterface.c **** void UartInt_init(void)
76:UartInterface.c **** {
76 .stabn 68,0,76,.LM0-UartInt_init
77 .LM0:
75 .stabn 68,0,76,.LM0-.LFBB1
76 .LM0:
77 .LFBB1:
78 /* prologue: frame size=0 */
79 /* prologue end (size=0) */
77:UartInterface.c **** /* set up the baud rate registers so the UART will operate
78:UartInterface.c **** at 115.2 Kbps */
79:UartInterface.c **** UBRRH = 0x00;
80 .stabn 68,0,79,.LM1-UartInt_init
80 .stabn 68,0,79,.LM1-.LFBB1
81 .LM1:
82 0000 10BC out 64-0x20,__zero_reg__
80:UartInterface.c ****
81:UartInterface.c **** #ifdef NO_CRYSTAL
82:UartInterface.c **** UBRRL = 18; /* 18 for double clocking at 115.2 kbps */
83 .stabn 68,0,82,.LM2-UartInt_init
83 .stabn 68,0,82,.LM2-.LFBB1
84 .LM2:
85 0002 82E1 ldi r24,lo8(18)
86 0004 89B9 out 41-0x20,r24
178,7 → 178,7
83:UartInterface.c **** #else
84:UartInterface.c **** UBRRL = 0x08; /* for 16 MHz crystal at 115.2 kbps */
85:UartInterface.c **** #endif
GAS LISTING /tmp/ccZtX2VJ.s page 4
GAS LISTING /tmp/ccX0nxLF.s page 4
 
 
86:UartInterface.c ****
185,7 → 185,7
87:UartInterface.c **** /* enable the tx and rx capabilities of the UART...as well
88:UartInterface.c **** as the receive complete interrupt */
89:UartInterface.c **** UCSRB = (1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
87 .stabn 68,0,89,.LM3-UartInt_init
87 .stabn 68,0,89,.LM3-.LFBB1
88 .LM3:
89 0006 88E9 ldi r24,lo8(-104)
90 0008 8AB9 out 42-0x20,r24
192,7 → 192,7
90:UartInterface.c ****
91:UartInterface.c **** /* set up the control registers so the UART works at 8N1 */
92:UartInterface.c **** UCSRC = (1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
91 .stabn 68,0,92,.LM4-UartInt_init
91 .stabn 68,0,92,.LM4-.LFBB1
92 .LM4:
93 000a 86E8 ldi r24,lo8(-122)
94 000c 80BD out 64-0x20,r24
200,7 → 200,7
94:UartInterface.c **** #ifdef NO_CRYSTAL
95:UartInterface.c **** /* set the baud rate to use the double-speed */
96:UartInterface.c **** UCSRA = (1<<U2X);
95 .stabn 68,0,96,.LM5-UartInt_init
95 .stabn 68,0,96,.LM5-.LFBB1
96 .LM5:
97 000e 82E0 ldi r24,lo8(2)
98 0010 8BB9 out 43-0x20,r24
209,8 → 209,8
101 /* epilogue end (size=1) */
102 /* function UartInt_init size 10 (9) */
103 .size UartInt_init, .-UartInt_init
104 .Lscope0:
105 .stabs "",36,0,0,.Lscope0-UartInt_init
104 .Lscope1:
105 .stabs "",36,0,0,.Lscope1-.LFBB1
106 .stabd 78,0,0
107 .stabs "UartInt_txByte:F(0,15)",36,0,115,UartInt_txByte
108 .stabs "txByte:P(0,11)",64,0,114,24
237,38 → 237,39
113:UartInterface.c **** ***********************************************************/
114:UartInterface.c **** void UartInt_txByte(unsigned char txByte)
115:UartInterface.c **** {
113 .stabn 68,0,115,.LM6-UartInt_txByte
GAS LISTING /tmp/ccZtX2VJ.s page 5
113 .stabn 68,0,115,.LM6-.LFBB2
GAS LISTING /tmp/ccX0nxLF.s page 5
 
 
114 .LM6:
115 /* prologue: frame size=0 */
116 /* prologue end (size=0) */
117 .L5:
115 .LFBB2:
116 /* prologue: frame size=0 */
117 /* prologue end (size=0) */
118 .L5:
116:UartInterface.c **** /* Wait for empty transmit buffer */
117:UartInterface.c **** while ( !( UCSRA & (1<<UDRE)) );
118 .stabn 68,0,117,.LM7-UartInt_txByte
119 .LM7:
120 0014 5D9B sbis 43-0x20,5
121 0016 FECF rjmp .L5
119 .stabn 68,0,117,.LM7-.LFBB2
120 .LM7:
121 0014 5D9B sbis 43-0x20,5
122 0016 00C0 rjmp .L5
118:UartInterface.c **** /* Put data into buffer, sends the data */
119:UartInterface.c **** UDR = txByte;
122 .stabn 68,0,119,.LM8-UartInt_txByte
123 .LM8:
124 0018 8CB9 out 44-0x20,r24
125 /* epilogue: frame size=0 */
126 001a 0895 ret
127 /* epilogue end (size=1) */
128 /* function UartInt_txByte size 4 (3) */
129 .size UartInt_txByte, .-UartInt_txByte
130 .Lscope1:
131 .stabs "",36,0,0,.Lscope1-UartInt_txByte
132 .stabd 78,0,0
133 .stabs "__vector_11:F(0,15)",36,0,138,__vector_11
134 .global __vector_11
135 .type __vector_11, @function
136 __vector_11:
137 .stabd 46,0,0
123 .stabn 68,0,119,.LM8-.LFBB2
124 .LM8:
125 0018 8CB9 out 44-0x20,r24
126 /* epilogue: frame size=0 */
127 001a 0895 ret
128 /* epilogue end (size=1) */
129 /* function UartInt_txByte size 4 (3) */
130 .size UartInt_txByte, .-UartInt_txByte
131 .Lscope2:
132 .stabs "",36,0,0,.Lscope2-.LFBB2
133 .stabd 78,0,0
134 .stabs "__vector_11:F(0,15)",36,0,138,__vector_11
135 .global __vector_11
136 .type __vector_11, @function
137 __vector_11:
138 .stabd 46,0,0
120:UartInterface.c **** }
121:UartInterface.c ****
122:UartInterface.c **** /***********************************************************
288,101 → 289,102
136:UartInterface.c **** ***********************************************************/
137:UartInterface.c **** SIGNAL(SIG_UART_RECV)
138:UartInterface.c **** {
138 .stabn 68,0,138,.LM9-__vector_11
139 .LM9:
140 /* prologue: frame size=0 */
141 001c 1F92 push __zero_reg__
142 001e 0F92 push __tmp_reg__
143 0020 0FB6 in __tmp_reg__,__SREG__
144 0022 0F92 push __tmp_reg__
145 0024 1124 clr __zero_reg__
146 0026 8F93 push r24
147 0028 9F93 push r25
GAS LISTING /tmp/ccZtX2VJ.s page 6
139 .stabn 68,0,138,.LM9-.LFBB3
140 .LM9:
141 .LFBB3:
142 /* prologue: frame size=0 */
143 001c 1F92 push __zero_reg__
144 001e 0F92 push __tmp_reg__
145 0020 0FB6 in __tmp_reg__,__SREG__
146 0022 0F92 push __tmp_reg__
147 0024 1124 clr __zero_reg__
GAS LISTING /tmp/ccX0nxLF.s page 6
 
 
148 002a EF93 push r30
149 002c FF93 push r31
150 /* prologue end (size=9) */
148 0026 8F93 push r24
149 0028 9F93 push r25
150 002a EF93 push r30
151 002c FF93 push r31
152 /* prologue end (size=9) */
139:UartInterface.c **** unsigned char tmpHead;
140:UartInterface.c **** /* read the data byte, put it in the serial queue, and
141:UartInterface.c **** post the event */
142:UartInterface.c ****
143:UartInterface.c **** UIMgr_rxFifo[UIMgr_rxFifoHead] = UDR;
151 .stabn 68,0,143,.LM10-__vector_11
152 .LM10:
153 002e 8091 0000 lds r24,UIMgr_rxFifoHead
154 0032 9CB1 in r25,44-0x20
155 0034 E0E0 ldi r30,lo8(UIMgr_rxFifo)
156 0036 F0E0 ldi r31,hi8(UIMgr_rxFifo)
157 0038 E80F add r30,r24
158 003a F11D adc r31,__zero_reg__
159 003c 9083 st Z,r25
153 .stabn 68,0,143,.LM10-.LFBB3
154 .LM10:
155 002e 8091 0000 lds r24,UIMgr_rxFifoHead
156 0032 9CB1 in r25,44-0x20
157 0034 E0E0 ldi r30,lo8(UIMgr_rxFifo)
158 0036 F0E0 ldi r31,hi8(UIMgr_rxFifo)
159 0038 E80F add r30,r24
160 003a F11D adc r31,__zero_reg__
161 003c 9083 st Z,r25
144:UartInterface.c ****
145:UartInterface.c **** /* now move the head up */
146:UartInterface.c **** tmpHead = (UIMgr_rxFifoHead + 1) & (UI_MGR_RX_FIFO_MASK);
147:UartInterface.c **** UIMgr_rxFifoHead = tmpHead;
160 .stabn 68,0,147,.LM11-__vector_11
161 .LM11:
162 003e 8F5F subi r24,lo8(-(1))
163 0040 8F71 andi r24,lo8(31)
164 0042 8093 0000 sts UIMgr_rxFifoHead,r24
162 .stabn 68,0,147,.LM11-.LFBB3
163 .LM11:
164 003e 8F5F subi r24,lo8(-(1))
165 0040 8F71 andi r24,lo8(31)
166 0042 8093 0000 sts UIMgr_rxFifoHead,r24
148:UartInterface.c ****
149:UartInterface.c **** /* write the serial received event to the event fifo */
150:UartInterface.c **** Exec_eventFifo[Exec_eventFifoHead] = EV_SERIAL_DATA_RECEIVED;
165 .stabn 68,0,150,.LM12-__vector_11
166 .LM12:
167 0046 8091 0000 lds r24,Exec_eventFifoHead
168 004a E0E0 ldi r30,lo8(Exec_eventFifo)
169 004c F0E0 ldi r31,hi8(Exec_eventFifo)
170 004e E80F add r30,r24
171 0050 F11D adc r31,__zero_reg__
172 0052 91E0 ldi r25,lo8(1)
173 0054 9083 st Z,r25
167 .stabn 68,0,150,.LM12-.LFBB3
168 .LM12:
169 0046 8091 0000 lds r24,Exec_eventFifoHead
170 004a E0E0 ldi r30,lo8(Exec_eventFifo)
171 004c F0E0 ldi r31,hi8(Exec_eventFifo)
172 004e E80F add r30,r24
173 0050 F11D adc r31,__zero_reg__
174 0052 91E0 ldi r25,lo8(1)
175 0054 9083 st Z,r25
151:UartInterface.c ****
152:UartInterface.c **** /* now move the head up */
153:UartInterface.c **** tmpHead = (Exec_eventFifoHead + 1) & (EXEC_EVENT_FIFO_MASK);
154:UartInterface.c **** Exec_eventFifoHead = tmpHead;
174 .stabn 68,0,154,.LM13-__vector_11
175 .LM13:
176 0056 8F5F subi r24,lo8(-(1))
177 0058 8770 andi r24,lo8(7)
178 005a 8093 0000 sts Exec_eventFifoHead,r24
179 /* epilogue: frame size=0 */
180 005e FF91 pop r31
181 0060 EF91 pop r30
182 0062 9F91 pop r25
183 0064 8F91 pop r24
184 0066 0F90 pop __tmp_reg__
185 0068 0FBE out __SREG__,__tmp_reg__
186 006a 0F90 pop __tmp_reg__
187 006c 1F90 pop __zero_reg__
188 006e 1895 reti
GAS LISTING /tmp/ccZtX2VJ.s page 7
176 .stabn 68,0,154,.LM13-.LFBB3
177 .LM13:
178 0056 8F5F subi r24,lo8(-(1))
179 0058 8770 andi r24,lo8(7)
180 005a 8093 0000 sts Exec_eventFifoHead,r24
181 /* epilogue: frame size=0 */
182 005e FF91 pop r31
183 0060 EF91 pop r30
184 0062 9F91 pop r25
185 0064 8F91 pop r24
186 0066 0F90 pop __tmp_reg__
187 0068 0FBE out __SREG__,__tmp_reg__
188 006a 0F90 pop __tmp_reg__
GAS LISTING /tmp/ccX0nxLF.s page 7
 
 
189 /* epilogue end (size=9) */
190 /* function __vector_11 size 42 (24) */
191 .size __vector_11, .-__vector_11
192 .Lscope2:
193 .stabs "",36,0,0,.Lscope2-__vector_11
194 .stabd 78,0,0
195 .stabs "",100,0,0,.Letext0
196 .Letext0:
197 /* File "UartInterface.c": code 56 = 0x0038 ( 36), prologues 9, epilogues 11 */
GAS LISTING /tmp/ccZtX2VJ.s page 8
189 006c 1F90 pop __zero_reg__
190 006e 1895 reti
191 /* epilogue end (size=9) */
192 /* function __vector_11 size 42 (24) */
193 .size __vector_11, .-__vector_11
194 .Lscope3:
195 .stabs "",36,0,0,.Lscope3-.LFBB3
196 .stabd 78,0,0
197 .stabs "",100,0,0,.Letext0
198 .Letext0:
199 /* File "UartInterface.c": code 56 = 0x0038 ( 36), prologues 9, epilogues 11 */
GAS LISTING /tmp/ccX0nxLF.s page 8
 
 
DEFINED SYMBOLS
*ABS*:00000000 UartInterface.c
/tmp/ccZtX2VJ.s:3 *ABS*:0000003f __SREG__
/tmp/ccZtX2VJ.s:4 *ABS*:0000003e __SP_H__
/tmp/ccZtX2VJ.s:5 *ABS*:0000003d __SP_L__
/tmp/ccZtX2VJ.s:6 *ABS*:00000000 __tmp_reg__
/tmp/ccZtX2VJ.s:7 *ABS*:00000001 __zero_reg__
/tmp/ccZtX2VJ.s:74 .text:00000000 UartInt_init
/tmp/ccZtX2VJ.s:111 .text:00000014 UartInt_txByte
/tmp/ccZtX2VJ.s:136 .text:0000001c __vector_11
/tmp/ccX0nxLF.s:2 *ABS*:0000003f __SREG__
/tmp/ccX0nxLF.s:3 *ABS*:0000003e __SP_H__
/tmp/ccX0nxLF.s:4 *ABS*:0000003d __SP_L__
/tmp/ccX0nxLF.s:5 *ABS*:00000000 __tmp_reg__
/tmp/ccX0nxLF.s:6 *ABS*:00000001 __zero_reg__
/tmp/ccX0nxLF.s:73 .text:00000000 UartInt_init
/tmp/ccX0nxLF.s:111 .text:00000014 UartInt_txByte
/tmp/ccX0nxLF.s:137 .text:0000001c __vector_11
 
UNDEFINED SYMBOLS
__do_copy_data
/programy/C/avr/AVRcam/Utility.lst
1,87 → 1,86
GAS LISTING /tmp/cc5q3bJ9.s page 1
GAS LISTING /tmp/cc3rxTQ6.s page 1
 
 
1 .file "Utility.c"
2 .arch atmega8
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .stabs "/home/kaklik/projects/programy/Atmel_C/AVRcam/",100,0,2,.Ltext0
11 .stabs "Utility.c",100,0,2,.Ltext0
12 .text
13 .Ltext0:
14 .stabs "gcc2_compiled.",60,0,0,0
15 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
16 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
17 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
18 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
19 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
20 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
21 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
22 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
23 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
24 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
25 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
26 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
27 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
28 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
29 .stabs "void:t(0,15)=(0,15)",128,0,0,0
30 .stabs "CommonDefs.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/interrupt.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/io.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
34 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/inttypes.h",130,0,0,0
35 .stabs "/usr/lib/gcc/avr/4.1.0/../../../../avr/include/stdint.h",130,0,0,0
36 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
37 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
38 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
39 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
40 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
41 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
42 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
43 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
44 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
45 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
46 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
47 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
48 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
49 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
50 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
51 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
52 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
53 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
54 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
55 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
56 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
57 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
GAS LISTING /tmp/cc5q3bJ9.s page 2
2 __SREG__ = 0x3f
3 __SP_H__ = 0x3e
4 __SP_L__ = 0x3d
5 __tmp_reg__ = 0
6 __zero_reg__ = 1
7 .global __do_copy_data
8 .global __do_clear_bss
9 .stabs "/home/kaklik/projects/programy/C/avr/AVRcam/",100,0,2,.Ltext0
10 .stabs "Utility.c",100,0,2,.Ltext0
11 .text
12 .Ltext0:
13 .stabs "gcc2_compiled.",60,0,0,0
14 .stabs "int:t(0,1)=r(0,1);-32768;32767;",128,0,0,0
15 .stabs "char:t(0,2)=@s8;r(0,2);0;255;",128,0,0,0
16 .stabs "long int:t(0,3)=@s32;r(0,3);020000000000;017777777777;",128,0,0,0
17 .stabs "unsigned int:t(0,4)=r(0,4);0;0177777;",128,0,0,0
18 .stabs "long unsigned int:t(0,5)=@s32;r(0,5);0;037777777777;",128,0,0,0
19 .stabs "long long int:t(0,6)=@s64;r(0,6);01000000000000000000000;0777777777777777777777;",128,0,0,
20 .stabs "long long unsigned int:t(0,7)=@s64;r(0,7);0;01777777777777777777777;",128,0,0,0
21 .stabs "short int:t(0,8)=r(0,8);-32768;32767;",128,0,0,0
22 .stabs "short unsigned int:t(0,9)=r(0,9);0;0177777;",128,0,0,0
23 .stabs "signed char:t(0,10)=@s8;r(0,10);-128;127;",128,0,0,0
24 .stabs "unsigned char:t(0,11)=@s8;r(0,11);0;255;",128,0,0,0
25 .stabs "float:t(0,12)=r(0,1);4;0;",128,0,0,0
26 .stabs "double:t(0,13)=r(0,1);4;0;",128,0,0,0
27 .stabs "long double:t(0,14)=r(0,1);4;0;",128,0,0,0
28 .stabs "void:t(0,15)=(0,15)",128,0,0,0
29 .stabs "CommonDefs.h",130,0,0,0
30 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/interrupt.h",130,0,0,0
31 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/io.h",130,0,0,0
32 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/avr/sfr_defs.h",130,0,0,0
33 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/inttypes.h",130,0,0,0
34 .stabs "/usr/lib/gcc/avr/4.2.1/../../../../avr/include/stdint.h",130,0,0,0
35 .stabs "int8_t:t(6,1)=(0,10)",128,0,116,0
36 .stabs "uint8_t:t(6,2)=(0,11)",128,0,117,0
37 .stabs "int16_t:t(6,3)=(0,1)",128,0,118,0
38 .stabs "uint16_t:t(6,4)=(0,4)",128,0,119,0
39 .stabs "int32_t:t(6,5)=(0,3)",128,0,120,0
40 .stabs "uint32_t:t(6,6)=(0,5)",128,0,121,0
41 .stabs "int64_t:t(6,7)=(0,6)",128,0,122,0
42 .stabs "uint64_t:t(6,8)=(0,7)",128,0,123,0
43 .stabs "intptr_t:t(6,9)=(6,3)",128,0,135,0
44 .stabs "uintptr_t:t(6,10)=(6,4)",128,0,140,0
45 .stabs "int_least8_t:t(6,11)=(6,1)",128,0,152,0
46 .stabs "uint_least8_t:t(6,12)=(6,2)",128,0,157,0
47 .stabs "int_least16_t:t(6,13)=(6,3)",128,0,162,0
48 .stabs "uint_least16_t:t(6,14)=(6,4)",128,0,167,0
49 .stabs "int_least32_t:t(6,15)=(6,5)",128,0,172,0
50 .stabs "uint_least32_t:t(6,16)=(6,6)",128,0,177,0
51 .stabs "int_least64_t:t(6,17)=(6,7)",128,0,182,0
52 .stabs "uint_least64_t:t(6,18)=(6,8)",128,0,187,0
53 .stabs "int_fast8_t:t(6,19)=(6,1)",128,0,200,0
54 .stabs "uint_fast8_t:t(6,20)=(6,2)",128,0,205,0
55 .stabs "int_fast16_t:t(6,21)=(6,3)",128,0,210,0
56 .stabs "uint_fast16_t:t(6,22)=(6,4)",128,0,215,0
57 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
GAS LISTING /tmp/cc3rxTQ6.s page 2
 
 
58 .stabs "int_fast32_t:t(6,23)=(6,5)",128,0,220,0
59 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
60 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
61 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
62 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
63 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
64 .stabn 162,0,0,0
65 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
66 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
58 .stabs "uint_fast32_t:t(6,24)=(6,6)",128,0,225,0
59 .stabs "int_fast64_t:t(6,25)=(6,7)",128,0,230,0
60 .stabs "uint_fast64_t:t(6,26)=(6,8)",128,0,235,0
61 .stabs "intmax_t:t(6,27)=(6,7)",128,0,249,0
62 .stabs "uintmax_t:t(6,28)=(6,8)",128,0,254,0
63 .stabn 162,0,0,0
64 .stabs "int_farptr_t:t(5,1)=(6,5)",128,0,76,0
65 .stabs "uint_farptr_t:t(5,2)=(6,6)",128,0,80,0
66 .stabn 162,0,0,0
67 .stabn 162,0,0,0
68 .stabn 162,0,0,0
69 .stabn 162,0,0,0
70 .stabn 162,0,0,0
71 .stabs "bool_t:t(1,1)=(0,11)",128,0,56,0
72 .stabn 162,0,0,0
73 .stabs "Utility_delay:F(0,15)",36,0,65,Utility_delay
74 .stabs "numMs:P(0,9)",64,0,64,18
75 .global Utility_delay
76 .type Utility_delay, @function
77 Utility_delay:
78 .stabd 46,0,0
70 .stabs "bool_t:t(1,1)=(0,11)",128,0,56,0
71 .stabn 162,0,0,0
72 .stabs "Utility_delay:F(0,15)",36,0,65,Utility_delay
73 .stabs "numMs:P(0,9)",64,0,64,18
74 .global Utility_delay
75 .type Utility_delay, @function
76 Utility_delay:
77 .stabd 46,0,0
1:Utility.c **** /*
2:Utility.c **** Copyright (C) 2004 John Orlando
3:Utility.c ****
118,10 → 117,10
34:Utility.c ****
35:Utility.c **** Revision History:
36:Utility.c **** Date Rel Ver. Notes
GAS LISTING /tmp/cc5q3bJ9.s page 3
37:Utility.c **** 4/10/2004 0.1 Module created
GAS LISTING /tmp/cc3rxTQ6.s page 3
 
 
37:Utility.c **** 4/10/2004 0.1 Module created
38:Utility.c **** 6/30/2004 1.0 Initial release for Circuit Cellar
39:Utility.c **** contest.
40:Utility.c **** ***********************************************************/
150,8 → 149,9
63:Utility.c **** ***********************************************************/
64:Utility.c **** void Utility_delay(unsigned short numMs)
65:Utility.c **** {
79 .stabn 68,0,65,.LM0-Utility_delay
80 .LM0:
78 .stabn 68,0,65,.LM0-.LFBB1
79 .LM0:
80 .LFBB1:
81 /* prologue: frame size=4 */
82 0000 CF93 push r28
83 0002 DF93 push r29
166,7 → 166,7
92 /* prologue end (size=10) */
93 0014 9C01 movw r18,r24
66:Utility.c **** volatile unsigned short i=0,j=0;
94 .stabn 68,0,66,.LM1-Utility_delay
94 .stabn 68,0,66,.LM1-.LFBB1
95 .LM1:
96 0016 1A82 std Y+2,__zero_reg__
97 0018 1982 std Y+1,__zero_reg__
174,11 → 174,11
99 001c 1B82 std Y+3,__zero_reg__
67:Utility.c **** #ifndef SIMULATION
68:Utility.c **** for (i=0; i<numMs; i++)
100 .stabn 68,0,68,.LM2-Utility_delay
100 .stabn 68,0,68,.LM2-.LFBB1
101 .LM2:
102 001e 1A82 std Y+2,__zero_reg__
103 0020 1982 std Y+1,__zero_reg__
GAS LISTING /tmp/cc5q3bJ9.s page 4
GAS LISTING /tmp/cc3rxTQ6.s page 4
 
 
104 0022 8981 ldd r24,Y+1
185,11 → 185,11
105 0024 9A81 ldd r25,Y+2
106 0026 8217 cp r24,r18
107 0028 9307 cpc r25,r19
108 002a E0F4 brsh .L6
108 002a 00F4 brsh .L6
109 .L7:
69:Utility.c **** {
70:Utility.c **** for (j=0; j<1000; j++)
110 .stabn 68,0,70,.LM3-Utility_delay
110 .stabn 68,0,70,.LM3-.LFBB1
111 .LM3:
112 002c 1C82 std Y+4,__zero_reg__
113 002e 1B82 std Y+3,__zero_reg__
197,15 → 197,15
115 0032 9C81 ldd r25,Y+4
116 0034 885E subi r24,lo8(1000)
117 0036 9340 sbci r25,hi8(1000)
118 0038 58F4 brsh .L4
118 0038 00F4 brsh .L4
119 .L8:
71:Utility.c **** {
72:Utility.c **** asm volatile("nop"::);
120 .stabn 68,0,72,.LM4-Utility_delay
120 .stabn 68,0,72,.LM4-.LFBB1
121 .LM4:
122 /* #APP */
123 003a 0000 nop
124 .stabn 68,0,70,.LM5-Utility_delay
124 .stabn 68,0,70,.LM5-.LFBB1
125 .LM5:
126 /* #NOAPP */
127 003c 8B81 ldd r24,Y+3
217,9 → 217,9
133 0048 9C81 ldd r25,Y+4
134 004a 885E subi r24,lo8(1000)
135 004c 9340 sbci r25,hi8(1000)
136 004e A8F3 brlo .L8
136 004e 00F0 brlo .L8
137 .L4:
138 .stabn 68,0,68,.LM6-Utility_delay
138 .stabn 68,0,68,.LM6-.LFBB1
139 .LM6:
140 0050 8981 ldd r24,Y+1
141 0052 9A81 ldd r25,Y+2
230,7 → 230,7
146 005c 9A81 ldd r25,Y+2
147 005e 8217 cp r24,r18
148 0060 9307 cpc r25,r19
149 0062 20F3 brlo .L7
149 0062 00F0 brlo .L7
150 .L6:
151 /* epilogue: frame size=4 */
152 0064 2496 adiw r28,4
238,7 → 238,7
154 0068 F894 cli
155 006a DEBF out __SP_H__,r29
156 006c 0FBE out __SREG__,__tmp_reg__
GAS LISTING /tmp/cc5q3bJ9.s page 5
GAS LISTING /tmp/cc3rxTQ6.s page 5
 
 
157 006e CDBF out __SP_L__,r28
250,25 → 250,25
163 .size Utility_delay, .-Utility_delay
164 .stabs "i:(0,16)=B(0,9)",128,0,66,1
165 .stabs "j:(0,16)",128,0,66,3
166 .stabn 192,0,0,Utility_delay-Utility_delay
167 .stabn 224,0,0,.Lscope0-Utility_delay
168 .Lscope0:
169 .stabs "",36,0,0,.Lscope0-Utility_delay
166 .stabn 192,0,0,.LFBB1-.LFBB1
167 .stabn 224,0,0,.Lscope1-.LFBB1
168 .Lscope1:
169 .stabs "",36,0,0,.Lscope1-.LFBB1
170 .stabd 78,0,0
171 .stabs "",100,0,0,.Letext0
172 .Letext0:
173 /* File "Utility.c": code 62 = 0x003e ( 43), prologues 10, epilogues 9 */
GAS LISTING /tmp/cc5q3bJ9.s page 6
GAS LISTING /tmp/cc3rxTQ6.s page 6
 
 
DEFINED SYMBOLS
*ABS*:00000000 Utility.c
/tmp/cc5q3bJ9.s:3 *ABS*:0000003f __SREG__
/tmp/cc5q3bJ9.s:4 *ABS*:0000003e __SP_H__
/tmp/cc5q3bJ9.s:5 *ABS*:0000003d __SP_L__
/tmp/cc5q3bJ9.s:6 *ABS*:00000000 __tmp_reg__
/tmp/cc5q3bJ9.s:7 *ABS*:00000001 __zero_reg__
/tmp/cc5q3bJ9.s:77 .text:00000000 Utility_delay
/tmp/cc3rxTQ6.s:2 *ABS*:0000003f __SREG__
/tmp/cc3rxTQ6.s:3 *ABS*:0000003e __SP_H__
/tmp/cc3rxTQ6.s:4 *ABS*:0000003d __SP_L__
/tmp/cc3rxTQ6.s:5 *ABS*:00000000 __tmp_reg__
/tmp/cc3rxTQ6.s:6 *ABS*:00000001 __zero_reg__
/tmp/cc3rxTQ6.s:76 .text:00000000 Utility_delay
 
UNDEFINED SYMBOLS
__do_copy_data