ds1307rtc.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671
  1. GAS LISTING /tmp/ccRgQ98Z.s page 1
  2. 1 .file "ds1307rtc.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.DS1307RtcReadRegs,"ax",@progbits
  10. 9 .global DS1307RtcReadRegs
  11. 10 .type DS1307RtcReadRegs, @function
  12. 11 DS1307RtcReadRegs:
  13. 12 0000 8F92 push r8
  14. 13 0002 9F92 push r9
  15. 14 0004 AF92 push r10
  16. 15 0006 BF92 push r11
  17. 16 0008 CF92 push r12
  18. 17 000a DF92 push r13
  19. 18 000c EF92 push r14
  20. 19 000e FF92 push r15
  21. 20 0010 0F93 push r16
  22. 21 0012 1F93 push r17
  23. 22 0014 CF93 push r28
  24. 23 0016 DF93 push r29
  25. 24 0018 1F92 push __zero_reg__
  26. 25 001a CDB7 in r28,__SP_L__
  27. 26 001c DEB7 in r29,__SP_H__
  28. 27 /* prologue: function */
  29. 28 /* frame size = 1 */
  30. 29 /* stack size = 13 */
  31. 30 .L__stack_usage = 13
  32. 31 001e 4A01 movw r8,r20
  33. 32 0020 8983 std Y+1,r24
  34. 33 0022 A12C mov r10,__zero_reg__
  35. 34 0024 B12C mov r11,__zero_reg__
  36. 35 0026 6501 movw r12,r10
  37. 36 0028 7A01 movw r14,r20
  38. 37 002a 8B01 movw r16,r22
  39. 38 002c 21E0 ldi r18,lo8(1)
  40. 39 002e 30E0 ldi r19,0
  41. 40 0030 AE01 movw r20,r28
  42. 41 0032 4F5F subi r20,-1
  43. 42 0034 5F4F sbci r21,-1
  44. 43 0036 68E6 ldi r22,lo8(104)
  45. 44 0038 80E0 ldi r24,lo8(AVRTwiBus)
  46. 45 003a 90E0 ldi r25,hi8(AVRTwiBus)
  47. 46 003c 0E94 0000 call NutTwiMasterTranceive
  48. 47 0040 21E0 ldi r18,lo8(1)
  49. 48 0042 30E0 ldi r19,0
  50. 49 0044 8815 cp r24,r8
  51. 50 0046 9905 cpc r25,r9
  52. 51 0048 01F4 brne .L2
  53. 52 004a 20E0 ldi r18,0
  54. 53 004c 30E0 ldi r19,0
  55. 54 .L2:
  56. 55 004e 8827 clr r24
  57. 56 0050 9927 clr r25
  58. 57 0052 821B sub r24,r18
  59. GAS LISTING /tmp/ccRgQ98Z.s page 2
  60. 58 0054 930B sbc r25,r19
  61. 59 /* epilogue start */
  62. 60 0056 0F90 pop __tmp_reg__
  63. 61 0058 DF91 pop r29
  64. 62 005a CF91 pop r28
  65. 63 005c 1F91 pop r17
  66. 64 005e 0F91 pop r16
  67. 65 0060 FF90 pop r15
  68. 66 0062 EF90 pop r14
  69. 67 0064 DF90 pop r13
  70. 68 0066 CF90 pop r12
  71. 69 0068 BF90 pop r11
  72. 70 006a AF90 pop r10
  73. 71 006c 9F90 pop r9
  74. 72 006e 8F90 pop r8
  75. 73 0070 0895 ret
  76. 74 .size DS1307RtcReadRegs, .-DS1307RtcReadRegs
  77. 75 .section .text.DS1307RtcGetClock,"ax",@progbits
  78. 76 .global DS1307RtcGetClock
  79. 77 .type DS1307RtcGetClock, @function
  80. 78 DS1307RtcGetClock:
  81. 79 0000 0F93 push r16
  82. 80 0002 1F93 push r17
  83. 81 0004 CF93 push r28
  84. 82 0006 DF93 push r29
  85. 83 0008 CDB7 in r28,__SP_L__
  86. 84 000a DEB7 in r29,__SP_H__
  87. 85 000c 2797 sbiw r28,7
  88. 86 000e 0FB6 in __tmp_reg__,__SREG__
  89. 87 0010 F894 cli
  90. 88 0012 DEBF out __SP_H__,r29
  91. 89 0014 0FBE out __SREG__,__tmp_reg__
  92. 90 0016 CDBF out __SP_L__,r28
  93. 91 /* prologue: function */
  94. 92 /* frame size = 7 */
  95. 93 /* stack size = 11 */
  96. 94 .L__stack_usage = 11
  97. 95 0018 8B01 movw r16,r22
  98. 96 001a 47E0 ldi r20,lo8(7)
  99. 97 001c 50E0 ldi r21,0
  100. 98 001e BE01 movw r22,r28
  101. 99 0020 6F5F subi r22,-1
  102. 100 0022 7F4F sbci r23,-1
  103. 101 0024 80E0 ldi r24,0
  104. 102 0026 0E94 0000 call DS1307RtcReadRegs
  105. 103 002a 0097 sbiw r24,0
  106. 104 002c 01F0 breq .+2
  107. 105 002e 00C0 rjmp .L5
  108. 106 0030 2981 ldd r18,Y+1
  109. 107 0032 422F mov r20,r18
  110. 108 0034 4295 swap r20
  111. 109 0036 4F70 andi r20,lo8(15)
  112. 110 0038 2F70 andi r18,lo8(15)
  113. 111 003a 30E0 ldi r19,0
  114. 112 003c 5AE0 ldi r21,lo8(10)
  115. 113 003e 459F mul r20,r21
  116. 114 0040 200D add r18,r0
  117. GAS LISTING /tmp/ccRgQ98Z.s page 3
  118. 115 0042 311D adc r19,r1
  119. 116 0044 1124 clr __zero_reg__
  120. 117 0046 F801 movw r30,r16
  121. 118 0048 3183 std Z+1,r19
  122. 119 004a 2083 st Z,r18
  123. 120 004c 2A81 ldd r18,Y+2
  124. 121 004e 422F mov r20,r18
  125. 122 0050 4295 swap r20
  126. 123 0052 4F70 andi r20,lo8(15)
  127. 124 0054 2F70 andi r18,lo8(15)
  128. 125 0056 30E0 ldi r19,0
  129. 126 0058 FAE0 ldi r31,lo8(10)
  130. 127 005a 4F9F mul r20,r31
  131. 128 005c 200D add r18,r0
  132. 129 005e 311D adc r19,r1
  133. 130 0060 1124 clr __zero_reg__
  134. 131 0062 F801 movw r30,r16
  135. 132 0064 3383 std Z+3,r19
  136. 133 0066 2283 std Z+2,r18
  137. 134 0068 4B81 ldd r20,Y+3
  138. 135 006a 242F mov r18,r20
  139. 136 006c 2F73 andi r18,lo8(63)
  140. 137 006e 30E0 ldi r19,0
  141. 138 0070 54E0 ldi r21,4
  142. 139 1:
  143. 140 0072 3595 asr r19
  144. 141 0074 2795 ror r18
  145. 142 0076 5A95 dec r21
  146. 143 0078 01F4 brne 1b
  147. 144 007a 5AE0 ldi r21,lo8(10)
  148. 145 007c 529F mul r21,r18
  149. 146 007e B001 movw r22,r0
  150. 147 0080 539F mul r21,r19
  151. 148 0082 700D add r23,r0
  152. 149 0084 1124 clr __zero_reg__
  153. 150 0086 4F70 andi r20,lo8(15)
  154. 151 0088 9B01 movw r18,r22
  155. 152 008a 240F add r18,r20
  156. 153 008c 311D adc r19,__zero_reg__
  157. 154 008e 3583 std Z+5,r19
  158. 155 0090 2483 std Z+4,r18
  159. 156 0092 2D81 ldd r18,Y+5
  160. 157 0094 422F mov r20,r18
  161. 158 0096 4295 swap r20
  162. 159 0098 4F70 andi r20,lo8(15)
  163. 160 009a 2F70 andi r18,lo8(15)
  164. 161 009c 30E0 ldi r19,0
  165. 162 009e FAE0 ldi r31,lo8(10)
  166. 163 00a0 4F9F mul r20,r31
  167. 164 00a2 200D add r18,r0
  168. 165 00a4 311D adc r19,r1
  169. 166 00a6 1124 clr __zero_reg__
  170. 167 00a8 F801 movw r30,r16
  171. 168 00aa 3783 std Z+7,r19
  172. 169 00ac 2683 std Z+6,r18
  173. 170 00ae 2E81 ldd r18,Y+6
  174. 171 00b0 422F mov r20,r18
  175. GAS LISTING /tmp/ccRgQ98Z.s page 4
  176. 172 00b2 4295 swap r20
  177. 173 00b4 4F70 andi r20,lo8(15)
  178. 174 00b6 2F70 andi r18,lo8(15)
  179. 175 00b8 30E0 ldi r19,0
  180. 176 00ba FAE0 ldi r31,lo8(10)
  181. 177 00bc 4F9F mul r20,r31
  182. 178 00be 200D add r18,r0
  183. 179 00c0 311D adc r19,r1
  184. 180 00c2 1124 clr __zero_reg__
  185. 181 00c4 2150 subi r18,1
  186. 182 00c6 3109 sbc r19,__zero_reg__
  187. 183 00c8 F801 movw r30,r16
  188. 184 00ca 3187 std Z+9,r19
  189. 185 00cc 2087 std Z+8,r18
  190. 186 00ce 2F81 ldd r18,Y+7
  191. 187 00d0 422F mov r20,r18
  192. 188 00d2 4295 swap r20
  193. 189 00d4 4F70 andi r20,lo8(15)
  194. 190 00d6 2F70 andi r18,lo8(15)
  195. 191 00d8 30E0 ldi r19,0
  196. 192 00da FAE0 ldi r31,lo8(10)
  197. 193 00dc 4F9F mul r20,r31
  198. 194 00de 200D add r18,r0
  199. 195 00e0 311D adc r19,r1
  200. 196 00e2 1124 clr __zero_reg__
  201. 197 00e4 2C59 subi r18,-100
  202. 198 00e6 3F4F sbci r19,-1
  203. 199 00e8 F801 movw r30,r16
  204. 200 00ea 3387 std Z+11,r19
  205. 201 00ec 2287 std Z+10,r18
  206. 202 00ee 2C81 ldd r18,Y+4
  207. 203 00f0 30E0 ldi r19,0
  208. 204 00f2 2150 subi r18,1
  209. 205 00f4 3109 sbc r19,__zero_reg__
  210. 206 00f6 3587 std Z+13,r19
  211. 207 00f8 2487 std Z+12,r18
  212. 208 .L5:
  213. 209 /* epilogue start */
  214. 210 00fa 2796 adiw r28,7
  215. 211 00fc 0FB6 in __tmp_reg__,__SREG__
  216. 212 00fe F894 cli
  217. 213 0100 DEBF out __SP_H__,r29
  218. 214 0102 0FBE out __SREG__,__tmp_reg__
  219. 215 0104 CDBF out __SP_L__,r28
  220. 216 0106 DF91 pop r29
  221. 217 0108 CF91 pop r28
  222. 218 010a 1F91 pop r17
  223. 219 010c 0F91 pop r16
  224. 220 010e 0895 ret
  225. 221 .size DS1307RtcGetClock, .-DS1307RtcGetClock
  226. 222 .section .text.DS1307RtcWrite,"ax",@progbits
  227. 223 .global DS1307RtcWrite
  228. 224 .type DS1307RtcWrite, @function
  229. 225 DS1307RtcWrite:
  230. 226 0000 AF92 push r10
  231. 227 0002 BF92 push r11
  232. 228 0004 CF92 push r12
  233. GAS LISTING /tmp/ccRgQ98Z.s page 5
  234. 229 0006 DF92 push r13
  235. 230 0008 EF92 push r14
  236. 231 000a FF92 push r15
  237. 232 000c 0F93 push r16
  238. 233 000e 1F93 push r17
  239. 234 /* prologue: function */
  240. 235 /* frame size = 0 */
  241. 236 /* stack size = 8 */
  242. 237 .L__stack_usage = 8
  243. 238 0010 9B01 movw r18,r22
  244. 239 0012 A12C mov r10,__zero_reg__
  245. 240 0014 B12C mov r11,__zero_reg__
  246. 241 0016 6501 movw r12,r10
  247. 242 0018 E12C mov r14,__zero_reg__
  248. 243 001a F12C mov r15,__zero_reg__
  249. 244 001c 00E0 ldi r16,0
  250. 245 001e 10E0 ldi r17,0
  251. 246 0020 AC01 movw r20,r24
  252. 247 0022 68E6 ldi r22,lo8(104)
  253. 248 0024 80E0 ldi r24,lo8(AVRTwiBus)
  254. 249 0026 90E0 ldi r25,hi8(AVRTwiBus)
  255. 250 0028 0E94 0000 call NutTwiMasterTranceive
  256. 251 /* epilogue start */
  257. 252 002c 1F91 pop r17
  258. 253 002e 0F91 pop r16
  259. 254 0030 FF90 pop r15
  260. 255 0032 EF90 pop r14
  261. 256 0034 DF90 pop r13
  262. 257 0036 CF90 pop r12
  263. 258 0038 BF90 pop r11
  264. 259 003a AF90 pop r10
  265. 260 003c 0895 ret
  266. 261 .size DS1307RtcWrite, .-DS1307RtcWrite
  267. 262 .section .text.DS1307RtcSetClock,"ax",@progbits
  268. 263 .global DS1307RtcSetClock
  269. 264 .type DS1307RtcSetClock, @function
  270. 265 DS1307RtcSetClock:
  271. 266 0000 EF92 push r14
  272. 267 0002 FF92 push r15
  273. 268 0004 0F93 push r16
  274. 269 0006 1F93 push r17
  275. 270 0008 CF93 push r28
  276. 271 000a DF93 push r29
  277. 272 000c CDB7 in r28,__SP_L__
  278. 273 000e DEB7 in r29,__SP_H__
  279. 274 0010 2897 sbiw r28,8
  280. 275 0012 0FB6 in __tmp_reg__,__SREG__
  281. 276 0014 F894 cli
  282. 277 0016 DEBF out __SP_H__,r29
  283. 278 0018 0FBE out __SREG__,__tmp_reg__
  284. 279 001a CDBF out __SP_L__,r28
  285. 280 /* prologue: function */
  286. 281 /* frame size = 8 */
  287. 282 /* stack size = 14 */
  288. 283 .L__stack_usage = 14
  289. 284 001c FB01 movw r30,r22
  290. 285 001e 8E01 movw r16,r28
  291. GAS LISTING /tmp/ccRgQ98Z.s page 6
  292. 286 0020 0F5F subi r16,-1
  293. 287 0022 1F4F sbci r17,-1
  294. 288 0024 88E0 ldi r24,lo8(8)
  295. 289 0026 D801 movw r26,r16
  296. 290 0:
  297. 291 0028 1D92 st X+,__zero_reg__
  298. 292 002a 8A95 dec r24
  299. 293 002c 01F4 brne 0b
  300. 294 002e 3097 sbiw r30,0
  301. 295 0030 01F4 brne .+2
  302. 296 0032 00C0 rjmp .L8
  303. 297 0034 E080 ld r14,Z
  304. 298 0036 F180 ldd r15,Z+1
  305. 299 0038 C701 movw r24,r14
  306. 300 003a 9927 clr r25
  307. 301 003c 2AE0 ldi r18,lo8(10)
  308. 302 003e 30E0 ldi r19,0
  309. 303 0040 B901 movw r22,r18
  310. 304 0042 0E94 0000 call __divmodhi4
  311. 305 0046 462F mov r20,r22
  312. 306 0048 C701 movw r24,r14
  313. 307 004a B901 movw r22,r18
  314. 308 004c 0E94 0000 call __divmodhi4
  315. 309 0050 B0E1 ldi r27,lo8(16)
  316. 310 0052 4B9F mul r20,r27
  317. 311 0054 800D add r24,r0
  318. 312 0056 1124 clr __zero_reg__
  319. 313 0058 8A83 std Y+2,r24
  320. 314 005a E280 ldd r14,Z+2
  321. 315 005c F380 ldd r15,Z+3
  322. 316 005e C701 movw r24,r14
  323. 317 0060 9927 clr r25
  324. 318 0062 B901 movw r22,r18
  325. 319 0064 0E94 0000 call __divmodhi4
  326. 320 0068 462F mov r20,r22
  327. 321 006a C701 movw r24,r14
  328. 322 006c B901 movw r22,r18
  329. 323 006e 0E94 0000 call __divmodhi4
  330. 324 0072 90E1 ldi r25,lo8(16)
  331. 325 0074 499F mul r20,r25
  332. 326 0076 800D add r24,r0
  333. 327 0078 1124 clr __zero_reg__
  334. 328 007a 8B83 std Y+3,r24
  335. 329 007c E480 ldd r14,Z+4
  336. 330 007e F580 ldd r15,Z+5
  337. 331 0080 C701 movw r24,r14
  338. 332 0082 9927 clr r25
  339. 333 0084 B901 movw r22,r18
  340. 334 0086 0E94 0000 call __divmodhi4
  341. 335 008a 462F mov r20,r22
  342. 336 008c C701 movw r24,r14
  343. 337 008e B901 movw r22,r18
  344. 338 0090 0E94 0000 call __divmodhi4
  345. 339 0094 A0E1 ldi r26,lo8(16)
  346. 340 0096 4A9F mul r20,r26
  347. 341 0098 800D add r24,r0
  348. 342 009a 1124 clr __zero_reg__
  349. GAS LISTING /tmp/ccRgQ98Z.s page 7
  350. 343 009c 8F73 andi r24,lo8(63)
  351. 344 009e 8C83 std Y+4,r24
  352. 345 00a0 E680 ldd r14,Z+6
  353. 346 00a2 F780 ldd r15,Z+7
  354. 347 00a4 C701 movw r24,r14
  355. 348 00a6 9927 clr r25
  356. 349 00a8 B901 movw r22,r18
  357. 350 00aa 0E94 0000 call __divmodhi4
  358. 351 00ae 462F mov r20,r22
  359. 352 00b0 C701 movw r24,r14
  360. 353 00b2 B901 movw r22,r18
  361. 354 00b4 0E94 0000 call __divmodhi4
  362. 355 00b8 B0E1 ldi r27,lo8(16)
  363. 356 00ba 4B9F mul r20,r27
  364. 357 00bc 800D add r24,r0
  365. 358 00be 1124 clr __zero_reg__
  366. 359 00c0 8E83 std Y+6,r24
  367. 360 00c2 4085 ldd r20,Z+8
  368. 361 00c4 5185 ldd r21,Z+9
  369. 362 00c6 81E0 ldi r24,lo8(1)
  370. 363 00c8 840F add r24,r20
  371. 364 00ca 9AE0 ldi r25,lo8(10)
  372. 365 00cc F92E mov r15,r25
  373. 366 00ce 6F2D mov r22,r15
  374. 367 00d0 0E94 0000 call __udivmodqi4
  375. 368 00d4 E82E mov r14,r24
  376. 369 00d6 CA01 movw r24,r20
  377. 370 00d8 0196 adiw r24,1
  378. 371 00da B901 movw r22,r18
  379. 372 00dc 0E94 0000 call __divmodhi4
  380. 373 00e0 90E1 ldi r25,lo8(16)
  381. 374 00e2 E99E mul r14,r25
  382. 375 00e4 800D add r24,r0
  383. 376 00e6 1124 clr __zero_reg__
  384. 377 00e8 8F83 std Y+7,r24
  385. 378 00ea 4285 ldd r20,Z+10
  386. 379 00ec 5385 ldd r21,Z+11
  387. 380 00ee 8CE9 ldi r24,lo8(-100)
  388. 381 00f0 840F add r24,r20
  389. 382 00f2 6F2D mov r22,r15
  390. 383 00f4 0E94 0000 call __udivmodqi4
  391. 384 00f8 F82E mov r15,r24
  392. 385 00fa CA01 movw r24,r20
  393. 386 00fc 8456 subi r24,100
  394. 387 00fe 9109 sbc r25,__zero_reg__
  395. 388 0100 B901 movw r22,r18
  396. 389 0102 0E94 0000 call __divmodhi4
  397. 390 0106 A0E1 ldi r26,lo8(16)
  398. 391 0108 FA9E mul r15,r26
  399. 392 010a 800D add r24,r0
  400. 393 010c 1124 clr __zero_reg__
  401. 394 010e 8887 std Y+8,r24
  402. 395 0110 8485 ldd r24,Z+12
  403. 396 0112 8F5F subi r24,lo8(-(1))
  404. 397 0114 8D83 std Y+5,r24
  405. 398 .L8:
  406. 399 0116 68E0 ldi r22,lo8(8)
  407. GAS LISTING /tmp/ccRgQ98Z.s page 8
  408. 400 0118 70E0 ldi r23,0
  409. 401 011a C801 movw r24,r16
  410. 402 011c 0E94 0000 call DS1307RtcWrite
  411. 403 /* epilogue start */
  412. 404 0120 2896 adiw r28,8
  413. 405 0122 0FB6 in __tmp_reg__,__SREG__
  414. 406 0124 F894 cli
  415. 407 0126 DEBF out __SP_H__,r29
  416. 408 0128 0FBE out __SREG__,__tmp_reg__
  417. 409 012a CDBF out __SP_L__,r28
  418. 410 012c DF91 pop r29
  419. 411 012e CF91 pop r28
  420. 412 0130 1F91 pop r17
  421. 413 0132 0F91 pop r16
  422. 414 0134 FF90 pop r15
  423. 415 0136 EF90 pop r14
  424. 416 0138 0895 ret
  425. 417 .size DS1307RtcSetClock, .-DS1307RtcSetClock
  426. 418 .section .text.DS1307Init,"ax",@progbits
  427. 419 .global DS1307Init
  428. 420 .type DS1307Init, @function
  429. 421 DS1307Init:
  430. 422 0000 CF93 push r28
  431. 423 0002 DF93 push r29
  432. 424 0004 00D0 rcall .
  433. 425 0006 CDB7 in r28,__SP_L__
  434. 426 0008 DEB7 in r29,__SP_H__
  435. 427 /* prologue: function */
  436. 428 /* frame size = 3 */
  437. 429 /* stack size = 5 */
  438. 430 .L__stack_usage = 5
  439. 431 000a 60E0 ldi r22,0
  440. 432 000c 80E0 ldi r24,lo8(AVRTwiBus)
  441. 433 000e 90E0 ldi r25,hi8(AVRTwiBus)
  442. 434 0010 0E94 0000 call NutRegisterTwiBus
  443. 435 0014 0097 sbiw r24,0
  444. 436 0016 01F4 brne .L13
  445. 437 0018 41E0 ldi r20,lo8(1)
  446. 438 001a 50E0 ldi r21,0
  447. 439 001c BE01 movw r22,r28
  448. 440 001e 6D5F subi r22,-3
  449. 441 0020 7F4F sbci r23,-1
  450. 442 0022 80E0 ldi r24,0
  451. 443 0024 0E94 0000 call DS1307RtcReadRegs
  452. 444 0028 892B or r24,r25
  453. 445 002a 01F4 brne .L14
  454. 446 002c 1982 std Y+1,__zero_reg__
  455. 447 002e 8B81 ldd r24,Y+3
  456. 448 0030 8F77 andi r24,lo8(127)
  457. 449 0032 8A83 std Y+2,r24
  458. 450 0034 62E0 ldi r22,lo8(2)
  459. 451 0036 70E0 ldi r23,0
  460. 452 0038 CE01 movw r24,r28
  461. 453 003a 0196 adiw r24,1
  462. 454 003c 0E94 0000 call DS1307RtcWrite
  463. 455 .L14:
  464. 456 0040 41E0 ldi r20,lo8(1)
  465. GAS LISTING /tmp/ccRgQ98Z.s page 9
  466. 457 0042 50E0 ldi r21,0
  467. 458 0044 BE01 movw r22,r28
  468. 459 0046 6D5F subi r22,-3
  469. 460 0048 7F4F sbci r23,-1
  470. 461 004a 82E0 ldi r24,lo8(2)
  471. 462 004c 0E94 0000 call DS1307RtcReadRegs
  472. 463 0050 0097 sbiw r24,0
  473. 464 0052 01F4 brne .L13
  474. 465 0054 82E0 ldi r24,lo8(2)
  475. 466 0056 8983 std Y+1,r24
  476. 467 0058 8B81 ldd r24,Y+3
  477. 468 005a 8F7B andi r24,lo8(-65)
  478. 469 005c 8A83 std Y+2,r24
  479. 470 005e 62E0 ldi r22,lo8(2)
  480. 471 0060 70E0 ldi r23,0
  481. 472 0062 CE01 movw r24,r28
  482. 473 0064 0196 adiw r24,1
  483. 474 0066 0E94 0000 call DS1307RtcWrite
  484. 475 .L13:
  485. 476 /* epilogue start */
  486. 477 006a 0F90 pop __tmp_reg__
  487. 478 006c 0F90 pop __tmp_reg__
  488. 479 006e 0F90 pop __tmp_reg__
  489. 480 0070 DF91 pop r29
  490. 481 0072 CF91 pop r28
  491. 482 0074 0895 ret
  492. 483 .size DS1307Init, .-DS1307Init
  493. 484 .section .text.DS1307RamRead,"ax",@progbits
  494. 485 .global DS1307RamRead
  495. 486 .type DS1307RamRead, @function
  496. 487 DS1307RamRead:
  497. 488 /* prologue: function */
  498. 489 /* frame size = 0 */
  499. 490 /* stack size = 0 */
  500. 491 .L__stack_usage = 0
  501. 492 0000 98EF ldi r25,lo8(-8)
  502. 493 0002 980F add r25,r24
  503. 494 0004 9833 cpi r25,lo8(56)
  504. 495 0006 00F4 brsh .L17
  505. 496 0008 0C94 0000 jmp DS1307RtcReadRegs
  506. 497 .L17:
  507. 498 000c 8FEF ldi r24,lo8(-1)
  508. 499 000e 9FEF ldi r25,lo8(-1)
  509. 500 0010 0895 ret
  510. 501 .size DS1307RamRead, .-DS1307RamRead
  511. 502 .section .text.DS1307RamWrite,"ax",@progbits
  512. 503 .global DS1307RamWrite
  513. 504 .type DS1307RamWrite, @function
  514. 505 DS1307RamWrite:
  515. 506 0000 6F92 push r6
  516. 507 0002 7F92 push r7
  517. 508 0004 8F92 push r8
  518. 509 0006 9F92 push r9
  519. 510 0008 AF92 push r10
  520. 511 000a BF92 push r11
  521. 512 000c CF92 push r12
  522. 513 000e DF92 push r13
  523. GAS LISTING /tmp/ccRgQ98Z.s page 10
  524. 514 0010 EF92 push r14
  525. 515 0012 FF92 push r15
  526. 516 0014 0F93 push r16
  527. 517 0016 1F93 push r17
  528. 518 0018 CF93 push r28
  529. 519 001a DF93 push r29
  530. 520 001c 00D0 rcall .
  531. 521 001e 1F92 push __zero_reg__
  532. 522 0020 CDB7 in r28,__SP_L__
  533. 523 0022 DEB7 in r29,__SP_H__
  534. 524 /* prologue: function */
  535. 525 /* frame size = 4 */
  536. 526 /* stack size = 18 */
  537. 527 .L__stack_usage = 18
  538. 528 0024 182F mov r17,r24
  539. 529 0026 4A01 movw r8,r20
  540. 530 0028 8FEF ldi r24,-1
  541. 531 002a 881A sub r8,r24
  542. 532 002c 980A sbc r9,r24
  543. 533 002e C401 movw r24,r8
  544. 534 0030 4B83 std Y+3,r20
  545. 535 0032 5C83 std Y+4,r21
  546. 536 0034 6983 std Y+1,r22
  547. 537 0036 7A83 std Y+2,r23
  548. 538 0038 0E94 0000 call malloc
  549. 539 003c 3C01 movw r6,r24
  550. 540 003e 4B81 ldd r20,Y+3
  551. 541 0040 5C81 ldd r21,Y+4
  552. 542 0042 6981 ldd r22,Y+1
  553. 543 0044 7A81 ldd r23,Y+2
  554. 544 0046 0097 sbiw r24,0
  555. 545 0048 01F0 breq .L20
  556. 546 004a FC01 movw r30,r24
  557. 547 004c 1193 st Z+,r17
  558. 548 004e CF01 movw r24,r30
  559. 549 0050 0E94 0000 call memcpy
  560. 550 0054 A12C mov r10,__zero_reg__
  561. 551 0056 B12C mov r11,__zero_reg__
  562. 552 0058 6501 movw r12,r10
  563. 553 005a E12C mov r14,__zero_reg__
  564. 554 005c F12C mov r15,__zero_reg__
  565. 555 005e 00E0 ldi r16,0
  566. 556 0060 10E0 ldi r17,0
  567. 557 0062 9401 movw r18,r8
  568. 558 0064 A301 movw r20,r6
  569. 559 0066 68E6 ldi r22,lo8(104)
  570. 560 0068 80E0 ldi r24,lo8(AVRTwiBus)
  571. 561 006a 90E0 ldi r25,hi8(AVRTwiBus)
  572. 562 006c 0E94 0000 call NutTwiMasterTranceive
  573. 563 0070 8C01 movw r16,r24
  574. 564 0072 C301 movw r24,r6
  575. 565 0074 0E94 0000 call free
  576. 566 0078 00C0 rjmp .L19
  577. 567 .L20:
  578. 568 007a 0FEF ldi r16,lo8(-1)
  579. 569 007c 1FEF ldi r17,lo8(-1)
  580. 570 .L19:
  581. GAS LISTING /tmp/ccRgQ98Z.s page 11
  582. 571 007e C801 movw r24,r16
  583. 572 /* epilogue start */
  584. 573 0080 0F90 pop __tmp_reg__
  585. 574 0082 0F90 pop __tmp_reg__
  586. 575 0084 0F90 pop __tmp_reg__
  587. 576 0086 0F90 pop __tmp_reg__
  588. 577 0088 DF91 pop r29
  589. 578 008a CF91 pop r28
  590. 579 008c 1F91 pop r17
  591. 580 008e 0F91 pop r16
  592. 581 0090 FF90 pop r15
  593. 582 0092 EF90 pop r14
  594. 583 0094 DF90 pop r13
  595. 584 0096 CF90 pop r12
  596. 585 0098 BF90 pop r11
  597. 586 009a AF90 pop r10
  598. 587 009c 9F90 pop r9
  599. 588 009e 8F90 pop r8
  600. 589 00a0 7F90 pop r7
  601. 590 00a2 6F90 pop r6
  602. 591 00a4 0895 ret
  603. 592 .size DS1307RamWrite, .-DS1307RamWrite
  604. 593 .global rtcDs1307
  605. 594 .data
  606. 595 .type rtcDs1307, @object
  607. 596 .size rtcDs1307, 18
  608. 597 rtcDs1307:
  609. 598 0000 0000 .word 0
  610. 599 0002 0000 .word gs(DS1307Init)
  611. 600 0004 0000 .word gs(DS1307RtcGetClock)
  612. 601 0006 0000 .word gs(DS1307RtcSetClock)
  613. 602 0008 0000 .word 0
  614. 603 000a 0000 .word 0
  615. 604 000c 0000 .word 0
  616. 605 000e 0000 .word 0
  617. 606 0010 0000 .word 0
  618. 607 .ident "GCC: (GNU) 5.3.0"
  619. 608 .global __do_copy_data
  620. GAS LISTING /tmp/ccRgQ98Z.s page 12
  621. DEFINED SYMBOLS
  622. *ABS*:0000000000000000 ds1307rtc.c
  623. /tmp/ccRgQ98Z.s:2 *ABS*:000000000000003e __SP_H__
  624. /tmp/ccRgQ98Z.s:3 *ABS*:000000000000003d __SP_L__
  625. /tmp/ccRgQ98Z.s:4 *ABS*:000000000000003f __SREG__
  626. /tmp/ccRgQ98Z.s:5 *ABS*:000000000000003b __RAMPZ__
  627. /tmp/ccRgQ98Z.s:6 *ABS*:0000000000000000 __tmp_reg__
  628. /tmp/ccRgQ98Z.s:7 *ABS*:0000000000000001 __zero_reg__
  629. /tmp/ccRgQ98Z.s:11 .text.DS1307RtcReadRegs:0000000000000000 DS1307RtcReadRegs
  630. /tmp/ccRgQ98Z.s:78 .text.DS1307RtcGetClock:0000000000000000 DS1307RtcGetClock
  631. /tmp/ccRgQ98Z.s:225 .text.DS1307RtcWrite:0000000000000000 DS1307RtcWrite
  632. /tmp/ccRgQ98Z.s:265 .text.DS1307RtcSetClock:0000000000000000 DS1307RtcSetClock
  633. /tmp/ccRgQ98Z.s:421 .text.DS1307Init:0000000000000000 DS1307Init
  634. /tmp/ccRgQ98Z.s:487 .text.DS1307RamRead:0000000000000000 DS1307RamRead
  635. /tmp/ccRgQ98Z.s:505 .text.DS1307RamWrite:0000000000000000 DS1307RamWrite
  636. /tmp/ccRgQ98Z.s:597 .data:0000000000000000 rtcDs1307
  637. UNDEFINED SYMBOLS
  638. AVRTwiBus
  639. NutTwiMasterTranceive
  640. __divmodhi4
  641. __udivmodqi4
  642. NutRegisterTwiBus
  643. malloc
  644. memcpy
  645. free
  646. __do_copy_data