flash.lst 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700
  1. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 1
  2. 1 .file "flash.c"
  3. 2 .arch atmega2561
  4. 3 __SREG__ = 0x3f
  5. 4 __SP_H__ = 0x3e
  6. 5 __SP_L__ = 0x3d
  7. 6 __tmp_reg__ = 0
  8. 7 __zero_reg__ = 1
  9. 8 .global __do_copy_data
  10. 9 .global __do_clear_bss
  11. 10 .text
  12. 11 .global At45dbChipErase
  13. 12 .type At45dbChipErase, @function
  14. 13 At45dbChipErase:
  15. 14 /* prologue: frame size=0 */
  16. 15 /* prologue end (size=0) */
  17. 16 0000 8FEF ldi r24,lo8(-1)
  18. 17 0002 9FEF ldi r25,hi8(-1)
  19. 18 /* epilogue: frame size=0 */
  20. 19 0004 0895 ret
  21. 20 /* epilogue end (size=1) */
  22. 21 /* function At45dbChipErase size 3 (2) */
  23. 22 .size At45dbChipErase, .-At45dbChipErase
  24. 23 .type At45dbTransfer, @function
  25. 24 At45dbTransfer:
  26. 25 /* prologue: frame size=0 */
  27. 26 0006 2F92 push r2
  28. 27 0008 3F92 push r3
  29. 28 000a 4F92 push r4
  30. 29 000c 5F92 push r5
  31. 30 000e 6F92 push r6
  32. 31 0010 7F92 push r7
  33. 32 0012 8F92 push r8
  34. 33 0014 9F92 push r9
  35. 34 0016 AF92 push r10
  36. 35 0018 BF92 push r11
  37. 36 001a CF92 push r12
  38. 37 001c DF92 push r13
  39. 38 001e EF92 push r14
  40. 39 0020 FF92 push r15
  41. 40 0022 0F93 push r16
  42. 41 0024 1F93 push r17
  43. 42 0026 CF93 push r28
  44. 43 0028 DF93 push r29
  45. 44 /* prologue end (size=18) */
  46. 45 002a 5C01 movw r10,r24
  47. 46 002c 6B01 movw r12,r22
  48. 47 002e 4A01 movw r8,r20
  49. 48 0030 2901 movw r4,r18
  50. 49 0032 3801 movw r6,r16
  51. 50 0034 1701 movw r2,r14
  52. 51 0036 81E0 ldi r24,lo8(1)
  53. 52 0038 90E0 ldi r25,hi8(1)
  54. 53 003a 0E94 0000 call SPIselect
  55. 54 003e C0E0 ldi r28,lo8(0)
  56. 55 0040 D0E0 ldi r29,hi8(0)
  57. 56 0042 7601 movw r14,r12
  58. 57 0044 8501 movw r16,r10
  59. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 2
  60. 58 0046 00C0 rjmp .L4
  61. 59 .L5:
  62. 60 0048 F801 movw r30,r16
  63. 61 004a 8191 ld r24,Z+
  64. 62 004c 8F01 movw r16,r30
  65. 63 004e 0E94 0000 call SPItransferByte
  66. 64 0052 F701 movw r30,r14
  67. 65 0054 8193 st Z+,r24
  68. 66 0056 7F01 movw r14,r30
  69. 67 0058 2196 adiw r28,1
  70. 68 .L4:
  71. 69 005a C815 cp r28,r8
  72. 70 005c D905 cpc r29,r9
  73. 71 005e 04F0 brlt .L5
  74. 72 0060 C0E0 ldi r28,lo8(0)
  75. 73 0062 D0E0 ldi r29,hi8(0)
  76. 74 0064 7301 movw r14,r6
  77. 75 0066 8201 movw r16,r4
  78. 76 0068 00C0 rjmp .L7
  79. 77 .L8:
  80. 78 006a F801 movw r30,r16
  81. 79 006c 8191 ld r24,Z+
  82. 80 006e 8F01 movw r16,r30
  83. 81 0070 0E94 0000 call SPItransferByte
  84. 82 0074 F701 movw r30,r14
  85. 83 0076 8193 st Z+,r24
  86. 84 0078 7F01 movw r14,r30
  87. 85 007a 2196 adiw r28,1
  88. 86 .L7:
  89. 87 007c C215 cp r28,r2
  90. 88 007e D305 cpc r29,r3
  91. 89 0080 04F0 brlt .L8
  92. 90 0082 0E94 0000 call SPIdeselect
  93. 91 0086 80E0 ldi r24,lo8(0)
  94. 92 0088 90E0 ldi r25,hi8(0)
  95. 93 /* epilogue: frame size=0 */
  96. 94 008a DF91 pop r29
  97. 95 008c CF91 pop r28
  98. 96 008e 1F91 pop r17
  99. 97 0090 0F91 pop r16
  100. 98 0092 FF90 pop r15
  101. 99 0094 EF90 pop r14
  102. 100 0096 DF90 pop r13
  103. 101 0098 CF90 pop r12
  104. 102 009a BF90 pop r11
  105. 103 009c AF90 pop r10
  106. 104 009e 9F90 pop r9
  107. 105 00a0 8F90 pop r8
  108. 106 00a2 7F90 pop r7
  109. 107 00a4 6F90 pop r6
  110. 108 00a6 5F90 pop r5
  111. 109 00a8 4F90 pop r4
  112. 110 00aa 3F90 pop r3
  113. 111 00ac 2F90 pop r2
  114. 112 00ae 0895 ret
  115. 113 /* epilogue end (size=19) */
  116. 114 /* function At45dbTransfer size 85 (48) */
  117. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 3
  118. 115 .size At45dbTransfer, .-At45dbTransfer
  119. 116 .global At45dbGetStatus
  120. 117 .type At45dbGetStatus, @function
  121. 118 At45dbGetStatus:
  122. 119 /* prologue: frame size=2 */
  123. 120 00b0 EF92 push r14
  124. 121 00b2 FF92 push r15
  125. 122 00b4 0F93 push r16
  126. 123 00b6 1F93 push r17
  127. 124 00b8 CF93 push r28
  128. 125 00ba DF93 push r29
  129. 126 00bc CDB7 in r28,__SP_L__
  130. 127 00be DEB7 in r29,__SP_H__
  131. 128 00c0 2297 sbiw r28,2
  132. 129 00c2 0FB6 in __tmp_reg__,__SREG__
  133. 130 00c4 F894 cli
  134. 131 00c6 DEBF out __SP_H__,r29
  135. 132 00c8 0FBE out __SREG__,__tmp_reg__
  136. 133 00ca CDBF out __SP_L__,r28
  137. 134 /* prologue end (size=14) */
  138. 135 00cc 87ED ldi r24,lo8(-41)
  139. 136 00ce 8983 std Y+1,r24
  140. 137 00d0 8FEF ldi r24,lo8(-1)
  141. 138 00d2 8A83 std Y+2,r24
  142. 139 00d4 EE24 clr r14
  143. 140 00d6 FF24 clr r15
  144. 141 00d8 00E0 ldi r16,lo8(0)
  145. 142 00da 10E0 ldi r17,hi8(0)
  146. 143 00dc 20E0 ldi r18,lo8(0)
  147. 144 00de 30E0 ldi r19,hi8(0)
  148. 145 00e0 42E0 ldi r20,lo8(2)
  149. 146 00e2 50E0 ldi r21,hi8(2)
  150. 147 00e4 CE01 movw r24,r28
  151. 148 00e6 0196 adiw r24,1
  152. 149 00e8 BC01 movw r22,r24
  153. 150 00ea 0E94 0000 call At45dbTransfer
  154. 151 00ee 892B or r24,r25
  155. 152 00f0 01F0 breq .L12
  156. 153 00f2 8FEF ldi r24,lo8(255)
  157. 154 00f4 90E0 ldi r25,hi8(255)
  158. 155 00f6 00C0 rjmp .L14
  159. 156 .L12:
  160. 157 00f8 8A81 ldd r24,Y+2
  161. 158 00fa 9927 clr r25
  162. 159 .L14:
  163. 160 /* epilogue: frame size=2 */
  164. 161 00fc 2296 adiw r28,2
  165. 162 00fe 0FB6 in __tmp_reg__,__SREG__
  166. 163 0100 F894 cli
  167. 164 0102 DEBF out __SP_H__,r29
  168. 165 0104 0FBE out __SREG__,__tmp_reg__
  169. 166 0106 CDBF out __SP_L__,r28
  170. 167 0108 DF91 pop r29
  171. 168 010a CF91 pop r28
  172. 169 010c 1F91 pop r17
  173. 170 010e 0F91 pop r16
  174. 171 0110 FF90 pop r15
  175. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 4
  176. 172 0112 EF90 pop r14
  177. 173 0114 0895 ret
  178. 174 /* epilogue end (size=13) */
  179. 175 /* function At45dbGetStatus size 51 (24) */
  180. 176 .size At45dbGetStatus, .-At45dbGetStatus
  181. 177 .global At45dbInit
  182. 178 .type At45dbInit, @function
  183. 179 At45dbInit:
  184. 180 /* prologue: frame size=0 */
  185. 181 0116 0F93 push r16
  186. 182 0118 1F93 push r17
  187. 183 /* prologue end (size=2) */
  188. 184 011a 0E94 0000 call At45dbGetStatus
  189. 185 011e 0E94 0000 call At45dbGetStatus
  190. 186 0122 082F mov r16,r24
  191. 187 0124 60E0 ldi r22,lo8(0)
  192. 188 0126 70E0 ldi r23,hi8(0)
  193. 189 0128 2091 0000 lds r18,dcbtab
  194. 190 012c 3091 0000 lds r19,(dcbtab)+1
  195. 191 0130 00C0 rjmp .L17
  196. 192 .L18:
  197. 193 0132 6F5F subi r22,lo8(-(1))
  198. 194 0134 7F4F sbci r23,hi8(-(1))
  199. 195 0136 8085 ldd r24,Z+8
  200. 196 0138 8023 and r24,r16
  201. 197 013a 9185 ldd r25,Z+9
  202. 198 013c 8917 cp r24,r25
  203. 199 013e 01F4 brne .L17
  204. 200 0140 8AE0 ldi r24,lo8(10)
  205. 201 0142 189F mul r17,r24
  206. 202 0144 9001 movw r18,r0
  207. 203 0146 1124 clr r1
  208. 204 0148 2050 subi r18,lo8(-(at45_devt))
  209. 205 014a 3040 sbci r19,hi8(-(at45_devt))
  210. 206 014c 00C0 rjmp .L22
  211. 207 .L17:
  212. 208 014e 162F mov r17,r22
  213. 209 0150 462F mov r20,r22
  214. 210 0152 5527 clr r21
  215. 211 0154 FA01 movw r30,r20
  216. 212 0156 EE0F lsl r30
  217. 213 0158 FF1F rol r31
  218. 214 015a CA01 movw r24,r20
  219. 215 015c A3E0 ldi r26,3
  220. 216 015e 880F 1: lsl r24
  221. 217 0160 991F rol r25
  222. 218 0162 AA95 dec r26
  223. 219 0164 01F4 brne 1b
  224. 220 0166 E80F add r30,r24
  225. 221 0168 F91F adc r31,r25
  226. 222 016a E050 subi r30,lo8(-(at45_devt))
  227. 223 016c F040 sbci r31,hi8(-(at45_devt))
  228. 224 016e 8081 ld r24,Z
  229. 225 0170 9181 ldd r25,Z+1
  230. 226 0172 A281 ldd r26,Z+2
  231. 227 0174 B381 ldd r27,Z+3
  232. 228 0176 0097 sbiw r24,0
  233. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 5
  234. 229 0178 A105 cpc r26,__zero_reg__
  235. 230 017a B105 cpc r27,__zero_reg__
  236. 231 017c 01F4 brne .L18
  237. 232 .L22:
  238. 233 017e 3093 0000 sts (dcbtab)+1,r19
  239. 234 0182 2093 0000 sts dcbtab,r18
  240. 235 0186 CA01 movw r24,r20
  241. 236 /* epilogue: frame size=0 */
  242. 237 0188 1F91 pop r17
  243. 238 018a 0F91 pop r16
  244. 239 018c 0895 ret
  245. 240 /* epilogue end (size=3) */
  246. 241 /* function At45dbInit size 60 (55) */
  247. 242 .size At45dbInit, .-At45dbInit
  248. 243 .global At45dbWaitReady
  249. 244 .type At45dbWaitReady, @function
  250. 245 At45dbWaitReady:
  251. 246 /* prologue: frame size=0 */
  252. 247 018e EF92 push r14
  253. 248 0190 FF92 push r15
  254. 249 0192 0F93 push r16
  255. 250 0194 1F93 push r17
  256. 251 0196 CF93 push r28
  257. 252 0198 DF93 push r29
  258. 253 /* prologue end (size=6) */
  259. 254 019a 7B01 movw r14,r22
  260. 255 019c 8C01 movw r16,r24
  261. 256 019e EA01 movw r28,r20
  262. 257 01a0 00C0 rjmp .L26
  263. 258 .L27:
  264. 259 01a2 2097 sbiw r28,0
  265. 260 01a4 01F4 brne .L28
  266. 261 01a6 61E0 ldi r22,lo8(1)
  267. 262 01a8 70E0 ldi r23,hi8(1)
  268. 263 01aa 80E0 ldi r24,hlo8(1)
  269. 264 01ac 90E0 ldi r25,hhi8(1)
  270. 265 01ae 0E94 0000 call NutSleep
  271. 266 .L28:
  272. 267 01b2 0894 sec
  273. 268 01b4 E108 sbc r14,__zero_reg__
  274. 269 01b6 F108 sbc r15,__zero_reg__
  275. 270 01b8 0109 sbc r16,__zero_reg__
  276. 271 01ba 1109 sbc r17,__zero_reg__
  277. 272 01bc 8FEF ldi r24,lo8(-1)
  278. 273 01be E816 cp r14,r24
  279. 274 01c0 8FEF ldi r24,hi8(-1)
  280. 275 01c2 F806 cpc r15,r24
  281. 276 01c4 8FEF ldi r24,hlo8(-1)
  282. 277 01c6 0807 cpc r16,r24
  283. 278 01c8 8FEF ldi r24,hhi8(-1)
  284. 279 01ca 1807 cpc r17,r24
  285. 280 01cc 01F4 brne .L26
  286. 281 01ce 8FEF ldi r24,lo8(-1)
  287. 282 01d0 9FEF ldi r25,hi8(-1)
  288. 283 01d2 00C0 rjmp .L31
  289. 284 .L26:
  290. 285 01d4 0E94 0000 call At45dbGetStatus
  291. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 6
  292. 286 01d8 87FF sbrs r24,7
  293. 287 01da 00C0 rjmp .L27
  294. 288 01dc 80E0 ldi r24,lo8(0)
  295. 289 01de 90E0 ldi r25,hi8(0)
  296. 290 .L31:
  297. 291 /* epilogue: frame size=0 */
  298. 292 01e0 DF91 pop r29
  299. 293 01e2 CF91 pop r28
  300. 294 01e4 1F91 pop r17
  301. 295 01e6 0F91 pop r16
  302. 296 01e8 FF90 pop r15
  303. 297 01ea EF90 pop r14
  304. 298 01ec 0895 ret
  305. 299 /* epilogue end (size=7) */
  306. 300 /* function At45dbWaitReady size 48 (35) */
  307. 301 .size At45dbWaitReady, .-At45dbWaitReady
  308. 302 .global At45dbSendCmd
  309. 303 .type At45dbSendCmd, @function
  310. 304 At45dbSendCmd:
  311. 305 /* prologue: frame size=0 */
  312. 306 01ee 5F92 push r5
  313. 307 01f0 6F92 push r6
  314. 308 01f2 7F92 push r7
  315. 309 01f4 8F92 push r8
  316. 310 01f6 9F92 push r9
  317. 311 01f8 AF92 push r10
  318. 312 01fa BF92 push r11
  319. 313 01fc CF92 push r12
  320. 314 01fe DF92 push r13
  321. 315 0200 EF92 push r14
  322. 316 0202 FF92 push r15
  323. 317 0204 0F93 push r16
  324. 318 0206 1F93 push r17
  325. 319 0208 CF93 push r28
  326. 320 020a DF93 push r29
  327. 321 /* prologue end (size=15) */
  328. 322 020c 582E mov r5,r24
  329. 323 020e 4A01 movw r8,r20
  330. 324 0210 5B01 movw r10,r22
  331. 325 0212 E901 movw r28,r18
  332. 326 0214 3801 movw r6,r16
  333. 327 0216 8701 movw r16,r14
  334. 328 0218 2930 cpi r18,9
  335. 329 021a 3105 cpc r19,__zero_reg__
  336. 330 021c 04F0 brlt .L37
  337. 331 021e 8FEF ldi r24,lo8(-1)
  338. 332 0220 9FEF ldi r25,hi8(-1)
  339. 333 0222 00C0 rjmp .L39
  340. 334 .L37:
  341. 335 0224 A901 movw r20,r18
  342. 336 0226 60E0 ldi r22,lo8(0)
  343. 337 0228 70E0 ldi r23,hi8(0)
  344. 338 022a 80E0 ldi r24,lo8(dcbtab+2)
  345. 339 022c 90E0 ldi r25,hi8(dcbtab+2)
  346. 340 022e 0E94 0000 call memset
  347. 341 0232 5092 0000 sts dcbtab+2,r5
  348. 342 0236 8114 cp r8,__zero_reg__
  349. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 7
  350. 343 0238 9104 cpc r9,__zero_reg__
  351. 344 023a A104 cpc r10,__zero_reg__
  352. 345 023c B104 cpc r11,__zero_reg__
  353. 346 023e 01F0 breq .L40
  354. 347 0240 C501 movw r24,r10
  355. 348 0242 AA27 clr r26
  356. 349 0244 BB27 clr r27
  357. 350 0246 8093 0000 sts dcbtab+3,r24
  358. 351 024a BB27 clr r27
  359. 352 024c AB2D mov r26,r11
  360. 353 024e 9A2D mov r25,r10
  361. 354 0250 892D mov r24,r9
  362. 355 0252 8093 0000 sts dcbtab+4,r24
  363. 356 0256 8092 0000 sts dcbtab+5,r8
  364. 357 .L40:
  365. 358 025a 7601 movw r14,r12
  366. 359 025c 9301 movw r18,r6
  367. 360 025e AE01 movw r20,r28
  368. 361 0260 60E0 ldi r22,lo8(dcbtab+2)
  369. 362 0262 70E0 ldi r23,hi8(dcbtab+2)
  370. 363 0264 CB01 movw r24,r22
  371. 364 0266 0E94 0000 call At45dbTransfer
  372. 365 .L39:
  373. 366 /* epilogue: frame size=0 */
  374. 367 026a DF91 pop r29
  375. 368 026c CF91 pop r28
  376. 369 026e 1F91 pop r17
  377. 370 0270 0F91 pop r16
  378. 371 0272 FF90 pop r15
  379. 372 0274 EF90 pop r14
  380. 373 0276 DF90 pop r13
  381. 374 0278 CF90 pop r12
  382. 375 027a BF90 pop r11
  383. 376 027c AF90 pop r10
  384. 377 027e 9F90 pop r9
  385. 378 0280 8F90 pop r8
  386. 379 0282 7F90 pop r7
  387. 380 0284 6F90 pop r6
  388. 381 0286 5F90 pop r5
  389. 382 0288 0895 ret
  390. 383 /* epilogue end (size=16) */
  391. 384 /* function At45dbSendCmd size 78 (47) */
  392. 385 .size At45dbSendCmd, .-At45dbSendCmd
  393. 386 .global At45dbPageWrite
  394. 387 .type At45dbPageWrite, @function
  395. 388 At45dbPageWrite:
  396. 389 /* prologue: frame size=0 */
  397. 390 028a 8F92 push r8
  398. 391 028c 9F92 push r9
  399. 392 028e AF92 push r10
  400. 393 0290 BF92 push r11
  401. 394 0292 CF92 push r12
  402. 395 0294 DF92 push r13
  403. 396 0296 EF92 push r14
  404. 397 0298 FF92 push r15
  405. 398 029a 0F93 push r16
  406. 399 029c 1F93 push r17
  407. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 8
  408. 400 029e CF93 push r28
  409. 401 02a0 DF93 push r29
  410. 402 /* prologue end (size=12) */
  411. 403 02a2 4B01 movw r8,r22
  412. 404 02a4 5C01 movw r10,r24
  413. 405 02a6 8A01 movw r16,r20
  414. 406 02a8 6901 movw r12,r18
  415. 407 02aa C901 movw r24,r18
  416. 408 02ac 0E94 0000 call malloc
  417. 409 02b0 EC01 movw r28,r24
  418. 410 02b2 0097 sbiw r24,0
  419. 411 02b4 01F4 brne .L44
  420. 412 02b6 0FEF ldi r16,lo8(-1)
  421. 413 02b8 1FEF ldi r17,hi8(-1)
  422. 414 02ba 00C0 rjmp .L46
  423. 415 .L44:
  424. 416 02bc 7C01 movw r14,r24
  425. 417 02be 24E0 ldi r18,lo8(4)
  426. 418 02c0 30E0 ldi r19,hi8(4)
  427. 419 02c2 40E0 ldi r20,lo8(0)
  428. 420 02c4 50E0 ldi r21,hi8(0)
  429. 421 02c6 60E0 ldi r22,hlo8(0)
  430. 422 02c8 70E0 ldi r23,hhi8(0)
  431. 423 02ca 84E8 ldi r24,lo8(-124)
  432. 424 02cc 0E94 0000 call At45dbSendCmd
  433. 425 02d0 892B or r24,r25
  434. 426 02d2 01F4 brne .L47
  435. 427 02d4 E091 0000 lds r30,dcbtab
  436. 428 02d8 F091 0000 lds r31,(dcbtab)+1
  437. 429 02dc 0680 ldd r0,Z+6
  438. 430 02de 00C0 rjmp 2f
  439. 431 02e0 880C 1: lsl r8
  440. 432 02e2 991C rol r9
  441. 433 02e4 AA1C rol r10
  442. 434 02e6 BB1C rol r11
  443. 435 02e8 0A94 2: dec r0
  444. 436 02ea 02F4 brpl 1b
  445. 437 02ec CC24 clr r12
  446. 438 02ee DD24 clr r13
  447. 439 02f0 EE24 clr r14
  448. 440 02f2 FF24 clr r15
  449. 441 02f4 00E0 ldi r16,lo8(0)
  450. 442 02f6 10E0 ldi r17,hi8(0)
  451. 443 02f8 24E0 ldi r18,lo8(4)
  452. 444 02fa 30E0 ldi r19,hi8(4)
  453. 445 02fc B501 movw r22,r10
  454. 446 02fe A401 movw r20,r8
  455. 447 0300 83E8 ldi r24,lo8(-125)
  456. 448 0302 0E94 0000 call At45dbSendCmd
  457. 449 0306 892B or r24,r25
  458. 450 0308 01F4 brne .L47
  459. 451 030a 41E0 ldi r20,lo8(1)
  460. 452 030c 50E0 ldi r21,hi8(1)
  461. 453 030e 68EE ldi r22,lo8(1000)
  462. 454 0310 73E0 ldi r23,hi8(1000)
  463. 455 0312 80E0 ldi r24,hlo8(1000)
  464. 456 0314 90E0 ldi r25,hhi8(1000)
  465. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 9
  466. 457 0316 0E94 0000 call At45dbWaitReady
  467. 458 031a 8C01 movw r16,r24
  468. 459 031c 00C0 rjmp .L50
  469. 460 .L47:
  470. 461 031e 0FEF ldi r16,lo8(-1)
  471. 462 0320 1FEF ldi r17,hi8(-1)
  472. 463 .L50:
  473. 464 0322 CE01 movw r24,r28
  474. 465 0324 0E94 0000 call free
  475. 466 .L46:
  476. 467 0328 C801 movw r24,r16
  477. 468 /* epilogue: frame size=0 */
  478. 469 032a DF91 pop r29
  479. 470 032c CF91 pop r28
  480. 471 032e 1F91 pop r17
  481. 472 0330 0F91 pop r16
  482. 473 0332 FF90 pop r15
  483. 474 0334 EF90 pop r14
  484. 475 0336 DF90 pop r13
  485. 476 0338 CF90 pop r12
  486. 477 033a BF90 pop r11
  487. 478 033c AF90 pop r10
  488. 479 033e 9F90 pop r9
  489. 480 0340 8F90 pop r8
  490. 481 0342 0895 ret
  491. 482 /* epilogue end (size=13) */
  492. 483 /* function At45dbPageWrite size 93 (68) */
  493. 484 .size At45dbPageWrite, .-At45dbPageWrite
  494. 485 .global At45dbPageRead
  495. 486 .type At45dbPageRead, @function
  496. 487 At45dbPageRead:
  497. 488 /* prologue: frame size=0 */
  498. 489 0344 CF92 push r12
  499. 490 0346 DF92 push r13
  500. 491 0348 EF92 push r14
  501. 492 034a FF92 push r15
  502. 493 034c 0F93 push r16
  503. 494 034e 1F93 push r17
  504. 495 /* prologue end (size=6) */
  505. 496 0350 E091 0000 lds r30,dcbtab
  506. 497 0354 F091 0000 lds r31,(dcbtab)+1
  507. 498 0358 0680 ldd r0,Z+6
  508. 499 035a 00C0 rjmp 2f
  509. 500 035c 660F 1: lsl r22
  510. 501 035e 771F rol r23
  511. 502 0360 881F rol r24
  512. 503 0362 991F rol r25
  513. 504 0364 0A94 2: dec r0
  514. 505 0366 02F4 brpl 1b
  515. 506 0368 6901 movw r12,r18
  516. 507 036a 7A01 movw r14,r20
  517. 508 036c 8A01 movw r16,r20
  518. 509 036e 28E0 ldi r18,lo8(8)
  519. 510 0370 30E0 ldi r19,hi8(8)
  520. 511 0372 AB01 movw r20,r22
  521. 512 0374 BC01 movw r22,r24
  522. 513 0376 88EE ldi r24,lo8(-24)
  523. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 10
  524. 514 0378 0E94 0000 call At45dbSendCmd
  525. 515 /* epilogue: frame size=0 */
  526. 516 037c 1F91 pop r17
  527. 517 037e 0F91 pop r16
  528. 518 0380 FF90 pop r15
  529. 519 0382 EF90 pop r14
  530. 520 0384 DF90 pop r13
  531. 521 0386 CF90 pop r12
  532. 522 0388 0895 ret
  533. 523 /* epilogue end (size=7) */
  534. 524 /* function At45dbPageRead size 35 (22) */
  535. 525 .size At45dbPageRead, .-At45dbPageRead
  536. 526 .global At45dbPageErase
  537. 527 .type At45dbPageErase, @function
  538. 528 At45dbPageErase:
  539. 529 /* prologue: frame size=0 */
  540. 530 038a CF92 push r12
  541. 531 038c DF92 push r13
  542. 532 038e EF92 push r14
  543. 533 0390 FF92 push r15
  544. 534 0392 0F93 push r16
  545. 535 0394 1F93 push r17
  546. 536 /* prologue end (size=6) */
  547. 537 0396 AA27 clr r26
  548. 538 0398 BB27 clr r27
  549. 539 039a CC24 clr r12
  550. 540 039c DD24 clr r13
  551. 541 039e EE24 clr r14
  552. 542 03a0 FF24 clr r15
  553. 543 03a2 00E0 ldi r16,lo8(0)
  554. 544 03a4 10E0 ldi r17,hi8(0)
  555. 545 03a6 24E0 ldi r18,lo8(4)
  556. 546 03a8 30E0 ldi r19,hi8(4)
  557. 547 03aa AC01 movw r20,r24
  558. 548 03ac BD01 movw r22,r26
  559. 549 03ae 81E8 ldi r24,lo8(-127)
  560. 550 03b0 0E94 0000 call At45dbSendCmd
  561. 551 /* epilogue: frame size=0 */
  562. 552 03b4 1F91 pop r17
  563. 553 03b6 0F91 pop r16
  564. 554 03b8 FF90 pop r15
  565. 555 03ba EF90 pop r14
  566. 556 03bc DF90 pop r13
  567. 557 03be CF90 pop r12
  568. 558 03c0 0895 ret
  569. 559 /* epilogue end (size=7) */
  570. 560 /* function At45dbPageErase size 28 (15) */
  571. 561 .size At45dbPageErase, .-At45dbPageErase
  572. 562 .global at45_devt
  573. 563 .data
  574. 564 .type at45_devt, @object
  575. 565 .size at45_devt, 80
  576. 566 at45_devt:
  577. 567 0000 00 .byte 0
  578. 568 0001 02 .byte 2
  579. 569 0002 00 .byte 0
  580. 570 0003 00 .byte 0
  581. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 11
  582. 571 0004 0801 .word 264
  583. 572 0006 0900 .word 9
  584. 573 0008 3C .byte 60
  585. 574 0009 0C .byte 12
  586. 575 000a 01 .byte 1
  587. 576 000b 04 .byte 4
  588. 577 000c 00 .byte 0
  589. 578 000d 00 .byte 0
  590. 579 000e 0801 .word 264
  591. 580 0010 0900 .word 9
  592. 581 0012 3C .byte 60
  593. 582 0013 14 .byte 20
  594. 583 0014 00 .byte 0
  595. 584 0015 08 .byte 8
  596. 585 0016 00 .byte 0
  597. 586 0017 00 .byte 0
  598. 587 0018 0801 .word 264
  599. 588 001a 0900 .word 9
  600. 589 001c 3C .byte 60
  601. 590 001d 1C .byte 28
  602. 591 001e 00 .byte 0
  603. 592 001f 10 .byte 16
  604. 593 0020 00 .byte 0
  605. 594 0021 00 .byte 0
  606. 595 0022 0801 .word 264
  607. 596 0024 0900 .word 9
  608. 597 0026 3C .byte 60
  609. 598 0027 24 .byte 36
  610. 599 0028 00 .byte 0
  611. 600 0029 10 .byte 16
  612. 601 002a 00 .byte 0
  613. 602 002b 00 .byte 0
  614. 603 002c 1002 .word 528
  615. 604 002e 0A00 .word 10
  616. 605 0030 3C .byte 60
  617. 606 0031 2C .byte 44
  618. 607 0032 00 .byte 0
  619. 608 0033 20 .byte 32
  620. 609 0034 00 .byte 0
  621. 610 0035 00 .byte 0
  622. 611 0036 1002 .word 528
  623. 612 0038 0A00 .word 10
  624. 613 003a 3C .byte 60
  625. 614 003b 34 .byte 52
  626. 615 003c 00 .byte 0
  627. 616 003d 20 .byte 32
  628. 617 003e 00 .byte 0
  629. 618 003f 00 .byte 0
  630. 619 0040 2004 .word 1056
  631. 620 0042 0B00 .word 11
  632. 621 0044 38 .byte 56
  633. 622 0045 38 .byte 56
  634. 623 0046 00 .byte 0
  635. 624 0047 00 .byte 0
  636. 625 0048 00 .byte 0
  637. 626 0049 00 .byte 0
  638. 627 004a 0000 .word 0
  639. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 12
  640. 628 004c 0000 .word 0
  641. 629 004e 00 .byte 0
  642. 630 004f 00 .byte 0
  643. 631 .lcomm dcbtab,10
  644. 632 /* File "source/flash.c": code 481 = 0x01e1 ( 316), prologues 79, epilogues 86 */
  645. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s page 13
  646. DEFINED SYMBOLS
  647. *ABS*:00000000 flash.c
  648. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:3 *ABS*:0000003f __SREG__
  649. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:4 *ABS*:0000003e __SP_H__
  650. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:5 *ABS*:0000003d __SP_L__
  651. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:6 *ABS*:00000000 __tmp_reg__
  652. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:7 *ABS*:00000001 __zero_reg__
  653. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:13 .text:00000000 At45dbChipErase
  654. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:24 .text:00000006 At45dbTransfer
  655. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:118 .text:000000b0 At45dbGetStatus
  656. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:179 .text:00000116 At45dbInit
  657. .bss:00000000 dcbtab
  658. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:566 .data:00000000 at45_devt
  659. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:245 .text:0000018e At45dbWaitReady
  660. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:304 .text:000001ee At45dbSendCmd
  661. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:388 .text:0000028a At45dbPageWrite
  662. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:487 .text:00000344 At45dbPageRead
  663. C:\Users\GUUSV_~1\AppData\Local\Temp/cczBXmpu.s:528 .text:0000038a At45dbPageErase
  664. UNDEFINED SYMBOLS
  665. __do_copy_data
  666. __do_clear_bss
  667. SPIselect
  668. SPItransferByte
  669. SPIdeselect
  670. NutSleep
  671. memset
  672. malloc
  673. free