/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 |