watchdog.lst 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s page 1
  2. 1 .file "watchdog.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 WatchDogStart
  13. 12 .type WatchDogStart, @function
  14. 13 WatchDogStart:
  15. 14 /* prologue: frame size=0 */
  16. 15 0000 EF92 push r14
  17. 16 0002 FF92 push r15
  18. 17 0004 0F93 push r16
  19. 18 0006 1F93 push r17
  20. 19 /* prologue end (size=4) */
  21. 20 0008 AB01 movw r20,r22
  22. 21 000a BC01 movw r22,r24
  23. 22 /* #APP */
  24. 23 000c A895 wdr
  25. 24 /* #NOAPP */
  26. 25 000e 21E0 ldi r18,lo8(1)
  27. 26 0010 E12C mov r14,__zero_reg__
  28. 27 0012 E8E0 ldi r30,hi8(2048)
  29. 28 0014 FE2E mov r15,r30
  30. 29 0016 012D mov r16,__zero_reg__
  31. 30 0018 112D mov r17,__zero_reg__
  32. 31 001a 00C0 rjmp .L2
  33. 32 .L3:
  34. 33 001c 2F5F subi r18,lo8(-(1))
  35. 34 .L2:
  36. 35 001e D801 movw r26,r16
  37. 36 0020 C701 movw r24,r14
  38. 37 0022 022E mov r0,r18
  39. 38 0024 00C0 rjmp 2f
  40. 39 0026 880F 1: lsl r24
  41. 40 0028 991F rol r25
  42. 41 002a AA1F rol r26
  43. 42 002c BB1F rol r27
  44. 43 002e 0A94 2: dec r0
  45. 44 0030 02F4 brpl 1b
  46. 45 0032 37E0 ldi r19,7
  47. 46 0034 B695 1: lsr r27
  48. 47 0036 A795 ror r26
  49. 48 0038 9795 ror r25
  50. 49 003a 8795 ror r24
  51. 50 003c 3A95 dec r19
  52. 51 003e 01F4 brne 1b
  53. 52 0040 8417 cp r24,r20
  54. 53 0042 9507 cpc r25,r21
  55. 54 0044 A607 cpc r26,r22
  56. 55 0046 B707 cpc r27,r23
  57. 56 0048 00F0 brlo .L3
  58. 57 004a 2093 0000 sts g_byWdtDivider,r18
  59. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s page 2
  60. 58 004e 2A30 cpi r18,lo8(10)
  61. 59 0050 00F0 brlo .L5
  62. 60 0052 2970 andi r18,lo8(9)
  63. 61 0054 2093 0000 sts g_byWdtDivider,r18
  64. 62 .L5:
  65. 63 0058 2091 0000 lds r18,g_byWdtDivider
  66. 64 005c 23FF sbrs r18,3
  67. 65 005e 00C0 rjmp .L7
  68. 66 0060 38E2 ldi r19,lo8(40)
  69. 67 0062 00C0 rjmp .L9
  70. 68 .L7:
  71. 69 0064 38E0 ldi r19,lo8(8)
  72. 70 .L9:
  73. 71 0066 88E1 ldi r24,lo8(24)
  74. 72 0068 90E0 ldi r25,hi8(24)
  75. 73 006a 2770 andi r18,lo8(7)
  76. 74 006c 322B or r19,r18
  77. 75 /* #APP */
  78. 76 006e 0FB6 in __tmp_reg__,__SREG__
  79. 77 0070 F894 cli
  80. 78 0072 A895 wdr
  81. 79 0074 8093 6000 sts 96,r24
  82. 80 0078 0FBE out __SREG__,__tmp_reg__
  83. 81 007a 3093 6000 sts 96,r19
  84. 82 /* #NOAPP */
  85. 83 007e 81E0 ldi r24,lo8(1)
  86. 84 0080 8093 0000 sts g_byNested,r24
  87. 85 /* epilogue: frame size=0 */
  88. 86 0084 1F91 pop r17
  89. 87 0086 0F91 pop r16
  90. 88 0088 FF90 pop r15
  91. 89 008a EF90 pop r14
  92. 90 008c 0895 ret
  93. 91 /* epilogue end (size=5) */
  94. 92 /* function WatchDogStart size 76 (67) */
  95. 93 .size WatchDogStart, .-WatchDogStart
  96. 94 .global WatchDogRestart
  97. 95 .type WatchDogRestart, @function
  98. 96 WatchDogRestart:
  99. 97 /* prologue: frame size=0 */
  100. 98 /* prologue end (size=0) */
  101. 99 /* #APP */
  102. 100 008e A895 wdr
  103. 101 /* #NOAPP */
  104. 102 /* epilogue: frame size=0 */
  105. 103 0090 0895 ret
  106. 104 /* epilogue end (size=1) */
  107. 105 /* function WatchDogRestart size 3 (2) */
  108. 106 .size WatchDogRestart, .-WatchDogRestart
  109. 107 .global WatchDogDisable
  110. 108 .type WatchDogDisable, @function
  111. 109 WatchDogDisable:
  112. 110 /* prologue: frame size=0 */
  113. 111 /* prologue end (size=0) */
  114. 112 0092 8091 0000 lds r24,g_byNested
  115. 113 0096 8823 tst r24
  116. 114 0098 01F0 breq .L14
  117. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s page 3
  118. 115 009a 8F5F subi r24,lo8(-(1))
  119. 116 009c 8093 0000 sts g_byNested,r24
  120. 117 .L14:
  121. 118 00a0 88E1 ldi r24,lo8(24)
  122. 119 /* #APP */
  123. 120 00a2 0FB6 in __tmp_reg__, __SREG__
  124. 121 00a4 F894 cli
  125. 122 00a6 8093 6000 sts 96, r24
  126. 123 00aa 1092 6000 sts 96, __zero_reg__
  127. 124 00ae 0FBE out __SREG__,__tmp_reg__
  128. 125
  129. 126 /* #NOAPP */
  130. 127 /* epilogue: frame size=0 */
  131. 128 00b0 0895 ret
  132. 129 /* epilogue end (size=1) */
  133. 130 /* function WatchDogDisable size 21 (20) */
  134. 131 .size WatchDogDisable, .-WatchDogDisable
  135. 132 .global WatchDogEnable
  136. 133 .type WatchDogEnable, @function
  137. 134 WatchDogEnable:
  138. 135 /* prologue: frame size=0 */
  139. 136 /* prologue end (size=0) */
  140. 137 00b2 8091 0000 lds r24,g_byNested
  141. 138 00b6 8230 cpi r24,lo8(2)
  142. 139 00b8 00F0 brlo .L24
  143. 140 00ba 8150 subi r24,lo8(-(-1))
  144. 141 00bc 8093 0000 sts g_byNested,r24
  145. 142 00c0 8130 cpi r24,lo8(1)
  146. 143 00c2 01F4 brne .L24
  147. 144 00c4 2091 0000 lds r18,g_byWdtDivider
  148. 145 00c8 23FF sbrs r18,3
  149. 146 00ca 00C0 rjmp .L21
  150. 147 00cc 38E2 ldi r19,lo8(40)
  151. 148 00ce 00C0 rjmp .L23
  152. 149 .L21:
  153. 150 00d0 38E0 ldi r19,lo8(8)
  154. 151 .L23:
  155. 152 00d2 88E1 ldi r24,lo8(24)
  156. 153 00d4 90E0 ldi r25,hi8(24)
  157. 154 00d6 2770 andi r18,lo8(7)
  158. 155 00d8 322B or r19,r18
  159. 156 /* #APP */
  160. 157 00da 0FB6 in __tmp_reg__,__SREG__
  161. 158 00dc F894 cli
  162. 159 00de A895 wdr
  163. 160 00e0 8093 6000 sts 96,r24
  164. 161 00e4 0FBE out __SREG__,__tmp_reg__
  165. 162 00e6 3093 6000 sts 96,r19
  166. 163 /* #NOAPP */
  167. 164 .L24:
  168. 165 00ea 0895 ret
  169. 166 /* epilogue: frame size=0 */
  170. 167 /* epilogue: noreturn */
  171. 168 /* epilogue end (size=0) */
  172. 169 /* function WatchDogEnable size 33 (33) */
  173. 170 .size WatchDogEnable, .-WatchDogEnable
  174. 171 .lcomm g_byNested,1
  175. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s page 4
  176. 172 .lcomm g_byWdtDivider,1
  177. 173 /* File "source/watchdog.c": code 133 = 0x0085 ( 122), prologues 4, epilogues 7 */
  178. GAS LISTING C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s page 5
  179. DEFINED SYMBOLS
  180. *ABS*:00000000 watchdog.c
  181. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:3 *ABS*:0000003f __SREG__
  182. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:4 *ABS*:0000003e __SP_H__
  183. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:5 *ABS*:0000003d __SP_L__
  184. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:6 *ABS*:00000000 __tmp_reg__
  185. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:7 *ABS*:00000001 __zero_reg__
  186. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:13 .text:00000000 WatchDogStart
  187. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:171 .bss:00000001 g_byWdtDivider
  188. .bss:00000000 g_byNested
  189. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:96 .text:0000008e WatchDogRestart
  190. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:109 .text:00000092 WatchDogDisable
  191. C:\Users\GUUSV_~1\AppData\Local\Temp/ccCOqT85.s:134 .text:000000b2 WatchDogEnable
  192. UNDEFINED SYMBOLS
  193. __do_copy_data
  194. __do_clear_bss