uflashfs.lst 157 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676
  1. GAS LISTING /tmp/ccjPZxVo.s page 1
  2. 1 .file "uflashfs.c"
  3. 2 __SP_H__ = 0x3e
  4. 3 __SP_L__ = 0x3d
  5. 4 __SREG__ = 0x3f
  6. 5 __RAMPZ__ = 0x3b
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .section .text.FlashUnitCopy,"ax",@progbits
  10. 9 .type FlashUnitCopy, @function
  11. 10 FlashUnitCopy:
  12. 11 /* prologue: function */
  13. 12 /* frame size = 0 */
  14. 13 /* stack size = 0 */
  15. 14 .L__stack_usage = 0
  16. 15 0000 DC01 movw r26,r24
  17. 16 0002 1896 adiw r26,8
  18. 17 0004 ED91 ld r30,X+
  19. 18 0006 FC91 ld r31,X
  20. 19 0008 1997 sbiw r26,8+1
  21. 20 000a 2E0F add r18,r30
  22. 21 000c 3F1F adc r19,r31
  23. 22 000e 440F lsl r20
  24. 23 0010 551F rol r21
  25. 24 0012 440F lsl r20
  26. 25 0014 551F rol r21
  27. 26 0016 420F add r20,r18
  28. 27 0018 531F adc r21,r19
  29. 28 001a 660F lsl r22
  30. 29 001c 771F rol r23
  31. 30 001e 660F lsl r22
  32. 31 0020 771F rol r23
  33. 32 0022 620F add r22,r18
  34. 33 0024 731F adc r23,r19
  35. 34 0026 5A96 adiw r26,26
  36. 35 0028 ED91 ld r30,X+
  37. 36 002a FC91 ld r31,X
  38. 37 002c 5B97 sbiw r26,26+1
  39. 38 002e 1994 eijmp
  40. 39 .size FlashUnitCopy, .-FlashUnitCopy
  41. 40 .section .text.FlashUnitCommit,"ax",@progbits
  42. 41 .type FlashUnitCommit, @function
  43. 42 FlashUnitCommit:
  44. 43 /* prologue: function */
  45. 44 /* frame size = 0 */
  46. 45 /* stack size = 0 */
  47. 46 .L__stack_usage = 0
  48. 47 0000 DC01 movw r26,r24
  49. 48 0002 1896 adiw r26,8
  50. 49 0004 2D91 ld r18,X+
  51. 50 0006 3C91 ld r19,X
  52. 51 0008 1997 sbiw r26,8+1
  53. 52 000a 420F add r20,r18
  54. 53 000c 531F adc r21,r19
  55. 54 000e 660F lsl r22
  56. 55 0010 771F rol r23
  57. 56 0012 660F lsl r22
  58. 57 0014 771F rol r23
  59. GAS LISTING /tmp/ccjPZxVo.s page 2
  60. 58 0016 640F add r22,r20
  61. 59 0018 751F adc r23,r21
  62. 60 001a 5C96 adiw r26,28
  63. 61 001c ED91 ld r30,X+
  64. 62 001e FC91 ld r31,X
  65. 63 0020 5D97 sbiw r26,28+1
  66. 64 0022 1994 eijmp
  67. 65 .size FlashUnitCommit, .-FlashUnitCommit
  68. 66 .section .text.FlashReadBlockHead,"ax",@progbits
  69. 67 .type FlashReadBlockHead, @function
  70. 68 FlashReadBlockHead:
  71. 69 0000 0F93 push r16
  72. 70 0002 1F93 push r17
  73. 71 /* prologue: function */
  74. 72 /* frame size = 0 */
  75. 73 /* stack size = 2 */
  76. 74 .L__stack_usage = 2
  77. 75 0004 9A01 movw r18,r20
  78. 76 0006 660F lsl r22
  79. 77 0008 771F rol r23
  80. 78 000a 660F lsl r22
  81. 79 000c 771F rol r23
  82. 80 000e DC01 movw r26,r24
  83. 81 0010 1896 adiw r26,8
  84. 82 0012 ED91 ld r30,X+
  85. 83 0014 FC91 ld r31,X
  86. 84 0016 1997 sbiw r26,8+1
  87. 85 0018 6E0F add r22,r30
  88. 86 001a 7F1F adc r23,r31
  89. 87 001c 5296 adiw r26,18
  90. 88 001e ED91 ld r30,X+
  91. 89 0020 FC91 ld r31,X
  92. 90 0022 5397 sbiw r26,18+1
  93. 91 0024 08E0 ldi r16,lo8(8)
  94. 92 0026 10E0 ldi r17,0
  95. 93 0028 40E0 ldi r20,0
  96. 94 002a 50E0 ldi r21,0
  97. 95 002c 1995 eicall
  98. 96 /* epilogue start */
  99. 97 002e 1F91 pop r17
  100. 98 0030 0F91 pop r16
  101. 99 0032 0895 ret
  102. 100 .size FlashReadBlockHead, .-FlashReadBlockHead
  103. 101 .section .text.FlashWriteBlockHead,"ax",@progbits
  104. 102 .type FlashWriteBlockHead, @function
  105. 103 FlashWriteBlockHead:
  106. 104 0000 0F93 push r16
  107. 105 0002 1F93 push r17
  108. 106 /* prologue: function */
  109. 107 /* frame size = 0 */
  110. 108 /* stack size = 2 */
  111. 109 .L__stack_usage = 2
  112. 110 0004 9A01 movw r18,r20
  113. 111 0006 DA01 movw r26,r20
  114. 112 0008 1296 adiw r26,2
  115. 113 000a 4D91 ld r20,X+
  116. 114 000c 5C91 ld r21,X
  117. GAS LISTING /tmp/ccjPZxVo.s page 3
  118. 115 000e 1397 sbiw r26,2+1
  119. 116 0010 4F5F subi r20,-1
  120. 117 0012 5F4F sbci r21,-1
  121. 118 0014 1396 adiw r26,2+1
  122. 119 0016 5C93 st X,r21
  123. 120 0018 4E93 st -X,r20
  124. 121 001a 1297 sbiw r26,2
  125. 122 001c 660F lsl r22
  126. 123 001e 771F rol r23
  127. 124 0020 660F lsl r22
  128. 125 0022 771F rol r23
  129. 126 0024 DC01 movw r26,r24
  130. 127 0026 1896 adiw r26,8
  131. 128 0028 ED91 ld r30,X+
  132. 129 002a FC91 ld r31,X
  133. 130 002c 1997 sbiw r26,8+1
  134. 131 002e 6E0F add r22,r30
  135. 132 0030 7F1F adc r23,r31
  136. 133 0032 5896 adiw r26,24
  137. 134 0034 ED91 ld r30,X+
  138. 135 0036 FC91 ld r31,X
  139. 136 0038 5997 sbiw r26,24+1
  140. 137 003a 08E0 ldi r16,lo8(8)
  141. 138 003c 10E0 ldi r17,0
  142. 139 003e 40E0 ldi r20,0
  143. 140 0040 50E0 ldi r21,0
  144. 141 0042 1995 eicall
  145. 142 /* epilogue start */
  146. 143 0044 1F91 pop r17
  147. 144 0046 0F91 pop r16
  148. 145 0048 0895 ret
  149. 146 .size FlashWriteBlockHead, .-FlashWriteBlockHead
  150. 147 .section .text.FlashWriteEntry,"ax",@progbits
  151. 148 .type FlashWriteEntry, @function
  152. 149 FlashWriteEntry:
  153. 150 0000 AF92 push r10
  154. 151 0002 BF92 push r11
  155. 152 0004 CF92 push r12
  156. 153 0006 DF92 push r13
  157. 154 0008 EF92 push r14
  158. 155 000a FF92 push r15
  159. 156 000c 0F93 push r16
  160. 157 000e 1F93 push r17
  161. 158 0010 CF93 push r28
  162. 159 0012 DF93 push r29
  163. 160 /* prologue: function */
  164. 161 /* frame size = 0 */
  165. 162 /* stack size = 10 */
  166. 163 .L__stack_usage = 10
  167. 164 0014 EC01 movw r28,r24
  168. 165 0016 5A01 movw r10,r20
  169. 166 0018 6901 movw r12,r18
  170. 167 001a 7B01 movw r14,r22
  171. 168 001c EE0C lsl r14
  172. 169 001e FF1C rol r15
  173. 170 0020 EE0C lsl r14
  174. 171 0022 FF1C rol r15
  175. GAS LISTING /tmp/ccjPZxVo.s page 4
  176. 172 0024 6885 ldd r22,Y+8
  177. 173 0026 7985 ldd r23,Y+9
  178. 174 0028 6E0D add r22,r14
  179. 175 002a 7F1D adc r23,r15
  180. 176 002c E88D ldd r30,Y+24
  181. 177 002e F98D ldd r31,Y+25
  182. 178 0030 02E0 ldi r16,lo8(2)
  183. 179 0032 10E0 ldi r17,0
  184. 180 0034 9A01 movw r18,r20
  185. 181 0036 48E0 ldi r20,lo8(8)
  186. 182 0038 50E0 ldi r21,0
  187. 183 003a CE01 movw r24,r28
  188. 184 003c 1995 eicall
  189. 185 003e 0097 sbiw r24,0
  190. 186 0040 01F4 brne .L6
  191. 187 0042 F501 movw r30,r10
  192. 188 0044 0181 ldd r16,Z+1
  193. 189 0046 10E0 ldi r17,0
  194. 190 0048 6885 ldd r22,Y+8
  195. 191 004a 7985 ldd r23,Y+9
  196. 192 004c 6E0D add r22,r14
  197. 193 004e 7F1D adc r23,r15
  198. 194 0050 E88D ldd r30,Y+24
  199. 195 0052 F98D ldd r31,Y+25
  200. 196 0054 9601 movw r18,r12
  201. 197 0056 4AE0 ldi r20,lo8(10)
  202. 198 0058 50E0 ldi r21,0
  203. 199 005a CE01 movw r24,r28
  204. 200 005c 1995 eicall
  205. 201 .L6:
  206. 202 /* epilogue start */
  207. 203 005e DF91 pop r29
  208. 204 0060 CF91 pop r28
  209. 205 0062 1F91 pop r17
  210. 206 0064 0F91 pop r16
  211. 207 0066 FF90 pop r15
  212. 208 0068 EF90 pop r14
  213. 209 006a DF90 pop r13
  214. 210 006c CF90 pop r12
  215. 211 006e BF90 pop r11
  216. 212 0070 AF90 pop r10
  217. 213 0072 0895 ret
  218. 214 .size FlashWriteEntry, .-FlashWriteEntry
  219. 215 .section .text.FlashReadBlockFoot,"ax",@progbits
  220. 216 .type FlashReadBlockFoot, @function
  221. 217 FlashReadBlockFoot:
  222. 218 0000 0F93 push r16
  223. 219 0002 1F93 push r17
  224. 220 /* prologue: function */
  225. 221 /* frame size = 0 */
  226. 222 /* stack size = 2 */
  227. 223 .L__stack_usage = 2
  228. 224 0004 9A01 movw r18,r20
  229. 225 0006 6F5F subi r22,-1
  230. 226 0008 7F4F sbci r23,-1
  231. 227 000a 660F lsl r22
  232. 228 000c 771F rol r23
  233. GAS LISTING /tmp/ccjPZxVo.s page 5
  234. 229 000e 660F lsl r22
  235. 230 0010 771F rol r23
  236. 231 0012 DC01 movw r26,r24
  237. 232 0014 1896 adiw r26,8
  238. 233 0016 ED91 ld r30,X+
  239. 234 0018 FC91 ld r31,X
  240. 235 001a 1997 sbiw r26,8+1
  241. 236 001c 3197 sbiw r30,1
  242. 237 001e 6E0F add r22,r30
  243. 238 0020 7F1F adc r23,r31
  244. 239 0022 5296 adiw r26,18
  245. 240 0024 ED91 ld r30,X+
  246. 241 0026 FC91 ld r31,X
  247. 242 0028 5397 sbiw r26,18+1
  248. 243 002a 01E0 ldi r16,lo8(1)
  249. 244 002c 10E0 ldi r17,0
  250. 245 002e 4FEF ldi r20,lo8(-1)
  251. 246 0030 5FEF ldi r21,lo8(-1)
  252. 247 0032 1995 eicall
  253. 248 /* epilogue start */
  254. 249 0034 1F91 pop r17
  255. 250 0036 0F91 pop r16
  256. 251 0038 0895 ret
  257. 252 .size FlashReadBlockFoot, .-FlashReadBlockFoot
  258. 253 .section .text.FlashWriteBlockFoot,"ax",@progbits
  259. 254 .type FlashWriteBlockFoot, @function
  260. 255 FlashWriteBlockFoot:
  261. 256 0000 0F93 push r16
  262. 257 0002 1F93 push r17
  263. 258 /* prologue: function */
  264. 259 /* frame size = 0 */
  265. 260 /* stack size = 2 */
  266. 261 .L__stack_usage = 2
  267. 262 0004 9A01 movw r18,r20
  268. 263 0006 DA01 movw r26,r20
  269. 264 0008 4C91 ld r20,X
  270. 265 000a 4F5F subi r20,lo8(-(1))
  271. 266 000c 4C93 st X,r20
  272. 267 000e 6F5F subi r22,-1
  273. 268 0010 7F4F sbci r23,-1
  274. 269 0012 660F lsl r22
  275. 270 0014 771F rol r23
  276. 271 0016 660F lsl r22
  277. 272 0018 771F rol r23
  278. 273 001a DC01 movw r26,r24
  279. 274 001c 1896 adiw r26,8
  280. 275 001e ED91 ld r30,X+
  281. 276 0020 FC91 ld r31,X
  282. 277 0022 1997 sbiw r26,8+1
  283. 278 0024 3197 sbiw r30,1
  284. 279 0026 6E0F add r22,r30
  285. 280 0028 7F1F adc r23,r31
  286. 281 002a 5896 adiw r26,24
  287. 282 002c ED91 ld r30,X+
  288. 283 002e FC91 ld r31,X
  289. 284 0030 5997 sbiw r26,24+1
  290. 285 0032 01E0 ldi r16,lo8(1)
  291. GAS LISTING /tmp/ccjPZxVo.s page 6
  292. 286 0034 10E0 ldi r17,0
  293. 287 0036 4FEF ldi r20,lo8(-1)
  294. 288 0038 5FEF ldi r21,lo8(-1)
  295. 289 003a 1995 eicall
  296. 290 /* epilogue start */
  297. 291 003c 1F91 pop r17
  298. 292 003e 0F91 pop r16
  299. 293 0040 0895 ret
  300. 294 .size FlashWriteBlockFoot, .-FlashWriteBlockFoot
  301. 295 .section .text.FlashEraseEntry,"ax",@progbits
  302. 296 .type FlashEraseEntry, @function
  303. 297 FlashEraseEntry:
  304. 298 /* prologue: function */
  305. 299 /* frame size = 0 */
  306. 300 /* stack size = 0 */
  307. 301 .L__stack_usage = 0
  308. 302 0000 660F lsl r22
  309. 303 0002 771F rol r23
  310. 304 0004 660F lsl r22
  311. 305 0006 771F rol r23
  312. 306 0008 DC01 movw r26,r24
  313. 307 000a 1896 adiw r26,8
  314. 308 000c 2D91 ld r18,X+
  315. 309 000e 3C91 ld r19,X
  316. 310 0010 1997 sbiw r26,8+1
  317. 311 0012 620F add r22,r18
  318. 312 0014 731F adc r23,r19
  319. 313 0016 5E96 adiw r26,30
  320. 314 0018 ED91 ld r30,X+
  321. 315 001a FC91 ld r31,X
  322. 316 001c 5F97 sbiw r26,30+1
  323. 317 001e 41E0 ldi r20,lo8(1)
  324. 318 0020 50E0 ldi r21,0
  325. 319 0022 1994 eijmp
  326. 320 .size FlashEraseEntry, .-FlashEraseEntry
  327. 321 .section .text.FlashEraseBlockData,"ax",@progbits
  328. 322 .type FlashEraseBlockData, @function
  329. 323 FlashEraseBlockData:
  330. 324 /* prologue: function */
  331. 325 /* frame size = 0 */
  332. 326 /* stack size = 0 */
  333. 327 .L__stack_usage = 0
  334. 328 0000 DC01 movw r26,r24
  335. 329 0002 1896 adiw r26,8
  336. 330 0004 2D91 ld r18,X+
  337. 331 0006 3C91 ld r19,X
  338. 332 0008 1997 sbiw r26,8+1
  339. 333 000a 2F5F subi r18,-1
  340. 334 000c 3F4F sbci r19,-1
  341. 335 000e 660F lsl r22
  342. 336 0010 771F rol r23
  343. 337 0012 660F lsl r22
  344. 338 0014 771F rol r23
  345. 339 0016 620F add r22,r18
  346. 340 0018 731F adc r23,r19
  347. 341 001a 5E96 adiw r26,30
  348. 342 001c ED91 ld r30,X+
  349. GAS LISTING /tmp/ccjPZxVo.s page 7
  350. 343 001e FC91 ld r31,X
  351. 344 0020 5F97 sbiw r26,30+1
  352. 345 0022 43E0 ldi r20,lo8(3)
  353. 346 0024 50E0 ldi r21,0
  354. 347 0026 1994 eijmp
  355. 348 .size FlashEraseBlockData, .-FlashEraseBlockData
  356. 349 .section .text.EntryPosSet,"ax",@progbits
  357. 350 .type EntryPosSet, @function
  358. 351 EntryPosSet:
  359. 352 0000 AF92 push r10
  360. 353 0002 BF92 push r11
  361. 354 0004 CF92 push r12
  362. 355 0006 DF92 push r13
  363. 356 0008 EF92 push r14
  364. 357 000a FF92 push r15
  365. 358 000c 0F93 push r16
  366. 359 000e 1F93 push r17
  367. 360 0010 CF93 push r28
  368. 361 0012 DF93 push r29
  369. 362 /* prologue: function */
  370. 363 /* frame size = 0 */
  371. 364 /* stack size = 10 */
  372. 365 .L__stack_usage = 10
  373. 366 0014 DC01 movw r26,r24
  374. 367 0016 1296 adiw r26,2
  375. 368 0018 CD91 ld r28,X+
  376. 369 001a DC91 ld r29,X
  377. 370 001c 1397 sbiw r26,2+1
  378. 371 001e ED91 ld r30,X+
  379. 372 0020 FC91 ld r31,X
  380. 373 0022 0188 ldd __tmp_reg__,Z+17
  381. 374 0024 F289 ldd r31,Z+18
  382. 375 0026 E02D mov r30,__tmp_reg__
  383. 376 0028 4A83 std Y+2,r20
  384. 377 002a 5B83 std Y+3,r21
  385. 378 002c 6C83 std Y+4,r22
  386. 379 002e 7D83 std Y+5,r23
  387. 380 0030 888D ldd r24,Y+24
  388. 381 0032 998D ldd r25,Y+25
  389. 382 0034 6A01 movw r12,r20
  390. 383 0036 7B01 movw r14,r22
  391. 384 0038 C80E add r12,r24
  392. 385 003a D91E adc r13,r25
  393. 386 003c E11C adc r14,__zero_reg__
  394. 387 003e F11C adc r15,__zero_reg__
  395. 388 0040 0190 ld __tmp_reg__,Z+
  396. 389 0042 F081 ld r31,Z
  397. 390 0044 E02D mov r30,__tmp_reg__
  398. 391 0046 0481 ldd r16,Z+4
  399. 392 0048 1581 ldd r17,Z+5
  400. 393 004a 5801 movw r10,r16
  401. 394 004c AA0C lsl r10
  402. 395 004e BB1C rol r11
  403. 396 0050 AA0C lsl r10
  404. 397 0052 BB1C rol r11
  405. 398 0054 B9E0 ldi r27,9
  406. 399 0056 AB1A sub r10,r27
  407. GAS LISTING /tmp/ccjPZxVo.s page 8
  408. 400 0058 B108 sbc r11,__zero_reg__
  409. 401 005a 9501 movw r18,r10
  410. 402 005c 40E0 ldi r20,0
  411. 403 005e 50E0 ldi r21,0
  412. 404 0060 C701 movw r24,r14
  413. 405 0062 B601 movw r22,r12
  414. 406 0064 0E94 0000 call __udivmodsi4
  415. 407 0068 8885 ldd r24,Y+8
  416. 408 006a 9985 ldd r25,Y+9
  417. 409 006c 8217 cp r24,r18
  418. 410 006e 9307 cpc r25,r19
  419. 411 0070 01F0 breq .L13
  420. 412 0072 3987 std Y+9,r19
  421. 413 0074 2887 std Y+8,r18
  422. 414 0076 8FEF ldi r24,lo8(-1)
  423. 415 0078 9FEF ldi r25,lo8(-1)
  424. 416 007a 9F83 std Y+7,r25
  425. 417 007c 8E83 std Y+6,r24
  426. 418 .L13:
  427. 419 007e 2885 ldd r18,Y+8
  428. 420 0080 3985 ldd r19,Y+9
  429. 421 0082 A29E mul r10,r18
  430. 422 0084 C001 movw r24,r0
  431. 423 0086 A39E mul r10,r19
  432. 424 0088 900D add r25,r0
  433. 425 008a B29E mul r11,r18
  434. 426 008c 900D add r25,r0
  435. 427 008e 1124 clr r1
  436. 428 0090 C81A sub r12,r24
  437. 429 0092 D90A sbc r13,r25
  438. 430 0094 E108 sbc r14,__zero_reg__
  439. 431 0096 F108 sbc r15,__zero_reg__
  440. 432 0098 C701 movw r24,r14
  441. 433 009a B601 movw r22,r12
  442. 434 009c 685F subi r22,-8
  443. 435 009e 7F4F sbci r23,-1
  444. 436 00a0 8F4F sbci r24,-1
  445. 437 00a2 9F4F sbci r25,-1
  446. 438 00a4 9801 movw r18,r16
  447. 439 00a6 40E0 ldi r20,0
  448. 440 00a8 50E0 ldi r21,0
  449. 441 00aa 0E94 0000 call __udivmodsi4
  450. 442 00ae 3B87 std Y+11,r19
  451. 443 00b0 2A87 std Y+10,r18
  452. 444 00b2 029F mul r16,r18
  453. 445 00b4 C001 movw r24,r0
  454. 446 00b6 039F mul r16,r19
  455. 447 00b8 900D add r25,r0
  456. 448 00ba 129F mul r17,r18
  457. 449 00bc 900D add r25,r0
  458. 450 00be 1124 clr r1
  459. 451 00c0 C81A sub r12,r24
  460. 452 00c2 D90A sbc r13,r25
  461. 453 00c4 E108 sbc r14,__zero_reg__
  462. 454 00c6 F108 sbc r15,__zero_reg__
  463. 455 00c8 E8E0 ldi r30,8
  464. 456 00ca CE0E add r12,r30
  465. GAS LISTING /tmp/ccjPZxVo.s page 9
  466. 457 00cc D11C adc r13,__zero_reg__
  467. 458 00ce DD86 std Y+13,r13
  468. 459 00d0 CC86 std Y+12,r12
  469. 460 /* epilogue start */
  470. 461 00d2 DF91 pop r29
  471. 462 00d4 CF91 pop r28
  472. 463 00d6 1F91 pop r17
  473. 464 00d8 0F91 pop r16
  474. 465 00da FF90 pop r15
  475. 466 00dc EF90 pop r14
  476. 467 00de DF90 pop r13
  477. 468 00e0 CF90 pop r12
  478. 469 00e2 BF90 pop r11
  479. 470 00e4 AF90 pop r10
  480. 471 00e6 0895 ret
  481. 472 .size EntryPosSet, .-EntryPosSet
  482. 473 .section .text.EntryPosInc,"ax",@progbits
  483. 474 .type EntryPosInc, @function
  484. 475 EntryPosInc:
  485. 476 0000 0F93 push r16
  486. 477 0002 1F93 push r17
  487. 478 0004 CF93 push r28
  488. 479 0006 DF93 push r29
  489. 480 /* prologue: function */
  490. 481 /* frame size = 0 */
  491. 482 /* stack size = 4 */
  492. 483 .L__stack_usage = 4
  493. 484 0008 DC01 movw r26,r24
  494. 485 000a 1296 adiw r26,2
  495. 486 000c ED91 ld r30,X+
  496. 487 000e FC91 ld r31,X
  497. 488 0010 1397 sbiw r26,2+1
  498. 489 0012 0D90 ld __tmp_reg__,X+
  499. 490 0014 BC91 ld r27,X
  500. 491 0016 A02D mov r26,__tmp_reg__
  501. 492 0018 5196 adiw r26,17
  502. 493 001a CD91 ld r28,X+
  503. 494 001c DC91 ld r29,X
  504. 495 001e 5297 sbiw r26,17+1
  505. 496 0020 CB01 movw r24,r22
  506. 497 0022 072E mov __tmp_reg__,r23
  507. 498 0024 000C lsl r0
  508. 499 0026 AA0B sbc r26,r26
  509. 500 0028 BB0B sbc r27,r27
  510. 501 002a 0281 ldd r16,Z+2
  511. 502 002c 1381 ldd r17,Z+3
  512. 503 002e 2481 ldd r18,Z+4
  513. 504 0030 3581 ldd r19,Z+5
  514. 505 0032 800F add r24,r16
  515. 506 0034 911F adc r25,r17
  516. 507 0036 A21F adc r26,r18
  517. 508 0038 B31F adc r27,r19
  518. 509 003a 8283 std Z+2,r24
  519. 510 003c 9383 std Z+3,r25
  520. 511 003e A483 std Z+4,r26
  521. 512 0040 B583 std Z+5,r27
  522. 513 0042 8485 ldd r24,Z+12
  523. GAS LISTING /tmp/ccjPZxVo.s page 10
  524. 514 0044 9585 ldd r25,Z+13
  525. 515 0046 680F add r22,r24
  526. 516 0048 791F adc r23,r25
  527. 517 004a 7587 std Z+13,r23
  528. 518 004c 6487 std Z+12,r22
  529. 519 004e 2285 ldd r18,Z+10
  530. 520 0050 3385 ldd r19,Z+11
  531. 521 0052 A881 ld r26,Y
  532. 522 0054 B981 ldd r27,Y+1
  533. 523 0056 1496 adiw r26,4
  534. 524 0058 8D91 ld r24,X+
  535. 525 005a 9C91 ld r25,X
  536. 526 005c 1597 sbiw r26,4+1
  537. 527 005e 2330 cpi r18,3
  538. 528 0060 3105 cpc r19,__zero_reg__
  539. 529 0062 00F0 brlo .L19
  540. 530 0064 0197 sbiw r24,1
  541. 531 .L19:
  542. 532 0066 861B sub r24,r22
  543. 533 0068 970B sbc r25,r23
  544. 534 006a 01F4 brne .L14
  545. 535 006c C901 movw r24,r18
  546. 536 006e 0196 adiw r24,1
  547. 537 0070 9387 std Z+11,r25
  548. 538 0072 8287 std Z+10,r24
  549. 539 0074 0497 sbiw r24,4
  550. 540 0076 00F0 brlo .L18
  551. 541 0078 88E0 ldi r24,lo8(8)
  552. 542 007a 90E0 ldi r25,0
  553. 543 007c 9587 std Z+13,r25
  554. 544 007e 8487 std Z+12,r24
  555. 545 0080 1386 std Z+11,__zero_reg__
  556. 546 0082 1286 std Z+10,__zero_reg__
  557. 547 0084 8085 ldd r24,Z+8
  558. 548 0086 9185 ldd r25,Z+9
  559. 549 0088 0196 adiw r24,1
  560. 550 008a 9187 std Z+9,r25
  561. 551 008c 8087 std Z+8,r24
  562. 552 008e 8FEF ldi r24,lo8(-1)
  563. 553 0090 9FEF ldi r25,lo8(-1)
  564. 554 0092 9783 std Z+7,r25
  565. 555 0094 8683 std Z+6,r24
  566. 556 0096 00C0 rjmp .L14
  567. 557 .L18:
  568. 558 0098 1586 std Z+13,__zero_reg__
  569. 559 009a 1486 std Z+12,__zero_reg__
  570. 560 .L14:
  571. 561 /* epilogue start */
  572. 562 009c DF91 pop r29
  573. 563 009e CF91 pop r28
  574. 564 00a0 1F91 pop r17
  575. 565 00a2 0F91 pop r16
  576. 566 00a4 0895 ret
  577. 567 .size EntryPosInc, .-EntryPosInc
  578. 568 .section .text.EntryTruncateSeq,"ax",@progbits
  579. 569 .type EntryTruncateSeq, @function
  580. 570 EntryTruncateSeq:
  581. GAS LISTING /tmp/ccjPZxVo.s page 11
  582. 571 0000 8F92 push r8
  583. 572 0002 9F92 push r9
  584. 573 0004 AF92 push r10
  585. 574 0006 BF92 push r11
  586. 575 0008 CF92 push r12
  587. 576 000a DF92 push r13
  588. 577 000c EF92 push r14
  589. 578 000e FF92 push r15
  590. 579 0010 0F93 push r16
  591. 580 0012 1F93 push r17
  592. 581 0014 CF93 push r28
  593. 582 0016 DF93 push r29
  594. 583 0018 CDB7 in r28,__SP_L__
  595. 584 001a DEB7 in r29,__SP_H__
  596. 585 001c 2897 sbiw r28,8
  597. 586 001e 0FB6 in __tmp_reg__,__SREG__
  598. 587 0020 F894 cli
  599. 588 0022 DEBF out __SP_H__,r29
  600. 589 0024 0FBE out __SREG__,__tmp_reg__
  601. 590 0026 CDBF out __SP_L__,r28
  602. 591 /* prologue: function */
  603. 592 /* frame size = 8 */
  604. 593 /* stack size = 20 */
  605. 594 .L__stack_usage = 20
  606. 595 0028 8C01 movw r16,r24
  607. 596 002a 6B01 movw r12,r22
  608. 597 002c 30E8 ldi r19,lo8(-128)
  609. 598 002e 832E mov r8,r19
  610. 599 0030 912C mov r9,__zero_reg__
  611. 600 0032 AA24 clr r10
  612. 601 0034 AA94 dec r10
  613. 602 0036 BA2C mov r11,r10
  614. 603 .L21:
  615. 604 0038 F801 movw r30,r16
  616. 605 003a 8581 ldd r24,Z+5
  617. 606 003c 9681 ldd r25,Z+6
  618. 607 003e 8816 cp r8,r24
  619. 608 0040 9906 cpc r9,r25
  620. 609 0042 00F4 brsh .L26
  621. 610 0044 7401 movw r14,r8
  622. 611 0046 EE0C lsl r14
  623. 612 0048 FF1C rol r15
  624. 613 004a D801 movw r26,r16
  625. 614 004c 1796 adiw r26,7
  626. 615 004e ED91 ld r30,X+
  627. 616 0050 FC91 ld r31,X
  628. 617 0052 1897 sbiw r26,7+1
  629. 618 0054 EE0D add r30,r14
  630. 619 0056 FF1D adc r31,r15
  631. 620 0058 6081 ld r22,Z
  632. 621 005a 7181 ldd r23,Z+1
  633. 622 005c 6817 cp r22,r24
  634. 623 005e 7907 cpc r23,r25
  635. 624 0060 00F4 brsh .L23
  636. 625 0062 AE01 movw r20,r28
  637. 626 0064 4F5F subi r20,-1
  638. 627 0066 5F4F sbci r21,-1
  639. GAS LISTING /tmp/ccjPZxVo.s page 12
  640. 628 0068 8D91 ld r24,X+
  641. 629 006a 9C91 ld r25,X
  642. 630 006c 0E94 0000 call FlashReadBlockHead
  643. 631 0070 8D81 ldd r24,Y+5
  644. 632 0072 9E81 ldd r25,Y+6
  645. 633 0074 8C15 cp r24,r12
  646. 634 0076 9D05 cpc r25,r13
  647. 635 0078 01F4 brne .L23
  648. 636 007a D801 movw r26,r16
  649. 637 007c 1796 adiw r26,7
  650. 638 007e ED91 ld r30,X+
  651. 639 0080 FC91 ld r31,X
  652. 640 0082 1897 sbiw r26,7+1
  653. 641 0084 EE0D add r30,r14
  654. 642 0086 FF1D adc r31,r15
  655. 643 0088 6081 ld r22,Z
  656. 644 008a 7181 ldd r23,Z+1
  657. 645 008c B182 std Z+1,r11
  658. 646 008e A082 st Z,r10
  659. 647 0090 8D91 ld r24,X+
  660. 648 0092 9C91 ld r25,X
  661. 649 0094 0E94 0000 call FlashEraseEntry
  662. 650 .L23:
  663. 651 0098 BFEF ldi r27,-1
  664. 652 009a 8B1A sub r8,r27
  665. 653 009c 9B0A sbc r9,r27
  666. 654 009e 00C0 rjmp .L21
  667. 655 .L26:
  668. 656 00a0 80E0 ldi r24,0
  669. 657 00a2 90E0 ldi r25,0
  670. 658 /* epilogue start */
  671. 659 00a4 2896 adiw r28,8
  672. 660 00a6 0FB6 in __tmp_reg__,__SREG__
  673. 661 00a8 F894 cli
  674. 662 00aa DEBF out __SP_H__,r29
  675. 663 00ac 0FBE out __SREG__,__tmp_reg__
  676. 664 00ae CDBF out __SP_L__,r28
  677. 665 00b0 DF91 pop r29
  678. 666 00b2 CF91 pop r28
  679. 667 00b4 1F91 pop r17
  680. 668 00b6 0F91 pop r16
  681. 669 00b8 FF90 pop r15
  682. 670 00ba EF90 pop r14
  683. 671 00bc DF90 pop r13
  684. 672 00be CF90 pop r12
  685. 673 00c0 BF90 pop r11
  686. 674 00c2 AF90 pop r10
  687. 675 00c4 9F90 pop r9
  688. 676 00c6 8F90 pop r8
  689. 677 00c8 0895 ret
  690. 678 .size EntryTruncateSeq, .-EntryTruncateSeq
  691. 679 .section .text.UFlashFileSize,"ax",@progbits
  692. 680 .type UFlashFileSize, @function
  693. 681 UFlashFileSize:
  694. 682 /* prologue: function */
  695. 683 /* frame size = 0 */
  696. 684 /* stack size = 0 */
  697. GAS LISTING /tmp/ccjPZxVo.s page 13
  698. 685 .L__stack_usage = 0
  699. 686 0000 DC01 movw r26,r24
  700. 687 0002 1296 adiw r26,2
  701. 688 0004 ED91 ld r30,X+
  702. 689 0006 FC91 ld r31,X
  703. 690 0008 1397 sbiw r26,2+1
  704. 691 000a 6489 ldd r22,Z+20
  705. 692 000c 7589 ldd r23,Z+21
  706. 693 000e 8689 ldd r24,Z+22
  707. 694 0010 9789 ldd r25,Z+23
  708. 695 0012 0895 ret
  709. 696 .size UFlashFileSize, .-UFlashFileSize
  710. 697 .section .text.UFlashFileWrite_P,"ax",@progbits
  711. 698 .type UFlashFileWrite_P, @function
  712. 699 UFlashFileWrite_P:
  713. 700 /* prologue: function */
  714. 701 /* frame size = 0 */
  715. 702 /* stack size = 0 */
  716. 703 .L__stack_usage = 0
  717. 704 0000 8FEF ldi r24,lo8(-1)
  718. 705 0002 9FEF ldi r25,lo8(-1)
  719. 706 0004 0895 ret
  720. 707 .size UFlashFileWrite_P, .-UFlashFileWrite_P
  721. 708 .section .text.UFlashInit,"ax",@progbits
  722. 709 .type UFlashInit, @function
  723. 710 UFlashInit:
  724. 711 /* prologue: function */
  725. 712 /* frame size = 0 */
  726. 713 /* stack size = 0 */
  727. 714 .L__stack_usage = 0
  728. 715 0000 80E0 ldi r24,0
  729. 716 0002 90E0 ldi r25,0
  730. 717 0004 0895 ret
  731. 718 .size UFlashInit, .-UFlashInit
  732. 719 .section .text.FlashReadEntry,"ax",@progbits
  733. 720 .type FlashReadEntry, @function
  734. 721 FlashReadEntry:
  735. 722 0000 AF92 push r10
  736. 723 0002 BF92 push r11
  737. 724 0004 CF92 push r12
  738. 725 0006 DF92 push r13
  739. 726 0008 EF92 push r14
  740. 727 000a FF92 push r15
  741. 728 000c 0F93 push r16
  742. 729 000e 1F93 push r17
  743. 730 0010 CF93 push r28
  744. 731 0012 DF93 push r29
  745. 732 /* prologue: function */
  746. 733 /* frame size = 0 */
  747. 734 /* stack size = 10 */
  748. 735 .L__stack_usage = 10
  749. 736 0014 EC01 movw r28,r24
  750. 737 0016 6A01 movw r12,r20
  751. 738 0018 5901 movw r10,r18
  752. 739 001a 7B01 movw r14,r22
  753. 740 001c EE0C lsl r14
  754. 741 001e FF1C rol r15
  755. GAS LISTING /tmp/ccjPZxVo.s page 14
  756. 742 0020 EE0C lsl r14
  757. 743 0022 FF1C rol r15
  758. 744 0024 6885 ldd r22,Y+8
  759. 745 0026 7985 ldd r23,Y+9
  760. 746 0028 6E0D add r22,r14
  761. 747 002a 7F1D adc r23,r15
  762. 748 002c EA89 ldd r30,Y+18
  763. 749 002e FB89 ldd r31,Y+19
  764. 750 0030 02E0 ldi r16,lo8(2)
  765. 751 0032 10E0 ldi r17,0
  766. 752 0034 9A01 movw r18,r20
  767. 753 0036 48E0 ldi r20,lo8(8)
  768. 754 0038 50E0 ldi r21,0
  769. 755 003a CE01 movw r24,r28
  770. 756 003c 1995 eicall
  771. 757 003e 0097 sbiw r24,0
  772. 758 0040 01F4 brne .L31
  773. 759 0042 A114 cp r10,__zero_reg__
  774. 760 0044 B104 cpc r11,__zero_reg__
  775. 761 0046 01F0 breq .L31
  776. 762 0048 F601 movw r30,r12
  777. 763 004a 8181 ldd r24,Z+1
  778. 764 004c 90E0 ldi r25,0
  779. 765 004e 0196 adiw r24,1
  780. 766 0050 0E94 0000 call malloc
  781. 767 0054 F501 movw r30,r10
  782. 768 0056 9183 std Z+1,r25
  783. 769 0058 8083 st Z,r24
  784. 770 005a 0097 sbiw r24,0
  785. 771 005c 01F0 breq .L32
  786. 772 005e F601 movw r30,r12
  787. 773 0060 0181 ldd r16,Z+1
  788. 774 0062 10E0 ldi r17,0
  789. 775 0064 FC01 movw r30,r24
  790. 776 0066 E00F add r30,r16
  791. 777 0068 F11F adc r31,r17
  792. 778 006a 1082 st Z,__zero_reg__
  793. 779 006c 6885 ldd r22,Y+8
  794. 780 006e 7985 ldd r23,Y+9
  795. 781 0070 6E0D add r22,r14
  796. 782 0072 7F1D adc r23,r15
  797. 783 0074 EA89 ldd r30,Y+18
  798. 784 0076 FB89 ldd r31,Y+19
  799. 785 0078 9C01 movw r18,r24
  800. 786 007a 4AE0 ldi r20,lo8(10)
  801. 787 007c 50E0 ldi r21,0
  802. 788 007e CE01 movw r24,r28
  803. 789 0080 1995 eicall
  804. 790 0082 00C0 rjmp .L31
  805. 791 .L32:
  806. 792 0084 8FEF ldi r24,lo8(-1)
  807. 793 0086 9FEF ldi r25,lo8(-1)
  808. 794 .L31:
  809. 795 /* epilogue start */
  810. 796 0088 DF91 pop r29
  811. 797 008a CF91 pop r28
  812. 798 008c 1F91 pop r17
  813. GAS LISTING /tmp/ccjPZxVo.s page 15
  814. 799 008e 0F91 pop r16
  815. 800 0090 FF90 pop r15
  816. 801 0092 EF90 pop r14
  817. 802 0094 DF90 pop r13
  818. 803 0096 CF90 pop r12
  819. 804 0098 BF90 pop r11
  820. 805 009a AF90 pop r10
  821. 806 009c 0895 ret
  822. 807 .size FlashReadEntry, .-FlashReadEntry
  823. 808 .section .text.UFlashFileClose,"ax",@progbits
  824. 809 .type UFlashFileClose, @function
  825. 810 UFlashFileClose:
  826. 811 0000 CF93 push r28
  827. 812 0002 DF93 push r29
  828. 813 /* prologue: function */
  829. 814 /* frame size = 0 */
  830. 815 /* stack size = 2 */
  831. 816 .L__stack_usage = 2
  832. 817 0004 EC01 movw r28,r24
  833. 818 0006 8A81 ldd r24,Y+2
  834. 819 0008 9B81 ldd r25,Y+3
  835. 820 000a 0E94 0000 call free
  836. 821 000e CE01 movw r24,r28
  837. 822 0010 0E94 0000 call free
  838. 823 0014 80E0 ldi r24,0
  839. 824 0016 90E0 ldi r25,0
  840. 825 /* epilogue start */
  841. 826 0018 DF91 pop r29
  842. 827 001a CF91 pop r28
  843. 828 001c 0895 ret
  844. 829 .size UFlashFileClose, .-UFlashFileClose
  845. 830 .section .text.UFlashMount,"ax",@progbits
  846. 831 .type UFlashMount, @function
  847. 832 UFlashMount:
  848. 833 0000 CF92 push r12
  849. 834 0002 DF92 push r13
  850. 835 0004 EF92 push r14
  851. 836 0006 FF92 push r15
  852. 837 0008 0F93 push r16
  853. 838 000a 1F93 push r17
  854. 839 000c CF93 push r28
  855. 840 000e DF93 push r29
  856. 841 0010 CDB7 in r28,__SP_L__
  857. 842 0012 DEB7 in r29,__SP_H__
  858. 843 0014 6097 sbiw r28,16
  859. 844 0016 0FB6 in __tmp_reg__,__SREG__
  860. 845 0018 F894 cli
  861. 846 001a DEBF out __SP_H__,r29
  862. 847 001c 0FBE out __SREG__,__tmp_reg__
  863. 848 001e CDBF out __SP_L__,r28
  864. 849 /* prologue: function */
  865. 850 /* frame size = 16 */
  866. 851 /* stack size = 24 */
  867. 852 .L__stack_usage = 24
  868. 853 0020 7C01 movw r14,r24
  869. 854 0022 69E0 ldi r22,lo8(9)
  870. 855 0024 70E0 ldi r23,0
  871. GAS LISTING /tmp/ccjPZxVo.s page 16
  872. 856 0026 81E0 ldi r24,lo8(1)
  873. 857 0028 90E0 ldi r25,0
  874. 858 002a 0E94 0000 call calloc
  875. 859 002e 8C01 movw r16,r24
  876. 860 0030 0097 sbiw r24,0
  877. 861 0032 01F4 brne .+2
  878. 862 0034 00C0 rjmp .L51
  879. 863 0036 D701 movw r26,r14
  880. 864 0038 5296 adiw r26,17+1
  881. 865 003a 9C93 st X,r25
  882. 866 003c 8E93 st -X,r24
  883. 867 003e 5197 sbiw r26,17
  884. 868 0040 1F96 adiw r26,15
  885. 869 0042 ED91 ld r30,X+
  886. 870 0044 FC91 ld r31,X
  887. 871 0046 5097 sbiw r26,15+1
  888. 872 0048 DC01 movw r26,r24
  889. 873 004a ED93 st X+,r30
  890. 874 004c FC93 st X,r31
  891. 875 004e 8681 ldd r24,Z+6
  892. 876 0050 9781 ldd r25,Z+7
  893. 877 0052 2085 ldd r18,Z+8
  894. 878 0054 3185 ldd r19,Z+9
  895. 879 0056 821B sub r24,r18
  896. 880 0058 930B sbc r25,r19
  897. 881 005a 2285 ldd r18,Z+10
  898. 882 005c 3385 ldd r19,Z+11
  899. 883 005e 821B sub r24,r18
  900. 884 0060 930B sbc r25,r19
  901. 885 0062 9695 lsr r25
  902. 886 0064 8795 ror r24
  903. 887 0066 9695 lsr r25
  904. 888 0068 8795 ror r24
  905. 889 006a 8130 cpi r24,1
  906. 890 006c B0E2 ldi r27,32
  907. 891 006e 9B07 cpc r25,r27
  908. 892 0070 00F4 brsh .L39
  909. 893 0072 F801 movw r30,r16
  910. 894 0074 9683 std Z+6,r25
  911. 895 0076 8583 std Z+5,r24
  912. 896 0078 00C0 rjmp .L40
  913. 897 .L39:
  914. 898 007a 80E0 ldi r24,0
  915. 899 007c 90E2 ldi r25,lo8(32)
  916. 900 007e D801 movw r26,r16
  917. 901 0080 1696 adiw r26,5+1
  918. 902 0082 9C93 st X,r25
  919. 903 0084 8E93 st -X,r24
  920. 904 0086 1597 sbiw r26,5
  921. 905 .L40:
  922. 906 0088 F801 movw r30,r16
  923. 907 008a E580 ldd r14,Z+5
  924. 908 008c F680 ldd r15,Z+6
  925. 909 008e EE0C lsl r14
  926. 910 0090 FF1C rol r15
  927. 911 0092 C701 movw r24,r14
  928. 912 0094 0E94 0000 call malloc
  929. GAS LISTING /tmp/ccjPZxVo.s page 17
  930. 913 0098 D801 movw r26,r16
  931. 914 009a 1896 adiw r26,7+1
  932. 915 009c 9C93 st X,r25
  933. 916 009e 8E93 st -X,r24
  934. 917 00a0 1797 sbiw r26,7
  935. 918 00a2 0097 sbiw r24,0
  936. 919 00a4 01F4 brne .L41
  937. 920 00a6 C801 movw r24,r16
  938. 921 00a8 0E94 0000 call free
  939. 922 00ac 00C0 rjmp .L51
  940. 923 .L41:
  941. 924 00ae A701 movw r20,r14
  942. 925 00b0 6FEF ldi r22,lo8(-1)
  943. 926 00b2 70E0 ldi r23,0
  944. 927 00b4 0E94 0000 call memset
  945. 928 00b8 40E6 ldi r20,lo8(96)
  946. 929 00ba 50E0 ldi r21,0
  947. 930 00bc 6FEF ldi r22,lo8(-1)
  948. 931 00be 70E0 ldi r23,0
  949. 932 00c0 80E0 ldi r24,lo8(min_used)
  950. 933 00c2 90E0 ldi r25,hi8(min_used)
  951. 934 00c4 0E94 0000 call memset
  952. 935 00c8 C12C mov r12,__zero_reg__
  953. 936 00ca D12C mov r13,__zero_reg__
  954. 937 00cc E12C mov r14,__zero_reg__
  955. 938 00ce F12C mov r15,__zero_reg__
  956. 939 .L42:
  957. 940 00d0 D801 movw r26,r16
  958. 941 00d2 1596 adiw r26,5
  959. 942 00d4 8D91 ld r24,X+
  960. 943 00d6 9C91 ld r25,X
  961. 944 00d8 1697 sbiw r26,5+1
  962. 945 00da E816 cp r14,r24
  963. 946 00dc F906 cpc r15,r25
  964. 947 00de 00F0 brlo .+2
  965. 948 00e0 00C0 rjmp .L54
  966. 949 00e2 AE01 movw r20,r28
  967. 950 00e4 475F subi r20,-9
  968. 951 00e6 5F4F sbci r21,-1
  969. 952 00e8 B701 movw r22,r14
  970. 953 00ea F801 movw r30,r16
  971. 954 00ec 8081 ld r24,Z
  972. 955 00ee 9181 ldd r25,Z+1
  973. 956 00f0 0E94 0000 call FlashReadBlockHead
  974. 957 00f4 2985 ldd r18,Y+9
  975. 958 00f6 3A85 ldd r19,Y+10
  976. 959 00f8 D801 movw r26,r16
  977. 960 00fa 1596 adiw r26,5
  978. 961 00fc 8D91 ld r24,X+
  979. 962 00fe 9C91 ld r25,X
  980. 963 0100 1697 sbiw r26,5+1
  981. 964 0102 2817 cp r18,r24
  982. 965 0104 3907 cpc r19,r25
  983. 966 0106 00F0 brlo .+2
  984. 967 0108 00C0 rjmp .L43
  985. 968 010a 8D91 ld r24,X+
  986. 969 010c 9C91 ld r25,X
  987. GAS LISTING /tmp/ccjPZxVo.s page 18
  988. 970 010e FC01 movw r30,r24
  989. 971 0110 6085 ldd r22,Z+8
  990. 972 0112 7185 ldd r23,Z+9
  991. 973 0114 6C0D add r22,r12
  992. 974 0116 7D1D adc r23,r13
  993. 975 0118 0088 ldd __tmp_reg__,Z+16
  994. 976 011a F189 ldd r31,Z+17
  995. 977 011c E02D mov r30,__tmp_reg__
  996. 978 011e 44E0 ldi r20,lo8(4)
  997. 979 0120 50E0 ldi r21,0
  998. 980 0122 1995 eicall
  999. 981 0124 892B or r24,r25
  1000. 982 0126 01F0 breq .L44
  1001. 983 0128 B701 movw r22,r14
  1002. 984 012a D801 movw r26,r16
  1003. 985 012c 8D91 ld r24,X+
  1004. 986 012e 9C91 ld r25,X
  1005. 987 0130 00C0 rjmp .L53
  1006. 988 .L44:
  1007. 989 0132 E985 ldd r30,Y+9
  1008. 990 0134 FA85 ldd r31,Y+10
  1009. 991 0136 EE0F lsl r30
  1010. 992 0138 FF1F rol r31
  1011. 993 013a D801 movw r26,r16
  1012. 994 013c 1796 adiw r26,7
  1013. 995 013e 8D91 ld r24,X+
  1014. 996 0140 9C91 ld r25,X
  1015. 997 0142 1897 sbiw r26,7+1
  1016. 998 0144 E80F add r30,r24
  1017. 999 0146 F91F adc r31,r25
  1018. 1000 0148 6081 ld r22,Z
  1019. 1001 014a 7181 ldd r23,Z+1
  1020. 1002 014c 1596 adiw r26,5
  1021. 1003 014e 8D91 ld r24,X+
  1022. 1004 0150 9C91 ld r25,X
  1023. 1005 0152 1697 sbiw r26,5+1
  1024. 1006 0154 6817 cp r22,r24
  1025. 1007 0156 7907 cpc r23,r25
  1026. 1008 0158 00F0 brlo .+2
  1027. 1009 015a 00C0 rjmp .L45
  1028. 1010 015c AE01 movw r20,r28
  1029. 1011 015e 4F5F subi r20,-1
  1030. 1012 0160 5F4F sbci r21,-1
  1031. 1013 0162 8D91 ld r24,X+
  1032. 1014 0164 9C91 ld r25,X
  1033. 1015 0166 0E94 0000 call FlashReadBlockHead
  1034. 1016 016a 4B81 ldd r20,Y+3
  1035. 1017 016c 5C81 ldd r21,Y+4
  1036. 1018 016e 2B85 ldd r18,Y+11
  1037. 1019 0170 3C85 ldd r19,Y+12
  1038. 1020 0172 F801 movw r30,r16
  1039. 1021 0174 6581 ldd r22,Z+5
  1040. 1022 0176 7681 ldd r23,Z+6
  1041. 1023 0178 8081 ld r24,Z
  1042. 1024 017a 9181 ldd r25,Z+1
  1043. 1025 017c 2417 cp r18,r20
  1044. 1026 017e 3507 cpc r19,r21
  1045. GAS LISTING /tmp/ccjPZxVo.s page 19
  1046. 1027 0180 00F4 brsh .L46
  1047. 1028 0182 421B sub r20,r18
  1048. 1029 0184 530B sbc r21,r19
  1049. 1030 0186 6417 cp r22,r20
  1050. 1031 0188 7507 cpc r23,r21
  1051. 1032 018a 00F4 brsh .L49
  1052. 1033 018c 00C0 rjmp .L52
  1053. 1034 .L46:
  1054. 1035 018e 241B sub r18,r20
  1055. 1036 0190 350B sbc r19,r21
  1056. 1037 0192 2617 cp r18,r22
  1057. 1038 0194 3707 cpc r19,r23
  1058. 1039 0196 00F4 brsh .L49
  1059. 1040 .L52:
  1060. 1041 0198 B701 movw r22,r14
  1061. 1042 .L53:
  1062. 1043 019a 0E94 0000 call FlashEraseEntry
  1063. 1044 019e 00C0 rjmp .L48
  1064. 1045 .L49:
  1065. 1046 01a0 E985 ldd r30,Y+9
  1066. 1047 01a2 FA85 ldd r31,Y+10
  1067. 1048 01a4 EE0F lsl r30
  1068. 1049 01a6 FF1F rol r31
  1069. 1050 01a8 D801 movw r26,r16
  1070. 1051 01aa 1796 adiw r26,7
  1071. 1052 01ac 2D91 ld r18,X+
  1072. 1053 01ae 3C91 ld r19,X
  1073. 1054 01b0 1897 sbiw r26,7+1
  1074. 1055 01b2 E20F add r30,r18
  1075. 1056 01b4 F31F adc r31,r19
  1076. 1057 01b6 6081 ld r22,Z
  1077. 1058 01b8 7181 ldd r23,Z+1
  1078. 1059 01ba 0E94 0000 call FlashEraseEntry
  1079. 1060 01be E985 ldd r30,Y+9
  1080. 1061 01c0 FA85 ldd r31,Y+10
  1081. 1062 01c2 EE0F lsl r30
  1082. 1063 01c4 FF1F rol r31
  1083. 1064 01c6 D801 movw r26,r16
  1084. 1065 01c8 1796 adiw r26,7
  1085. 1066 01ca 8D91 ld r24,X+
  1086. 1067 01cc 9C91 ld r25,X
  1087. 1068 01ce 1897 sbiw r26,7+1
  1088. 1069 01d0 E80F add r30,r24
  1089. 1070 01d2 F91F adc r31,r25
  1090. 1071 01d4 F182 std Z+1,r15
  1091. 1072 01d6 E082 st Z,r14
  1092. 1073 .L48:
  1093. 1074 01d8 F801 movw r30,r16
  1094. 1075 01da 8481 ldd r24,Z+4
  1095. 1076 01dc 8068 ori r24,lo8(-128)
  1096. 1077 01de 8483 std Z+4,r24
  1097. 1078 01e0 00C0 rjmp .L43
  1098. 1079 .L45:
  1099. 1080 01e2 F182 std Z+1,r15
  1100. 1081 01e4 E082 st Z,r14
  1101. 1082 .L43:
  1102. 1083 01e6 FFEF ldi r31,-1
  1103. GAS LISTING /tmp/ccjPZxVo.s page 20
  1104. 1084 01e8 EF1A sub r14,r31
  1105. 1085 01ea FF0A sbc r15,r31
  1106. 1086 01ec 24E0 ldi r18,4
  1107. 1087 01ee C20E add r12,r18
  1108. 1088 01f0 D11C adc r13,__zero_reg__
  1109. 1089 01f2 00C0 rjmp .L42
  1110. 1090 .L54:
  1111. 1091 01f4 C801 movw r24,r16
  1112. 1092 01f6 0296 adiw r24,2
  1113. 1093 01f8 0E94 0000 call NutEventPost
  1114. 1094 01fc 80E0 ldi r24,0
  1115. 1095 01fe 90E0 ldi r25,0
  1116. 1096 0200 00C0 rjmp .L38
  1117. 1097 .L51:
  1118. 1098 0202 8FEF ldi r24,lo8(-1)
  1119. 1099 0204 9FEF ldi r25,lo8(-1)
  1120. 1100 .L38:
  1121. 1101 /* epilogue start */
  1122. 1102 0206 6096 adiw r28,16
  1123. 1103 0208 0FB6 in __tmp_reg__,__SREG__
  1124. 1104 020a F894 cli
  1125. 1105 020c DEBF out __SP_H__,r29
  1126. 1106 020e 0FBE out __SREG__,__tmp_reg__
  1127. 1107 0210 CDBF out __SP_L__,r28
  1128. 1108 0212 DF91 pop r29
  1129. 1109 0214 CF91 pop r28
  1130. 1110 0216 1F91 pop r17
  1131. 1111 0218 0F91 pop r16
  1132. 1112 021a FF90 pop r15
  1133. 1113 021c EF90 pop r14
  1134. 1114 021e DF90 pop r13
  1135. 1115 0220 CF90 pop r12
  1136. 1116 0222 0895 ret
  1137. 1117 .size UFlashMount, .-UFlashMount
  1138. 1118 .section .text.EntrySearchNext,"ax",@progbits
  1139. 1119 .type EntrySearchNext, @function
  1140. 1120 EntrySearchNext:
  1141. 1121 0000 2F92 push r2
  1142. 1122 0002 3F92 push r3
  1143. 1123 0004 4F92 push r4
  1144. 1124 0006 5F92 push r5
  1145. 1125 0008 6F92 push r6
  1146. 1126 000a 7F92 push r7
  1147. 1127 000c 8F92 push r8
  1148. 1128 000e 9F92 push r9
  1149. 1129 0010 AF92 push r10
  1150. 1130 0012 BF92 push r11
  1151. 1131 0014 CF92 push r12
  1152. 1132 0016 DF92 push r13
  1153. 1133 0018 EF92 push r14
  1154. 1134 001a FF92 push r15
  1155. 1135 001c 0F93 push r16
  1156. 1136 001e 1F93 push r17
  1157. 1137 0020 CF93 push r28
  1158. 1138 0022 DF93 push r29
  1159. 1139 0024 00D0 rcall .
  1160. 1140 0026 1F92 push __zero_reg__
  1161. GAS LISTING /tmp/ccjPZxVo.s page 21
  1162. 1141 0028 CDB7 in r28,__SP_L__
  1163. 1142 002a DEB7 in r29,__SP_H__
  1164. 1143 /* prologue: function */
  1165. 1144 /* frame size = 4 */
  1166. 1145 /* stack size = 22 */
  1167. 1146 .L__stack_usage = 22
  1168. 1147 002c 7C01 movw r14,r24
  1169. 1148 002e 5B01 movw r10,r22
  1170. 1149 0030 3A01 movw r6,r20
  1171. 1150 0032 4901 movw r8,r18
  1172. 1151 0034 FB01 movw r30,r22
  1173. 1152 0:
  1174. 1153 0036 0190 ld __tmp_reg__,Z+
  1175. 1154 0038 0020 tst __tmp_reg__
  1176. 1155 003a 01F4 brne 0b
  1177. 1156 003c 3197 sbiw r30,1
  1178. 1157 003e 2F01 movw r4,r30
  1179. 1158 0040 461A sub r4,r22
  1180. 1159 0042 570A sbc r5,r23
  1181. 1160 0044 6C01 movw r12,r24
  1182. 1161 0046 22E0 ldi r18,2
  1183. 1162 0048 C20E add r12,r18
  1184. 1163 004a D11C adc r13,__zero_reg__
  1185. 1164 004c 40E0 ldi r20,0
  1186. 1165 004e 50E0 ldi r21,0
  1187. 1166 0050 BA01 movw r22,r20
  1188. 1167 0052 C601 movw r24,r12
  1189. 1168 0054 0E94 0000 call NutEventWait
  1190. 1169 0058 80E8 ldi r24,-128
  1191. 1170 005a 8816 cp r8,r24
  1192. 1171 005c 9104 cpc r9,__zero_reg__
  1193. 1172 005e 01F0 breq .L62
  1194. 1173 0060 9C82 std Y+4,r9
  1195. 1174 0062 8B82 std Y+3,r8
  1196. 1175 0064 00C0 rjmp .L56
  1197. 1176 .L62:
  1198. 1177 0066 1C82 std Y+4,__zero_reg__
  1199. 1178 0068 1B82 std Y+3,__zero_reg__
  1200. 1179 .L56:
  1201. 1180 006a 2B80 ldd r2,Y+3
  1202. 1181 006c 3C80 ldd r3,Y+4
  1203. 1182 006e 220C lsl r2
  1204. 1183 0070 331C rol r3
  1205. 1184 0072 D201 movw r26,r4
  1206. 1185 0074 BB27 clr r27
  1207. 1186 0076 BA83 std Y+2,r27
  1208. 1187 0078 A983 std Y+1,r26
  1209. 1188 .L57:
  1210. 1189 007a AB81 ldd r26,Y+3
  1211. 1190 007c BC81 ldd r27,Y+4
  1212. 1191 007e A038 cpi r26,-128
  1213. 1192 0080 B105 cpc r27,__zero_reg__
  1214. 1193 0082 00F0 brlo .+2
  1215. 1194 0084 00C0 rjmp .L66
  1216. 1195 0086 D701 movw r26,r14
  1217. 1196 0088 1796 adiw r26,7
  1218. 1197 008a ED91 ld r30,X+
  1219. GAS LISTING /tmp/ccjPZxVo.s page 22
  1220. 1198 008c FC91 ld r31,X
  1221. 1199 008e 1897 sbiw r26,7+1
  1222. 1200 0090 E20D add r30,r2
  1223. 1201 0092 F31D adc r31,r3
  1224. 1202 0094 0081 ld r16,Z
  1225. 1203 0096 1181 ldd r17,Z+1
  1226. 1204 0098 1596 adiw r26,5
  1227. 1205 009a 8D91 ld r24,X+
  1228. 1206 009c 9C91 ld r25,X
  1229. 1207 009e 1697 sbiw r26,5+1
  1230. 1208 00a0 0817 cp r16,r24
  1231. 1209 00a2 1907 cpc r17,r25
  1232. 1210 00a4 00F4 brsh .L58
  1233. 1211 00a6 20E0 ldi r18,0
  1234. 1212 00a8 30E0 ldi r19,0
  1235. 1213 00aa A301 movw r20,r6
  1236. 1214 00ac B801 movw r22,r16
  1237. 1215 00ae 8D91 ld r24,X+
  1238. 1216 00b0 9C91 ld r25,X
  1239. 1217 00b2 0E94 0000 call FlashReadEntry
  1240. 1218 00b6 892B or r24,r25
  1241. 1219 00b8 01F4 brne .L58
  1242. 1220 00ba F301 movw r30,r6
  1243. 1221 00bc 8181 ldd r24,Z+1
  1244. 1222 00be 90E0 ldi r25,0
  1245. 1223 00c0 4816 cp r4,r24
  1246. 1224 00c2 5906 cpc r5,r25
  1247. 1225 00c4 01F0 breq .L59
  1248. 1226 00c6 F0E8 ldi r31,-128
  1249. 1227 00c8 8F16 cp r8,r31
  1250. 1228 00ca 9104 cpc r9,__zero_reg__
  1251. 1229 00cc 01F0 breq .L58
  1252. 1230 00ce 8415 cp r24,r4
  1253. 1231 00d0 9505 cpc r25,r5
  1254. 1232 00d2 04F0 brlt .L58
  1255. 1233 .L59:
  1256. 1234 00d4 D701 movw r26,r14
  1257. 1235 00d6 8D91 ld r24,X+
  1258. 1236 00d8 9C91 ld r25,X
  1259. 1237 00da 000F lsl r16
  1260. 1238 00dc 111F rol r17
  1261. 1239 00de 000F lsl r16
  1262. 1240 00e0 111F rol r17
  1263. 1241 00e2 FC01 movw r30,r24
  1264. 1242 00e4 6085 ldd r22,Z+8
  1265. 1243 00e6 7185 ldd r23,Z+9
  1266. 1244 00e8 600F add r22,r16
  1267. 1245 00ea 711F adc r23,r17
  1268. 1246 00ec 0488 ldd __tmp_reg__,Z+20
  1269. 1247 00ee F589 ldd r31,Z+21
  1270. 1248 00f0 E02D mov r30,__tmp_reg__
  1271. 1249 00f2 0981 ldd r16,Y+1
  1272. 1250 00f4 1A81 ldd r17,Y+2
  1273. 1251 00f6 9501 movw r18,r10
  1274. 1252 00f8 4AE0 ldi r20,lo8(10)
  1275. 1253 00fa 50E0 ldi r21,0
  1276. 1254 00fc 1995 eicall
  1277. GAS LISTING /tmp/ccjPZxVo.s page 23
  1278. 1255 00fe 892B or r24,r25
  1279. 1256 0100 01F4 brne .L58
  1280. 1257 0102 C601 movw r24,r12
  1281. 1258 0104 0E94 0000 call NutEventPost
  1282. 1259 0108 8B81 ldd r24,Y+3
  1283. 1260 010a 9C81 ldd r25,Y+4
  1284. 1261 010c 00C0 rjmp .L60
  1285. 1262 .L58:
  1286. 1263 010e 8B81 ldd r24,Y+3
  1287. 1264 0110 9C81 ldd r25,Y+4
  1288. 1265 0112 0196 adiw r24,1
  1289. 1266 0114 9C83 std Y+4,r25
  1290. 1267 0116 8B83 std Y+3,r24
  1291. 1268 0118 92E0 ldi r25,2
  1292. 1269 011a 290E add r2,r25
  1293. 1270 011c 311C adc r3,__zero_reg__
  1294. 1271 011e 00C0 rjmp .L57
  1295. 1272 .L66:
  1296. 1273 0120 C601 movw r24,r12
  1297. 1274 0122 0E94 0000 call NutEventPost
  1298. 1275 0126 80E8 ldi r24,lo8(-128)
  1299. 1276 0128 90E0 ldi r25,0
  1300. 1277 .L60:
  1301. 1278 /* epilogue start */
  1302. 1279 012a 0F90 pop __tmp_reg__
  1303. 1280 012c 0F90 pop __tmp_reg__
  1304. 1281 012e 0F90 pop __tmp_reg__
  1305. 1282 0130 0F90 pop __tmp_reg__
  1306. 1283 0132 DF91 pop r29
  1307. 1284 0134 CF91 pop r28
  1308. 1285 0136 1F91 pop r17
  1309. 1286 0138 0F91 pop r16
  1310. 1287 013a FF90 pop r15
  1311. 1288 013c EF90 pop r14
  1312. 1289 013e DF90 pop r13
  1313. 1290 0140 CF90 pop r12
  1314. 1291 0142 BF90 pop r11
  1315. 1292 0144 AF90 pop r10
  1316. 1293 0146 9F90 pop r9
  1317. 1294 0148 8F90 pop r8
  1318. 1295 014a 7F90 pop r7
  1319. 1296 014c 6F90 pop r6
  1320. 1297 014e 5F90 pop r5
  1321. 1298 0150 4F90 pop r4
  1322. 1299 0152 3F90 pop r3
  1323. 1300 0154 2F90 pop r2
  1324. 1301 0156 0895 ret
  1325. 1302 .size EntrySearchNext, .-EntrySearchNext
  1326. 1303 .section .text.EntryScan.isra.1,"ax",@progbits
  1327. 1304 .type EntryScan.isra.1, @function
  1328. 1305 EntryScan.isra.1:
  1329. 1306 0000 8F92 push r8
  1330. 1307 0002 9F92 push r9
  1331. 1308 0004 AF92 push r10
  1332. 1309 0006 BF92 push r11
  1333. 1310 0008 CF92 push r12
  1334. 1311 000a DF92 push r13
  1335. GAS LISTING /tmp/ccjPZxVo.s page 24
  1336. 1312 000c EF92 push r14
  1337. 1313 000e FF92 push r15
  1338. 1314 0010 0F93 push r16
  1339. 1315 0012 1F93 push r17
  1340. 1316 0014 CF93 push r28
  1341. 1317 0016 DF93 push r29
  1342. 1318 0018 CDB7 in r28,__SP_L__
  1343. 1319 001a DEB7 in r29,__SP_H__
  1344. 1320 001c 2897 sbiw r28,8
  1345. 1321 001e 0FB6 in __tmp_reg__,__SREG__
  1346. 1322 0020 F894 cli
  1347. 1323 0022 DEBF out __SP_H__,r29
  1348. 1324 0024 0FBE out __SREG__,__tmp_reg__
  1349. 1325 0026 CDBF out __SP_L__,r28
  1350. 1326 /* prologue: function */
  1351. 1327 /* frame size = 8 */
  1352. 1328 /* stack size = 20 */
  1353. 1329 .L__stack_usage = 20
  1354. 1330 0028 8C01 movw r16,r24
  1355. 1331 002a 4B01 movw r8,r22
  1356. 1332 002c 5B01 movw r10,r22
  1357. 1333 002e E12C mov r14,__zero_reg__
  1358. 1334 0030 F12C mov r15,__zero_reg__
  1359. 1335 0032 E0E8 ldi r30,lo8(-128)
  1360. 1336 0034 CE2E mov r12,r30
  1361. 1337 0036 D12C mov r13,__zero_reg__
  1362. 1338 .L68:
  1363. 1339 0038 F801 movw r30,r16
  1364. 1340 003a 2581 ldd r18,Z+5
  1365. 1341 003c 3681 ldd r19,Z+6
  1366. 1342 003e 0780 ldd __tmp_reg__,Z+7
  1367. 1343 0040 F085 ldd r31,Z+8
  1368. 1344 0042 E02D mov r30,__tmp_reg__
  1369. 1345 0044 C216 cp r12,r18
  1370. 1346 0046 D306 cpc r13,r19
  1371. 1347 0048 00F4 brsh .L76
  1372. 1348 004a C601 movw r24,r12
  1373. 1349 004c 880F lsl r24
  1374. 1350 004e 991F rol r25
  1375. 1351 0050 E80F add r30,r24
  1376. 1352 0052 F91F adc r31,r25
  1377. 1353 0054 6081 ld r22,Z
  1378. 1354 0056 7181 ldd r23,Z+1
  1379. 1355 0058 6217 cp r22,r18
  1380. 1356 005a 7307 cpc r23,r19
  1381. 1357 005c 00F4 brsh .L69
  1382. 1358 005e AE01 movw r20,r28
  1383. 1359 0060 4F5F subi r20,-1
  1384. 1360 0062 5F4F sbci r21,-1
  1385. 1361 0064 D801 movw r26,r16
  1386. 1362 0066 8D91 ld r24,X+
  1387. 1363 0068 9C91 ld r25,X
  1388. 1364 006a 0E94 0000 call FlashReadBlockHead
  1389. 1365 006e 8D81 ldd r24,Y+5
  1390. 1366 0070 9E81 ldd r25,Y+6
  1391. 1367 0072 8815 cp r24,r8
  1392. 1368 0074 9905 cpc r25,r9
  1393. GAS LISTING /tmp/ccjPZxVo.s page 25
  1394. 1369 0076 01F4 brne .L69
  1395. 1370 0078 8F81 ldd r24,Y+7
  1396. 1371 007a 9885 ldd r25,Y+8
  1397. 1372 007c E816 cp r14,r24
  1398. 1373 007e F906 cpc r15,r25
  1399. 1374 0080 00F4 brsh .L69
  1400. 1375 0082 7C01 movw r14,r24
  1401. 1376 0084 5601 movw r10,r12
  1402. 1377 .L69:
  1403. 1378 0086 BFEF ldi r27,-1
  1404. 1379 0088 CB1A sub r12,r27
  1405. 1380 008a DB0A sbc r13,r27
  1406. 1381 008c 00C0 rjmp .L68
  1407. 1382 .L76:
  1408. 1383 008e D801 movw r26,r16
  1409. 1384 0090 8D91 ld r24,X+
  1410. 1385 0092 9C91 ld r25,X
  1411. 1386 0094 DC01 movw r26,r24
  1412. 1387 0096 1496 adiw r26,4
  1413. 1388 0098 8D91 ld r24,X+
  1414. 1389 009a 9C91 ld r25,X
  1415. 1390 009c 1597 sbiw r26,4+1
  1416. 1391 009e 880F lsl r24
  1417. 1392 00a0 991F rol r25
  1418. 1393 00a2 880F lsl r24
  1419. 1394 00a4 991F rol r25
  1420. 1395 00a6 0997 sbiw r24,9
  1421. 1396 00a8 8E9D mul r24,r14
  1422. 1397 00aa 6001 movw r12,r0
  1423. 1398 00ac 8F9D mul r24,r15
  1424. 1399 00ae D00C add r13,r0
  1425. 1400 00b0 9E9D mul r25,r14
  1426. 1401 00b2 D00C add r13,r0
  1427. 1402 00b4 1124 clr r1
  1428. 1403 00b6 E12C mov r14,__zero_reg__
  1429. 1404 00b8 F12C mov r15,__zero_reg__
  1430. 1405 00ba AA0C lsl r10
  1431. 1406 00bc BB1C rol r11
  1432. 1407 00be EA0D add r30,r10
  1433. 1408 00c0 FB1D adc r31,r11
  1434. 1409 00c2 8080 ld r8,Z
  1435. 1410 00c4 9180 ldd r9,Z+1
  1436. 1411 00c6 880C lsl r8
  1437. 1412 00c8 991C rol r9
  1438. 1413 00ca 880C lsl r8
  1439. 1414 00cc 991C rol r9
  1440. 1415 00ce 4FEF ldi r20,lo8(-1)
  1441. 1416 00d0 5FEF ldi r21,lo8(-1)
  1442. 1417 00d2 64E0 ldi r22,lo8(4)
  1443. 1418 00d4 A62E mov r10,r22
  1444. 1419 00d6 B12C mov r11,__zero_reg__
  1445. 1420 .L71:
  1446. 1421 00d8 B1E0 ldi r27,1
  1447. 1422 00da AB1A sub r10,r27
  1448. 1423 00dc B108 sbc r11,__zero_reg__
  1449. 1424 00de 00F0 brcs .L72
  1450. 1425 00e0 F801 movw r30,r16
  1451. GAS LISTING /tmp/ccjPZxVo.s page 26
  1452. 1426 00e2 8081 ld r24,Z
  1453. 1427 00e4 9181 ldd r25,Z+1
  1454. 1428 00e6 DC01 movw r26,r24
  1455. 1429 00e8 1896 adiw r26,8
  1456. 1430 00ea 6D91 ld r22,X+
  1457. 1431 00ec 7C91 ld r23,X
  1458. 1432 00ee 1997 sbiw r26,8+1
  1459. 1433 00f0 9401 movw r18,r8
  1460. 1434 00f2 2A0D add r18,r10
  1461. 1435 00f4 3B1D adc r19,r11
  1462. 1436 00f6 620F add r22,r18
  1463. 1437 00f8 731F adc r23,r19
  1464. 1438 00fa 5696 adiw r26,22
  1465. 1439 00fc ED91 ld r30,X+
  1466. 1440 00fe FC91 ld r31,X
  1467. 1441 0100 5797 sbiw r26,22+1
  1468. 1442 0102 1995 eicall
  1469. 1443 0104 40E0 ldi r20,0
  1470. 1444 0106 50E0 ldi r21,0
  1471. 1445 0108 0097 sbiw r24,0
  1472. 1446 010a 01F0 breq .L71
  1473. 1447 010c D801 movw r26,r16
  1474. 1448 010e ED91 ld r30,X+
  1475. 1449 0110 FC91 ld r31,X
  1476. 1450 0112 4481 ldd r20,Z+4
  1477. 1451 0114 5581 ldd r21,Z+5
  1478. 1452 0116 A49E mul r10,r20
  1479. 1453 0118 9001 movw r18,r0
  1480. 1454 011a A59E mul r10,r21
  1481. 1455 011c 300D add r19,r0
  1482. 1456 011e B49E mul r11,r20
  1483. 1457 0120 300D add r19,r0
  1484. 1458 0122 1124 clr r1
  1485. 1459 0124 0897 sbiw r24,8
  1486. 1460 0126 820F add r24,r18
  1487. 1461 0128 931F adc r25,r19
  1488. 1462 012a C80E add r12,r24
  1489. 1463 012c D91E adc r13,r25
  1490. 1464 012e E11C adc r14,__zero_reg__
  1491. 1465 0130 F11C adc r15,__zero_reg__
  1492. 1466 .L72:
  1493. 1467 0132 C701 movw r24,r14
  1494. 1468 0134 B601 movw r22,r12
  1495. 1469 /* epilogue start */
  1496. 1470 0136 2896 adiw r28,8
  1497. 1471 0138 0FB6 in __tmp_reg__,__SREG__
  1498. 1472 013a F894 cli
  1499. 1473 013c DEBF out __SP_H__,r29
  1500. 1474 013e 0FBE out __SREG__,__tmp_reg__
  1501. 1475 0140 CDBF out __SP_L__,r28
  1502. 1476 0142 DF91 pop r29
  1503. 1477 0144 CF91 pop r28
  1504. 1478 0146 1F91 pop r17
  1505. 1479 0148 0F91 pop r16
  1506. 1480 014a FF90 pop r15
  1507. 1481 014c EF90 pop r14
  1508. 1482 014e DF90 pop r13
  1509. GAS LISTING /tmp/ccjPZxVo.s page 27
  1510. 1483 0150 CF90 pop r12
  1511. 1484 0152 BF90 pop r11
  1512. 1485 0154 AF90 pop r10
  1513. 1486 0156 9F90 pop r9
  1514. 1487 0158 8F90 pop r8
  1515. 1488 015a 0895 ret
  1516. 1489 .size EntryScan.isra.1, .-EntryScan.isra.1
  1517. 1490 .section .text.PhysBlkAllocate,"ax",@progbits
  1518. 1491 .type PhysBlkAllocate, @function
  1519. 1492 PhysBlkAllocate:
  1520. 1493 0000 4F92 push r4
  1521. 1494 0002 5F92 push r5
  1522. 1495 0004 6F92 push r6
  1523. 1496 0006 7F92 push r7
  1524. 1497 0008 8F92 push r8
  1525. 1498 000a 9F92 push r9
  1526. 1499 000c AF92 push r10
  1527. 1500 000e BF92 push r11
  1528. 1501 0010 CF92 push r12
  1529. 1502 0012 DF92 push r13
  1530. 1503 0014 EF92 push r14
  1531. 1504 0016 FF92 push r15
  1532. 1505 0018 0F93 push r16
  1533. 1506 001a 1F93 push r17
  1534. 1507 001c CF93 push r28
  1535. 1508 001e DF93 push r29
  1536. 1509 0020 CDB7 in r28,__SP_L__
  1537. 1510 0022 DEB7 in r29,__SP_H__
  1538. 1511 0024 2997 sbiw r28,9
  1539. 1512 0026 0FB6 in __tmp_reg__,__SREG__
  1540. 1513 0028 F894 cli
  1541. 1514 002a DEBF out __SP_H__,r29
  1542. 1515 002c 0FBE out __SREG__,__tmp_reg__
  1543. 1516 002e CDBF out __SP_L__,r28
  1544. 1517 /* prologue: function */
  1545. 1518 /* frame size = 9 */
  1546. 1519 /* stack size = 25 */
  1547. 1520 .L__stack_usage = 25
  1548. 1521 0030 8C01 movw r16,r24
  1549. 1522 0032 6B01 movw r12,r22
  1550. 1523 .L112:
  1551. 1524 0034 D801 movw r26,r16
  1552. 1525 0036 1596 adiw r26,5
  1553. 1526 0038 8D91 ld r24,X+
  1554. 1527 003a 9C91 ld r25,X
  1555. 1528 003c 1697 sbiw r26,5+1
  1556. 1529 003e C114 cp r12,__zero_reg__
  1557. 1530 0040 D104 cpc r13,__zero_reg__
  1558. 1531 0042 01F4 brne .L78
  1559. 1532 0044 2091 0000 lds r18,min_used+73
  1560. 1533 0048 3091 0000 lds r19,min_used+73+1
  1561. 1534 004c 2817 cp r18,r24
  1562. 1535 004e 3907 cpc r19,r25
  1563. 1536 0050 00F0 brlo .+2
  1564. 1537 0052 00C0 rjmp .L79
  1565. 1538 .L78:
  1566. 1539 0054 E0E0 ldi r30,lo8(min_used+1)
  1567. GAS LISTING /tmp/ccjPZxVo.s page 28
  1568. 1540 0056 F0E0 ldi r31,hi8(min_used+1)
  1569. 1541 0058 20E0 ldi r18,0
  1570. 1542 005a 30E0 ldi r19,0
  1571. 1543 .L89:
  1572. 1544 005c E080 ld r14,Z
  1573. 1545 005e F180 ldd r15,Z+1
  1574. 1546 0060 E816 cp r14,r24
  1575. 1547 0062 F906 cpc r15,r25
  1576. 1548 0064 00F0 brlo .+2
  1577. 1549 0066 00C0 rjmp .L80
  1578. 1550 0068 F901 movw r30,r18
  1579. 1551 006a EE0F lsl r30
  1580. 1552 006c FF1F rol r31
  1581. 1553 006e 2E0F add r18,r30
  1582. 1554 0070 3F1F adc r19,r31
  1583. 1555 0072 F901 movw r30,r18
  1584. 1556 0074 E050 subi r30,lo8(-(min_used))
  1585. 1557 0076 F040 sbci r31,hi8(-(min_used))
  1586. 1558 0078 2FEF ldi r18,lo8(-1)
  1587. 1559 007a 3FEF ldi r19,lo8(-1)
  1588. 1560 007c 3283 std Z+2,r19
  1589. 1561 007e 2183 std Z+1,r18
  1590. 1562 0080 20E0 ldi r18,0
  1591. 1563 0082 30E0 ldi r19,0
  1592. 1564 .L81:
  1593. 1565 0084 8217 cp r24,r18
  1594. 1566 0086 9307 cpc r25,r19
  1595. 1567 0088 01F4 brne .+2
  1596. 1568 008a 00C0 rjmp .L87
  1597. 1569 008c 4901 movw r8,r18
  1598. 1570 008e 880C lsl r8
  1599. 1571 0090 991C rol r9
  1600. 1572 0092 D801 movw r26,r16
  1601. 1573 0094 1796 adiw r26,7
  1602. 1574 0096 ED91 ld r30,X+
  1603. 1575 0098 FC91 ld r31,X
  1604. 1576 009a 1897 sbiw r26,7+1
  1605. 1577 009c E80D add r30,r8
  1606. 1578 009e F91D adc r31,r9
  1607. 1579 00a0 A080 ld r10,Z
  1608. 1580 00a2 B180 ldd r11,Z+1
  1609. 1581 00a4 EA14 cp r14,r10
  1610. 1582 00a6 FB04 cpc r15,r11
  1611. 1583 00a8 01F0 breq .+2
  1612. 1584 00aa 00C0 rjmp .L82
  1613. 1585 00ac B601 movw r22,r12
  1614. 1586 00ae 6F5F subi r22,-1
  1615. 1587 00b0 7F4F sbci r23,-1
  1616. 1588 00b2 C801 movw r24,r16
  1617. 1589 00b4 0E94 0000 call PhysBlkAllocate
  1618. 1590 00b8 6C01 movw r12,r24
  1619. 1591 00ba F801 movw r30,r16
  1620. 1592 00bc 8581 ldd r24,Z+5
  1621. 1593 00be 9681 ldd r25,Z+6
  1622. 1594 00c0 C816 cp r12,r24
  1623. 1595 00c2 D906 cpc r13,r25
  1624. 1596 00c4 00F0 brlo .+2
  1625. GAS LISTING /tmp/ccjPZxVo.s page 29
  1626. 1597 00c6 00C0 rjmp .L116
  1627. 1598 00c8 8781 ldd r24,Z+7
  1628. 1599 00ca 9085 ldd r25,Z+8
  1629. 1600 00cc FC01 movw r30,r24
  1630. 1601 00ce E80D add r30,r8
  1631. 1602 00d0 F91D adc r31,r9
  1632. 1603 00d2 D182 std Z+1,r13
  1633. 1604 00d4 C082 st Z,r12
  1634. 1605 00d6 AE01 movw r20,r28
  1635. 1606 00d8 4F5F subi r20,-1
  1636. 1607 00da 5F4F sbci r21,-1
  1637. 1608 00dc B701 movw r22,r14
  1638. 1609 00de D801 movw r26,r16
  1639. 1610 00e0 8D91 ld r24,X+
  1640. 1611 00e2 9C91 ld r25,X
  1641. 1612 00e4 0E94 0000 call FlashReadBlockHead
  1642. 1613 00e8 AE01 movw r20,r28
  1643. 1614 00ea 475F subi r20,-9
  1644. 1615 00ec 5F4F sbci r21,-1
  1645. 1616 00ee B601 movw r22,r12
  1646. 1617 00f0 F801 movw r30,r16
  1647. 1618 00f2 8081 ld r24,Z
  1648. 1619 00f4 9181 ldd r25,Z+1
  1649. 1620 00f6 0E94 0000 call FlashReadBlockFoot
  1650. 1621 00fa B601 movw r22,r12
  1651. 1622 00fc D801 movw r26,r16
  1652. 1623 00fe 8D91 ld r24,X+
  1653. 1624 0100 9C91 ld r25,X
  1654. 1625 0102 0E94 0000 call FlashEraseBlockData
  1655. 1626 0106 812C mov r8,__zero_reg__
  1656. 1627 0108 912C mov r9,__zero_reg__
  1657. 1628 .L86:
  1658. 1629 010a 9401 movw r18,r8
  1659. 1630 010c A601 movw r20,r12
  1660. 1631 010e B501 movw r22,r10
  1661. 1632 0110 F801 movw r30,r16
  1662. 1633 0112 8081 ld r24,Z
  1663. 1634 0114 9181 ldd r25,Z+1
  1664. 1635 0116 0E94 0000 call FlashUnitCopy
  1665. 1636 011a 282D mov r18,r8
  1666. 1637 011c D801 movw r26,r16
  1667. 1638 011e 8D91 ld r24,X+
  1668. 1639 0120 9C91 ld r25,X
  1669. 1640 0122 8114 cp r8,__zero_reg__
  1670. 1641 0124 9104 cpc r9,__zero_reg__
  1671. 1642 0126 01F4 brne .L84
  1672. 1643 0128 AE01 movw r20,r28
  1673. 1644 012a 4F5F subi r20,-1
  1674. 1645 012c 5F4F sbci r21,-1
  1675. 1646 012e B601 movw r22,r12
  1676. 1647 0130 0E94 0000 call FlashWriteBlockHead
  1677. 1648 0134 00C0 rjmp .L85
  1678. 1649 .L84:
  1679. 1650 0136 2330 cpi r18,lo8(3)
  1680. 1651 0138 01F4 brne .L85
  1681. 1652 013a AE01 movw r20,r28
  1682. 1653 013c 475F subi r20,-9
  1683. GAS LISTING /tmp/ccjPZxVo.s page 30
  1684. 1654 013e 5F4F sbci r21,-1
  1685. 1655 0140 B601 movw r22,r12
  1686. 1656 0142 0E94 0000 call FlashWriteBlockFoot
  1687. 1657 .L85:
  1688. 1658 0146 A401 movw r20,r8
  1689. 1659 0148 B601 movw r22,r12
  1690. 1660 014a F801 movw r30,r16
  1691. 1661 014c 8081 ld r24,Z
  1692. 1662 014e 9181 ldd r25,Z+1
  1693. 1663 0150 0E94 0000 call FlashUnitCommit
  1694. 1664 0154 FFEF ldi r31,-1
  1695. 1665 0156 8F1A sub r8,r31
  1696. 1666 0158 9F0A sbc r9,r31
  1697. 1667 015a 44E0 ldi r20,4
  1698. 1668 015c 8416 cp r8,r20
  1699. 1669 015e 9104 cpc r9,__zero_reg__
  1700. 1670 0160 01F4 brne .L86
  1701. 1671 0162 B501 movw r22,r10
  1702. 1672 0164 D801 movw r26,r16
  1703. 1673 0166 8D91 ld r24,X+
  1704. 1674 0168 9C91 ld r25,X
  1705. 1675 016a 0E94 0000 call FlashEraseEntry
  1706. 1676 016e 00C0 rjmp .L87
  1707. 1677 .L82:
  1708. 1678 0170 2F5F subi r18,-1
  1709. 1679 0172 3F4F sbci r19,-1
  1710. 1680 0174 00C0 rjmp .L81
  1711. 1681 .L80:
  1712. 1682 0176 2F5F subi r18,-1
  1713. 1683 0178 3F4F sbci r19,-1
  1714. 1684 017a 3396 adiw r30,3
  1715. 1685 017c 2032 cpi r18,32
  1716. 1686 017e 3105 cpc r19,__zero_reg__
  1717. 1687 0180 01F0 breq .+2
  1718. 1688 0182 00C0 rjmp .L89
  1719. 1689 .L79:
  1720. 1690 0184 61E0 ldi r22,lo8(1)
  1721. 1691 0186 70E0 ldi r23,0
  1722. 1692 0188 0E94 0000 call calloc
  1723. 1693 018c 7C01 movw r14,r24
  1724. 1694 018e 0097 sbiw r24,0
  1725. 1695 0190 01F0 breq .L90
  1726. 1696 0192 5C01 movw r10,r24
  1727. 1697 0194 00C0 rjmp .L91
  1728. 1698 .L126:
  1729. 1699 0196 20E0 ldi r18,0
  1730. 1700 0198 30E0 ldi r19,0
  1731. 1701 .L94:
  1732. 1702 019a 2417 cp r18,r20
  1733. 1703 019c 3507 cpc r19,r21
  1734. 1704 019e 01F0 breq .+2
  1735. 1705 01a0 00C0 rjmp .L96
  1736. 1706 01a2 F701 movw r30,r14
  1737. 1707 01a4 9191 ld r25,Z+
  1738. 1708 01a6 D801 movw r26,r16
  1739. 1709 01a8 1596 adiw r26,5
  1740. 1710 01aa 4D91 ld r20,X+
  1741. GAS LISTING /tmp/ccjPZxVo.s page 31
  1742. 1711 01ac 5C91 ld r21,X
  1743. 1712 01ae 1697 sbiw r26,5+1
  1744. 1713 01b0 292F mov r18,r25
  1745. 1714 .L97:
  1746. 1715 01b2 BF01 movw r22,r30
  1747. 1716 01b4 6E19 sub r22,r14
  1748. 1717 01b6 7F09 sbc r23,r15
  1749. 1718 01b8 6417 cp r22,r20
  1750. 1719 01ba 7507 cpc r23,r21
  1751. 1720 01bc 00F4 brsh .+2
  1752. 1721 01be 00C0 rjmp .L101
  1753. 1722 .L104:
  1754. 1723 01c0 40E6 ldi r20,lo8(96)
  1755. 1724 01c2 50E0 ldi r21,0
  1756. 1725 01c4 6FEF ldi r22,lo8(-1)
  1757. 1726 01c6 70E0 ldi r23,0
  1758. 1727 01c8 80E0 ldi r24,lo8(min_used)
  1759. 1728 01ca 90E0 ldi r25,hi8(min_used)
  1760. 1729 01cc 0E94 0000 call memset
  1761. 1730 01d0 2701 movw r4,r14
  1762. 1731 .L102:
  1763. 1732 01d2 5201 movw r10,r4
  1764. 1733 01d4 AE18 sub r10,r14
  1765. 1734 01d6 BF08 sbc r11,r15
  1766. 1735 01d8 F801 movw r30,r16
  1767. 1736 01da 8581 ldd r24,Z+5
  1768. 1737 01dc 9681 ldd r25,Z+6
  1769. 1738 01de A816 cp r10,r24
  1770. 1739 01e0 B906 cpc r11,r25
  1771. 1740 01e2 00F4 brsh .+2
  1772. 1741 01e4 00C0 rjmp .L111
  1773. 1742 01e6 C701 movw r24,r14
  1774. 1743 01e8 0E94 0000 call free
  1775. 1744 01ec C114 cp r12,__zero_reg__
  1776. 1745 01ee D104 cpc r13,__zero_reg__
  1777. 1746 01f0 01F4 brne .+2
  1778. 1747 01f2 00C0 rjmp .L112
  1779. 1748 .L90:
  1780. 1749 01f4 E12C mov r14,__zero_reg__
  1781. 1750 01f6 F12C mov r15,__zero_reg__
  1782. 1751 01f8 00C0 rjmp .L92
  1783. 1752 .L91:
  1784. 1753 01fa F801 movw r30,r16
  1785. 1754 01fc 4581 ldd r20,Z+5
  1786. 1755 01fe 5681 ldd r21,Z+6
  1787. 1756 0200 B501 movw r22,r10
  1788. 1757 0202 6E19 sub r22,r14
  1789. 1758 0204 7F09 sbc r23,r15
  1790. 1759 0206 6417 cp r22,r20
  1791. 1760 0208 7507 cpc r23,r21
  1792. 1761 020a 00F4 brsh .L126
  1793. 1762 020c AE01 movw r20,r28
  1794. 1763 020e 4F5F subi r20,-1
  1795. 1764 0210 5F4F sbci r21,-1
  1796. 1765 0212 F801 movw r30,r16
  1797. 1766 0214 8081 ld r24,Z
  1798. 1767 0216 9181 ldd r25,Z+1
  1799. GAS LISTING /tmp/ccjPZxVo.s page 32
  1800. 1768 0218 0E94 0000 call FlashReadBlockFoot
  1801. 1769 021c 8981 ldd r24,Y+1
  1802. 1770 021e D501 movw r26,r10
  1803. 1771 0220 8D93 st X+,r24
  1804. 1772 0222 5D01 movw r10,r26
  1805. 1773 0224 00C0 rjmp .L91
  1806. 1774 .L96:
  1807. 1775 0226 D801 movw r26,r16
  1808. 1776 0228 1796 adiw r26,7
  1809. 1777 022a ED91 ld r30,X+
  1810. 1778 022c FC91 ld r31,X
  1811. 1779 022e 1897 sbiw r26,7+1
  1812. 1780 0230 C901 movw r24,r18
  1813. 1781 0232 880F lsl r24
  1814. 1782 0234 991F rol r25
  1815. 1783 0236 E80F add r30,r24
  1816. 1784 0238 F91F adc r31,r25
  1817. 1785 023a 0190 ld __tmp_reg__,Z+
  1818. 1786 023c F081 ld r31,Z
  1819. 1787 023e E02D mov r30,__tmp_reg__
  1820. 1788 0240 E417 cp r30,r20
  1821. 1789 0242 F507 cpc r31,r21
  1822. 1790 0244 00F4 brsh .L95
  1823. 1791 0246 EE0D add r30,r14
  1824. 1792 0248 FF1D adc r31,r15
  1825. 1793 024a 8081 ld r24,Z
  1826. 1794 024c 815E subi r24,lo8(-(31))
  1827. 1795 024e 8083 st Z,r24
  1828. 1796 .L95:
  1829. 1797 0250 2F5F subi r18,-1
  1830. 1798 0252 3F4F sbci r19,-1
  1831. 1799 0254 00C0 rjmp .L94
  1832. 1800 .L101:
  1833. 1801 0256 8191 ld r24,Z+
  1834. 1802 0258 8917 cp r24,r25
  1835. 1803 025a 00F4 brsh .L98
  1836. 1804 025c 622F mov r22,r18
  1837. 1805 025e 70E0 ldi r23,0
  1838. 1806 0260 681B sub r22,r24
  1839. 1807 0262 7109 sbc r23,__zero_reg__
  1840. 1808 0264 6038 cpi r22,-128
  1841. 1809 0266 7105 cpc r23,__zero_reg__
  1842. 1810 0268 04F4 brge .L118
  1843. 1811 026a 982F mov r25,r24
  1844. 1812 026c 00C0 rjmp .L97
  1845. 1813 .L98:
  1846. 1814 026e 2817 cp r18,r24
  1847. 1815 0270 00F0 brlo .+2
  1848. 1816 0272 00C0 rjmp .L97
  1849. 1817 0274 282F mov r18,r24
  1850. 1818 0276 30E0 ldi r19,0
  1851. 1819 0278 291B sub r18,r25
  1852. 1820 027a 3109 sbc r19,__zero_reg__
  1853. 1821 027c 2038 cpi r18,-128
  1854. 1822 027e 3105 cpc r19,__zero_reg__
  1855. 1823 0280 04F4 brge .L118
  1856. 1824 0282 282F mov r18,r24
  1857. GAS LISTING /tmp/ccjPZxVo.s page 33
  1858. 1825 0284 00C0 rjmp .L97
  1859. 1826 .L118:
  1860. 1827 0286 F701 movw r30,r14
  1861. 1828 .L124:
  1862. 1829 0288 CF01 movw r24,r30
  1863. 1830 028a 8E19 sub r24,r14
  1864. 1831 028c 9F09 sbc r25,r15
  1865. 1832 028e 8417 cp r24,r20
  1866. 1833 0290 9507 cpc r25,r21
  1867. 1834 0292 00F0 brlo .+2
  1868. 1835 0294 00C0 rjmp .L104
  1869. 1836 0296 8081 ld r24,Z
  1870. 1837 0298 8058 subi r24,lo8(-(-128))
  1871. 1838 029a 8193 st Z+,r24
  1872. 1839 029c 00C0 rjmp .L124
  1873. 1840 .L111:
  1874. 1841 029e 2091 0000 lds r18,min_used+94
  1875. 1842 02a2 3091 0000 lds r19,min_used+94+1
  1876. 1843 02a6 8217 cp r24,r18
  1877. 1844 02a8 9307 cpc r25,r19
  1878. 1845 02aa 00F0 brlo .L105
  1879. 1846 02ac 9091 0000 lds r25,min_used+93
  1880. 1847 02b0 F201 movw r30,r4
  1881. 1848 02b2 8081 ld r24,Z
  1882. 1849 02b4 8917 cp r24,r25
  1883. 1850 02b6 00F4 brsh .L106
  1884. 1851 .L105:
  1885. 1852 02b8 A0E0 ldi r26,lo8(min_used+96)
  1886. 1853 02ba B0E0 ldi r27,hi8(min_used+96)
  1887. 1854 02bc 8FE1 ldi r24,lo8(31)
  1888. 1855 02be 90E0 ldi r25,0
  1889. 1856 .L107:
  1890. 1857 02c0 9C01 movw r18,r24
  1891. 1858 02c2 2150 subi r18,1
  1892. 1859 02c4 3109 sbc r19,__zero_reg__
  1893. 1860 02c6 00F0 brcs .L109
  1894. 1861 02c8 F201 movw r30,r4
  1895. 1862 02ca 6081 ld r22,Z
  1896. 1863 02cc AD01 movw r20,r26
  1897. 1864 02ce 4650 subi r20,6
  1898. 1865 02d0 5109 sbc r21,__zero_reg__
  1899. 1866 02d2 FA01 movw r30,r20
  1900. 1867 02d4 4081 ld r20,Z
  1901. 1868 02d6 6417 cp r22,r20
  1902. 1869 02d8 00F0 brlo .L108
  1903. 1870 02da AD01 movw r20,r26
  1904. 1871 02dc 4550 subi r20,5
  1905. 1872 02de 5109 sbc r21,__zero_reg__
  1906. 1873 02e0 FA01 movw r30,r20
  1907. 1874 02e2 6081 ld r22,Z
  1908. 1875 02e4 7181 ldd r23,Z+1
  1909. 1876 02e6 F801 movw r30,r16
  1910. 1877 02e8 4581 ldd r20,Z+5
  1911. 1878 02ea 5681 ldd r21,Z+6
  1912. 1879 02ec 6417 cp r22,r20
  1913. 1880 02ee 7507 cpc r23,r21
  1914. 1881 02f0 00F0 brlo .L109
  1915. GAS LISTING /tmp/ccjPZxVo.s page 34
  1916. 1882 .L108:
  1917. 1883 02f2 1397 sbiw r26,3
  1918. 1884 02f4 CD01 movw r24,r26
  1919. 1885 02f6 0397 sbiw r24,3
  1920. 1886 02f8 FC01 movw r30,r24
  1921. 1887 02fa 6080 ld r6,Z
  1922. 1888 02fc 7180 ldd r7,Z+1
  1923. 1889 02fe 8280 ldd r8,Z+2
  1924. 1890 0300 6D92 st X+,r6
  1925. 1891 0302 7D92 st X+,r7
  1926. 1892 0304 8C92 st X,r8
  1927. 1893 0306 1297 sbiw r26,2
  1928. 1894 0308 C901 movw r24,r18
  1929. 1895 030a 00C0 rjmp .L107
  1930. 1896 .L109:
  1931. 1897 030c D201 movw r26,r4
  1932. 1898 030e 2C91 ld r18,X
  1933. 1899 0310 DC01 movw r26,r24
  1934. 1900 0312 AA0F lsl r26
  1935. 1901 0314 BB1F rol r27
  1936. 1902 0316 8A0F add r24,r26
  1937. 1903 0318 9B1F adc r25,r27
  1938. 1904 031a DC01 movw r26,r24
  1939. 1905 031c A050 subi r26,lo8(-(min_used))
  1940. 1906 031e B040 sbci r27,hi8(-(min_used))
  1941. 1907 0320 2C93 st X,r18
  1942. 1908 0322 1296 adiw r26,1+1
  1943. 1909 0324 BC92 st X,r11
  1944. 1910 0326 AE92 st -X,r10
  1945. 1911 0328 1197 sbiw r26,1
  1946. 1912 .L106:
  1947. 1913 032a BFEF ldi r27,-1
  1948. 1914 032c 4B1A sub r4,r27
  1949. 1915 032e 5B0A sbc r5,r27
  1950. 1916 0330 00C0 rjmp .L102
  1951. 1917 .L114:
  1952. 1918 0332 AE01 movw r20,r28
  1953. 1919 0334 4F5F subi r20,-1
  1954. 1920 0336 5F4F sbci r21,-1
  1955. 1921 0338 B701 movw r22,r14
  1956. 1922 033a D801 movw r26,r16
  1957. 1923 033c 8D91 ld r24,X+
  1958. 1924 033e 9C91 ld r25,X
  1959. 1925 0340 0E94 0000 call FlashReadBlockHead
  1960. 1926 0344 2981 ldd r18,Y+1
  1961. 1927 0346 3A81 ldd r19,Y+2
  1962. 1928 0348 F801 movw r30,r16
  1963. 1929 034a 8581 ldd r24,Z+5
  1964. 1930 034c 9681 ldd r25,Z+6
  1965. 1931 034e 2817 cp r18,r24
  1966. 1932 0350 3907 cpc r19,r25
  1967. 1933 0352 00F4 brsh .L87
  1968. 1934 0354 FFEF ldi r31,-1
  1969. 1935 0356 EF1A sub r14,r31
  1970. 1936 0358 FF0A sbc r15,r31
  1971. 1937 .L92:
  1972. 1938 035a D801 movw r26,r16
  1973. GAS LISTING /tmp/ccjPZxVo.s page 35
  1974. 1939 035c 1596 adiw r26,5
  1975. 1940 035e 8D91 ld r24,X+
  1976. 1941 0360 9C91 ld r25,X
  1977. 1942 0362 1697 sbiw r26,5+1
  1978. 1943 0364 E816 cp r14,r24
  1979. 1944 0366 F906 cpc r15,r25
  1980. 1945 0368 00F0 brlo .L114
  1981. 1946 036a 00C0 rjmp .L87
  1982. 1947 .L116:
  1983. 1948 036c 8FEF ldi r24,lo8(-1)
  1984. 1949 036e 9FEF ldi r25,lo8(-1)
  1985. 1950 0370 00C0 rjmp .L125
  1986. 1951 .L87:
  1987. 1952 0372 C701 movw r24,r14
  1988. 1953 .L125:
  1989. 1954 /* epilogue start */
  1990. 1955 0374 2996 adiw r28,9
  1991. 1956 0376 0FB6 in __tmp_reg__,__SREG__
  1992. 1957 0378 F894 cli
  1993. 1958 037a DEBF out __SP_H__,r29
  1994. 1959 037c 0FBE out __SREG__,__tmp_reg__
  1995. 1960 037e CDBF out __SP_L__,r28
  1996. 1961 0380 DF91 pop r29
  1997. 1962 0382 CF91 pop r28
  1998. 1963 0384 1F91 pop r17
  1999. 1964 0386 0F91 pop r16
  2000. 1965 0388 FF90 pop r15
  2001. 1966 038a EF90 pop r14
  2002. 1967 038c DF90 pop r13
  2003. 1968 038e CF90 pop r12
  2004. 1969 0390 BF90 pop r11
  2005. 1970 0392 AF90 pop r10
  2006. 1971 0394 9F90 pop r9
  2007. 1972 0396 8F90 pop r8
  2008. 1973 0398 7F90 pop r7
  2009. 1974 039a 6F90 pop r6
  2010. 1975 039c 5F90 pop r5
  2011. 1976 039e 4F90 pop r4
  2012. 1977 03a0 0895 ret
  2013. 1978 .size PhysBlkAllocate, .-PhysBlkAllocate
  2014. 1979 .section .text.EntrySeek.part.4,"ax",@progbits
  2015. 1980 .type EntrySeek.part.4, @function
  2016. 1981 EntrySeek.part.4:
  2017. 1982 0000 8F92 push r8
  2018. 1983 0002 9F92 push r9
  2019. 1984 0004 AF92 push r10
  2020. 1985 0006 BF92 push r11
  2021. 1986 0008 CF92 push r12
  2022. 1987 000a DF92 push r13
  2023. 1988 000c EF92 push r14
  2024. 1989 000e FF92 push r15
  2025. 1990 0010 0F93 push r16
  2026. 1991 0012 1F93 push r17
  2027. 1992 0014 CF93 push r28
  2028. 1993 0016 DF93 push r29
  2029. 1994 0018 CDB7 in r28,__SP_L__
  2030. 1995 001a DEB7 in r29,__SP_H__
  2031. GAS LISTING /tmp/ccjPZxVo.s page 36
  2032. 1996 001c 2897 sbiw r28,8
  2033. 1997 001e 0FB6 in __tmp_reg__,__SREG__
  2034. 1998 0020 F894 cli
  2035. 1999 0022 DEBF out __SP_H__,r29
  2036. 2000 0024 0FBE out __SREG__,__tmp_reg__
  2037. 2001 0026 CDBF out __SP_L__,r28
  2038. 2002 /* prologue: function */
  2039. 2003 /* frame size = 8 */
  2040. 2004 /* stack size = 20 */
  2041. 2005 .L__stack_usage = 20
  2042. 2006 0028 7C01 movw r14,r24
  2043. 2007 002a 5B01 movw r10,r22
  2044. 2008 002c 4A01 movw r8,r20
  2045. 2009 002e 6C01 movw r12,r24
  2046. 2010 0030 82E0 ldi r24,2
  2047. 2011 0032 C80E add r12,r24
  2048. 2012 0034 D11C adc r13,__zero_reg__
  2049. 2013 0036 40E0 ldi r20,0
  2050. 2014 0038 50E0 ldi r21,0
  2051. 2015 003a BA01 movw r22,r20
  2052. 2016 003c C601 movw r24,r12
  2053. 2017 003e 0E94 0000 call NutEventWait
  2054. 2018 0042 00E8 ldi r16,lo8(-128)
  2055. 2019 0044 10E0 ldi r17,0
  2056. 2020 .L128:
  2057. 2021 0046 F701 movw r30,r14
  2058. 2022 0048 2581 ldd r18,Z+5
  2059. 2023 004a 3681 ldd r19,Z+6
  2060. 2024 004c 0217 cp r16,r18
  2061. 2025 004e 1307 cpc r17,r19
  2062. 2026 0050 00F4 brsh .L132
  2063. 2027 0052 D701 movw r26,r14
  2064. 2028 0054 1796 adiw r26,7
  2065. 2029 0056 ED91 ld r30,X+
  2066. 2030 0058 FC91 ld r31,X
  2067. 2031 005a 1897 sbiw r26,7+1
  2068. 2032 005c C801 movw r24,r16
  2069. 2033 005e 880F lsl r24
  2070. 2034 0060 991F rol r25
  2071. 2035 0062 E80F add r30,r24
  2072. 2036 0064 F91F adc r31,r25
  2073. 2037 0066 6081 ld r22,Z
  2074. 2038 0068 7181 ldd r23,Z+1
  2075. 2039 006a 6217 cp r22,r18
  2076. 2040 006c 7307 cpc r23,r19
  2077. 2041 006e 00F4 brsh .L129
  2078. 2042 0070 AE01 movw r20,r28
  2079. 2043 0072 4F5F subi r20,-1
  2080. 2044 0074 5F4F sbci r21,-1
  2081. 2045 0076 8D91 ld r24,X+
  2082. 2046 0078 9C91 ld r25,X
  2083. 2047 007a 0E94 0000 call FlashReadBlockHead
  2084. 2048 007e 8D81 ldd r24,Y+5
  2085. 2049 0080 9E81 ldd r25,Y+6
  2086. 2050 0082 8A15 cp r24,r10
  2087. 2051 0084 9B05 cpc r25,r11
  2088. 2052 0086 01F4 brne .L129
  2089. GAS LISTING /tmp/ccjPZxVo.s page 37
  2090. 2053 0088 8F81 ldd r24,Y+7
  2091. 2054 008a 9885 ldd r25,Y+8
  2092. 2055 008c 8815 cp r24,r8
  2093. 2056 008e 9905 cpc r25,r9
  2094. 2057 0090 01F0 breq .L132
  2095. 2058 .L129:
  2096. 2059 0092 0F5F subi r16,-1
  2097. 2060 0094 1F4F sbci r17,-1
  2098. 2061 0096 00C0 rjmp .L128
  2099. 2062 .L132:
  2100. 2063 0098 C601 movw r24,r12
  2101. 2064 009a 0E94 0000 call NutEventPost
  2102. 2065 009e C801 movw r24,r16
  2103. 2066 /* epilogue start */
  2104. 2067 00a0 2896 adiw r28,8
  2105. 2068 00a2 0FB6 in __tmp_reg__,__SREG__
  2106. 2069 00a4 F894 cli
  2107. 2070 00a6 DEBF out __SP_H__,r29
  2108. 2071 00a8 0FBE out __SREG__,__tmp_reg__
  2109. 2072 00aa CDBF out __SP_L__,r28
  2110. 2073 00ac DF91 pop r29
  2111. 2074 00ae CF91 pop r28
  2112. 2075 00b0 1F91 pop r17
  2113. 2076 00b2 0F91 pop r16
  2114. 2077 00b4 FF90 pop r15
  2115. 2078 00b6 EF90 pop r14
  2116. 2079 00b8 DF90 pop r13
  2117. 2080 00ba CF90 pop r12
  2118. 2081 00bc BF90 pop r11
  2119. 2082 00be AF90 pop r10
  2120. 2083 00c0 9F90 pop r9
  2121. 2084 00c2 8F90 pop r8
  2122. 2085 00c4 0895 ret
  2123. 2086 .size EntrySeek.part.4, .-EntrySeek.part.4
  2124. 2087 .section .text.UFlashFileRead,"ax",@progbits
  2125. 2088 .type UFlashFileRead, @function
  2126. 2089 UFlashFileRead:
  2127. 2090 0000 2F92 push r2
  2128. 2091 0002 3F92 push r3
  2129. 2092 0004 4F92 push r4
  2130. 2093 0006 5F92 push r5
  2131. 2094 0008 6F92 push r6
  2132. 2095 000a 7F92 push r7
  2133. 2096 000c 8F92 push r8
  2134. 2097 000e 9F92 push r9
  2135. 2098 0010 AF92 push r10
  2136. 2099 0012 BF92 push r11
  2137. 2100 0014 CF92 push r12
  2138. 2101 0016 DF92 push r13
  2139. 2102 0018 EF92 push r14
  2140. 2103 001a FF92 push r15
  2141. 2104 001c 0F93 push r16
  2142. 2105 001e 1F93 push r17
  2143. 2106 0020 CF93 push r28
  2144. 2107 0022 DF93 push r29
  2145. 2108 0024 00D0 rcall .
  2146. 2109 0026 1F92 push __zero_reg__
  2147. GAS LISTING /tmp/ccjPZxVo.s page 38
  2148. 2110 0028 CDB7 in r28,__SP_L__
  2149. 2111 002a DEB7 in r29,__SP_H__
  2150. 2112 /* prologue: function */
  2151. 2113 /* frame size = 4 */
  2152. 2114 /* stack size = 22 */
  2153. 2115 .L__stack_usage = 22
  2154. 2116 002c 1C01 movw r2,r24
  2155. 2117 002e 3B01 movw r6,r22
  2156. 2118 0030 672B or r22,r23
  2157. 2119 0032 01F4 brne .+2
  2158. 2120 0034 00C0 rjmp .L149
  2159. 2121 0036 4115 cp r20,__zero_reg__
  2160. 2122 0038 5105 cpc r21,__zero_reg__
  2161. 2123 003a 01F4 brne .+2
  2162. 2124 003c 00C0 rjmp .L149
  2163. 2125 003e DC01 movw r26,r24
  2164. 2126 0040 1296 adiw r26,2
  2165. 2127 0042 0D90 ld __tmp_reg__,X+
  2166. 2128 0044 BC91 ld r27,X
  2167. 2129 0046 A02D mov r26,__tmp_reg__
  2168. 2130 0048 BC83 std Y+4,r27
  2169. 2131 004a AB83 std Y+3,r26
  2170. 2132 004c DC01 movw r26,r24
  2171. 2133 004e ED91 ld r30,X+
  2172. 2134 0050 FC91 ld r31,X
  2173. 2135 0052 A188 ldd r10,Z+17
  2174. 2136 0054 B288 ldd r11,Z+18
  2175. 2137 0056 EB81 ldd r30,Y+3
  2176. 2138 0058 FC81 ldd r31,Y+4
  2177. 2139 005a 8489 ldd r24,Z+20
  2178. 2140 005c 9589 ldd r25,Z+21
  2179. 2141 005e 2281 ldd r18,Z+2
  2180. 2142 0060 3381 ldd r19,Z+3
  2181. 2143 0062 821B sub r24,r18
  2182. 2144 0064 930B sbc r25,r19
  2183. 2145 0066 2A01 movw r4,r20
  2184. 2146 0068 8417 cp r24,r20
  2185. 2147 006a 9507 cpc r25,r21
  2186. 2148 006c 04F4 brge .L136
  2187. 2149 006e 2C01 movw r4,r24
  2188. 2150 .L136:
  2189. 2151 0070 C12C mov r12,__zero_reg__
  2190. 2152 0072 D12C mov r13,__zero_reg__
  2191. 2153 0074 C501 movw r24,r10
  2192. 2154 0076 0296 adiw r24,2
  2193. 2155 0078 9A83 std Y+2,r25
  2194. 2156 007a 8983 std Y+1,r24
  2195. 2157 .L137:
  2196. 2158 007c C414 cp r12,r4
  2197. 2159 007e D504 cpc r13,r5
  2198. 2160 0080 04F0 brlt .+2
  2199. 2161 0082 00C0 rjmp .L153
  2200. 2162 0084 AB81 ldd r26,Y+3
  2201. 2163 0086 BC81 ldd r27,Y+4
  2202. 2164 0088 1696 adiw r26,6
  2203. 2165 008a 2D91 ld r18,X+
  2204. 2166 008c 3C91 ld r19,X
  2205. GAS LISTING /tmp/ccjPZxVo.s page 39
  2206. 2167 008e 1797 sbiw r26,6+1
  2207. 2168 0090 F501 movw r30,r10
  2208. 2169 0092 8581 ldd r24,Z+5
  2209. 2170 0094 9681 ldd r25,Z+6
  2210. 2171 0096 2817 cp r18,r24
  2211. 2172 0098 3907 cpc r19,r25
  2212. 2173 009a 00F0 brlo .L138
  2213. 2174 009c 1896 adiw r26,8
  2214. 2175 009e 4D91 ld r20,X+
  2215. 2176 00a0 5C91 ld r21,X
  2216. 2177 00a2 1997 sbiw r26,8+1
  2217. 2178 00a4 8D91 ld r24,X+
  2218. 2179 00a6 9C91 ld r25,X
  2219. 2180 00a8 4115 cp r20,__zero_reg__
  2220. 2181 00aa 5105 cpc r21,__zero_reg__
  2221. 2182 00ac 01F0 breq .L139
  2222. 2183 00ae BC01 movw r22,r24
  2223. 2184 00b0 C501 movw r24,r10
  2224. 2185 00b2 0E94 0000 call EntrySeek.part.4
  2225. 2186 .L139:
  2226. 2187 00b6 AB81 ldd r26,Y+3
  2227. 2188 00b8 BC81 ldd r27,Y+4
  2228. 2189 00ba 1796 adiw r26,6+1
  2229. 2190 00bc 9C93 st X,r25
  2230. 2191 00be 8E93 st -X,r24
  2231. 2192 00c0 1697 sbiw r26,6
  2232. 2193 00c2 F501 movw r30,r10
  2233. 2194 00c4 2581 ldd r18,Z+5
  2234. 2195 00c6 3681 ldd r19,Z+6
  2235. 2196 00c8 8217 cp r24,r18
  2236. 2197 00ca 9307 cpc r25,r19
  2237. 2198 00cc 00F0 brlo .L138
  2238. 2199 .L144:
  2239. 2200 00ce 85E0 ldi r24,lo8(5)
  2240. 2201 00d0 90E0 ldi r25,0
  2241. 2202 00d2 9093 0000 sts errno+1,r25
  2242. 2203 00d6 8093 0000 sts errno,r24
  2243. 2204 00da 8FEF ldi r24,lo8(-1)
  2244. 2205 00dc 9FEF ldi r25,lo8(-1)
  2245. 2206 00de 00C0 rjmp .L135
  2246. 2207 .L138:
  2247. 2208 00e0 AB81 ldd r26,Y+3
  2248. 2209 00e2 BC81 ldd r27,Y+4
  2249. 2210 00e4 1A96 adiw r26,10
  2250. 2211 00e6 8D90 ld r8,X+
  2251. 2212 00e8 9C90 ld r9,X
  2252. 2213 00ea 1B97 sbiw r26,10+1
  2253. 2214 .L140:
  2254. 2215 00ec 24E0 ldi r18,4
  2255. 2216 00ee 8216 cp r8,r18
  2256. 2217 00f0 9104 cpc r9,__zero_reg__
  2257. 2218 00f2 04F4 brge .L137
  2258. 2219 00f4 40E0 ldi r20,0
  2259. 2220 00f6 50E0 ldi r21,0
  2260. 2221 00f8 BA01 movw r22,r20
  2261. 2222 00fa 8981 ldd r24,Y+1
  2262. 2223 00fc 9A81 ldd r25,Y+2
  2263. GAS LISTING /tmp/ccjPZxVo.s page 40
  2264. 2224 00fe 0E94 0000 call NutEventWait
  2265. 2225 0102 7201 movw r14,r4
  2266. 2226 0104 EC18 sub r14,r12
  2267. 2227 0106 FD08 sbc r15,r13
  2268. 2228 0108 EB81 ldd r30,Y+3
  2269. 2229 010a FC81 ldd r31,Y+4
  2270. 2230 010c 4485 ldd r20,Z+12
  2271. 2231 010e 5585 ldd r21,Z+13
  2272. 2232 0110 0680 ldd __tmp_reg__,Z+6
  2273. 2233 0112 F781 ldd r31,Z+7
  2274. 2234 0114 E02D mov r30,__tmp_reg__
  2275. 2235 0116 EE0F lsl r30
  2276. 2236 0118 FF1F rol r31
  2277. 2237 011a D501 movw r26,r10
  2278. 2238 011c 1796 adiw r26,7
  2279. 2239 011e 8D91 ld r24,X+
  2280. 2240 0120 9C91 ld r25,X
  2281. 2241 0122 1897 sbiw r26,7+1
  2282. 2242 0124 E80F add r30,r24
  2283. 2243 0126 F91F adc r31,r25
  2284. 2244 0128 6081 ld r22,Z
  2285. 2245 012a 7181 ldd r23,Z+1
  2286. 2246 012c 0D90 ld __tmp_reg__,X+
  2287. 2247 012e BC91 ld r27,X
  2288. 2248 0130 A02D mov r26,__tmp_reg__
  2289. 2249 0132 1496 adiw r26,4
  2290. 2250 0134 8D91 ld r24,X+
  2291. 2251 0136 9C91 ld r25,X
  2292. 2252 0138 1597 sbiw r26,4+1
  2293. 2253 013a 841B sub r24,r20
  2294. 2254 013c 950B sbc r25,r21
  2295. 2255 013e E3E0 ldi r30,3
  2296. 2256 0140 8E16 cp r8,r30
  2297. 2257 0142 9104 cpc r9,__zero_reg__
  2298. 2258 0144 01F4 brne .L142
  2299. 2259 0146 0197 sbiw r24,1
  2300. 2260 .L142:
  2301. 2261 0148 8E15 cp r24,r14
  2302. 2262 014a 9F05 cpc r25,r15
  2303. 2263 014c 04F4 brge .L143
  2304. 2264 014e 7C01 movw r14,r24
  2305. 2265 .L143:
  2306. 2266 0150 660F lsl r22
  2307. 2267 0152 771F rol r23
  2308. 2268 0154 660F lsl r22
  2309. 2269 0156 771F rol r23
  2310. 2270 0158 1896 adiw r26,8
  2311. 2271 015a 8D91 ld r24,X+
  2312. 2272 015c 9C91 ld r25,X
  2313. 2273 015e 1997 sbiw r26,8+1
  2314. 2274 0160 680F add r22,r24
  2315. 2275 0162 791F adc r23,r25
  2316. 2276 0164 680D add r22,r8
  2317. 2277 0166 791D adc r23,r9
  2318. 2278 0168 5296 adiw r26,18
  2319. 2279 016a ED91 ld r30,X+
  2320. 2280 016c FC91 ld r31,X
  2321. GAS LISTING /tmp/ccjPZxVo.s page 41
  2322. 2281 016e 5397 sbiw r26,18+1
  2323. 2282 0170 8701 movw r16,r14
  2324. 2283 0172 9301 movw r18,r6
  2325. 2284 0174 CD01 movw r24,r26
  2326. 2285 0176 1995 eicall
  2327. 2286 0178 8981 ldd r24,Y+1
  2328. 2287 017a 9A81 ldd r25,Y+2
  2329. 2288 017c 0E94 0000 call NutEventPost
  2330. 2289 0180 F7FC sbrc r15,7
  2331. 2290 0182 00C0 rjmp .L144
  2332. 2291 0184 CE0C add r12,r14
  2333. 2292 0186 DF1C adc r13,r15
  2334. 2293 0188 6E0C add r6,r14
  2335. 2294 018a 7F1C adc r7,r15
  2336. 2295 018c B701 movw r22,r14
  2337. 2296 018e C101 movw r24,r2
  2338. 2297 0190 0E94 0000 call EntryPosInc
  2339. 2298 0194 FFEF ldi r31,-1
  2340. 2299 0196 8F1A sub r8,r31
  2341. 2300 0198 9F0A sbc r9,r31
  2342. 2301 019a C414 cp r12,r4
  2343. 2302 019c D504 cpc r13,r5
  2344. 2303 019e 04F4 brge .+2
  2345. 2304 01a0 00C0 rjmp .L140
  2346. 2305 01a2 00C0 rjmp .L137
  2347. 2306 .L153:
  2348. 2307 01a4 C601 movw r24,r12
  2349. 2308 01a6 00C0 rjmp .L135
  2350. 2309 .L149:
  2351. 2310 01a8 80E0 ldi r24,0
  2352. 2311 01aa 90E0 ldi r25,0
  2353. 2312 .L135:
  2354. 2313 /* epilogue start */
  2355. 2314 01ac 0F90 pop __tmp_reg__
  2356. 2315 01ae 0F90 pop __tmp_reg__
  2357. 2316 01b0 0F90 pop __tmp_reg__
  2358. 2317 01b2 0F90 pop __tmp_reg__
  2359. 2318 01b4 DF91 pop r29
  2360. 2319 01b6 CF91 pop r28
  2361. 2320 01b8 1F91 pop r17
  2362. 2321 01ba 0F91 pop r16
  2363. 2322 01bc FF90 pop r15
  2364. 2323 01be EF90 pop r14
  2365. 2324 01c0 DF90 pop r13
  2366. 2325 01c2 CF90 pop r12
  2367. 2326 01c4 BF90 pop r11
  2368. 2327 01c6 AF90 pop r10
  2369. 2328 01c8 9F90 pop r9
  2370. 2329 01ca 8F90 pop r8
  2371. 2330 01cc 7F90 pop r7
  2372. 2331 01ce 6F90 pop r6
  2373. 2332 01d0 5F90 pop r5
  2374. 2333 01d2 4F90 pop r4
  2375. 2334 01d4 3F90 pop r3
  2376. 2335 01d6 2F90 pop r2
  2377. 2336 01d8 0895 ret
  2378. 2337 .size UFlashFileRead, .-UFlashFileRead
  2379. GAS LISTING /tmp/ccjPZxVo.s page 42
  2380. 2338 .section .text.UFlashFileOpen,"ax",@progbits
  2381. 2339 .type UFlashFileOpen, @function
  2382. 2340 UFlashFileOpen:
  2383. 2341 0000 2F92 push r2
  2384. 2342 0002 3F92 push r3
  2385. 2343 0004 4F92 push r4
  2386. 2344 0006 5F92 push r5
  2387. 2345 0008 6F92 push r6
  2388. 2346 000a 7F92 push r7
  2389. 2347 000c 8F92 push r8
  2390. 2348 000e 9F92 push r9
  2391. 2349 0010 AF92 push r10
  2392. 2350 0012 BF92 push r11
  2393. 2351 0014 CF92 push r12
  2394. 2352 0016 DF92 push r13
  2395. 2353 0018 EF92 push r14
  2396. 2354 001a FF92 push r15
  2397. 2355 001c 0F93 push r16
  2398. 2356 001e 1F93 push r17
  2399. 2357 0020 CF93 push r28
  2400. 2358 0022 DF93 push r29
  2401. 2359 0024 CDB7 in r28,__SP_L__
  2402. 2360 0026 DEB7 in r29,__SP_H__
  2403. 2361 0028 6597 sbiw r28,21
  2404. 2362 002a 0FB6 in __tmp_reg__,__SREG__
  2405. 2363 002c F894 cli
  2406. 2364 002e DEBF out __SP_H__,r29
  2407. 2365 0030 0FBE out __SREG__,__tmp_reg__
  2408. 2366 0032 CDBF out __SP_L__,r28
  2409. 2367 /* prologue: function */
  2410. 2368 /* frame size = 21 */
  2411. 2369 /* stack size = 39 */
  2412. 2370 .L__stack_usage = 39
  2413. 2371 0034 1C01 movw r2,r24
  2414. 2372 0036 4A01 movw r8,r20
  2415. 2373 0038 DC01 movw r26,r24
  2416. 2374 003a 5196 adiw r26,17
  2417. 2375 003c 0D91 ld r16,X+
  2418. 2376 003e 1C91 ld r17,X
  2419. 2377 0040 5297 sbiw r26,17+1
  2420. 2378 0042 CB01 movw r24,r22
  2421. 2379 .L155:
  2422. 2380 0044 2C01 movw r4,r24
  2423. 2381 0046 0196 adiw r24,1
  2424. 2382 0048 F201 movw r30,r4
  2425. 2383 004a 2081 ld r18,Z
  2426. 2384 004c 2F32 cpi r18,lo8(47)
  2427. 2385 004e 01F0 breq .L155
  2428. 2386 0050 6AE1 ldi r22,lo8(26)
  2429. 2387 0052 70E0 ldi r23,0
  2430. 2388 0054 81E0 ldi r24,lo8(1)
  2431. 2389 0056 90E0 ldi r25,0
  2432. 2390 0058 0E94 0000 call calloc
  2433. 2391 005c 6C01 movw r12,r24
  2434. 2392 005e 892B or r24,r25
  2435. 2393 0060 01F4 brne .+2
  2436. 2394 0062 00C0 rjmp .L170
  2437. GAS LISTING /tmp/ccjPZxVo.s page 43
  2438. 2395 0064 C401 movw r24,r8
  2439. 2396 0066 092C mov __tmp_reg__,r9
  2440. 2397 0068 000C lsl r0
  2441. 2398 006a AA0B sbc r26,r26
  2442. 2399 006c BB0B sbc r27,r27
  2443. 2400 006e F601 movw r30,r12
  2444. 2401 0070 8687 std Z+14,r24
  2445. 2402 0072 9787 std Z+15,r25
  2446. 2403 0074 A08B std Z+16,r26
  2447. 2404 0076 B18B std Z+17,r27
  2448. 2405 0078 20E8 ldi r18,lo8(-128)
  2449. 2406 007a 30E0 ldi r19,0
  2450. 2407 007c AE01 movw r20,r28
  2451. 2408 007e 435F subi r20,-13
  2452. 2409 0080 5F4F sbci r21,-1
  2453. 2410 0082 B201 movw r22,r4
  2454. 2411 0084 C801 movw r24,r16
  2455. 2412 0086 0E94 0000 call EntrySearchNext
  2456. 2413 008a 7C01 movw r14,r24
  2457. 2414 008c 3801 movw r6,r16
  2458. 2415 008e F2E0 ldi r31,2
  2459. 2416 0090 6F0E add r6,r31
  2460. 2417 0092 711C adc r7,__zero_reg__
  2461. 2418 0094 40E0 ldi r20,0
  2462. 2419 0096 50E0 ldi r21,0
  2463. 2420 0098 BA01 movw r22,r20
  2464. 2421 009a C301 movw r24,r6
  2465. 2422 009c 0E94 0000 call NutEventWait
  2466. 2423 00a0 20E8 ldi r18,-128
  2467. 2424 00a2 E216 cp r14,r18
  2468. 2425 00a4 F104 cpc r15,__zero_reg__
  2469. 2426 00a6 00F0 brlo .+2
  2470. 2427 00a8 00C0 rjmp .L157
  2471. 2428 00aa C401 movw r24,r8
  2472. 2429 00ac 8827 clr r24
  2473. 2430 00ae 9570 andi r25,5
  2474. 2431 00b0 8115 cp r24,__zero_reg__
  2475. 2432 00b2 9540 sbci r25,5
  2476. 2433 00b4 01F4 brne .L158
  2477. 2434 00b6 81E1 ldi r24,lo8(17)
  2478. 2435 00b8 90E0 ldi r25,0
  2479. 2436 00ba 00C0 rjmp .L178
  2480. 2437 .L158:
  2481. 2438 00bc 91FE sbrs r9,1
  2482. 2439 00be 00C0 rjmp .L160
  2483. 2440 00c0 1A86 std Y+10,__zero_reg__
  2484. 2441 00c2 1986 std Y+9,__zero_reg__
  2485. 2442 00c4 B701 movw r22,r14
  2486. 2443 00c6 C801 movw r24,r16
  2487. 2444 00c8 0E94 0000 call EntryTruncateSeq
  2488. 2445 00cc 60E0 ldi r22,0
  2489. 2446 00ce 70E0 ldi r23,0
  2490. 2447 00d0 C801 movw r24,r16
  2491. 2448 00d2 0E94 0000 call PhysBlkAllocate
  2492. 2449 00d6 5C01 movw r10,r24
  2493. 2450 00d8 D801 movw r26,r16
  2494. 2451 00da 1596 adiw r26,5
  2495. GAS LISTING /tmp/ccjPZxVo.s page 44
  2496. 2452 00dc 8D91 ld r24,X+
  2497. 2453 00de 9C91 ld r25,X
  2498. 2454 00e0 1697 sbiw r26,5+1
  2499. 2455 00e2 A816 cp r10,r24
  2500. 2456 00e4 B906 cpc r11,r25
  2501. 2457 00e6 00F0 brlo .+2
  2502. 2458 00e8 00C0 rjmp .L171
  2503. 2459 00ea 1796 adiw r26,7
  2504. 2460 00ec ED91 ld r30,X+
  2505. 2461 00ee FC91 ld r31,X
  2506. 2462 00f0 1897 sbiw r26,7+1
  2507. 2463 00f2 C701 movw r24,r14
  2508. 2464 00f4 880F lsl r24
  2509. 2465 00f6 991F rol r25
  2510. 2466 00f8 E80F add r30,r24
  2511. 2467 00fa F91F adc r31,r25
  2512. 2468 00fc 4080 ld r4,Z
  2513. 2469 00fe 5180 ldd r5,Z+1
  2514. 2470 0100 B182 std Z+1,r11
  2515. 2471 0102 A082 st Z,r10
  2516. 2472 0104 AE01 movw r20,r28
  2517. 2473 0106 415F subi r20,-15
  2518. 2474 0108 5F4F sbci r21,-1
  2519. 2475 010a B501 movw r22,r10
  2520. 2476 010c 8D91 ld r24,X+
  2521. 2477 010e 9C91 ld r25,X
  2522. 2478 0110 0E94 0000 call FlashReadBlockFoot
  2523. 2479 0114 B501 movw r22,r10
  2524. 2480 0116 F801 movw r30,r16
  2525. 2481 0118 8081 ld r24,Z
  2526. 2482 011a 9181 ldd r25,Z+1
  2527. 2483 011c 0E94 0000 call FlashEraseBlockData
  2528. 2484 0120 AE01 movw r20,r28
  2529. 2485 0122 4F5F subi r20,-1
  2530. 2486 0124 5F4F sbci r21,-1
  2531. 2487 0126 B201 movw r22,r4
  2532. 2488 0128 D801 movw r26,r16
  2533. 2489 012a 8D91 ld r24,X+
  2534. 2490 012c 9C91 ld r25,X
  2535. 2491 012e 0E94 0000 call FlashReadBlockHead
  2536. 2492 0132 9E01 movw r18,r28
  2537. 2493 0134 275F subi r18,-9
  2538. 2494 0136 3F4F sbci r19,-1
  2539. 2495 0138 AE01 movw r20,r28
  2540. 2496 013a 455F subi r20,-11
  2541. 2497 013c 5F4F sbci r21,-1
  2542. 2498 013e B201 movw r22,r4
  2543. 2499 0140 F801 movw r30,r16
  2544. 2500 0142 8081 ld r24,Z
  2545. 2501 0144 9181 ldd r25,Z+1
  2546. 2502 0146 0E94 0000 call FlashReadEntry
  2547. 2503 014a AE01 movw r20,r28
  2548. 2504 014c 4F5F subi r20,-1
  2549. 2505 014e 5F4F sbci r21,-1
  2550. 2506 0150 B501 movw r22,r10
  2551. 2507 0152 D801 movw r26,r16
  2552. 2508 0154 8D91 ld r24,X+
  2553. GAS LISTING /tmp/ccjPZxVo.s page 45
  2554. 2509 0156 9C91 ld r25,X
  2555. 2510 0158 0E94 0000 call FlashWriteBlockHead
  2556. 2511 015c 2985 ldd r18,Y+9
  2557. 2512 015e 3A85 ldd r19,Y+10
  2558. 2513 0160 AE01 movw r20,r28
  2559. 2514 0162 455F subi r20,-11
  2560. 2515 0164 5F4F sbci r21,-1
  2561. 2516 0166 B501 movw r22,r10
  2562. 2517 0168 F801 movw r30,r16
  2563. 2518 016a 8081 ld r24,Z
  2564. 2519 016c 9181 ldd r25,Z+1
  2565. 2520 016e 0E94 0000 call FlashWriteEntry
  2566. 2521 0172 8985 ldd r24,Y+9
  2567. 2522 0174 9A85 ldd r25,Y+10
  2568. 2523 0176 0E94 0000 call free
  2569. 2524 017a 40E0 ldi r20,0
  2570. 2525 017c 50E0 ldi r21,0
  2571. 2526 017e B501 movw r22,r10
  2572. 2527 0180 D801 movw r26,r16
  2573. 2528 0182 8D91 ld r24,X+
  2574. 2529 0184 9C91 ld r25,X
  2575. 2530 0186 0E94 0000 call FlashUnitCommit
  2576. 2531 018a AE01 movw r20,r28
  2577. 2532 018c 415F subi r20,-15
  2578. 2533 018e 5F4F sbci r21,-1
  2579. 2534 0190 B501 movw r22,r10
  2580. 2535 0192 F801 movw r30,r16
  2581. 2536 0194 8081 ld r24,Z
  2582. 2537 0196 9181 ldd r25,Z+1
  2583. 2538 0198 0E94 0000 call FlashWriteBlockFoot
  2584. 2539 019c 43E0 ldi r20,lo8(3)
  2585. 2540 019e 50E0 ldi r21,0
  2586. 2541 01a0 B501 movw r22,r10
  2587. 2542 01a2 D801 movw r26,r16
  2588. 2543 01a4 8D91 ld r24,X+
  2589. 2544 01a6 9C91 ld r25,X
  2590. 2545 01a8 0E94 0000 call FlashUnitCommit
  2591. 2546 01ac B201 movw r22,r4
  2592. 2547 01ae F801 movw r30,r16
  2593. 2548 01b0 8081 ld r24,Z
  2594. 2549 01b2 9181 ldd r25,Z+1
  2595. 2550 01b4 0E94 0000 call FlashEraseEntry
  2596. 2551 01b8 80E0 ldi r24,0
  2597. 2552 01ba 90E0 ldi r25,0
  2598. 2553 01bc 00C0 rjmp .L161
  2599. 2554 .L171:
  2600. 2555 01be 8FEF ldi r24,lo8(-1)
  2601. 2556 01c0 9FEF ldi r25,lo8(-1)
  2602. 2557 .L161:
  2603. 2558 01c2 892B or r24,r25
  2604. 2559 01c4 01F4 brne .+2
  2605. 2560 01c6 00C0 rjmp .L176
  2606. 2561 01c8 00C0 rjmp .L159
  2607. 2562 .L160:
  2608. 2563 01ca B701 movw r22,r14
  2609. 2564 01cc C801 movw r24,r16
  2610. 2565 01ce 0E94 0000 call EntryScan.isra.1
  2611. GAS LISTING /tmp/ccjPZxVo.s page 46
  2612. 2566 01d2 2E85 ldd r18,Y+14
  2613. 2567 01d4 30E0 ldi r19,0
  2614. 2568 01d6 2E5F subi r18,-2
  2615. 2569 01d8 3F4F sbci r19,-1
  2616. 2570 01da AB01 movw r20,r22
  2617. 2571 01dc BC01 movw r22,r24
  2618. 2572 01de 421B sub r20,r18
  2619. 2573 01e0 530B sbc r21,r19
  2620. 2574 01e2 6109 sbc r22,__zero_reg__
  2621. 2575 01e4 7109 sbc r23,__zero_reg__
  2622. 2576 01e6 00C0 rjmp .L162
  2623. 2577 .L157:
  2624. 2578 01e8 90FE sbrs r9,0
  2625. 2579 01ea 00C0 rjmp .L164
  2626. 2580 01ec D801 movw r26,r16
  2627. 2581 01ee 1596 adiw r26,5
  2628. 2582 01f0 2D91 ld r18,X+
  2629. 2583 01f2 3C91 ld r19,X
  2630. 2584 01f4 1697 sbiw r26,5+1
  2631. 2585 01f6 1796 adiw r26,7
  2632. 2586 01f8 8D91 ld r24,X+
  2633. 2587 01fa 9C91 ld r25,X
  2634. 2588 01fc 1897 sbiw r26,7+1
  2635. 2589 01fe E12C mov r14,__zero_reg__
  2636. 2590 0200 F12C mov r15,__zero_reg__
  2637. 2591 .L166:
  2638. 2592 0202 A701 movw r20,r14
  2639. 2593 0204 440F lsl r20
  2640. 2594 0206 551F rol r21
  2641. 2595 0208 598B std Y+17,r21
  2642. 2596 020a 488B std Y+16,r20
  2643. 2597 020c 5C01 movw r10,r24
  2644. 2598 020e 0296 adiw r24,2
  2645. 2599 0210 D501 movw r26,r10
  2646. 2600 0212 4D91 ld r20,X+
  2647. 2601 0214 5C91 ld r21,X
  2648. 2602 0216 4217 cp r20,r18
  2649. 2603 0218 5307 cpc r21,r19
  2650. 2604 021a 00F4 brsh .+2
  2651. 2605 021c 00C0 rjmp .L165
  2652. 2606 021e 60E0 ldi r22,0
  2653. 2607 0220 70E0 ldi r23,0
  2654. 2608 0222 C801 movw r24,r16
  2655. 2609 0224 0E94 0000 call PhysBlkAllocate
  2656. 2610 0228 F501 movw r30,r10
  2657. 2611 022a 9183 std Z+1,r25
  2658. 2612 022c 8083 st Z,r24
  2659. 2613 022e F201 movw r30,r4
  2660. 2614 0:
  2661. 2615 0230 0190 ld __tmp_reg__,Z+
  2662. 2616 0232 0020 tst __tmp_reg__
  2663. 2617 0234 01F4 brne 0b
  2664. 2618 0236 3197 sbiw r30,1
  2665. 2619 0238 E419 sub r30,r4
  2666. 2620 023a F509 sbc r31,r5
  2667. 2621 023c EE87 std Y+14,r30
  2668. 2622 023e 1D86 std Y+13,__zero_reg__
  2669. GAS LISTING /tmp/ccjPZxVo.s page 47
  2670. 2623 0240 D801 movw r26,r16
  2671. 2624 0242 1796 adiw r26,7
  2672. 2625 0244 ED91 ld r30,X+
  2673. 2626 0246 FC91 ld r31,X
  2674. 2627 0248 1897 sbiw r26,7+1
  2675. 2628 024a 4889 ldd r20,Y+16
  2676. 2629 024c 5989 ldd r21,Y+17
  2677. 2630 024e E40F add r30,r20
  2678. 2631 0250 F51F adc r31,r21
  2679. 2632 0252 A080 ld r10,Z
  2680. 2633 0254 B180 ldd r11,Z+1
  2681. 2634 0256 AE01 movw r20,r28
  2682. 2635 0258 475F subi r20,-9
  2683. 2636 025a 5F4F sbci r21,-1
  2684. 2637 025c B501 movw r22,r10
  2685. 2638 025e 8D91 ld r24,X+
  2686. 2639 0260 9C91 ld r25,X
  2687. 2640 0262 0E94 0000 call FlashReadBlockFoot
  2688. 2641 0266 B501 movw r22,r10
  2689. 2642 0268 D801 movw r26,r16
  2690. 2643 026a 8D91 ld r24,X+
  2691. 2644 026c 9C91 ld r25,X
  2692. 2645 026e 0E94 0000 call FlashEraseBlockData
  2693. 2646 0272 FA82 std Y+2,r15
  2694. 2647 0274 E982 std Y+1,r14
  2695. 2648 0276 8FEF ldi r24,lo8(-1)
  2696. 2649 0278 9FEF ldi r25,lo8(-1)
  2697. 2650 027a 9C83 std Y+4,r25
  2698. 2651 027c 8B83 std Y+3,r24
  2699. 2652 027e FE82 std Y+6,r15
  2700. 2653 0280 ED82 std Y+5,r14
  2701. 2654 0282 1886 std Y+8,__zero_reg__
  2702. 2655 0284 1F82 std Y+7,__zero_reg__
  2703. 2656 0286 AE01 movw r20,r28
  2704. 2657 0288 4F5F subi r20,-1
  2705. 2658 028a 5F4F sbci r21,-1
  2706. 2659 028c B501 movw r22,r10
  2707. 2660 028e F801 movw r30,r16
  2708. 2661 0290 8081 ld r24,Z
  2709. 2662 0292 9181 ldd r25,Z+1
  2710. 2663 0294 0E94 0000 call FlashWriteBlockHead
  2711. 2664 0298 9201 movw r18,r4
  2712. 2665 029a AE01 movw r20,r28
  2713. 2666 029c 435F subi r20,-13
  2714. 2667 029e 5F4F sbci r21,-1
  2715. 2668 02a0 B501 movw r22,r10
  2716. 2669 02a2 D801 movw r26,r16
  2717. 2670 02a4 8D91 ld r24,X+
  2718. 2671 02a6 9C91 ld r25,X
  2719. 2672 02a8 0E94 0000 call FlashWriteEntry
  2720. 2673 02ac 40E0 ldi r20,0
  2721. 2674 02ae 50E0 ldi r21,0
  2722. 2675 02b0 B501 movw r22,r10
  2723. 2676 02b2 F801 movw r30,r16
  2724. 2677 02b4 8081 ld r24,Z
  2725. 2678 02b6 9181 ldd r25,Z+1
  2726. 2679 02b8 0E94 0000 call FlashUnitCommit
  2727. GAS LISTING /tmp/ccjPZxVo.s page 48
  2728. 2680 02bc AE01 movw r20,r28
  2729. 2681 02be 475F subi r20,-9
  2730. 2682 02c0 5F4F sbci r21,-1
  2731. 2683 02c2 B501 movw r22,r10
  2732. 2684 02c4 D801 movw r26,r16
  2733. 2685 02c6 8D91 ld r24,X+
  2734. 2686 02c8 9C91 ld r25,X
  2735. 2687 02ca 0E94 0000 call FlashWriteBlockFoot
  2736. 2688 02ce 43E0 ldi r20,lo8(3)
  2737. 2689 02d0 50E0 ldi r21,0
  2738. 2690 02d2 B501 movw r22,r10
  2739. 2691 02d4 F801 movw r30,r16
  2740. 2692 02d6 8081 ld r24,Z
  2741. 2693 02d8 9181 ldd r25,Z+1
  2742. 2694 02da 0E94 0000 call FlashUnitCommit
  2743. 2695 .L176:
  2744. 2696 02de 40E0 ldi r20,0
  2745. 2697 02e0 50E0 ldi r21,0
  2746. 2698 02e2 BA01 movw r22,r20
  2747. 2699 02e4 00C0 rjmp .L162
  2748. 2700 .L165:
  2749. 2701 02e6 FFEF ldi r31,-1
  2750. 2702 02e8 EF1A sub r14,r31
  2751. 2703 02ea FF0A sbc r15,r31
  2752. 2704 02ec 40E8 ldi r20,-128
  2753. 2705 02ee E416 cp r14,r20
  2754. 2706 02f0 F104 cpc r15,__zero_reg__
  2755. 2707 02f2 01F0 breq .+2
  2756. 2708 02f4 00C0 rjmp .L166
  2757. 2709 02f6 00C0 rjmp .L159
  2758. 2710 .L164:
  2759. 2711 02f8 82E0 ldi r24,lo8(2)
  2760. 2712 02fa 90E0 ldi r25,0
  2761. 2713 .L178:
  2762. 2714 02fc 9093 0000 sts errno+1,r25
  2763. 2715 0300 8093 0000 sts errno,r24
  2764. 2716 0304 00C0 rjmp .L159
  2765. 2717 .L162:
  2766. 2718 0306 8D85 ldd r24,Y+13
  2767. 2719 0308 D601 movw r26,r12
  2768. 2720 030a 5296 adiw r26,18
  2769. 2721 030c 8C93 st X,r24
  2770. 2722 030e 5297 sbiw r26,18
  2771. 2723 0310 8E85 ldd r24,Y+14
  2772. 2724 0312 5396 adiw r26,19
  2773. 2725 0314 8C93 st X,r24
  2774. 2726 0316 5397 sbiw r26,19
  2775. 2727 0318 90E0 ldi r25,0
  2776. 2728 031a 0296 adiw r24,2
  2777. 2729 031c 5996 adiw r26,24+1
  2778. 2730 031e 9C93 st X,r25
  2779. 2731 0320 8E93 st -X,r24
  2780. 2732 0322 5897 sbiw r26,24
  2781. 2733 0324 ED92 st X+,r14
  2782. 2734 0326 FC92 st X,r15
  2783. 2735 0328 F601 movw r30,r12
  2784. 2736 032a 448B std Z+20,r20
  2785. GAS LISTING /tmp/ccjPZxVo.s page 49
  2786. 2737 032c 558B std Z+21,r21
  2787. 2738 032e 668B std Z+22,r22
  2788. 2739 0330 778B std Z+23,r23
  2789. 2740 0332 84E0 ldi r24,lo8(4)
  2790. 2741 0334 90E0 ldi r25,0
  2791. 2742 0336 4A8B std Y+18,r20
  2792. 2743 0338 5B8B std Y+19,r21
  2793. 2744 033a 6C8B std Y+20,r22
  2794. 2745 033c 7D8B std Y+21,r23
  2795. 2746 033e 0E94 0000 call malloc
  2796. 2747 0342 8C01 movw r16,r24
  2797. 2748 0344 4A89 ldd r20,Y+18
  2798. 2749 0346 5B89 ldd r21,Y+19
  2799. 2750 0348 6C89 ldd r22,Y+20
  2800. 2751 034a 7D89 ldd r23,Y+21
  2801. 2752 034c 0097 sbiw r24,0
  2802. 2753 034e 01F4 brne .L167
  2803. 2754 0350 C601 movw r24,r12
  2804. 2755 0352 0E94 0000 call free
  2805. 2756 0356 C301 movw r24,r6
  2806. 2757 0358 0E94 0000 call NutEventPost
  2807. 2758 035c 00C0 rjmp .L170
  2808. 2759 .L167:
  2809. 2760 035e DC01 movw r26,r24
  2810. 2761 0360 1196 adiw r26,1
  2811. 2762 0362 3C92 st X,r3
  2812. 2763 0364 2E92 st -X,r2
  2813. 2764 0366 1396 adiw r26,2+1
  2814. 2765 0368 DC92 st X,r13
  2815. 2766 036a CE92 st -X,r12
  2816. 2767 036c 1297 sbiw r26,2
  2817. 2768 036e 83FE sbrs r8,3
  2818. 2769 0370 00C0 rjmp .L168
  2819. 2770 0372 8FEF ldi r24,lo8(-1)
  2820. 2771 0374 9FEF ldi r25,lo8(-1)
  2821. 2772 0376 F601 movw r30,r12
  2822. 2773 0378 9783 std Z+7,r25
  2823. 2774 037a 8683 std Z+6,r24
  2824. 2775 037c 00C0 rjmp .L177
  2825. 2776 .L168:
  2826. 2777 037e D601 movw r26,r12
  2827. 2778 0380 1796 adiw r26,6+1
  2828. 2779 0382 FC92 st X,r15
  2829. 2780 0384 EE92 st -X,r14
  2830. 2781 0386 1697 sbiw r26,6
  2831. 2782 0388 40E0 ldi r20,0
  2832. 2783 038a 50E0 ldi r21,0
  2833. 2784 038c BA01 movw r22,r20
  2834. 2785 .L177:
  2835. 2786 038e C801 movw r24,r16
  2836. 2787 0390 0E94 0000 call EntryPosSet
  2837. 2788 .L169:
  2838. 2789 0394 C301 movw r24,r6
  2839. 2790 0396 0E94 0000 call NutEventPost
  2840. 2791 039a C801 movw r24,r16
  2841. 2792 039c 00C0 rjmp .L175
  2842. 2793 .L170:
  2843. GAS LISTING /tmp/ccjPZxVo.s page 50
  2844. 2794 039e 8FEF ldi r24,lo8(-1)
  2845. 2795 03a0 9FEF ldi r25,lo8(-1)
  2846. 2796 03a2 00C0 rjmp .L175
  2847. 2797 .L159:
  2848. 2798 03a4 C601 movw r24,r12
  2849. 2799 03a6 0E94 0000 call free
  2850. 2800 03aa 0FEF ldi r16,lo8(-1)
  2851. 2801 03ac 1FEF ldi r17,lo8(-1)
  2852. 2802 03ae 00C0 rjmp .L169
  2853. 2803 .L175:
  2854. 2804 /* epilogue start */
  2855. 2805 03b0 6596 adiw r28,21
  2856. 2806 03b2 0FB6 in __tmp_reg__,__SREG__
  2857. 2807 03b4 F894 cli
  2858. 2808 03b6 DEBF out __SP_H__,r29
  2859. 2809 03b8 0FBE out __SREG__,__tmp_reg__
  2860. 2810 03ba CDBF out __SP_L__,r28
  2861. 2811 03bc DF91 pop r29
  2862. 2812 03be CF91 pop r28
  2863. 2813 03c0 1F91 pop r17
  2864. 2814 03c2 0F91 pop r16
  2865. 2815 03c4 FF90 pop r15
  2866. 2816 03c6 EF90 pop r14
  2867. 2817 03c8 DF90 pop r13
  2868. 2818 03ca CF90 pop r12
  2869. 2819 03cc BF90 pop r11
  2870. 2820 03ce AF90 pop r10
  2871. 2821 03d0 9F90 pop r9
  2872. 2822 03d2 8F90 pop r8
  2873. 2823 03d4 7F90 pop r7
  2874. 2824 03d6 6F90 pop r6
  2875. 2825 03d8 5F90 pop r5
  2876. 2826 03da 4F90 pop r4
  2877. 2827 03dc 3F90 pop r3
  2878. 2828 03de 2F90 pop r2
  2879. 2829 03e0 0895 ret
  2880. 2830 .size UFlashFileOpen, .-UFlashFileOpen
  2881. 2831 .section .text.UFlashFileWrite,"ax",@progbits
  2882. 2832 .type UFlashFileWrite, @function
  2883. 2833 UFlashFileWrite:
  2884. 2834 0000 2F92 push r2
  2885. 2835 0002 3F92 push r3
  2886. 2836 0004 4F92 push r4
  2887. 2837 0006 5F92 push r5
  2888. 2838 0008 6F92 push r6
  2889. 2839 000a 7F92 push r7
  2890. 2840 000c 8F92 push r8
  2891. 2841 000e 9F92 push r9
  2892. 2842 0010 AF92 push r10
  2893. 2843 0012 BF92 push r11
  2894. 2844 0014 CF92 push r12
  2895. 2845 0016 DF92 push r13
  2896. 2846 0018 EF92 push r14
  2897. 2847 001a FF92 push r15
  2898. 2848 001c 0F93 push r16
  2899. 2849 001e 1F93 push r17
  2900. 2850 0020 CF93 push r28
  2901. GAS LISTING /tmp/ccjPZxVo.s page 51
  2902. 2851 0022 DF93 push r29
  2903. 2852 0024 CDB7 in r28,__SP_L__
  2904. 2853 0026 DEB7 in r29,__SP_H__
  2905. 2854 0028 6397 sbiw r28,19
  2906. 2855 002a 0FB6 in __tmp_reg__,__SREG__
  2907. 2856 002c F894 cli
  2908. 2857 002e DEBF out __SP_H__,r29
  2909. 2858 0030 0FBE out __SREG__,__tmp_reg__
  2910. 2859 0032 CDBF out __SP_L__,r28
  2911. 2860 /* prologue: function */
  2912. 2861 /* frame size = 19 */
  2913. 2862 /* stack size = 37 */
  2914. 2863 .L__stack_usage = 37
  2915. 2864 0034 998B std Y+17,r25
  2916. 2865 0036 888B std Y+16,r24
  2917. 2866 0038 7B87 std Y+11,r23
  2918. 2867 003a 6A87 std Y+10,r22
  2919. 2868 003c 5D87 std Y+13,r21
  2920. 2869 003e 4C87 std Y+12,r20
  2921. 2870 0040 672B or r22,r23
  2922. 2871 0042 01F4 brne .+2
  2923. 2872 0044 00C0 rjmp .L205
  2924. 2873 0046 4115 cp r20,__zero_reg__
  2925. 2874 0048 5105 cpc r21,__zero_reg__
  2926. 2875 004a 01F4 brne .+2
  2927. 2876 004c 00C0 rjmp .L205
  2928. 2877 004e DC01 movw r26,r24
  2929. 2878 0050 1296 adiw r26,2
  2930. 2879 0052 4D90 ld r4,X+
  2931. 2880 0054 5C90 ld r5,X
  2932. 2881 0056 1397 sbiw r26,2+1
  2933. 2882 0058 ED91 ld r30,X+
  2934. 2883 005a FC91 ld r31,X
  2935. 2884 005c E188 ldd r14,Z+17
  2936. 2885 005e F288 ldd r15,Z+18
  2937. 2886 0060 1A01 movw r2,r20
  2938. 2887 0062 F701 movw r30,r14
  2939. 2888 0064 3296 adiw r30,2
  2940. 2889 0066 FF87 std Y+15,r31
  2941. 2890 0068 EE87 std Y+14,r30
  2942. 2891 .L203:
  2943. 2892 006a D201 movw r26,r4
  2944. 2893 006c 1696 adiw r26,6
  2945. 2894 006e 2D91 ld r18,X+
  2946. 2895 0070 3C91 ld r19,X
  2947. 2896 0072 1797 sbiw r26,6+1
  2948. 2897 0074 F701 movw r30,r14
  2949. 2898 0076 8581 ldd r24,Z+5
  2950. 2899 0078 9681 ldd r25,Z+6
  2951. 2900 007a 2817 cp r18,r24
  2952. 2901 007c 3907 cpc r19,r25
  2953. 2902 007e 00F0 brlo .L181
  2954. 2903 0080 1896 adiw r26,8
  2955. 2904 0082 4D91 ld r20,X+
  2956. 2905 0084 5C91 ld r21,X
  2957. 2906 0086 1997 sbiw r26,8+1
  2958. 2907 0088 8D91 ld r24,X+
  2959. GAS LISTING /tmp/ccjPZxVo.s page 52
  2960. 2908 008a 9C91 ld r25,X
  2961. 2909 008c 4115 cp r20,__zero_reg__
  2962. 2910 008e 5105 cpc r21,__zero_reg__
  2963. 2911 0090 01F0 breq .L182
  2964. 2912 0092 BC01 movw r22,r24
  2965. 2913 0094 C701 movw r24,r14
  2966. 2914 0096 0E94 0000 call EntrySeek.part.4
  2967. 2915 .L182:
  2968. 2916 009a D201 movw r26,r4
  2969. 2917 009c 1796 adiw r26,6+1
  2970. 2918 009e 9C93 st X,r25
  2971. 2919 00a0 8E93 st -X,r24
  2972. 2920 00a2 1697 sbiw r26,6
  2973. 2921 .L181:
  2974. 2922 00a4 40E0 ldi r20,0
  2975. 2923 00a6 50E0 ldi r21,0
  2976. 2924 00a8 BA01 movw r22,r20
  2977. 2925 00aa 8E85 ldd r24,Y+14
  2978. 2926 00ac 9F85 ldd r25,Y+15
  2979. 2927 00ae 0E94 0000 call NutEventWait
  2980. 2928 00b2 F201 movw r30,r4
  2981. 2929 00b4 0681 ldd r16,Z+6
  2982. 2930 00b6 1781 ldd r17,Z+7
  2983. 2931 00b8 D701 movw r26,r14
  2984. 2932 00ba 1596 adiw r26,5
  2985. 2933 00bc 8D91 ld r24,X+
  2986. 2934 00be 9C91 ld r25,X
  2987. 2935 00c0 1697 sbiw r26,5+1
  2988. 2936 00c2 0817 cp r16,r24
  2989. 2937 00c4 1907 cpc r17,r25
  2990. 2938 00c6 00F0 brlo .L183
  2991. 2939 00c8 00E8 ldi r16,lo8(-128)
  2992. 2940 00ca 10E0 ldi r17,0
  2993. 2941 00cc 00C0 rjmp .L184
  2994. 2942 .L183:
  2995. 2943 00ce 60E0 ldi r22,0
  2996. 2944 00d0 70E0 ldi r23,0
  2997. 2945 00d2 C701 movw r24,r14
  2998. 2946 00d4 0E94 0000 call PhysBlkAllocate
  2999. 2947 00d8 5C01 movw r10,r24
  3000. 2948 00da F701 movw r30,r14
  3001. 2949 00dc 8581 ldd r24,Z+5
  3002. 2950 00de 9681 ldd r25,Z+6
  3003. 2951 00e0 A816 cp r10,r24
  3004. 2952 00e2 B906 cpc r11,r25
  3005. 2953 00e4 00F4 brsh .L185
  3006. 2954 00e6 000F lsl r16
  3007. 2955 00e8 111F rol r17
  3008. 2956 00ea 0780 ldd __tmp_reg__,Z+7
  3009. 2957 00ec F085 ldd r31,Z+8
  3010. 2958 00ee E02D mov r30,__tmp_reg__
  3011. 2959 00f0 E00F add r30,r16
  3012. 2960 00f2 F11F adc r31,r17
  3013. 2961 00f4 9081 ld r25,Z
  3014. 2962 00f6 8181 ldd r24,Z+1
  3015. 2963 00f8 B182 std Z+1,r11
  3016. 2964 00fa A082 st Z,r10
  3017. GAS LISTING /tmp/ccjPZxVo.s page 53
  3018. 2965 00fc A92E mov r10,r25
  3019. 2966 00fe B82E mov r11,r24
  3020. 2967 .L185:
  3021. 2968 0100 D701 movw r26,r14
  3022. 2969 0102 1596 adiw r26,5
  3023. 2970 0104 8D91 ld r24,X+
  3024. 2971 0106 9C91 ld r25,X
  3025. 2972 0108 1697 sbiw r26,5+1
  3026. 2973 010a A816 cp r10,r24
  3027. 2974 010c B906 cpc r11,r25
  3028. 2975 010e 00F4 brsh .L214
  3029. 2976 0110 AE01 movw r20,r28
  3030. 2977 0112 4F5F subi r20,-1
  3031. 2978 0114 5F4F sbci r21,-1
  3032. 2979 0116 B501 movw r22,r10
  3033. 2980 0118 F701 movw r30,r14
  3034. 2981 011a 8081 ld r24,Z
  3035. 2982 011c 9181 ldd r25,Z+1
  3036. 2983 011e 0E94 0000 call FlashReadBlockHead
  3037. 2984 0122 00C0 rjmp .L188
  3038. 2985 .L189:
  3039. 2986 0124 0F5F subi r16,-1
  3040. 2987 0126 1F4F sbci r17,-1
  3041. 2988 .L184:
  3042. 2989 0128 0817 cp r16,r24
  3043. 2990 012a 1907 cpc r17,r25
  3044. 2991 012c 00F4 brsh .L190
  3045. 2992 012e D701 movw r26,r14
  3046. 2993 0130 1796 adiw r26,7
  3047. 2994 0132 CD90 ld r12,X+
  3048. 2995 0134 DC90 ld r13,X
  3049. 2996 0136 1897 sbiw r26,7+1
  3050. 2997 0138 9801 movw r18,r16
  3051. 2998 013a 220F lsl r18
  3052. 2999 013c 331F rol r19
  3053. 3000 013e C20E add r12,r18
  3054. 3001 0140 D31E adc r13,r19
  3055. 3002 0142 F601 movw r30,r12
  3056. 3003 0144 2081 ld r18,Z
  3057. 3004 0146 3181 ldd r19,Z+1
  3058. 3005 0148 2817 cp r18,r24
  3059. 3006 014a 3907 cpc r19,r25
  3060. 3007 014c 00F0 brlo .L189
  3061. 3008 014e 60E0 ldi r22,0
  3062. 3009 0150 70E0 ldi r23,0
  3063. 3010 0152 C701 movw r24,r14
  3064. 3011 0154 0E94 0000 call PhysBlkAllocate
  3065. 3012 0158 D601 movw r26,r12
  3066. 3013 015a 8D93 st X+,r24
  3067. 3014 015c 9C93 st X,r25
  3068. 3015 .L190:
  3069. 3016 015e F201 movw r30,r4
  3070. 3017 0160 1783 std Z+7,r17
  3071. 3018 0162 0683 std Z+6,r16
  3072. 3019 0164 D701 movw r26,r14
  3073. 3020 0166 1596 adiw r26,5
  3074. 3021 0168 8D91 ld r24,X+
  3075. GAS LISTING /tmp/ccjPZxVo.s page 54
  3076. 3022 016a 9C91 ld r25,X
  3077. 3023 016c 1697 sbiw r26,5+1
  3078. 3024 016e 0817 cp r16,r24
  3079. 3025 0170 1907 cpc r17,r25
  3080. 3026 0172 00F0 brlo .L192
  3081. 3027 .L214:
  3082. 3028 0174 8E85 ldd r24,Y+14
  3083. 3029 0176 9F85 ldd r25,Y+15
  3084. 3030 0178 0E94 0000 call NutEventPost
  3085. 3031 017c 8FEF ldi r24,lo8(-1)
  3086. 3032 017e 9FEF ldi r25,lo8(-1)
  3087. 3033 0180 00C0 rjmp .L180
  3088. 3034 .L192:
  3089. 3035 0182 C801 movw r24,r16
  3090. 3036 0184 880F lsl r24
  3091. 3037 0186 991F rol r25
  3092. 3038 0188 D701 movw r26,r14
  3093. 3039 018a 1796 adiw r26,7
  3094. 3040 018c ED91 ld r30,X+
  3095. 3041 018e FC91 ld r31,X
  3096. 3042 0190 1897 sbiw r26,7+1
  3097. 3043 0192 E80F add r30,r24
  3098. 3044 0194 F91F adc r31,r25
  3099. 3045 0196 A080 ld r10,Z
  3100. 3046 0198 B180 ldd r11,Z+1
  3101. 3047 019a 1A83 std Y+2,r17
  3102. 3048 019c 0983 std Y+1,r16
  3103. 3049 019e F201 movw r30,r4
  3104. 3050 01a0 8081 ld r24,Z
  3105. 3051 01a2 9181 ldd r25,Z+1
  3106. 3052 01a4 9E83 std Y+6,r25
  3107. 3053 01a6 8D83 std Y+5,r24
  3108. 3054 01a8 8085 ldd r24,Z+8
  3109. 3055 01aa 9185 ldd r25,Z+9
  3110. 3056 01ac 9887 std Y+8,r25
  3111. 3057 01ae 8F83 std Y+7,r24
  3112. 3058 01b0 8FEF ldi r24,lo8(-1)
  3113. 3059 01b2 9FEF ldi r25,lo8(-1)
  3114. 3060 01b4 9C83 std Y+4,r25
  3115. 3061 01b6 8B83 std Y+3,r24
  3116. 3062 .L188:
  3117. 3063 01b8 D201 movw r26,r4
  3118. 3064 01ba 1696 adiw r26,6
  3119. 3065 01bc ED91 ld r30,X+
  3120. 3066 01be FC91 ld r31,X
  3121. 3067 01c0 1797 sbiw r26,6+1
  3122. 3068 01c2 EE0F lsl r30
  3123. 3069 01c4 FF1F rol r31
  3124. 3070 01c6 D701 movw r26,r14
  3125. 3071 01c8 1796 adiw r26,7
  3126. 3072 01ca 8D91 ld r24,X+
  3127. 3073 01cc 9C91 ld r25,X
  3128. 3074 01ce 1897 sbiw r26,7+1
  3129. 3075 01d0 E80F add r30,r24
  3130. 3076 01d2 F91F adc r31,r25
  3131. 3077 01d4 6080 ld r6,Z
  3132. 3078 01d6 7180 ldd r7,Z+1
  3133. GAS LISTING /tmp/ccjPZxVo.s page 55
  3134. 3079 01d8 AE01 movw r20,r28
  3135. 3080 01da 475F subi r20,-9
  3136. 3081 01dc 5F4F sbci r21,-1
  3137. 3082 01de B301 movw r22,r6
  3138. 3083 01e0 8D91 ld r24,X+
  3139. 3084 01e2 9C91 ld r25,X
  3140. 3085 01e4 0E94 0000 call FlashReadBlockFoot
  3141. 3086 01e8 B301 movw r22,r6
  3142. 3087 01ea F701 movw r30,r14
  3143. 3088 01ec 8081 ld r24,Z
  3144. 3089 01ee 9181 ldd r25,Z+1
  3145. 3090 01f0 0E94 0000 call FlashEraseBlockData
  3146. 3091 01f4 C301 movw r24,r6
  3147. 3092 01f6 880F lsl r24
  3148. 3093 01f8 991F rol r25
  3149. 3094 01fa 880F lsl r24
  3150. 3095 01fc 991F rol r25
  3151. 3096 01fe 9B8B std Y+19,r25
  3152. 3097 0200 8A8B std Y+18,r24
  3153. 3098 0202 812C mov r8,__zero_reg__
  3154. 3099 0204 912C mov r9,__zero_reg__
  3155. 3100 .L201:
  3156. 3101 0206 9401 movw r18,r8
  3157. 3102 0208 A301 movw r20,r6
  3158. 3103 020a B501 movw r22,r10
  3159. 3104 020c D701 movw r26,r14
  3160. 3105 020e 8D91 ld r24,X+
  3161. 3106 0210 9C91 ld r25,X
  3162. 3107 0212 0E94 0000 call FlashUnitCopy
  3163. 3108 0216 8114 cp r8,__zero_reg__
  3164. 3109 0218 9104 cpc r9,__zero_reg__
  3165. 3110 021a 01F4 brne .L193
  3166. 3111 021c AE01 movw r20,r28
  3167. 3112 021e 4F5F subi r20,-1
  3168. 3113 0220 5F4F sbci r21,-1
  3169. 3114 0222 B301 movw r22,r6
  3170. 3115 0224 F701 movw r30,r14
  3171. 3116 0226 8081 ld r24,Z
  3172. 3117 0228 9181 ldd r25,Z+1
  3173. 3118 022a 0E94 0000 call FlashWriteBlockHead
  3174. 3119 022e 2114 cp r2,__zero_reg__
  3175. 3120 0230 3104 cpc r3,__zero_reg__
  3176. 3121 0232 01F4 brne .+2
  3177. 3122 0234 00C0 rjmp .L194
  3178. 3123 .L197:
  3179. 3124 0236 D201 movw r26,r4
  3180. 3125 0238 1A96 adiw r26,10
  3181. 3126 023a 8D91 ld r24,X+
  3182. 3127 023c 9C91 ld r25,X
  3183. 3128 023e 1B97 sbiw r26,10+1
  3184. 3129 0240 8816 cp r8,r24
  3185. 3130 0242 9906 cpc r9,r25
  3186. 3131 0244 01F0 breq .+2
  3187. 3132 0246 00C0 rjmp .L196
  3188. 3133 0248 00C0 rjmp .L215
  3189. 3134 .L193:
  3190. 3135 024a 2114 cp r2,__zero_reg__
  3191. GAS LISTING /tmp/ccjPZxVo.s page 56
  3192. 3136 024c 3104 cpc r3,__zero_reg__
  3193. 3137 024e 01F4 brne .L197
  3194. 3138 0250 00C0 rjmp .L196
  3195. 3139 .L215:
  3196. 3140 0252 F201 movw r30,r4
  3197. 3141 0254 4485 ldd r20,Z+12
  3198. 3142 0256 5585 ldd r21,Z+13
  3199. 3143 0258 F701 movw r30,r14
  3200. 3144 025a A081 ld r26,Z
  3201. 3145 025c B181 ldd r27,Z+1
  3202. 3146 025e 1496 adiw r26,4
  3203. 3147 0260 CD90 ld r12,X+
  3204. 3148 0262 DC90 ld r13,X
  3205. 3149 0264 1597 sbiw r26,4+1
  3206. 3150 0266 C41A sub r12,r20
  3207. 3151 0268 D50A sbc r13,r21
  3208. 3152 026a F3E0 ldi r31,3
  3209. 3153 026c 8F16 cp r8,r31
  3210. 3154 026e 9104 cpc r9,__zero_reg__
  3211. 3155 0270 01F4 brne .L199
  3212. 3156 0272 81E0 ldi r24,1
  3213. 3157 0274 C81A sub r12,r24
  3214. 3158 0276 D108 sbc r13,__zero_reg__
  3215. 3159 .L199:
  3216. 3160 0278 2C14 cp r2,r12
  3217. 3161 027a 3D04 cpc r3,r13
  3218. 3162 027c 04F4 brge .L200
  3219. 3163 027e 6101 movw r12,r2
  3220. 3164 .L200:
  3221. 3165 0280 1896 adiw r26,8
  3222. 3166 0282 6D91 ld r22,X+
  3223. 3167 0284 7C91 ld r23,X
  3224. 3168 0286 1997 sbiw r26,8+1
  3225. 3169 0288 EA89 ldd r30,Y+18
  3226. 3170 028a FB89 ldd r31,Y+19
  3227. 3171 028c 6E0F add r22,r30
  3228. 3172 028e 7F1F adc r23,r31
  3229. 3173 0290 680D add r22,r8
  3230. 3174 0292 791D adc r23,r9
  3231. 3175 0294 5896 adiw r26,24
  3232. 3176 0296 ED91 ld r30,X+
  3233. 3177 0298 FC91 ld r31,X
  3234. 3178 029a 5997 sbiw r26,24+1
  3235. 3179 029c 8601 movw r16,r12
  3236. 3180 029e 2A85 ldd r18,Y+10
  3237. 3181 02a0 3B85 ldd r19,Y+11
  3238. 3182 02a2 CD01 movw r24,r26
  3239. 3183 02a4 1995 eicall
  3240. 3184 02a6 2C18 sub r2,r12
  3241. 3185 02a8 3D08 sbc r3,r13
  3242. 3186 02aa 8A85 ldd r24,Y+10
  3243. 3187 02ac 9B85 ldd r25,Y+11
  3244. 3188 02ae 8C0D add r24,r12
  3245. 3189 02b0 9D1D adc r25,r13
  3246. 3190 02b2 9B87 std Y+11,r25
  3247. 3191 02b4 8A87 std Y+10,r24
  3248. 3192 02b6 B601 movw r22,r12
  3249. GAS LISTING /tmp/ccjPZxVo.s page 57
  3250. 3193 02b8 8889 ldd r24,Y+16
  3251. 3194 02ba 9989 ldd r25,Y+17
  3252. 3195 02bc 0E94 0000 call EntryPosInc
  3253. 3196 02c0 F201 movw r30,r4
  3254. 3197 02c2 8281 ldd r24,Z+2
  3255. 3198 02c4 9381 ldd r25,Z+3
  3256. 3199 02c6 A481 ldd r26,Z+4
  3257. 3200 02c8 B581 ldd r27,Z+5
  3258. 3201 02ca 4489 ldd r20,Z+20
  3259. 3202 02cc 5589 ldd r21,Z+21
  3260. 3203 02ce 6689 ldd r22,Z+22
  3261. 3204 02d0 7789 ldd r23,Z+23
  3262. 3205 02d2 4817 cp r20,r24
  3263. 3206 02d4 5907 cpc r21,r25
  3264. 3207 02d6 6A07 cpc r22,r26
  3265. 3208 02d8 7B07 cpc r23,r27
  3266. 3209 02da 00F4 brsh .L196
  3267. 3210 02dc 848B std Z+20,r24
  3268. 3211 02de 958B std Z+21,r25
  3269. 3212 02e0 A68B std Z+22,r26
  3270. 3213 02e2 B78B std Z+23,r27
  3271. 3214 .L196:
  3272. 3215 02e4 F3E0 ldi r31,3
  3273. 3216 02e6 8F16 cp r8,r31
  3274. 3217 02e8 9104 cpc r9,__zero_reg__
  3275. 3218 02ea 01F4 brne .L194
  3276. 3219 02ec AE01 movw r20,r28
  3277. 3220 02ee 475F subi r20,-9
  3278. 3221 02f0 5F4F sbci r21,-1
  3279. 3222 02f2 B301 movw r22,r6
  3280. 3223 02f4 D701 movw r26,r14
  3281. 3224 02f6 8D91 ld r24,X+
  3282. 3225 02f8 9C91 ld r25,X
  3283. 3226 02fa 0E94 0000 call FlashWriteBlockFoot
  3284. 3227 .L194:
  3285. 3228 02fe A401 movw r20,r8
  3286. 3229 0300 B301 movw r22,r6
  3287. 3230 0302 F701 movw r30,r14
  3288. 3231 0304 8081 ld r24,Z
  3289. 3232 0306 9181 ldd r25,Z+1
  3290. 3233 0308 0E94 0000 call FlashUnitCommit
  3291. 3234 030c FFEF ldi r31,-1
  3292. 3235 030e 8F1A sub r8,r31
  3293. 3236 0310 9F0A sbc r9,r31
  3294. 3237 0312 84E0 ldi r24,4
  3295. 3238 0314 8816 cp r8,r24
  3296. 3239 0316 9104 cpc r9,__zero_reg__
  3297. 3240 0318 01F0 breq .+2
  3298. 3241 031a 00C0 rjmp .L201
  3299. 3242 031c 6A14 cp r6,r10
  3300. 3243 031e 7B04 cpc r7,r11
  3301. 3244 0320 01F0 breq .L202
  3302. 3245 0322 B501 movw r22,r10
  3303. 3246 0324 D701 movw r26,r14
  3304. 3247 0326 8D91 ld r24,X+
  3305. 3248 0328 9C91 ld r25,X
  3306. 3249 032a 0E94 0000 call FlashEraseEntry
  3307. GAS LISTING /tmp/ccjPZxVo.s page 58
  3308. 3250 .L202:
  3309. 3251 032e 8E85 ldd r24,Y+14
  3310. 3252 0330 9F85 ldd r25,Y+15
  3311. 3253 0332 0E94 0000 call NutEventPost
  3312. 3254 0336 2114 cp r2,__zero_reg__
  3313. 3255 0338 3104 cpc r3,__zero_reg__
  3314. 3256 033a 01F0 breq .+2
  3315. 3257 033c 00C0 rjmp .L203
  3316. 3258 033e 8C85 ldd r24,Y+12
  3317. 3259 0340 9D85 ldd r25,Y+13
  3318. 3260 0342 00C0 rjmp .L180
  3319. 3261 .L205:
  3320. 3262 0344 80E0 ldi r24,0
  3321. 3263 0346 90E0 ldi r25,0
  3322. 3264 .L180:
  3323. 3265 /* epilogue start */
  3324. 3266 0348 6396 adiw r28,19
  3325. 3267 034a 0FB6 in __tmp_reg__,__SREG__
  3326. 3268 034c F894 cli
  3327. 3269 034e DEBF out __SP_H__,r29
  3328. 3270 0350 0FBE out __SREG__,__tmp_reg__
  3329. 3271 0352 CDBF out __SP_L__,r28
  3330. 3272 0354 DF91 pop r29
  3331. 3273 0356 CF91 pop r28
  3332. 3274 0358 1F91 pop r17
  3333. 3275 035a 0F91 pop r16
  3334. 3276 035c FF90 pop r15
  3335. 3277 035e EF90 pop r14
  3336. 3278 0360 DF90 pop r13
  3337. 3279 0362 CF90 pop r12
  3338. 3280 0364 BF90 pop r11
  3339. 3281 0366 AF90 pop r10
  3340. 3282 0368 9F90 pop r9
  3341. 3283 036a 8F90 pop r8
  3342. 3284 036c 7F90 pop r7
  3343. 3285 036e 6F90 pop r6
  3344. 3286 0370 5F90 pop r5
  3345. 3287 0372 4F90 pop r4
  3346. 3288 0374 3F90 pop r3
  3347. 3289 0376 2F90 pop r2
  3348. 3290 0378 0895 ret
  3349. 3291 .size UFlashFileWrite, .-UFlashFileWrite
  3350. 3292 .section .text.UFlashIOCtl,"ax",@progbits
  3351. 3293 .type UFlashIOCtl, @function
  3352. 3294 UFlashIOCtl:
  3353. 3295 0000 6F92 push r6
  3354. 3296 0002 7F92 push r7
  3355. 3297 0004 8F92 push r8
  3356. 3298 0006 9F92 push r9
  3357. 3299 0008 AF92 push r10
  3358. 3300 000a BF92 push r11
  3359. 3301 000c CF92 push r12
  3360. 3302 000e DF92 push r13
  3361. 3303 0010 EF92 push r14
  3362. 3304 0012 FF92 push r15
  3363. 3305 0014 0F93 push r16
  3364. 3306 0016 1F93 push r17
  3365. GAS LISTING /tmp/ccjPZxVo.s page 59
  3366. 3307 0018 CF93 push r28
  3367. 3308 001a DF93 push r29
  3368. 3309 001c CDB7 in r28,__SP_L__
  3369. 3310 001e DEB7 in r29,__SP_H__
  3370. 3311 0020 2B97 sbiw r28,11
  3371. 3312 0022 0FB6 in __tmp_reg__,__SREG__
  3372. 3313 0024 F894 cli
  3373. 3314 0026 DEBF out __SP_H__,r29
  3374. 3315 0028 0FBE out __SREG__,__tmp_reg__
  3375. 3316 002a CDBF out __SP_L__,r28
  3376. 3317 /* prologue: function */
  3377. 3318 /* frame size = 11 */
  3378. 3319 /* stack size = 25 */
  3379. 3320 .L__stack_usage = 25
  3380. 3321 002c 6C01 movw r12,r24
  3381. 3322 002e 7A01 movw r14,r20
  3382. 3323 0030 6531 cpi r22,21
  3383. 3324 0032 01E1 ldi r16,17
  3384. 3325 0034 7007 cpc r23,r16
  3385. 3326 0036 01F4 brne .+2
  3386. 3327 0038 00C0 rjmp .L218
  3387. 3328 003a 04F4 brge .L219
  3388. 3329 003c 6331 cpi r22,19
  3389. 3330 003e 21E1 ldi r18,17
  3390. 3331 0040 7207 cpc r23,r18
  3391. 3332 0042 04F4 brge .L220
  3392. 3333 0044 6131 cpi r22,17
  3393. 3334 0046 31E1 ldi r19,17
  3394. 3335 0048 7307 cpc r23,r19
  3395. 3336 004a 04F0 brlt .+2
  3396. 3337 004c 00C0 rjmp .L288
  3397. 3338 004e 6130 cpi r22,1
  3398. 3339 0050 7141 sbci r23,17
  3399. 3340 0052 01F0 breq .+2
  3400. 3341 0054 00C0 rjmp .L258
  3401. 3342 0056 DA01 movw r26,r20
  3402. 3343 0058 1296 adiw r26,2
  3403. 3344 005a AD90 ld r10,X+
  3404. 3345 005c BC90 ld r11,X
  3405. 3346 005e 1397 sbiw r26,2+1
  3406. 3347 0060 F601 movw r30,r12
  3407. 3348 0062 0189 ldd r16,Z+17
  3408. 3349 0064 1289 ldd r17,Z+18
  3409. 3350 0066 8D91 ld r24,X+
  3410. 3351 0068 9C91 ld r25,X
  3411. 3352 006a 00C0 rjmp .L231
  3412. 3353 .L220:
  3413. 3354 006c 6331 cpi r22,19
  3414. 3355 006e A1E1 ldi r26,17
  3415. 3356 0070 7A07 cpc r23,r26
  3416. 3357 0072 01F4 brne .+2
  3417. 3358 0074 00C0 rjmp .L223
  3418. 3359 0076 6431 cpi r22,20
  3419. 3360 0078 7141 sbci r23,17
  3420. 3361 007a 01F0 breq .+2
  3421. 3362 007c 00C0 rjmp .L258
  3422. 3363 007e DA01 movw r26,r20
  3423. GAS LISTING /tmp/ccjPZxVo.s page 60
  3424. 3364 0080 0D91 ld r16,X+
  3425. 3365 0082 1C91 ld r17,X
  3426. 3366 0084 F801 movw r30,r16
  3427. 3367 0086 E280 ldd r14,Z+2
  3428. 3368 0088 F380 ldd r15,Z+3
  3429. 3369 008a D701 movw r26,r14
  3430. 3370 008c 1296 adiw r26,2
  3431. 3371 008e 8D91 ld r24,X+
  3432. 3372 0090 9C91 ld r25,X
  3433. 3373 0092 1397 sbiw r26,2+1
  3434. 3374 0094 0E94 0000 call free
  3435. 3375 0098 C701 movw r24,r14
  3436. 3376 009a 0E94 0000 call free
  3437. 3377 009e C801 movw r24,r16
  3438. 3378 00a0 0E94 0000 call free
  3439. 3379 00a4 00C0 rjmp .L288
  3440. 3380 .L219:
  3441. 3381 00a6 6033 cpi r22,48
  3442. 3382 00a8 E1E1 ldi r30,17
  3443. 3383 00aa 7E07 cpc r23,r30
  3444. 3384 00ac 01F4 brne .+2
  3445. 3385 00ae 00C0 rjmp .L225
  3446. 3386 00b0 04F4 brge .L226
  3447. 3387 00b2 6232 cpi r22,34
  3448. 3388 00b4 01E1 ldi r16,17
  3449. 3389 00b6 7007 cpc r23,r16
  3450. 3390 00b8 01F4 brne .+2
  3451. 3391 00ba 00C0 rjmp .L227
  3452. 3392 00bc 6332 cpi r22,35
  3453. 3393 00be 7141 sbci r23,17
  3454. 3394 00c0 01F4 brne .+2
  3455. 3395 00c2 00C0 rjmp .L228
  3456. 3396 00c4 00C0 rjmp .L258
  3457. 3397 .L226:
  3458. 3398 00c6 6133 cpi r22,49
  3459. 3399 00c8 21E1 ldi r18,17
  3460. 3400 00ca 7207 cpc r23,r18
  3461. 3401 00cc 01F4 brne .+2
  3462. 3402 00ce 00C0 rjmp .L229
  3463. 3403 00d0 6233 cpi r22,50
  3464. 3404 00d2 7141 sbci r23,17
  3465. 3405 00d4 01F0 breq .+2
  3466. 3406 00d6 00C0 rjmp .L258
  3467. 3407 00d8 DA01 movw r26,r20
  3468. 3408 00da 1296 adiw r26,2
  3469. 3409 00dc 3C91 ld r19,X
  3470. 3410 00de 1297 sbiw r26,2
  3471. 3411 00e0 1396 adiw r26,3
  3472. 3412 00e2 2C91 ld r18,X
  3473. 3413 00e4 1397 sbiw r26,3
  3474. 3414 00e6 FC01 movw r30,r24
  3475. 3415 00e8 0189 ldd r16,Z+17
  3476. 3416 00ea 1289 ldd r17,Z+18
  3477. 3417 00ec 8D91 ld r24,X+
  3478. 3418 00ee 9C91 ld r25,X
  3479. 3419 00f0 00C0 rjmp .L251
  3480. 3420 .L231:
  3481. GAS LISTING /tmp/ccjPZxVo.s page 61
  3482. 3421 00f2 6C01 movw r12,r24
  3483. 3422 00f4 0196 adiw r24,1
  3484. 3423 00f6 D601 movw r26,r12
  3485. 3424 00f8 2C91 ld r18,X
  3486. 3425 00fa 2F32 cpi r18,lo8(47)
  3487. 3426 00fc 01F0 breq .L231
  3488. 3427 00fe 20E8 ldi r18,lo8(-128)
  3489. 3428 0100 30E0 ldi r19,0
  3490. 3429 0102 AE01 movw r20,r28
  3491. 3430 0104 4F5F subi r20,-1
  3492. 3431 0106 5F4F sbci r21,-1
  3493. 3432 0108 B601 movw r22,r12
  3494. 3433 010a C801 movw r24,r16
  3495. 3434 010c 0E94 0000 call EntrySearchNext
  3496. 3435 0110 7C01 movw r14,r24
  3497. 3436 0112 8038 cpi r24,-128
  3498. 3437 0114 9105 cpc r25,__zero_reg__
  3499. 3438 0116 00F4 brsh .L232
  3500. 3439 0118 D801 movw r26,r16
  3501. 3440 011a 1796 adiw r26,7
  3502. 3441 011c ED91 ld r30,X+
  3503. 3442 011e FC91 ld r31,X
  3504. 3443 0120 1897 sbiw r26,7+1
  3505. 3444 0122 880F lsl r24
  3506. 3445 0124 991F rol r25
  3507. 3446 0126 E80F add r30,r24
  3508. 3447 0128 F91F adc r31,r25
  3509. 3448 012a 2081 ld r18,Z
  3510. 3449 012c 3181 ldd r19,Z+1
  3511. 3450 012e 1596 adiw r26,5
  3512. 3451 0130 8D91 ld r24,X+
  3513. 3452 0132 9C91 ld r25,X
  3514. 3453 0134 1697 sbiw r26,5+1
  3515. 3454 0136 8217 cp r24,r18
  3516. 3455 0138 9307 cpc r25,r19
  3517. 3456 013a 00F4 brsh .L259
  3518. 3457 .L232:
  3519. 3458 013c 20E0 ldi r18,0
  3520. 3459 013e 30E0 ldi r19,0
  3521. 3460 0140 AE01 movw r20,r28
  3522. 3461 0142 4F5F subi r20,-1
  3523. 3462 0144 5F4F sbci r21,-1
  3524. 3463 0146 B601 movw r22,r12
  3525. 3464 0148 C801 movw r24,r16
  3526. 3465 014a 0E94 0000 call EntrySearchNext
  3527. 3466 014e 7C01 movw r14,r24
  3528. 3467 0150 8038 cpi r24,-128
  3529. 3468 0152 9105 cpc r25,__zero_reg__
  3530. 3469 0154 00F0 brlo .+2
  3531. 3470 0156 00C0 rjmp .L258
  3532. 3471 0158 D801 movw r26,r16
  3533. 3472 015a 1796 adiw r26,7
  3534. 3473 015c ED91 ld r30,X+
  3535. 3474 015e FC91 ld r31,X
  3536. 3475 0160 1897 sbiw r26,7+1
  3537. 3476 0162 880F lsl r24
  3538. 3477 0164 991F rol r25
  3539. GAS LISTING /tmp/ccjPZxVo.s page 62
  3540. 3478 0166 E80F add r30,r24
  3541. 3479 0168 F91F adc r31,r25
  3542. 3480 016a 2081 ld r18,Z
  3543. 3481 016c 3181 ldd r19,Z+1
  3544. 3482 016e 1596 adiw r26,5
  3545. 3483 0170 8D91 ld r24,X+
  3546. 3484 0172 9C91 ld r25,X
  3547. 3485 0174 1697 sbiw r26,5+1
  3548. 3486 0176 8217 cp r24,r18
  3549. 3487 0178 9307 cpc r25,r19
  3550. 3488 017a 00F4 brsh .+2
  3551. 3489 017c 00C0 rjmp .L258
  3552. 3490 017e 81E0 ldi r24,lo8(1)
  3553. 3491 0180 00C0 rjmp .L233
  3554. 3492 .L259:
  3555. 3493 0182 80E0 ldi r24,0
  3556. 3494 .L233:
  3557. 3495 0184 9DE0 ldi r25,lo8(13)
  3558. 3496 0186 F501 movw r30,r10
  3559. 3497 0:
  3560. 3498 0188 1192 st Z+,__zero_reg__
  3561. 3499 018a 9A95 dec r25
  3562. 3500 018c 01F4 brne 0b
  3563. 3501 018e 8823 tst r24
  3564. 3502 0190 01F0 breq .L235
  3565. 3503 0192 81E0 ldi r24,lo8(1)
  3566. 3504 0194 D501 movw r26,r10
  3567. 3505 0196 1296 adiw r26,2
  3568. 3506 0198 8C93 st X,r24
  3569. 3507 019a 00C0 rjmp .L288
  3570. 3508 .L235:
  3571. 3509 019c 6801 movw r12,r16
  3572. 3510 019e B2E0 ldi r27,2
  3573. 3511 01a0 CB0E add r12,r27
  3574. 3512 01a2 D11C adc r13,__zero_reg__
  3575. 3513 01a4 40E0 ldi r20,0
  3576. 3514 01a6 50E0 ldi r21,0
  3577. 3515 01a8 BA01 movw r22,r20
  3578. 3516 01aa C601 movw r24,r12
  3579. 3517 01ac 0E94 0000 call NutEventWait
  3580. 3518 01b0 B701 movw r22,r14
  3581. 3519 01b2 C801 movw r24,r16
  3582. 3520 01b4 0E94 0000 call EntryScan.isra.1
  3583. 3521 01b8 F501 movw r30,r10
  3584. 3522 01ba 6583 std Z+5,r22
  3585. 3523 01bc 7683 std Z+6,r23
  3586. 3524 01be 8783 std Z+7,r24
  3587. 3525 01c0 9087 std Z+8,r25
  3588. 3526 01c2 C601 movw r24,r12
  3589. 3527 01c4 0E94 0000 call NutEventPost
  3590. 3528 01c8 8A81 ldd r24,Y+2
  3591. 3529 01ca 90E0 ldi r25,0
  3592. 3530 01cc 0296 adiw r24,2
  3593. 3531 01ce D501 movw r26,r10
  3594. 3532 01d0 1596 adiw r26,5
  3595. 3533 01d2 4D91 ld r20,X+
  3596. 3534 01d4 5D91 ld r21,X+
  3597. GAS LISTING /tmp/ccjPZxVo.s page 63
  3598. 3535 01d6 6D91 ld r22,X+
  3599. 3536 01d8 7C91 ld r23,X
  3600. 3537 01da 1897 sbiw r26,5+3
  3601. 3538 01dc 8A01 movw r16,r20
  3602. 3539 01de 9B01 movw r18,r22
  3603. 3540 01e0 081B sub r16,r24
  3604. 3541 01e2 190B sbc r17,r25
  3605. 3542 01e4 2109 sbc r18,__zero_reg__
  3606. 3543 01e6 3109 sbc r19,__zero_reg__
  3607. 3544 01e8 F501 movw r30,r10
  3608. 3545 01ea 0583 std Z+5,r16
  3609. 3546 01ec 1683 std Z+6,r17
  3610. 3547 01ee 2783 std Z+7,r18
  3611. 3548 01f0 3087 std Z+8,r19
  3612. 3549 01f2 00C0 rjmp .L288
  3613. 3550 .L223:
  3614. 3551 01f4 DA01 movw r26,r20
  3615. 3552 01f6 1296 adiw r26,2
  3616. 3553 01f8 8D90 ld r8,X+
  3617. 3554 01fa 9C90 ld r9,X
  3618. 3555 01fc 1397 sbiw r26,2+1
  3619. 3556 01fe 84E0 ldi r24,lo8(4)
  3620. 3557 0200 90E0 ldi r25,0
  3621. 3558 0202 0E94 0000 call malloc
  3622. 3559 0206 8C01 movw r16,r24
  3623. 3560 0208 892B or r24,r25
  3624. 3561 020a 01F0 breq .L262
  3625. 3562 020c 84E0 ldi r24,lo8(4)
  3626. 3563 020e 90E0 ldi r25,0
  3627. 3564 0210 0E94 0000 call malloc
  3628. 3565 0214 5C01 movw r10,r24
  3629. 3566 0216 0097 sbiw r24,0
  3630. 3567 0218 01F0 breq .L237
  3631. 3568 021a FC01 movw r30,r24
  3632. 3569 021c 1182 std Z+1,__zero_reg__
  3633. 3570 021e 1082 st Z,__zero_reg__
  3634. 3571 0220 81E0 ldi r24,lo8(1)
  3635. 3572 0222 90E0 ldi r25,0
  3636. 3573 0224 D401 movw r26,r8
  3637. 3574 0226 2C91 ld r18,X
  3638. 3575 0228 2F32 cpi r18,lo8(47)
  3639. 3576 022a 01F0 breq .L238
  3640. 3577 022c 80E0 ldi r24,0
  3641. 3578 022e 90E0 ldi r25,0
  3642. 3579 .L238:
  3643. 3580 0230 880D add r24,r8
  3644. 3581 0232 991D adc r25,r9
  3645. 3582 0234 0E94 0000 call strdup
  3646. 3583 0238 F501 movw r30,r10
  3647. 3584 023a 9383 std Z+3,r25
  3648. 3585 023c 8283 std Z+2,r24
  3649. 3586 023e 892B or r24,r25
  3650. 3587 0240 01F0 breq .L239
  3651. 3588 0242 D801 movw r26,r16
  3652. 3589 0244 1196 adiw r26,1
  3653. 3590 0246 DC92 st X,r13
  3654. 3591 0248 CE92 st -X,r12
  3655. GAS LISTING /tmp/ccjPZxVo.s page 64
  3656. 3592 024a 1396 adiw r26,2+1
  3657. 3593 024c BC92 st X,r11
  3658. 3594 024e AE92 st -X,r10
  3659. 3595 0250 1297 sbiw r26,2
  3660. 3596 0252 00C0 rjmp .L236
  3661. 3597 .L239:
  3662. 3598 0254 C501 movw r24,r10
  3663. 3599 0256 0E94 0000 call free
  3664. 3600 .L237:
  3665. 3601 025a C801 movw r24,r16
  3666. 3602 025c 0E94 0000 call free
  3667. 3603 .L262:
  3668. 3604 0260 0FEF ldi r16,lo8(-1)
  3669. 3605 0262 1FEF ldi r17,lo8(-1)
  3670. 3606 .L236:
  3671. 3607 0264 F701 movw r30,r14
  3672. 3608 0266 1183 std Z+1,r17
  3673. 3609 0268 0083 st Z,r16
  3674. 3610 026a 21E0 ldi r18,lo8(1)
  3675. 3611 026c 30E0 ldi r19,0
  3676. 3612 026e 0F3F cpi r16,-1
  3677. 3613 0270 1F4F sbci r17,-1
  3678. 3614 0272 01F0 breq .L240
  3679. 3615 0274 20E0 ldi r18,0
  3680. 3616 0276 30E0 ldi r19,0
  3681. 3617 .L240:
  3682. 3618 0278 8827 clr r24
  3683. 3619 027a 9927 clr r25
  3684. 3620 027c 821B sub r24,r18
  3685. 3621 027e 930B sbc r25,r19
  3686. 3622 0280 00C0 rjmp .L217
  3687. 3623 .L218:
  3688. 3624 0282 1A82 std Y+2,__zero_reg__
  3689. 3625 0284 1982 std Y+1,__zero_reg__
  3690. 3626 0286 DA01 movw r26,r20
  3691. 3627 0288 ED91 ld r30,X+
  3692. 3628 028a FC91 ld r31,X
  3693. 3629 028c 0281 ldd r16,Z+2
  3694. 3630 028e 1381 ldd r17,Z+3
  3695. 3631 0290 0190 ld __tmp_reg__,Z+
  3696. 3632 0292 F081 ld r31,Z
  3697. 3633 0294 E02D mov r30,__tmp_reg__
  3698. 3634 0296 C188 ldd r12,Z+17
  3699. 3635 0298 D288 ldd r13,Z+18
  3700. 3636 029a F801 movw r30,r16
  3701. 3637 029c 2081 ld r18,Z
  3702. 3638 029e 3181 ldd r19,Z+1
  3703. 3639 02a0 6281 ldd r22,Z+2
  3704. 3640 02a2 7381 ldd r23,Z+3
  3705. 3641 02a4 AE01 movw r20,r28
  3706. 3642 02a6 475F subi r20,-9
  3707. 3643 02a8 5F4F sbci r21,-1
  3708. 3644 02aa C601 movw r24,r12
  3709. 3645 02ac 0E94 0000 call EntrySearchNext
  3710. 3646 02b0 D801 movw r26,r16
  3711. 3647 02b2 8D93 st X+,r24
  3712. 3648 02b4 9C93 st X,r25
  3713. GAS LISTING /tmp/ccjPZxVo.s page 65
  3714. 3649 02b6 8038 cpi r24,-128
  3715. 3650 02b8 9105 cpc r25,__zero_reg__
  3716. 3651 02ba 00F0 brlo .+2
  3717. 3652 02bc 00C0 rjmp .L258
  3718. 3653 02be F701 movw r30,r14
  3719. 3654 02c0 E280 ldd r14,Z+2
  3720. 3655 02c2 F380 ldd r15,Z+3
  3721. 3656 02c4 88E0 ldi r24,lo8(8)
  3722. 3657 02c6 91E0 ldi r25,lo8(1)
  3723. 3658 02c8 D701 movw r26,r14
  3724. 3659 02ca FC01 movw r30,r24
  3725. 3660 0:
  3726. 3661 02cc 1D92 st X+,__zero_reg__
  3727. 3662 02ce 3197 sbiw r30,1
  3728. 3663 02d0 01F4 brne 0b
  3729. 3664 02d2 D801 movw r26,r16
  3730. 3665 02d4 ED91 ld r30,X+
  3731. 3666 02d6 FC91 ld r31,X
  3732. 3667 02d8 EE0F lsl r30
  3733. 3668 02da FF1F rol r31
  3734. 3669 02dc D601 movw r26,r12
  3735. 3670 02de 1796 adiw r26,7
  3736. 3671 02e0 8D91 ld r24,X+
  3737. 3672 02e2 9C91 ld r25,X
  3738. 3673 02e4 1897 sbiw r26,7+1
  3739. 3674 02e6 E80F add r30,r24
  3740. 3675 02e8 F91F adc r31,r25
  3741. 3676 02ea 6081 ld r22,Z
  3742. 3677 02ec 7181 ldd r23,Z+1
  3743. 3678 02ee 9E01 movw r18,r28
  3744. 3679 02f0 2F5F subi r18,-1
  3745. 3680 02f2 3F4F sbci r19,-1
  3746. 3681 02f4 AE01 movw r20,r28
  3747. 3682 02f6 475F subi r20,-9
  3748. 3683 02f8 5F4F sbci r21,-1
  3749. 3684 02fa 8D91 ld r24,X+
  3750. 3685 02fc 9C91 ld r25,X
  3751. 3686 02fe 0E94 0000 call FlashReadEntry
  3752. 3687 0302 F801 movw r30,r16
  3753. 3688 0304 A281 ldd r26,Z+2
  3754. 3689 0306 B381 ldd r27,Z+3
  3755. 3690 0308 FD01 movw r30,r26
  3756. 3691 0:
  3757. 3692 030a 0190 ld __tmp_reg__,Z+
  3758. 3693 030c 0020 tst __tmp_reg__
  3759. 3694 030e 01F4 brne 0b
  3760. 3695 0310 3197 sbiw r30,1
  3761. 3696 0312 EA1B sub r30,r26
  3762. 3697 0314 FB0B sbc r31,r27
  3763. 3698 0316 8981 ldd r24,Y+1
  3764. 3699 0318 9A81 ldd r25,Y+2
  3765. 3700 031a 6FE2 ldi r22,lo8(47)
  3766. 3701 031c 70E0 ldi r23,0
  3767. 3702 031e 8E0F add r24,r30
  3768. 3703 0320 9F1F adc r25,r31
  3769. 3704 0322 0E94 0000 call strchr
  3770. 3705 0326 0097 sbiw r24,0
  3771. GAS LISTING /tmp/ccjPZxVo.s page 66
  3772. 3706 0328 01F0 breq .L242
  3773. 3707 032a DC01 movw r26,r24
  3774. 3708 032c 1C92 st X,__zero_reg__
  3775. 3709 032e 81E0 ldi r24,lo8(1)
  3776. 3710 0330 F701 movw r30,r14
  3777. 3711 0332 8683 std Z+6,r24
  3778. 3712 0334 00C0 rjmp .L243
  3779. 3713 .L242:
  3780. 3714 0336 D701 movw r26,r14
  3781. 3715 0338 1696 adiw r26,6
  3782. 3716 033a 1C92 st X,__zero_reg__
  3783. 3717 .L243:
  3784. 3718 033c C980 ldd r12,Y+1
  3785. 3719 033e DA80 ldd r13,Y+2
  3786. 3720 0340 F801 movw r30,r16
  3787. 3721 0342 A281 ldd r26,Z+2
  3788. 3722 0344 B381 ldd r27,Z+3
  3789. 3723 0346 FD01 movw r30,r26
  3790. 3724 0:
  3791. 3725 0348 0190 ld __tmp_reg__,Z+
  3792. 3726 034a 0020 tst __tmp_reg__
  3793. 3727 034c 01F4 brne 0b
  3794. 3728 034e 3197 sbiw r30,1
  3795. 3729 0350 BF01 movw r22,r30
  3796. 3730 0352 6A1B sub r22,r26
  3797. 3731 0354 7B0B sbc r23,r27
  3798. 3732 0356 6C0D add r22,r12
  3799. 3733 0358 7D1D adc r23,r13
  3800. 3734 035a C701 movw r24,r14
  3801. 3735 035c 0896 adiw r24,8
  3802. 3736 035e 0E94 0000 call strcpy
  3803. 3737 0362 F801 movw r30,r16
  3804. 3738 0364 A281 ldd r26,Z+2
  3805. 3739 0366 B381 ldd r27,Z+3
  3806. 3740 0368 FD01 movw r30,r26
  3807. 3741 0:
  3808. 3742 036a 0190 ld __tmp_reg__,Z+
  3809. 3743 036c 0020 tst __tmp_reg__
  3810. 3744 036e 01F4 brne 0b
  3811. 3745 0370 3197 sbiw r30,1
  3812. 3746 0372 EA1B sub r30,r26
  3813. 3747 0374 FB0B sbc r31,r27
  3814. 3748 0376 EC0D add r30,r12
  3815. 3749 0378 FD1D adc r31,r13
  3816. 3750 037a DF01 movw r26,r30
  3817. 3751 0:
  3818. 3752 037c 0D90 ld __tmp_reg__,X+
  3819. 3753 037e 0020 tst __tmp_reg__
  3820. 3754 0380 01F4 brne 0b
  3821. 3755 0382 1197 sbiw r26,1
  3822. 3756 0384 AE1B sub r26,r30
  3823. 3757 0386 BF0B sbc r27,r31
  3824. 3758 0388 F701 movw r30,r14
  3825. 3759 038a A783 std Z+7,r26
  3826. 3760 038c C601 movw r24,r12
  3827. 3761 038e 0E94 0000 call free
  3828. 3762 0392 D801 movw r26,r16
  3829. GAS LISTING /tmp/ccjPZxVo.s page 67
  3830. 3763 0394 8D91 ld r24,X+
  3831. 3764 0396 9C91 ld r25,X
  3832. 3765 0398 1197 sbiw r26,1
  3833. 3766 039a 0196 adiw r24,1
  3834. 3767 039c 8D93 st X+,r24
  3835. 3768 039e 9C93 st X,r25
  3836. 3769 03a0 00C0 rjmp .L288
  3837. 3770 .L227:
  3838. 3771 03a2 FC01 movw r30,r24
  3839. 3772 03a4 0189 ldd r16,Z+17
  3840. 3773 03a6 1289 ldd r17,Z+18
  3841. 3774 .L244:
  3842. 3775 03a8 B701 movw r22,r14
  3843. 3776 03aa FFEF ldi r31,-1
  3844. 3777 03ac EF1A sub r14,r31
  3845. 3778 03ae FF0A sbc r15,r31
  3846. 3779 03b0 DB01 movw r26,r22
  3847. 3780 03b2 8C91 ld r24,X
  3848. 3781 03b4 8F32 cpi r24,lo8(47)
  3849. 3782 03b6 01F0 breq .L244
  3850. 3783 03b8 20E8 ldi r18,lo8(-128)
  3851. 3784 03ba 30E0 ldi r19,0
  3852. 3785 03bc AE01 movw r20,r28
  3853. 3786 03be 4F5F subi r20,-1
  3854. 3787 03c0 5F4F sbci r21,-1
  3855. 3788 03c2 C801 movw r24,r16
  3856. 3789 03c4 0E94 0000 call EntrySearchNext
  3857. 3790 03c8 6C01 movw r12,r24
  3858. 3791 03ca 8038 cpi r24,-128
  3859. 3792 03cc 9105 cpc r25,__zero_reg__
  3860. 3793 03ce 00F0 brlo .+2
  3861. 3794 03d0 00C0 rjmp .L258
  3862. 3795 03d2 7C01 movw r14,r24
  3863. 3796 03d4 EE0C lsl r14
  3864. 3797 03d6 FF1C rol r15
  3865. 3798 03d8 D801 movw r26,r16
  3866. 3799 03da 1796 adiw r26,7
  3867. 3800 03dc ED91 ld r30,X+
  3868. 3801 03de FC91 ld r31,X
  3869. 3802 03e0 1897 sbiw r26,7+1
  3870. 3803 03e2 EE0D add r30,r14
  3871. 3804 03e4 FF1D adc r31,r15
  3872. 3805 03e6 2081 ld r18,Z
  3873. 3806 03e8 3181 ldd r19,Z+1
  3874. 3807 03ea 1596 adiw r26,5
  3875. 3808 03ec 8D91 ld r24,X+
  3876. 3809 03ee 9C91 ld r25,X
  3877. 3810 03f0 1697 sbiw r26,5+1
  3878. 3811 03f2 8217 cp r24,r18
  3879. 3812 03f4 9307 cpc r25,r19
  3880. 3813 03f6 00F4 brsh .+2
  3881. 3814 03f8 00C0 rjmp .L258
  3882. 3815 03fa 5801 movw r10,r16
  3883. 3816 03fc B2E0 ldi r27,2
  3884. 3817 03fe AB0E add r10,r27
  3885. 3818 0400 B11C adc r11,__zero_reg__
  3886. 3819 0402 40E0 ldi r20,0
  3887. GAS LISTING /tmp/ccjPZxVo.s page 68
  3888. 3820 0404 50E0 ldi r21,0
  3889. 3821 0406 BA01 movw r22,r20
  3890. 3822 0408 C501 movw r24,r10
  3891. 3823 040a 0E94 0000 call NutEventWait
  3892. 3824 040e B601 movw r22,r12
  3893. 3825 0410 C801 movw r24,r16
  3894. 3826 0412 0E94 0000 call EntryTruncateSeq
  3895. 3827 0416 D801 movw r26,r16
  3896. 3828 0418 1796 adiw r26,7
  3897. 3829 041a ED91 ld r30,X+
  3898. 3830 041c FC91 ld r31,X
  3899. 3831 041e 1897 sbiw r26,7+1
  3900. 3832 0420 EE0D add r30,r14
  3901. 3833 0422 FF1D adc r31,r15
  3902. 3834 0424 6081 ld r22,Z
  3903. 3835 0426 7181 ldd r23,Z+1
  3904. 3836 0428 8FEF ldi r24,lo8(-1)
  3905. 3837 042a 9FEF ldi r25,lo8(-1)
  3906. 3838 042c 9183 std Z+1,r25
  3907. 3839 042e 8083 st Z,r24
  3908. 3840 0430 00C0 rjmp .L289
  3909. 3841 .L228:
  3910. 3842 0432 FA01 movw r30,r20
  3911. 3843 0434 0281 ldd r16,Z+2
  3912. 3844 0436 1381 ldd r17,Z+3
  3913. 3845 0438 8081 ld r24,Z
  3914. 3846 043a 9181 ldd r25,Z+1
  3915. 3847 043c DC01 movw r26,r24
  3916. 3848 043e 1296 adiw r26,2
  3917. 3849 0440 ED91 ld r30,X+
  3918. 3850 0442 FC91 ld r31,X
  3919. 3851 0444 1397 sbiw r26,2+1
  3920. 3852 0446 D801 movw r26,r16
  3921. 3853 0448 8D90 ld r8,X+
  3922. 3854 044a 9D90 ld r9,X+
  3923. 3855 044c AD90 ld r10,X+
  3924. 3856 044e BC90 ld r11,X
  3925. 3857 0450 DA01 movw r26,r20
  3926. 3858 0452 1496 adiw r26,4
  3927. 3859 0454 2D91 ld r18,X+
  3928. 3860 0456 3C91 ld r19,X
  3929. 3861 0458 1597 sbiw r26,4+1
  3930. 3862 045a 2130 cpi r18,1
  3931. 3863 045c 3105 cpc r19,__zero_reg__
  3932. 3864 045e 01F0 breq .L247
  3933. 3865 0460 2230 cpi r18,2
  3934. 3866 0462 3105 cpc r19,__zero_reg__
  3935. 3867 0464 01F4 brne .L246
  3936. 3868 0466 4489 ldd r20,Z+20
  3937. 3869 0468 5589 ldd r21,Z+21
  3938. 3870 046a 6689 ldd r22,Z+22
  3939. 3871 046c 7789 ldd r23,Z+23
  3940. 3872 046e 00C0 rjmp .L287
  3941. 3873 .L247:
  3942. 3874 0470 4281 ldd r20,Z+2
  3943. 3875 0472 5381 ldd r21,Z+3
  3944. 3876 0474 6481 ldd r22,Z+4
  3945. GAS LISTING /tmp/ccjPZxVo.s page 69
  3946. 3877 0476 7581 ldd r23,Z+5
  3947. 3878 .L287:
  3948. 3879 0478 840E add r8,r20
  3949. 3880 047a 951E adc r9,r21
  3950. 3881 047c A61E adc r10,r22
  3951. 3882 047e B71E adc r11,r23
  3952. 3883 .L246:
  3953. 3884 0480 B7FC sbrc r11,7
  3954. 3885 0482 00C0 rjmp .L249
  3955. 3886 0484 4489 ldd r20,Z+20
  3956. 3887 0486 5589 ldd r21,Z+21
  3957. 3888 0488 6689 ldd r22,Z+22
  3958. 3889 048a 7789 ldd r23,Z+23
  3959. 3890 048c 4815 cp r20,r8
  3960. 3891 048e 5905 cpc r21,r9
  3961. 3892 0490 6A05 cpc r22,r10
  3962. 3893 0492 7B05 cpc r23,r11
  3963. 3894 0494 04F4 brge .L250
  3964. 3895 .L249:
  3965. 3896 0496 86E1 ldi r24,lo8(22)
  3966. 3897 0498 90E0 ldi r25,0
  3967. 3898 049a 9093 0000 sts errno+1,r25
  3968. 3899 049e 8093 0000 sts errno,r24
  3969. 3900 04a2 00C0 rjmp .L258
  3970. 3901 .L250:
  3971. 3902 04a4 B501 movw r22,r10
  3972. 3903 04a6 A401 movw r20,r8
  3973. 3904 04a8 0E94 0000 call EntryPosSet
  3974. 3905 04ac F801 movw r30,r16
  3975. 3906 04ae 8082 st Z,r8
  3976. 3907 04b0 9182 std Z+1,r9
  3977. 3908 04b2 A282 std Z+2,r10
  3978. 3909 04b4 B382 std Z+3,r11
  3979. 3910 04b6 00C0 rjmp .L258
  3980. 3911 .L251:
  3981. 3912 04b8 BC01 movw r22,r24
  3982. 3913 04ba 0196 adiw r24,1
  3983. 3914 04bc DB01 movw r26,r22
  3984. 3915 04be 4C91 ld r20,X
  3985. 3916 04c0 4F32 cpi r20,lo8(47)
  3986. 3917 04c2 01F0 breq .L251
  3987. 3918 04c4 832F mov r24,r19
  3988. 3919 04c6 922F mov r25,r18
  3989. 3920 .L252:
  3990. 3921 04c8 3C01 movw r6,r24
  3991. 3922 04ca 0196 adiw r24,1
  3992. 3923 04cc F301 movw r30,r6
  3993. 3924 04ce 2081 ld r18,Z
  3994. 3925 04d0 2F32 cpi r18,lo8(47)
  3995. 3926 04d2 01F0 breq .L252
  3996. 3927 04d4 20E8 ldi r18,lo8(-128)
  3997. 3928 04d6 30E0 ldi r19,0
  3998. 3929 04d8 AE01 movw r20,r28
  3999. 3930 04da 475F subi r20,-9
  4000. 3931 04dc 5F4F sbci r21,-1
  4001. 3932 04de C801 movw r24,r16
  4002. 3933 04e0 0E94 0000 call EntrySearchNext
  4003. GAS LISTING /tmp/ccjPZxVo.s page 70
  4004. 3934 04e4 8038 cpi r24,-128
  4005. 3935 04e6 9105 cpc r25,__zero_reg__
  4006. 3936 04e8 00F0 brlo .+2
  4007. 3937 04ea 00C0 rjmp .L258
  4008. 3938 04ec 6C01 movw r12,r24
  4009. 3939 04ee CC0C lsl r12
  4010. 3940 04f0 DD1C rol r13
  4011. 3941 04f2 D801 movw r26,r16
  4012. 3942 04f4 1796 adiw r26,7
  4013. 3943 04f6 ED91 ld r30,X+
  4014. 3944 04f8 FC91 ld r31,X
  4015. 3945 04fa 1897 sbiw r26,7+1
  4016. 3946 04fc EC0D add r30,r12
  4017. 3947 04fe FD1D adc r31,r13
  4018. 3948 0500 2081 ld r18,Z
  4019. 3949 0502 3181 ldd r19,Z+1
  4020. 3950 0504 1596 adiw r26,5
  4021. 3951 0506 8D91 ld r24,X+
  4022. 3952 0508 9C91 ld r25,X
  4023. 3953 050a 1697 sbiw r26,5+1
  4024. 3954 050c 8217 cp r24,r18
  4025. 3955 050e 9307 cpc r25,r19
  4026. 3956 0510 00F4 brsh .+2
  4027. 3957 0512 00C0 rjmp .L258
  4028. 3958 0514 F301 movw r30,r6
  4029. 3959 0:
  4030. 3960 0516 0190 ld __tmp_reg__,Z+
  4031. 3961 0518 0020 tst __tmp_reg__
  4032. 3962 051a 01F4 brne 0b
  4033. 3963 051c 3197 sbiw r30,1
  4034. 3964 051e E619 sub r30,r6
  4035. 3965 0520 F709 sbc r31,r7
  4036. 3966 0522 8A85 ldd r24,Y+10
  4037. 3967 0524 90E0 ldi r25,0
  4038. 3968 0526 8E17 cp r24,r30
  4039. 3969 0528 9F07 cpc r25,r31
  4040. 3970 052a 00F4 brsh .+2
  4041. 3971 052c 00C0 rjmp .L258
  4042. 3972 052e EA87 std Y+10,r30
  4043. 3973 0530 5801 movw r10,r16
  4044. 3974 0532 B2E0 ldi r27,2
  4045. 3975 0534 AB0E add r10,r27
  4046. 3976 0536 B11C adc r11,__zero_reg__
  4047. 3977 0538 40E0 ldi r20,0
  4048. 3978 053a 50E0 ldi r21,0
  4049. 3979 053c BA01 movw r22,r20
  4050. 3980 053e C501 movw r24,r10
  4051. 3981 0540 0E94 0000 call NutEventWait
  4052. 3982 0544 60E0 ldi r22,0
  4053. 3983 0546 70E0 ldi r23,0
  4054. 3984 0548 C801 movw r24,r16
  4055. 3985 054a 0E94 0000 call PhysBlkAllocate
  4056. 3986 054e 7C01 movw r14,r24
  4057. 3987 0550 F801 movw r30,r16
  4058. 3988 0552 8581 ldd r24,Z+5
  4059. 3989 0554 9681 ldd r25,Z+6
  4060. 3990 0556 E816 cp r14,r24
  4061. GAS LISTING /tmp/ccjPZxVo.s page 71
  4062. 3991 0558 F906 cpc r15,r25
  4063. 3992 055a 00F0 brlo .L254
  4064. 3993 055c C501 movw r24,r10
  4065. 3994 055e 0E94 0000 call NutEventPost
  4066. 3995 0562 00C0 rjmp .L258
  4067. 3996 .L254:
  4068. 3997 0564 D801 movw r26,r16
  4069. 3998 0566 0780 ldd __tmp_reg__,Z+7
  4070. 3999 0568 F085 ldd r31,Z+8
  4071. 4000 056a E02D mov r30,__tmp_reg__
  4072. 4001 056c EC0D add r30,r12
  4073. 4002 056e FD1D adc r31,r13
  4074. 4003 0570 8080 ld r8,Z
  4075. 4004 0572 9180 ldd r9,Z+1
  4076. 4005 0574 F182 std Z+1,r15
  4077. 4006 0576 E082 st Z,r14
  4078. 4007 0578 AE01 movw r20,r28
  4079. 4008 057a 455F subi r20,-11
  4080. 4009 057c 5F4F sbci r21,-1
  4081. 4010 057e B701 movw r22,r14
  4082. 4011 0580 8D91 ld r24,X+
  4083. 4012 0582 9C91 ld r25,X
  4084. 4013 0584 0E94 0000 call FlashReadBlockFoot
  4085. 4014 0588 B701 movw r22,r14
  4086. 4015 058a F801 movw r30,r16
  4087. 4016 058c 8081 ld r24,Z
  4088. 4017 058e 9181 ldd r25,Z+1
  4089. 4018 0590 0E94 0000 call FlashEraseBlockData
  4090. 4019 0594 C12C mov r12,__zero_reg__
  4091. 4020 0596 D12C mov r13,__zero_reg__
  4092. 4021 .L257:
  4093. 4022 0598 9601 movw r18,r12
  4094. 4023 059a A701 movw r20,r14
  4095. 4024 059c B401 movw r22,r8
  4096. 4025 059e D801 movw r26,r16
  4097. 4026 05a0 8D91 ld r24,X+
  4098. 4027 05a2 9C91 ld r25,X
  4099. 4028 05a4 0E94 0000 call FlashUnitCopy
  4100. 4029 05a8 2C2D mov r18,r12
  4101. 4030 05aa F801 movw r30,r16
  4102. 4031 05ac 8081 ld r24,Z
  4103. 4032 05ae 9181 ldd r25,Z+1
  4104. 4033 05b0 C114 cp r12,__zero_reg__
  4105. 4034 05b2 D104 cpc r13,__zero_reg__
  4106. 4035 05b4 01F4 brne .L255
  4107. 4036 05b6 AE01 movw r20,r28
  4108. 4037 05b8 4F5F subi r20,-1
  4109. 4038 05ba 5F4F sbci r21,-1
  4110. 4039 05bc B701 movw r22,r14
  4111. 4040 05be 0E94 0000 call FlashReadBlockHead
  4112. 4041 05c2 AE01 movw r20,r28
  4113. 4042 05c4 4F5F subi r20,-1
  4114. 4043 05c6 5F4F sbci r21,-1
  4115. 4044 05c8 B701 movw r22,r14
  4116. 4045 05ca D801 movw r26,r16
  4117. 4046 05cc 8D91 ld r24,X+
  4118. 4047 05ce 9C91 ld r25,X
  4119. GAS LISTING /tmp/ccjPZxVo.s page 72
  4120. 4048 05d0 0E94 0000 call FlashWriteBlockHead
  4121. 4049 05d4 9301 movw r18,r6
  4122. 4050 05d6 AE01 movw r20,r28
  4123. 4051 05d8 475F subi r20,-9
  4124. 4052 05da 5F4F sbci r21,-1
  4125. 4053 05dc B701 movw r22,r14
  4126. 4054 05de F801 movw r30,r16
  4127. 4055 05e0 8081 ld r24,Z
  4128. 4056 05e2 9181 ldd r25,Z+1
  4129. 4057 05e4 0E94 0000 call FlashWriteEntry
  4130. 4058 05e8 00C0 rjmp .L256
  4131. 4059 .L255:
  4132. 4060 05ea 2330 cpi r18,lo8(3)
  4133. 4061 05ec 01F4 brne .L256
  4134. 4062 05ee AE01 movw r20,r28
  4135. 4063 05f0 455F subi r20,-11
  4136. 4064 05f2 5F4F sbci r21,-1
  4137. 4065 05f4 B701 movw r22,r14
  4138. 4066 05f6 0E94 0000 call FlashWriteBlockFoot
  4139. 4067 .L256:
  4140. 4068 05fa A601 movw r20,r12
  4141. 4069 05fc B701 movw r22,r14
  4142. 4070 05fe D801 movw r26,r16
  4143. 4071 0600 8D91 ld r24,X+
  4144. 4072 0602 9C91 ld r25,X
  4145. 4073 0604 0E94 0000 call FlashUnitCommit
  4146. 4074 0608 BFEF ldi r27,-1
  4147. 4075 060a CB1A sub r12,r27
  4148. 4076 060c DB0A sbc r13,r27
  4149. 4077 060e E4E0 ldi r30,4
  4150. 4078 0610 CE16 cp r12,r30
  4151. 4079 0612 D104 cpc r13,__zero_reg__
  4152. 4080 0614 01F4 brne .L257
  4153. 4081 0616 B401 movw r22,r8
  4154. 4082 0618 D801 movw r26,r16
  4155. 4083 .L289:
  4156. 4084 061a 8D91 ld r24,X+
  4157. 4085 061c 9C91 ld r25,X
  4158. 4086 061e 0E94 0000 call FlashEraseEntry
  4159. 4087 0622 C501 movw r24,r10
  4160. 4088 0624 0E94 0000 call NutEventPost
  4161. 4089 0628 00C0 rjmp .L288
  4162. 4090 .L225:
  4163. 4091 062a 0E94 0000 call UFlashMount
  4164. 4092 062e 00C0 rjmp .L217
  4165. 4093 .L229:
  4166. 4094 0630 FC01 movw r30,r24
  4167. 4095 0632 0189 ldd r16,Z+17
  4168. 4096 0634 1289 ldd r17,Z+18
  4169. 4097 0636 D801 movw r26,r16
  4170. 4098 0638 1796 adiw r26,7
  4171. 4099 063a 8D91 ld r24,X+
  4172. 4100 063c 9C91 ld r25,X
  4173. 4101 063e 1897 sbiw r26,7+1
  4174. 4102 0640 0E94 0000 call free
  4175. 4103 0644 C801 movw r24,r16
  4176. 4104 0646 0E94 0000 call free
  4177. GAS LISTING /tmp/ccjPZxVo.s page 73
  4178. 4105 064a F601 movw r30,r12
  4179. 4106 064c 128A std Z+18,__zero_reg__
  4180. 4107 064e 118A std Z+17,__zero_reg__
  4181. 4108 .L288:
  4182. 4109 0650 80E0 ldi r24,0
  4183. 4110 0652 90E0 ldi r25,0
  4184. 4111 0654 00C0 rjmp .L217
  4185. 4112 .L258:
  4186. 4113 0656 8FEF ldi r24,lo8(-1)
  4187. 4114 0658 9FEF ldi r25,lo8(-1)
  4188. 4115 .L217:
  4189. 4116 /* epilogue start */
  4190. 4117 065a 2B96 adiw r28,11
  4191. 4118 065c 0FB6 in __tmp_reg__,__SREG__
  4192. 4119 065e F894 cli
  4193. 4120 0660 DEBF out __SP_H__,r29
  4194. 4121 0662 0FBE out __SREG__,__tmp_reg__
  4195. 4122 0664 CDBF out __SP_L__,r28
  4196. 4123 0666 DF91 pop r29
  4197. 4124 0668 CF91 pop r28
  4198. 4125 066a 1F91 pop r17
  4199. 4126 066c 0F91 pop r16
  4200. 4127 066e FF90 pop r15
  4201. 4128 0670 EF90 pop r14
  4202. 4129 0672 DF90 pop r13
  4203. 4130 0674 CF90 pop r12
  4204. 4131 0676 BF90 pop r11
  4205. 4132 0678 AF90 pop r10
  4206. 4133 067a 9F90 pop r9
  4207. 4134 067c 8F90 pop r8
  4208. 4135 067e 7F90 pop r7
  4209. 4136 0680 6F90 pop r6
  4210. 4137 0682 0895 ret
  4211. 4138 .size UFlashIOCtl, .-UFlashIOCtl
  4212. 4139 .section .text.UFlashAttach,"ax",@progbits
  4213. 4140 .global UFlashAttach
  4214. 4141 .type UFlashAttach, @function
  4215. 4142 UFlashAttach:
  4216. 4143 0000 0F93 push r16
  4217. 4144 0002 1F93 push r17
  4218. 4145 0004 CF93 push r28
  4219. 4146 0006 DF93 push r29
  4220. 4147 /* prologue: function */
  4221. 4148 /* frame size = 0 */
  4222. 4149 /* stack size = 4 */
  4223. 4150 .L__stack_usage = 4
  4224. 4151 0008 8C01 movw r16,r24
  4225. 4152 000a EB01 movw r28,r22
  4226. 4153 000c 8881 ld r24,Y
  4227. 4154 000e 9981 ldd r25,Y+1
  4228. 4155 0010 DC01 movw r26,r24
  4229. 4156 0012 4D93 st X+,r20
  4230. 4157 0014 5C93 st X,r21
  4231. 4158 0016 DA01 movw r26,r20
  4232. 4159 0018 1896 adiw r26,8
  4233. 4160 001a ED91 ld r30,X+
  4234. 4161 001c FC91 ld r31,X
  4235. GAS LISTING /tmp/ccjPZxVo.s page 74
  4236. 4162 001e 1997 sbiw r26,8+1
  4237. 4163 0020 1995 eicall
  4238. 4164 0022 892B or r24,r25
  4239. 4165 0024 01F4 brne .L297
  4240. 4166 0026 E881 ld r30,Y
  4241. 4167 0028 F981 ldd r31,Y+1
  4242. 4168 002a 8081 ld r24,Z
  4243. 4169 002c 9181 ldd r25,Z+1
  4244. 4170 002e 0E94 0000 call NutEventPost
  4245. 4171 0032 EC85 ldd r30,Y+12
  4246. 4172 0034 FD85 ldd r31,Y+13
  4247. 4173 0036 CE01 movw r24,r28
  4248. 4174 0038 1995 eicall
  4249. 4175 003a 892B or r24,r25
  4250. 4176 003c 01F4 brne .L297
  4251. 4177 003e F801 movw r30,r16
  4252. 4178 0040 D08B std Z+16,r29
  4253. 4179 0042 C787 std Z+15,r28
  4254. 4180 0044 C801 movw r24,r16
  4255. 4181 0046 0E94 0000 call UFlashMount
  4256. 4182 004a 0097 sbiw r24,0
  4257. 4183 004c 01F0 breq .L292
  4258. 4184 004e D801 movw r26,r16
  4259. 4185 0050 5096 adiw r26,15+1
  4260. 4186 0052 1C92 st X,__zero_reg__
  4261. 4187 0054 1E92 st -X,__zero_reg__
  4262. 4188 0056 1F97 sbiw r26,15
  4263. 4189 .L297:
  4264. 4190 0058 8FEF ldi r24,lo8(-1)
  4265. 4191 005a 9FEF ldi r25,lo8(-1)
  4266. 4192 .L292:
  4267. 4193 /* epilogue start */
  4268. 4194 005c DF91 pop r29
  4269. 4195 005e CF91 pop r28
  4270. 4196 0060 1F91 pop r17
  4271. 4197 0062 0F91 pop r16
  4272. 4198 0064 0895 ret
  4273. 4199 .size UFlashAttach, .-UFlashAttach
  4274. 4200 .section .text.UFlashDetach,"ax",@progbits
  4275. 4201 .global UFlashDetach
  4276. 4202 .type UFlashDetach, @function
  4277. 4203 UFlashDetach:
  4278. 4204 0000 0F93 push r16
  4279. 4205 0002 1F93 push r17
  4280. 4206 0004 CF93 push r28
  4281. 4207 0006 DF93 push r29
  4282. 4208 /* prologue: function */
  4283. 4209 /* frame size = 0 */
  4284. 4210 /* stack size = 4 */
  4285. 4211 .L__stack_usage = 4
  4286. 4212 0008 EC01 movw r28,r24
  4287. 4213 000a 0989 ldd r16,Y+17
  4288. 4214 000c 1A89 ldd r17,Y+18
  4289. 4215 000e D801 movw r26,r16
  4290. 4216 0010 1796 adiw r26,7
  4291. 4217 0012 8D91 ld r24,X+
  4292. 4218 0014 9C91 ld r25,X
  4293. GAS LISTING /tmp/ccjPZxVo.s page 75
  4294. 4219 0016 1897 sbiw r26,7+1
  4295. 4220 0018 0E94 0000 call free
  4296. 4221 001c C801 movw r24,r16
  4297. 4222 001e 0E94 0000 call free
  4298. 4223 0022 1A8A std Y+18,__zero_reg__
  4299. 4224 0024 198A std Y+17,__zero_reg__
  4300. 4225 0026 8F85 ldd r24,Y+15
  4301. 4226 0028 9889 ldd r25,Y+16
  4302. 4227 002a DC01 movw r26,r24
  4303. 4228 002c 1E96 adiw r26,14
  4304. 4229 002e ED91 ld r30,X+
  4305. 4230 0030 FC91 ld r31,X
  4306. 4231 0032 1F97 sbiw r26,14+1
  4307. 4232 0034 1995 eicall
  4308. 4233 0036 188A std Y+16,__zero_reg__
  4309. 4234 0038 1F86 std Y+15,__zero_reg__
  4310. 4235 /* epilogue start */
  4311. 4236 003a DF91 pop r29
  4312. 4237 003c CF91 pop r28
  4313. 4238 003e 1F91 pop r17
  4314. 4239 0040 0F91 pop r16
  4315. 4240 0042 0895 ret
  4316. 4241 .size UFlashDetach, .-UFlashDetach
  4317. 4242 .section .text.UFlashFormat,"ax",@progbits
  4318. 4243 .global UFlashFormat
  4319. 4244 .type UFlashFormat, @function
  4320. 4245 UFlashFormat:
  4321. 4246 0000 0F93 push r16
  4322. 4247 0002 1F93 push r17
  4323. 4248 0004 CF93 push r28
  4324. 4249 0006 DF93 push r29
  4325. 4250 /* prologue: function */
  4326. 4251 /* frame size = 0 */
  4327. 4252 /* stack size = 4 */
  4328. 4253 .L__stack_usage = 4
  4329. 4254 0008 EB01 movw r28,r22
  4330. 4255 000a 8881 ld r24,Y
  4331. 4256 000c 9981 ldd r25,Y+1
  4332. 4257 000e DC01 movw r26,r24
  4333. 4258 0010 4D93 st X+,r20
  4334. 4259 0012 5C93 st X,r21
  4335. 4260 0014 DA01 movw r26,r20
  4336. 4261 0016 1896 adiw r26,8
  4337. 4262 0018 ED91 ld r30,X+
  4338. 4263 001a FC91 ld r31,X
  4339. 4264 001c 1997 sbiw r26,8+1
  4340. 4265 001e 1995 eicall
  4341. 4266 0020 8C01 movw r16,r24
  4342. 4267 0022 892B or r24,r25
  4343. 4268 0024 01F4 brne .L302
  4344. 4269 0026 E881 ld r30,Y
  4345. 4270 0028 F981 ldd r31,Y+1
  4346. 4271 002a 8081 ld r24,Z
  4347. 4272 002c 9181 ldd r25,Z+1
  4348. 4273 002e 0E94 0000 call NutEventPost
  4349. 4274 0032 EC85 ldd r30,Y+12
  4350. 4275 0034 FD85 ldd r31,Y+13
  4351. GAS LISTING /tmp/ccjPZxVo.s page 76
  4352. 4276 0036 CE01 movw r24,r28
  4353. 4277 0038 1995 eicall
  4354. 4278 003a 892B or r24,r25
  4355. 4279 003c 01F4 brne .L300
  4356. 4280 003e 6885 ldd r22,Y+8
  4357. 4281 0040 7985 ldd r23,Y+9
  4358. 4282 0042 4E81 ldd r20,Y+6
  4359. 4283 0044 5F81 ldd r21,Y+7
  4360. 4284 0046 461B sub r20,r22
  4361. 4285 0048 570B sbc r21,r23
  4362. 4286 004a 8A85 ldd r24,Y+10
  4363. 4287 004c 9B85 ldd r25,Y+11
  4364. 4288 004e 481B sub r20,r24
  4365. 4289 0050 590B sbc r21,r25
  4366. 4290 0052 5695 lsr r21
  4367. 4291 0054 4795 ror r20
  4368. 4292 0056 5695 lsr r21
  4369. 4293 0058 4795 ror r20
  4370. 4294 005a 4130 cpi r20,1
  4371. 4295 005c B0E2 ldi r27,32
  4372. 4296 005e 5B07 cpc r21,r27
  4373. 4297 0060 00F0 brlo .L301
  4374. 4298 0062 40E0 ldi r20,0
  4375. 4299 0064 50E2 ldi r21,lo8(32)
  4376. 4300 .L301:
  4377. 4301 0066 440F lsl r20
  4378. 4302 0068 551F rol r21
  4379. 4303 006a 440F lsl r20
  4380. 4304 006c 551F rol r21
  4381. 4305 006e EE8D ldd r30,Y+30
  4382. 4306 0070 FF8D ldd r31,Y+31
  4383. 4307 0072 CE01 movw r24,r28
  4384. 4308 0074 1995 eicall
  4385. 4309 0076 EE85 ldd r30,Y+14
  4386. 4310 0078 FF85 ldd r31,Y+15
  4387. 4311 007a CE01 movw r24,r28
  4388. 4312 007c 1995 eicall
  4389. 4313 007e 00C0 rjmp .L300
  4390. 4314 .L302:
  4391. 4315 0080 0FEF ldi r16,lo8(-1)
  4392. 4316 0082 1FEF ldi r17,lo8(-1)
  4393. 4317 .L300:
  4394. 4318 0084 C801 movw r24,r16
  4395. 4319 /* epilogue start */
  4396. 4320 0086 DF91 pop r29
  4397. 4321 0088 CF91 pop r28
  4398. 4322 008a 1F91 pop r17
  4399. 4323 008c 0F91 pop r16
  4400. 4324 008e 0895 ret
  4401. 4325 .size UFlashFormat, .-UFlashFormat
  4402. 4326 .global devUFlash1
  4403. 4327 .data
  4404. 4328 .type devUFlash1, @object
  4405. 4329 .size devUFlash1, 37
  4406. 4330 devUFlash1:
  4407. 4331 0000 0000 .word 0
  4408. 4332 0002 55 .byte 85
  4409. GAS LISTING /tmp/ccjPZxVo.s page 77
  4410. 4333 0003 46 .byte 70
  4411. 4334 0004 4C .byte 76
  4412. 4335 0005 41 .byte 65
  4413. 4336 0006 53 .byte 83
  4414. 4337 0007 48 .byte 72
  4415. 4338 0008 31 .byte 49
  4416. 4339 0009 00 .byte 0
  4417. 4340 000a 00 .byte 0
  4418. 4341 000b 10 .byte 16
  4419. 4342 000c 0100 .word 1
  4420. 4343 000e 00 .byte 0
  4421. 4344 000f 0000 .word 0
  4422. 4345 0011 0000 .word 0
  4423. 4346 0013 0000 .word gs(UFlashInit)
  4424. 4347 0015 0000 .word gs(UFlashIOCtl)
  4425. 4348 0017 0000 .word gs(UFlashFileRead)
  4426. 4349 0019 0000 .word gs(UFlashFileWrite)
  4427. 4350 001b 0000 .word gs(UFlashFileWrite_P)
  4428. 4351 001d 0000 .word gs(UFlashFileOpen)
  4429. 4352 001f 0000 .word gs(UFlashFileClose)
  4430. 4353 0021 0000 .word gs(UFlashFileSize)
  4431. 4354 0023 0000 .word 0
  4432. 4355 .global devUFlash0
  4433. 4356 .type devUFlash0, @object
  4434. 4357 .size devUFlash0, 37
  4435. 4358 devUFlash0:
  4436. 4359 0025 0000 .word 0
  4437. 4360 0027 55 .byte 85
  4438. 4361 0028 46 .byte 70
  4439. 4362 0029 4C .byte 76
  4440. 4363 002a 41 .byte 65
  4441. 4364 002b 53 .byte 83
  4442. 4365 002c 48 .byte 72
  4443. 4366 002d 30 .byte 48
  4444. 4367 002e 00 .byte 0
  4445. 4368 002f 00 .byte 0
  4446. 4369 0030 10 .byte 16
  4447. 4370 0031 0000 .word 0
  4448. 4371 0033 00 .byte 0
  4449. 4372 0034 0000 .word 0
  4450. 4373 0036 0000 .word 0
  4451. 4374 0038 0000 .word gs(UFlashInit)
  4452. 4375 003a 0000 .word gs(UFlashIOCtl)
  4453. 4376 003c 0000 .word gs(UFlashFileRead)
  4454. 4377 003e 0000 .word gs(UFlashFileWrite)
  4455. 4378 0040 0000 .word gs(UFlashFileWrite_P)
  4456. 4379 0042 0000 .word gs(UFlashFileOpen)
  4457. 4380 0044 0000 .word gs(UFlashFileClose)
  4458. 4381 0046 0000 .word gs(UFlashFileSize)
  4459. 4382 0048 0000 .word 0
  4460. 4383 .local min_used
  4461. 4384 .comm min_used,96,1
  4462. 4385 .ident "GCC: (GNU) 5.3.0"
  4463. 4386 .global __do_copy_data
  4464. 4387 .global __do_clear_bss
  4465. GAS LISTING /tmp/ccjPZxVo.s page 78
  4466. DEFINED SYMBOLS
  4467. *ABS*:0000000000000000 uflashfs.c
  4468. /tmp/ccjPZxVo.s:2 *ABS*:000000000000003e __SP_H__
  4469. /tmp/ccjPZxVo.s:3 *ABS*:000000000000003d __SP_L__
  4470. /tmp/ccjPZxVo.s:4 *ABS*:000000000000003f __SREG__
  4471. /tmp/ccjPZxVo.s:5 *ABS*:000000000000003b __RAMPZ__
  4472. /tmp/ccjPZxVo.s:6 *ABS*:0000000000000000 __tmp_reg__
  4473. /tmp/ccjPZxVo.s:7 *ABS*:0000000000000001 __zero_reg__
  4474. /tmp/ccjPZxVo.s:10 .text.FlashUnitCopy:0000000000000000 FlashUnitCopy
  4475. /tmp/ccjPZxVo.s:42 .text.FlashUnitCommit:0000000000000000 FlashUnitCommit
  4476. /tmp/ccjPZxVo.s:68 .text.FlashReadBlockHead:0000000000000000 FlashReadBlockHead
  4477. /tmp/ccjPZxVo.s:103 .text.FlashWriteBlockHead:0000000000000000 FlashWriteBlockHead
  4478. /tmp/ccjPZxVo.s:149 .text.FlashWriteEntry:0000000000000000 FlashWriteEntry
  4479. /tmp/ccjPZxVo.s:217 .text.FlashReadBlockFoot:0000000000000000 FlashReadBlockFoot
  4480. /tmp/ccjPZxVo.s:255 .text.FlashWriteBlockFoot:0000000000000000 FlashWriteBlockFoot
  4481. /tmp/ccjPZxVo.s:297 .text.FlashEraseEntry:0000000000000000 FlashEraseEntry
  4482. /tmp/ccjPZxVo.s:323 .text.FlashEraseBlockData:0000000000000000 FlashEraseBlockData
  4483. /tmp/ccjPZxVo.s:351 .text.EntryPosSet:0000000000000000 EntryPosSet
  4484. /tmp/ccjPZxVo.s:475 .text.EntryPosInc:0000000000000000 EntryPosInc
  4485. /tmp/ccjPZxVo.s:570 .text.EntryTruncateSeq:0000000000000000 EntryTruncateSeq
  4486. /tmp/ccjPZxVo.s:681 .text.UFlashFileSize:0000000000000000 UFlashFileSize
  4487. /tmp/ccjPZxVo.s:699 .text.UFlashFileWrite_P:0000000000000000 UFlashFileWrite_P
  4488. /tmp/ccjPZxVo.s:710 .text.UFlashInit:0000000000000000 UFlashInit
  4489. /tmp/ccjPZxVo.s:721 .text.FlashReadEntry:0000000000000000 FlashReadEntry
  4490. /tmp/ccjPZxVo.s:810 .text.UFlashFileClose:0000000000000000 UFlashFileClose
  4491. /tmp/ccjPZxVo.s:832 .text.UFlashMount:0000000000000000 UFlashMount
  4492. .bss:0000000000000000 min_used
  4493. /tmp/ccjPZxVo.s:1120 .text.EntrySearchNext:0000000000000000 EntrySearchNext
  4494. /tmp/ccjPZxVo.s:1305 .text.EntryScan.isra.1:0000000000000000 EntryScan.isra.1
  4495. /tmp/ccjPZxVo.s:1492 .text.PhysBlkAllocate:0000000000000000 PhysBlkAllocate
  4496. /tmp/ccjPZxVo.s:1981 .text.EntrySeek.part.4:0000000000000000 EntrySeek.part.4
  4497. /tmp/ccjPZxVo.s:2089 .text.UFlashFileRead:0000000000000000 UFlashFileRead
  4498. /tmp/ccjPZxVo.s:2340 .text.UFlashFileOpen:0000000000000000 UFlashFileOpen
  4499. /tmp/ccjPZxVo.s:2833 .text.UFlashFileWrite:0000000000000000 UFlashFileWrite
  4500. /tmp/ccjPZxVo.s:3294 .text.UFlashIOCtl:0000000000000000 UFlashIOCtl
  4501. /tmp/ccjPZxVo.s:4142 .text.UFlashAttach:0000000000000000 UFlashAttach
  4502. /tmp/ccjPZxVo.s:4203 .text.UFlashDetach:0000000000000000 UFlashDetach
  4503. /tmp/ccjPZxVo.s:4245 .text.UFlashFormat:0000000000000000 UFlashFormat
  4504. /tmp/ccjPZxVo.s:4330 .data:0000000000000000 devUFlash1
  4505. /tmp/ccjPZxVo.s:4358 .data:0000000000000025 devUFlash0
  4506. UNDEFINED SYMBOLS
  4507. __udivmodsi4
  4508. malloc
  4509. free
  4510. calloc
  4511. memset
  4512. NutEventPost
  4513. NutEventWait
  4514. errno
  4515. strdup
  4516. strchr
  4517. strcpy
  4518. __do_copy_data
  4519. __do_clear_bss