nvmem_at45d.lst 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. GAS LISTING /tmp/ccNRFDtY.s page 1
  2. 1 .file "nvmem_at45d.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.SpiAt45dConfigSize,"ax",@progbits
  10. 9 .global SpiAt45dConfigSize
  11. 10 .type SpiAt45dConfigSize, @function
  12. 11 SpiAt45dConfigSize:
  13. 12 0000 CF93 push r28
  14. 13 0002 DF93 push r29
  15. 14 /* prologue: function */
  16. 15 /* frame size = 0 */
  17. 16 /* stack size = 2 */
  18. 17 .L__stack_usage = 2
  19. 18 0004 8091 0000 lds r24,devSysConf
  20. 19 0008 9091 0000 lds r25,devSysConf+1
  21. 20 000c 892B or r24,r25
  22. 21 000e 01F4 brne .L2
  23. 22 0010 C091 0000 lds r28,devSpiAt45d0+15
  24. 23 0014 D091 0000 lds r29,devSpiAt45d0+15+1
  25. 24 0018 8881 ld r24,Y
  26. 25 001a 9981 ldd r25,Y+1
  27. 26 001c 892B or r24,r25
  28. 27 001e 01F4 brne .L3
  29. 28 0020 80E0 ldi r24,lo8(spiBus0Avr)
  30. 29 0022 90E0 ldi r25,hi8(spiBus0Avr)
  31. 30 0024 9983 std Y+1,r25
  32. 31 0026 8883 st Y,r24
  33. 32 .L3:
  34. 33 0028 E881 ld r30,Y
  35. 34 002a F981 ldd r31,Y+1
  36. 35 002c 0084 ldd __tmp_reg__,Z+8
  37. 36 002e F185 ldd r31,Z+9
  38. 37 0030 E02D mov r30,__tmp_reg__
  39. 38 0032 CE01 movw r24,r28
  40. 39 0034 1995 eicall
  41. 40 0036 892B or r24,r25
  42. 41 0038 01F4 brne .L6
  43. 42 003a 8881 ld r24,Y
  44. 43 003c 9981 ldd r25,Y+1
  45. 44 003e 0E94 0000 call NutEventPost
  46. 45 0042 80E0 ldi r24,lo8(devSpiAt45d0)
  47. 46 0044 90E0 ldi r25,hi8(devSpiAt45d0)
  48. 47 0046 0E94 0000 call SpiAt45dInit
  49. 48 004a 892B or r24,r25
  50. 49 004c 01F4 brne .L6
  51. 50 004e 80E0 ldi r24,lo8(devSpiAt45d0)
  52. 51 0050 90E0 ldi r25,hi8(devSpiAt45d0)
  53. 52 0052 9093 0000 sts devSysConf+1,r25
  54. 53 0056 8093 0000 sts devSysConf,r24
  55. 54 .L2:
  56. 55 005a 8091 0000 lds r24,devSysConf
  57. 56 005e 9091 0000 lds r25,devSysConf+1
  58. 57 /* epilogue start */
  59. GAS LISTING /tmp/ccNRFDtY.s page 2
  60. 58 0062 DF91 pop r29
  61. 59 0064 CF91 pop r28
  62. 60 0066 0C94 0000 jmp SpiAt45dPageSize
  63. 61 .L6:
  64. 62 006a 80E0 ldi r24,0
  65. 63 006c 90E0 ldi r25,0
  66. 64 /* epilogue start */
  67. 65 006e DF91 pop r29
  68. 66 0070 CF91 pop r28
  69. 67 0072 0895 ret
  70. 68 .size SpiAt45dConfigSize, .-SpiAt45dConfigSize
  71. 69 .section .text.SpiAt45dConfigRead,"ax",@progbits
  72. 70 .global SpiAt45dConfigRead
  73. 71 .type SpiAt45dConfigRead, @function
  74. 72 SpiAt45dConfigRead:
  75. 73 0000 8F92 push r8
  76. 74 0002 9F92 push r9
  77. 75 0004 AF92 push r10
  78. 76 0006 BF92 push r11
  79. 77 0008 CF92 push r12
  80. 78 000a DF92 push r13
  81. 79 000c EF92 push r14
  82. 80 000e FF92 push r15
  83. 81 0010 0F93 push r16
  84. 82 0012 1F93 push r17
  85. 83 0014 CF93 push r28
  86. 84 0016 DF93 push r29
  87. 85 /* prologue: function */
  88. 86 /* frame size = 0 */
  89. 87 /* stack size = 12 */
  90. 88 .L__stack_usage = 12
  91. 89 0018 7C01 movw r14,r24
  92. 90 001a 5B01 movw r10,r22
  93. 91 001c 6A01 movw r12,r20
  94. 92 001e 0E94 0000 call SpiAt45dConfigSize
  95. 93 0022 4C01 movw r8,r24
  96. 94 0024 C701 movw r24,r14
  97. 95 0026 8C0D add r24,r12
  98. 96 0028 9D1D adc r25,r13
  99. 97 002a 8816 cp r8,r24
  100. 98 002c 9906 cpc r9,r25
  101. 99 002e 00F4 brsh .L9
  102. 100 .L11:
  103. 101 0030 0FEF ldi r16,lo8(-1)
  104. 102 0032 1FEF ldi r17,lo8(-1)
  105. 103 0034 00C0 rjmp .L10
  106. 104 .L9:
  107. 105 0036 C401 movw r24,r8
  108. 106 0038 0E94 0000 call malloc
  109. 107 003c EC01 movw r28,r24
  110. 108 003e 892B or r24,r25
  111. 109 0040 01F0 breq .L11
  112. 110 0042 8091 0000 lds r24,devSysConf
  113. 111 0046 9091 0000 lds r25,devSysConf+1
  114. 112 004a 0E94 0000 call SpiAt45dPages
  115. 113 004e AB01 movw r20,r22
  116. 114 0050 BC01 movw r22,r24
  117. GAS LISTING /tmp/ccNRFDtY.s page 3
  118. 115 0052 4150 subi r20,1
  119. 116 0054 5109 sbc r21,__zero_reg__
  120. 117 0056 6109 sbc r22,__zero_reg__
  121. 118 0058 7109 sbc r23,__zero_reg__
  122. 119 005a 8401 movw r16,r8
  123. 120 005c 9E01 movw r18,r28
  124. 121 005e 8091 0000 lds r24,devSysConf
  125. 122 0062 9091 0000 lds r25,devSysConf+1
  126. 123 0066 0E94 0000 call SpiAt45dPageRead
  127. 124 006a 8816 cp r8,r24
  128. 125 006c 9906 cpc r9,r25
  129. 126 006e 01F4 brne .L13
  130. 127 0070 BE01 movw r22,r28
  131. 128 0072 6E0D add r22,r14
  132. 129 0074 7F1D adc r23,r15
  133. 130 0076 A601 movw r20,r12
  134. 131 0078 C501 movw r24,r10
  135. 132 007a 0E94 0000 call memcpy
  136. 133 007e 00E0 ldi r16,0
  137. 134 0080 10E0 ldi r17,0
  138. 135 0082 00C0 rjmp .L12
  139. 136 .L13:
  140. 137 0084 0FEF ldi r16,lo8(-1)
  141. 138 0086 1FEF ldi r17,lo8(-1)
  142. 139 .L12:
  143. 140 0088 CE01 movw r24,r28
  144. 141 008a 0E94 0000 call free
  145. 142 .L10:
  146. 143 008e C801 movw r24,r16
  147. 144 /* epilogue start */
  148. 145 0090 DF91 pop r29
  149. 146 0092 CF91 pop r28
  150. 147 0094 1F91 pop r17
  151. 148 0096 0F91 pop r16
  152. 149 0098 FF90 pop r15
  153. 150 009a EF90 pop r14
  154. 151 009c DF90 pop r13
  155. 152 009e CF90 pop r12
  156. 153 00a0 BF90 pop r11
  157. 154 00a2 AF90 pop r10
  158. 155 00a4 9F90 pop r9
  159. 156 00a6 8F90 pop r8
  160. 157 00a8 0895 ret
  161. 158 .size SpiAt45dConfigRead, .-SpiAt45dConfigRead
  162. 159 .section .text.SpiAt45dConfigWrite,"ax",@progbits
  163. 160 .global SpiAt45dConfigWrite
  164. 161 .type SpiAt45dConfigWrite, @function
  165. 162 SpiAt45dConfigWrite:
  166. 163 0000 2F92 push r2
  167. 164 0002 3F92 push r3
  168. 165 0004 4F92 push r4
  169. 166 0006 5F92 push r5
  170. 167 0008 6F92 push r6
  171. 168 000a 7F92 push r7
  172. 169 000c 8F92 push r8
  173. 170 000e 9F92 push r9
  174. 171 0010 AF92 push r10
  175. GAS LISTING /tmp/ccNRFDtY.s page 4
  176. 172 0012 BF92 push r11
  177. 173 0014 CF92 push r12
  178. 174 0016 DF92 push r13
  179. 175 0018 EF92 push r14
  180. 176 001a FF92 push r15
  181. 177 001c 0F93 push r16
  182. 178 001e 1F93 push r17
  183. 179 0020 CF93 push r28
  184. 180 0022 DF93 push r29
  185. 181 /* prologue: function */
  186. 182 /* frame size = 0 */
  187. 183 /* stack size = 18 */
  188. 184 .L__stack_usage = 18
  189. 185 0024 EC01 movw r28,r24
  190. 186 0026 4B01 movw r8,r22
  191. 187 0028 3A01 movw r6,r20
  192. 188 002a 0E94 0000 call SpiAt45dConfigSize
  193. 189 002e 6C01 movw r12,r24
  194. 190 0030 8091 0000 lds r24,devSysConf
  195. 191 0034 9091 0000 lds r25,devSysConf+1
  196. 192 0038 0E94 0000 call SpiAt45dPageSize
  197. 193 003c 7C01 movw r14,r24
  198. 194 003e 8091 0000 lds r24,devSysConf
  199. 195 0042 9091 0000 lds r25,devSysConf+1
  200. 196 0046 0E94 0000 call SpiAt45dPages
  201. 197 004a 1B01 movw r2,r22
  202. 198 004c 2C01 movw r4,r24
  203. 199 004e 21E0 ldi r18,1
  204. 200 0050 221A sub r2,r18
  205. 201 0052 3108 sbc r3,__zero_reg__
  206. 202 0054 4108 sbc r4,__zero_reg__
  207. 203 0056 5108 sbc r5,__zero_reg__
  208. 204 0058 5301 movw r10,r6
  209. 205 005a 6114 cp r6,__zero_reg__
  210. 206 005c 7104 cpc r7,__zero_reg__
  211. 207 005e 01F4 brne .L18
  212. 208 .L20:
  213. 209 0060 0FEF ldi r16,lo8(-1)
  214. 210 0062 1FEF ldi r17,lo8(-1)
  215. 211 0064 00C0 rjmp .L19
  216. 212 .L18:
  217. 213 0066 C301 movw r24,r6
  218. 214 0068 8C0F add r24,r28
  219. 215 006a 9D1F adc r25,r29
  220. 216 006c C816 cp r12,r24
  221. 217 006e D906 cpc r13,r25
  222. 218 0070 00F0 brlo .L20
  223. 219 0072 C701 movw r24,r14
  224. 220 0074 0E94 0000 call malloc
  225. 221 0078 6C01 movw r12,r24
  226. 222 007a 892B or r24,r25
  227. 223 007c 01F0 breq .L20
  228. 224 007e CE01 movw r24,r28
  229. 225 0080 B701 movw r22,r14
  230. 226 0082 0E94 0000 call __udivmodhi4
  231. 227 0086 2B01 movw r4,r22
  232. 228 0088 420C add r4,r2
  233. GAS LISTING /tmp/ccNRFDtY.s page 5
  234. 229 008a 531C adc r5,r3
  235. 230 008c 1C01 movw r2,r24
  236. 231 008e C301 movw r24,r6
  237. 232 0090 820D add r24,r2
  238. 233 0092 931D adc r25,r3
  239. 234 0094 E701 movw r28,r14
  240. 235 0096 E816 cp r14,r24
  241. 236 0098 F906 cpc r15,r25
  242. 237 009a 00F4 brsh .L21
  243. 238 009c C219 sub r28,r2
  244. 239 009e D309 sbc r29,r3
  245. 240 .L21:
  246. 241 00a0 6C16 cp r6,r28
  247. 242 00a2 7D06 cpc r7,r29
  248. 243 00a4 04F4 brge .L22
  249. 244 00a6 E301 movw r28,r6
  250. 245 .L22:
  251. 246 00a8 052C mov __tmp_reg__,r5
  252. 247 00aa 000C lsl r0
  253. 248 00ac 6608 sbc r6,r6
  254. 249 00ae 7708 sbc r7,r7
  255. 250 00b0 0FEF ldi r16,lo8(-1)
  256. 251 00b2 1FEF ldi r17,lo8(-1)
  257. 252 .L23:
  258. 253 00b4 1A14 cp __zero_reg__,r10
  259. 254 00b6 1B04 cpc __zero_reg__,r11
  260. 255 00b8 04F0 brlt .+2
  261. 256 00ba 00C0 rjmp .L25
  262. 257 00bc 8701 movw r16,r14
  263. 258 00be 9601 movw r18,r12
  264. 259 00c0 B301 movw r22,r6
  265. 260 00c2 A201 movw r20,r4
  266. 261 00c4 8091 0000 lds r24,devSysConf
  267. 262 00c8 9091 0000 lds r25,devSysConf+1
  268. 263 00cc 0E94 0000 call SpiAt45dPageRead
  269. 264 00d0 E816 cp r14,r24
  270. 265 00d2 F906 cpc r15,r25
  271. 266 00d4 01F0 breq .L24
  272. 267 .L29:
  273. 268 00d6 0FEF ldi r16,lo8(-1)
  274. 269 00d8 1FEF ldi r17,lo8(-1)
  275. 270 00da 00C0 rjmp .L25
  276. 271 .L24:
  277. 272 00dc 2C0C add r2,r12
  278. 273 00de 3D1C adc r3,r13
  279. 274 00e0 AE01 movw r20,r28
  280. 275 00e2 B401 movw r22,r8
  281. 276 00e4 C101 movw r24,r2
  282. 277 00e6 0E94 0000 call memcmp
  283. 278 00ea 892B or r24,r25
  284. 279 00ec 01F4 brne .L26
  285. 280 .L28:
  286. 281 00ee 8C0E add r8,r28
  287. 282 00f0 9D1E adc r9,r29
  288. 283 00f2 AC1A sub r10,r28
  289. 284 00f4 BD0A sbc r11,r29
  290. 285 00f6 E701 movw r28,r14
  291. GAS LISTING /tmp/ccNRFDtY.s page 6
  292. 286 00f8 AE14 cp r10,r14
  293. 287 00fa BF04 cpc r11,r15
  294. 288 00fc 04F4 brge .L27
  295. 289 00fe E501 movw r28,r10
  296. 290 .L27:
  297. 291 0100 8FEF ldi r24,-1
  298. 292 0102 481A sub r4,r24
  299. 293 0104 580A sbc r5,r24
  300. 294 0106 680A sbc r6,r24
  301. 295 0108 780A sbc r7,r24
  302. 296 010a 00E0 ldi r16,0
  303. 297 010c 10E0 ldi r17,0
  304. 298 010e 212C mov r2,__zero_reg__
  305. 299 0110 312C mov r3,__zero_reg__
  306. 300 0112 00C0 rjmp .L23
  307. 301 .L26:
  308. 302 0114 AE01 movw r20,r28
  309. 303 0116 B401 movw r22,r8
  310. 304 0118 C101 movw r24,r2
  311. 305 011a 0E94 0000 call memcpy
  312. 306 011e 8701 movw r16,r14
  313. 307 0120 9601 movw r18,r12
  314. 308 0122 B301 movw r22,r6
  315. 309 0124 A201 movw r20,r4
  316. 310 0126 8091 0000 lds r24,devSysConf
  317. 311 012a 9091 0000 lds r25,devSysConf+1
  318. 312 012e 0E94 0000 call SpiAt45dPageWrite
  319. 313 0132 E816 cp r14,r24
  320. 314 0134 F906 cpc r15,r25
  321. 315 0136 01F0 breq .L28
  322. 316 0138 00C0 rjmp .L29
  323. 317 .L25:
  324. 318 013a C601 movw r24,r12
  325. 319 013c 0E94 0000 call free
  326. 320 .L19:
  327. 321 0140 C801 movw r24,r16
  328. 322 /* epilogue start */
  329. 323 0142 DF91 pop r29
  330. 324 0144 CF91 pop r28
  331. 325 0146 1F91 pop r17
  332. 326 0148 0F91 pop r16
  333. 327 014a FF90 pop r15
  334. 328 014c EF90 pop r14
  335. 329 014e DF90 pop r13
  336. 330 0150 CF90 pop r12
  337. 331 0152 BF90 pop r11
  338. 332 0154 AF90 pop r10
  339. 333 0156 9F90 pop r9
  340. 334 0158 8F90 pop r8
  341. 335 015a 7F90 pop r7
  342. 336 015c 6F90 pop r6
  343. 337 015e 5F90 pop r5
  344. 338 0160 4F90 pop r4
  345. 339 0162 3F90 pop r3
  346. 340 0164 2F90 pop r2
  347. 341 0166 0895 ret
  348. 342 .size SpiAt45dConfigWrite, .-SpiAt45dConfigWrite
  349. GAS LISTING /tmp/ccNRFDtY.s page 7
  350. 343 .local devSysConf
  351. 344 .comm devSysConf,2,1
  352. 345 .ident "GCC: (GNU) 5.3.0"
  353. 346 .global __do_clear_bss
  354. GAS LISTING /tmp/ccNRFDtY.s page 8
  355. DEFINED SYMBOLS
  356. *ABS*:0000000000000000 nvmem_at45d.c
  357. /tmp/ccNRFDtY.s:2 *ABS*:000000000000003e __SP_H__
  358. /tmp/ccNRFDtY.s:3 *ABS*:000000000000003d __SP_L__
  359. /tmp/ccNRFDtY.s:4 *ABS*:000000000000003f __SREG__
  360. /tmp/ccNRFDtY.s:5 *ABS*:000000000000003b __RAMPZ__
  361. /tmp/ccNRFDtY.s:6 *ABS*:0000000000000000 __tmp_reg__
  362. /tmp/ccNRFDtY.s:7 *ABS*:0000000000000001 __zero_reg__
  363. /tmp/ccNRFDtY.s:11 .text.SpiAt45dConfigSize:0000000000000000 SpiAt45dConfigSize
  364. .bss:0000000000000000 devSysConf
  365. /tmp/ccNRFDtY.s:72 .text.SpiAt45dConfigRead:0000000000000000 SpiAt45dConfigRead
  366. /tmp/ccNRFDtY.s:162 .text.SpiAt45dConfigWrite:0000000000000000 SpiAt45dConfigWrite
  367. UNDEFINED SYMBOLS
  368. devSpiAt45d0
  369. spiBus0Avr
  370. NutEventPost
  371. SpiAt45dInit
  372. SpiAt45dPageSize
  373. malloc
  374. SpiAt45dPages
  375. SpiAt45dPageRead
  376. memcpy
  377. free
  378. __udivmodhi4
  379. memcmp
  380. SpiAt45dPageWrite
  381. __do_clear_bss