timer.lst 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057
  1. GAS LISTING /tmp/ccH8SUYI.s page 1
  2. 1 .file "timer.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.NutTimerIntr,"ax",@progbits
  10. 9 .global NutTimerIntr
  11. 10 .type NutTimerIntr, @function
  12. 11 NutTimerIntr:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 8091 0000 lds r24,nut_ticks
  18. 17 0004 9091 0000 lds r25,nut_ticks+1
  19. 18 0008 A091 0000 lds r26,nut_ticks+2
  20. 19 000c B091 0000 lds r27,nut_ticks+3
  21. 20 0010 0196 adiw r24,1
  22. 21 0012 A11D adc r26,__zero_reg__
  23. 22 0014 B11D adc r27,__zero_reg__
  24. 23 0016 8093 0000 sts nut_ticks,r24
  25. 24 001a 9093 0000 sts nut_ticks+1,r25
  26. 25 001e A093 0000 sts nut_ticks+2,r26
  27. 26 0022 B093 0000 sts nut_ticks+3,r27
  28. 27 0026 4091 0000 lds r20,system_time+4
  29. 28 002a 5091 0000 lds r21,system_time+4+1
  30. 29 002e 6091 0000 lds r22,system_time+4+2
  31. 30 0032 7091 0000 lds r23,system_time+4+3
  32. 31 0036 8091 0000 lds r24,systick_us
  33. 32 003a 9091 0000 lds r25,systick_us+1
  34. 33 003e A091 0000 lds r26,systick_us+2
  35. 34 0042 B091 0000 lds r27,systick_us+3
  36. 35 0046 840F add r24,r20
  37. 36 0048 951F adc r25,r21
  38. 37 004a A61F adc r26,r22
  39. 38 004c B71F adc r27,r23
  40. 39 004e 8093 0000 sts system_time+4,r24
  41. 40 0052 9093 0000 sts system_time+4+1,r25
  42. 41 0056 A093 0000 sts system_time+4+2,r26
  43. 42 005a B093 0000 sts system_time+4+3,r27
  44. 43 005e 8091 0000 lds r24,system_time+4
  45. 44 0062 9091 0000 lds r25,system_time+4+1
  46. 45 0066 A091 0000 lds r26,system_time+4+2
  47. 46 006a B091 0000 lds r27,system_time+4+3
  48. 47 006e 8134 cpi r24,65
  49. 48 0070 9244 sbci r25,66
  50. 49 0072 AF40 sbci r26,15
  51. 50 0074 B105 cpc r27,__zero_reg__
  52. 51 0076 04F0 brlt .L1
  53. 52 0078 8091 0000 lds r24,system_time
  54. 53 007c 9091 0000 lds r25,system_time+1
  55. 54 0080 A091 0000 lds r26,system_time+2
  56. 55 0084 B091 0000 lds r27,system_time+3
  57. 56 0088 0196 adiw r24,1
  58. 57 008a A11D adc r26,__zero_reg__
  59. GAS LISTING /tmp/ccH8SUYI.s page 2
  60. 58 008c B11D adc r27,__zero_reg__
  61. 59 008e 8093 0000 sts system_time,r24
  62. 60 0092 9093 0000 sts system_time+1,r25
  63. 61 0096 A093 0000 sts system_time+2,r26
  64. 62 009a B093 0000 sts system_time+3,r27
  65. 63 009e 8091 0000 lds r24,system_time+4
  66. 64 00a2 9091 0000 lds r25,system_time+4+1
  67. 65 00a6 A091 0000 lds r26,system_time+4+2
  68. 66 00aa B091 0000 lds r27,system_time+4+3
  69. 67 00ae 8054 subi r24,64
  70. 68 00b0 9244 sbci r25,66
  71. 69 00b2 AF40 sbci r26,15
  72. 70 00b4 B109 sbc r27,__zero_reg__
  73. 71 00b6 8093 0000 sts system_time+4,r24
  74. 72 00ba 9093 0000 sts system_time+4+1,r25
  75. 73 00be A093 0000 sts system_time+4+2,r26
  76. 74 00c2 B093 0000 sts system_time+4+3,r27
  77. 75 .L1:
  78. 76 00c6 0895 ret
  79. 77 .size NutTimerIntr, .-NutTimerIntr
  80. 78 .section .text.NutMicroDelay.part.1,"ax",@progbits
  81. 79 .type NutMicroDelay.part.1, @function
  82. 80 NutMicroDelay.part.1:
  83. 81 0000 CF92 push r12
  84. 82 0002 DF92 push r13
  85. 83 0004 EF92 push r14
  86. 84 0006 FF92 push r15
  87. 85 /* prologue: function */
  88. 86 /* frame size = 0 */
  89. 87 /* stack size = 4 */
  90. 88 .L__stack_usage = 4
  91. 89 0008 9B01 movw r18,r22
  92. 90 000a AC01 movw r20,r24
  93. 91 000c A091 0000 lds r26,_delay_loop_2_mult
  94. 92 0010 B091 0000 lds r27,_delay_loop_2_mult+1
  95. 93 0014 0E94 0000 call __muluhisi3
  96. 94 0018 C72E mov r12,r23
  97. 95 001a D82E mov r13,r24
  98. 96 001c E92E mov r14,r25
  99. 97 001e FF24 clr r15
  100. 98 0020 41E3 ldi r20,49
  101. 99 0022 C416 cp r12,r20
  102. 100 0024 D104 cpc r13,__zero_reg__
  103. 101 0026 E104 cpc r14,__zero_reg__
  104. 102 0028 F104 cpc r15,__zero_reg__
  105. 103 002a 00F0 brlo .L4
  106. 104 002c 80E3 ldi r24,48
  107. 105 002e C81A sub r12,r24
  108. 106 0030 D108 sbc r13,__zero_reg__
  109. 107 0032 E108 sbc r14,__zero_reg__
  110. 108 0034 F108 sbc r15,__zero_reg__
  111. 109 0036 D701 movw r26,r14
  112. 110 0038 C601 movw r24,r12
  113. 111 003a 20E0 ldi r18,0
  114. 112 003c 30E0 ldi r19,0
  115. 113 .L6:
  116. 114 003e 0097 sbiw r24,0
  117. GAS LISTING /tmp/ccH8SUYI.s page 3
  118. 115 0040 41E0 ldi r20,1
  119. 116 0042 A407 cpc r26,r20
  120. 117 0044 B105 cpc r27,__zero_reg__
  121. 118 0046 00F0 brlo .L11
  122. 119 0048 F901 movw r30,r18
  123. 120 /* #APP */
  124. 121 ; 105 "/usr/avr/include/util/delay_basic.h" 1
  125. 122 004a 3197 1: sbiw r30,1
  126. 123 004c 01F4 brne 1b
  127. 124 ; 0 "" 2
  128. 125 /* #NOAPP */
  129. 126 004e 1197 sbiw r26,1
  130. 127 0050 00C0 rjmp .L6
  131. 128 .L11:
  132. 129 0052 9701 movw r18,r14
  133. 130 0054 4427 clr r20
  134. 131 0056 5527 clr r21
  135. 132 0058 A0E0 ldi r26,0
  136. 133 005a B0E0 ldi r27,0
  137. 134 005c 0E94 0000 call __mulohisi3
  138. 135 0060 C60E add r12,r22
  139. 136 0062 D71E adc r13,r23
  140. 137 0064 E81E adc r14,r24
  141. 138 0066 F91E adc r15,r25
  142. 139 0068 C114 cp r12,__zero_reg__
  143. 140 006a D104 cpc r13,__zero_reg__
  144. 141 006c E104 cpc r14,__zero_reg__
  145. 142 006e F104 cpc r15,__zero_reg__
  146. 143 0070 01F0 breq .L4
  147. 144 0072 C601 movw r24,r12
  148. 145 /* #APP */
  149. 146 ; 105 "/usr/avr/include/util/delay_basic.h" 1
  150. 147 0074 0197 1: sbiw r24,1
  151. 148 0076 01F4 brne 1b
  152. 149 ; 0 "" 2
  153. 150 /* #NOAPP */
  154. 151 .L4:
  155. 152 /* epilogue start */
  156. 153 0078 FF90 pop r15
  157. 154 007a EF90 pop r14
  158. 155 007c DF90 pop r13
  159. 156 007e CF90 pop r12
  160. 157 0080 0895 ret
  161. 158 .size NutMicroDelay.part.1, .-NutMicroDelay.part.1
  162. 159 .section .text.NutTimerInit,"ax",@progbits
  163. 160 .global NutTimerInit
  164. 161 .type NutTimerInit, @function
  165. 162 NutTimerInit:
  166. 163 /* prologue: function */
  167. 164 /* frame size = 0 */
  168. 165 /* stack size = 0 */
  169. 166 .L__stack_usage = 0
  170. 167 0000 80E0 ldi r24,lo8(gs(NutTimerIntr))
  171. 168 0002 90E0 ldi r25,hi8(gs(NutTimerIntr))
  172. 169 0004 0E94 0000 call NutRegisterTimer
  173. 170 0008 0E94 0000 call NutGetTickClock
  174. 171 000c 9B01 movw r18,r22
  175. GAS LISTING /tmp/ccH8SUYI.s page 4
  176. 172 000e AC01 movw r20,r24
  177. 173 0010 60E4 ldi r22,lo8(64)
  178. 174 0012 72E4 ldi r23,lo8(66)
  179. 175 0014 8FE0 ldi r24,lo8(15)
  180. 176 0016 90E0 ldi r25,0
  181. 177 0018 0E94 0000 call __udivmodsi4
  182. 178 001c 2093 0000 sts systick_us,r18
  183. 179 0020 3093 0000 sts systick_us+1,r19
  184. 180 0024 4093 0000 sts systick_us+2,r20
  185. 181 0028 5093 0000 sts systick_us+3,r21
  186. 182 002c E0E7 ldi r30,lo8(112)
  187. 183 002e F0E0 ldi r31,0
  188. 184 0030 8081 ld r24,Z
  189. 185 0032 8260 ori r24,lo8(2)
  190. 186 0034 8083 st Z,r24
  191. 187 0036 8FEA ldi r24,lo8(-81)
  192. 188 0038 93E0 ldi r25,lo8(3)
  193. 189 003a 9093 0000 sts _delay_loop_2_mult+1,r25
  194. 190 003e 8093 0000 sts _delay_loop_2_mult,r24
  195. 191 0042 0895 ret
  196. 192 .size NutTimerInit, .-NutTimerInit
  197. 193 .section .text.NutMicroDelay,"ax",@progbits
  198. 194 .global NutMicroDelay
  199. 195 .type NutMicroDelay, @function
  200. 196 NutMicroDelay:
  201. 197 /* prologue: function */
  202. 198 /* frame size = 0 */
  203. 199 /* stack size = 0 */
  204. 200 .L__stack_usage = 0
  205. 201 0000 6333 cpi r22,51
  206. 202 0002 7105 cpc r23,__zero_reg__
  207. 203 0004 8105 cpc r24,__zero_reg__
  208. 204 0006 9105 cpc r25,__zero_reg__
  209. 205 0008 00F4 brsh .L14
  210. 206 000a 2091 0000 lds r18,_delay_loop_2_mult
  211. 207 000e 3091 0000 lds r19,_delay_loop_2_mult+1
  212. 208 0012 269F mul r18,r22
  213. 209 0014 A001 movw r20,r0
  214. 210 0016 279F mul r18,r23
  215. 211 0018 500D add r21,r0
  216. 212 001a 369F mul r19,r22
  217. 213 001c 500D add r21,r0
  218. 214 001e 1124 clr r1
  219. 215 0020 852F mov r24,r21
  220. 216 0022 9927 clr r25
  221. 217 0024 8031 cpi r24,16
  222. 218 0026 9105 cpc r25,__zero_reg__
  223. 219 0028 00F0 brlo .L13
  224. 220 002a 0F97 sbiw r24,15
  225. 221 /* #APP */
  226. 222 ; 105 "/usr/avr/include/util/delay_basic.h" 1
  227. 223 002c 0197 1: sbiw r24,1
  228. 224 002e 01F4 brne 1b
  229. 225 ; 0 "" 2
  230. 226 /* #NOAPP */
  231. 227 0030 0895 ret
  232. 228 .L14:
  233. GAS LISTING /tmp/ccH8SUYI.s page 5
  234. 229 0032 0C94 0000 jmp NutMicroDelay.part.1
  235. 230 .L13:
  236. 231 0036 0895 ret
  237. 232 .size NutMicroDelay, .-NutMicroDelay
  238. 233 .section .text.NutDelay,"ax",@progbits
  239. 234 .global NutDelay
  240. 235 .type NutDelay, @function
  241. 236 NutDelay:
  242. 237 0000 CF93 push r28
  243. 238 /* prologue: function */
  244. 239 /* frame size = 0 */
  245. 240 /* stack size = 1 */
  246. 241 .L__stack_usage = 1
  247. 242 0002 C82F mov r28,r24
  248. 243 .L17:
  249. 244 0004 CC23 tst r28
  250. 245 0006 01F0 breq .L19
  251. 246 0008 68EE ldi r22,lo8(-24)
  252. 247 000a 73E0 ldi r23,lo8(3)
  253. 248 000c 80E0 ldi r24,0
  254. 249 000e 90E0 ldi r25,0
  255. 250 0010 0E94 0000 call NutMicroDelay.part.1
  256. 251 0014 C150 subi r28,lo8(-(-1))
  257. 252 0016 00C0 rjmp .L17
  258. 253 .L19:
  259. 254 /* epilogue start */
  260. 255 0018 CF91 pop r28
  261. 256 001a 0895 ret
  262. 257 .size NutDelay, .-NutDelay
  263. 258 .section .text.NutTimerInsert,"ax",@progbits
  264. 259 .global NutTimerInsert
  265. 260 .type NutTimerInsert, @function
  266. 261 NutTimerInsert:
  267. 262 0000 0F93 push r16
  268. 263 0002 1F93 push r17
  269. 264 /* prologue: function */
  270. 265 /* frame size = 0 */
  271. 266 /* stack size = 2 */
  272. 267 .L__stack_usage = 2
  273. 268 0004 FC01 movw r30,r24
  274. 269 0006 1382 std Z+3,__zero_reg__
  275. 270 0008 1282 std Z+2,__zero_reg__
  276. 271 000a A091 0000 lds r26,nutTimerList
  277. 272 000e B091 0000 lds r27,nutTimerList+1
  278. 273 .L21:
  279. 274 0012 1097 sbiw r26,0
  280. 275 0014 01F0 breq .L23
  281. 276 0016 4085 ldd r20,Z+8
  282. 277 0018 5185 ldd r21,Z+9
  283. 278 001a 6285 ldd r22,Z+10
  284. 279 001c 7385 ldd r23,Z+11
  285. 280 001e 1896 adiw r26,8
  286. 281 0020 0D91 ld r16,X+
  287. 282 0022 1D91 ld r17,X+
  288. 283 0024 2D91 ld r18,X+
  289. 284 0026 3C91 ld r19,X
  290. 285 0028 1B97 sbiw r26,8+3
  291. GAS LISTING /tmp/ccH8SUYI.s page 6
  292. 286 002a 4017 cp r20,r16
  293. 287 002c 5107 cpc r21,r17
  294. 288 002e 6207 cpc r22,r18
  295. 289 0030 7307 cpc r23,r19
  296. 290 0032 00F4 brsh .L22
  297. 291 0034 041B sub r16,r20
  298. 292 0036 150B sbc r17,r21
  299. 293 0038 260B sbc r18,r22
  300. 294 003a 370B sbc r19,r23
  301. 295 003c 1896 adiw r26,8
  302. 296 003e 0D93 st X+,r16
  303. 297 0040 1D93 st X+,r17
  304. 298 0042 2D93 st X+,r18
  305. 299 0044 3C93 st X,r19
  306. 300 0046 1B97 sbiw r26,8+3
  307. 301 0048 00C0 rjmp .L23
  308. 302 .L22:
  309. 303 004a 401B sub r20,r16
  310. 304 004c 510B sbc r21,r17
  311. 305 004e 620B sbc r22,r18
  312. 306 0050 730B sbc r23,r19
  313. 307 0052 4087 std Z+8,r20
  314. 308 0054 5187 std Z+9,r21
  315. 309 0056 6287 std Z+10,r22
  316. 310 0058 7387 std Z+11,r23
  317. 311 005a B383 std Z+3,r27
  318. 312 005c A283 std Z+2,r26
  319. 313 005e 0D90 ld __tmp_reg__,X+
  320. 314 0060 BC91 ld r27,X
  321. 315 0062 A02D mov r26,__tmp_reg__
  322. 316 0064 00C0 rjmp .L21
  323. 317 .L23:
  324. 318 0066 B183 std Z+1,r27
  325. 319 0068 A083 st Z,r26
  326. 320 006a 1097 sbiw r26,0
  327. 321 006c 01F0 breq .L25
  328. 322 006e 1396 adiw r26,2+1
  329. 323 0070 FC93 st X,r31
  330. 324 0072 EE93 st -X,r30
  331. 325 0074 1297 sbiw r26,2
  332. 326 .L25:
  333. 327 0076 A281 ldd r26,Z+2
  334. 328 0078 B381 ldd r27,Z+3
  335. 329 007a 1097 sbiw r26,0
  336. 330 007c 01F0 breq .L26
  337. 331 007e ED93 st X+,r30
  338. 332 0080 FC93 st X,r31
  339. 333 0082 00C0 rjmp .L20
  340. 334 .L26:
  341. 335 0084 F093 0000 sts nutTimerList+1,r31
  342. 336 0088 E093 0000 sts nutTimerList,r30
  343. 337 .L20:
  344. 338 /* epilogue start */
  345. 339 008c 1F91 pop r17
  346. 340 008e 0F91 pop r16
  347. 341 0090 0895 ret
  348. 342 .size NutTimerInsert, .-NutTimerInsert
  349. GAS LISTING /tmp/ccH8SUYI.s page 7
  350. 343 .section .text.NutTimerStop,"ax",@progbits
  351. 344 .global NutTimerStop
  352. 345 .type NutTimerStop, @function
  353. 346 NutTimerStop:
  354. 347 0000 0F93 push r16
  355. 348 0002 1F93 push r17
  356. 349 0004 CF93 push r28
  357. 350 0006 DF93 push r29
  358. 351 /* prologue: function */
  359. 352 /* frame size = 0 */
  360. 353 /* stack size = 4 */
  361. 354 .L__stack_usage = 4
  362. 355 0008 FC01 movw r30,r24
  363. 356 000a 1482 std Z+4,__zero_reg__
  364. 357 000c 1582 std Z+5,__zero_reg__
  365. 358 000e 1682 std Z+6,__zero_reg__
  366. 359 0010 1782 std Z+7,__zero_reg__
  367. 360 0012 1586 std Z+13,__zero_reg__
  368. 361 0014 1486 std Z+12,__zero_reg__
  369. 362 0016 4085 ldd r20,Z+8
  370. 363 0018 5185 ldd r21,Z+9
  371. 364 001a 6285 ldd r22,Z+10
  372. 365 001c 7385 ldd r23,Z+11
  373. 366 001e 4115 cp r20,__zero_reg__
  374. 367 0020 5105 cpc r21,__zero_reg__
  375. 368 0022 6105 cpc r22,__zero_reg__
  376. 369 0024 7105 cpc r23,__zero_reg__
  377. 370 0026 01F0 breq .L31
  378. 371 0028 C281 ldd r28,Z+2
  379. 372 002a D381 ldd r29,Z+3
  380. 373 002c 8081 ld r24,Z
  381. 374 002e 9181 ldd r25,Z+1
  382. 375 0030 2097 sbiw r28,0
  383. 376 0032 01F0 breq .L33
  384. 377 0034 9983 std Y+1,r25
  385. 378 0036 8883 st Y,r24
  386. 379 0038 00C0 rjmp .L34
  387. 380 .L33:
  388. 381 003a 9093 0000 sts nutTimerList+1,r25
  389. 382 003e 8093 0000 sts nutTimerList,r24
  390. 383 .L34:
  391. 384 0042 A081 ld r26,Z
  392. 385 0044 B181 ldd r27,Z+1
  393. 386 0046 1097 sbiw r26,0
  394. 387 0048 01F0 breq .L35
  395. 388 004a 1396 adiw r26,2+1
  396. 389 004c DC93 st X,r29
  397. 390 004e CE93 st -X,r28
  398. 391 0050 1297 sbiw r26,2
  399. 392 0052 1896 adiw r26,8
  400. 393 0054 0D91 ld r16,X+
  401. 394 0056 1D91 ld r17,X+
  402. 395 0058 2D91 ld r18,X+
  403. 396 005a 3C91 ld r19,X
  404. 397 005c 1B97 sbiw r26,8+3
  405. 398 005e 400F add r20,r16
  406. 399 0060 511F adc r21,r17
  407. GAS LISTING /tmp/ccH8SUYI.s page 8
  408. 400 0062 621F adc r22,r18
  409. 401 0064 731F adc r23,r19
  410. 402 0066 1896 adiw r26,8
  411. 403 0068 4D93 st X+,r20
  412. 404 006a 5D93 st X+,r21
  413. 405 006c 6D93 st X+,r22
  414. 406 006e 7C93 st X,r23
  415. 407 0070 1B97 sbiw r26,8+3
  416. 408 .L35:
  417. 409 0072 1086 std Z+8,__zero_reg__
  418. 410 0074 1186 std Z+9,__zero_reg__
  419. 411 0076 1286 std Z+10,__zero_reg__
  420. 412 0078 1386 std Z+11,__zero_reg__
  421. 413 007a CF01 movw r24,r30
  422. 414 /* epilogue start */
  423. 415 007c DF91 pop r29
  424. 416 007e CF91 pop r28
  425. 417 0080 1F91 pop r17
  426. 418 0082 0F91 pop r16
  427. 419 0084 0C94 0000 jmp NutTimerInsert
  428. 420 .L31:
  429. 421 /* epilogue start */
  430. 422 0088 DF91 pop r29
  431. 423 008a CF91 pop r28
  432. 424 008c 1F91 pop r17
  433. 425 008e 0F91 pop r16
  434. 426 0090 0895 ret
  435. 427 .size NutTimerStop, .-NutTimerStop
  436. 428 .section .text.NutGetTickCount,"ax",@progbits
  437. 429 .global NutGetTickCount
  438. 430 .type NutGetTickCount, @function
  439. 431 NutGetTickCount:
  440. 432 /* prologue: function */
  441. 433 /* frame size = 0 */
  442. 434 /* stack size = 0 */
  443. 435 .L__stack_usage = 0
  444. 436 /* #APP */
  445. 437 ; 810 "../../nut/os/timer.c" 1
  446. 438 0000 0FB6 in __tmp_reg__, __SREG__
  447. 439 0002 F894 cli
  448. 440 0004 0F92 push __tmp_reg__
  449. 441
  450. 442 ; 0 "" 2
  451. 443 /* #NOAPP */
  452. 444 0006 6091 0000 lds r22,nut_ticks
  453. 445 000a 7091 0000 lds r23,nut_ticks+1
  454. 446 000e 8091 0000 lds r24,nut_ticks+2
  455. 447 0012 9091 0000 lds r25,nut_ticks+3
  456. 448 /* #APP */
  457. 449 ; 812 "../../nut/os/timer.c" 1
  458. 450 0016 0F90 pop __tmp_reg__
  459. 451 0018 0FBE out __SREG__, __tmp_reg__
  460. 452
  461. 453 ; 0 "" 2
  462. 454 /* #NOAPP */
  463. 455 001a 0895 ret
  464. 456 .size NutGetTickCount, .-NutGetTickCount
  465. GAS LISTING /tmp/ccH8SUYI.s page 9
  466. 457 .section .text.NutTimerProcessElapsed,"ax",@progbits
  467. 458 .global NutTimerProcessElapsed
  468. 459 .type NutTimerProcessElapsed, @function
  469. 460 NutTimerProcessElapsed:
  470. 461 0000 CF92 push r12
  471. 462 0002 DF92 push r13
  472. 463 0004 EF92 push r14
  473. 464 0006 FF92 push r15
  474. 465 0008 CF93 push r28
  475. 466 000a DF93 push r29
  476. 467 /* prologue: function */
  477. 468 /* frame size = 0 */
  478. 469 /* stack size = 6 */
  479. 470 .L__stack_usage = 6
  480. 471 000c 0E94 0000 call NutGetTickCount
  481. 472 0010 C090 0000 lds r12,nut_ticks_resume
  482. 473 0014 D090 0000 lds r13,nut_ticks_resume+1
  483. 474 0018 E090 0000 lds r14,nut_ticks_resume+2
  484. 475 001c F090 0000 lds r15,nut_ticks_resume+3
  485. 476 0020 9B01 movw r18,r22
  486. 477 0022 AC01 movw r20,r24
  487. 478 0024 2C19 sub r18,r12
  488. 479 0026 3D09 sbc r19,r13
  489. 480 0028 4E09 sbc r20,r14
  490. 481 002a 5F09 sbc r21,r15
  491. 482 002c 6901 movw r12,r18
  492. 483 002e 7A01 movw r14,r20
  493. 484 0030 6093 0000 sts nut_ticks_resume,r22
  494. 485 0034 7093 0000 sts nut_ticks_resume+1,r23
  495. 486 0038 8093 0000 sts nut_ticks_resume+2,r24
  496. 487 003c 9093 0000 sts nut_ticks_resume+3,r25
  497. 488 .L41:
  498. 489 0040 C091 0000 lds r28,nutTimerList
  499. 490 0044 D091 0000 lds r29,nutTimerList+1
  500. 491 0048 2097 sbiw r28,0
  501. 492 004a 01F4 brne .+2
  502. 493 004c 00C0 rjmp .L40
  503. 494 004e C114 cp r12,__zero_reg__
  504. 495 0050 D104 cpc r13,__zero_reg__
  505. 496 0052 E104 cpc r14,__zero_reg__
  506. 497 0054 F104 cpc r15,__zero_reg__
  507. 498 0056 01F4 brne .+2
  508. 499 0058 00C0 rjmp .L40
  509. 500 005a 8885 ldd r24,Y+8
  510. 501 005c 9985 ldd r25,Y+9
  511. 502 005e AA85 ldd r26,Y+10
  512. 503 0060 BB85 ldd r27,Y+11
  513. 504 0062 C816 cp r12,r24
  514. 505 0064 D906 cpc r13,r25
  515. 506 0066 EA06 cpc r14,r26
  516. 507 0068 FB06 cpc r15,r27
  517. 508 006a 00F4 brsh .L42
  518. 509 006c 8C19 sub r24,r12
  519. 510 006e 9D09 sbc r25,r13
  520. 511 0070 AE09 sbc r26,r14
  521. 512 0072 BF09 sbc r27,r15
  522. 513 0074 8887 std Y+8,r24
  523. GAS LISTING /tmp/ccH8SUYI.s page 10
  524. 514 0076 9987 std Y+9,r25
  525. 515 0078 AA87 std Y+10,r26
  526. 516 007a BB87 std Y+11,r27
  527. 517 007c C12C mov r12,__zero_reg__
  528. 518 007e D12C mov r13,__zero_reg__
  529. 519 0080 7601 movw r14,r12
  530. 520 0082 00C0 rjmp .L43
  531. 521 .L42:
  532. 522 0084 C81A sub r12,r24
  533. 523 0086 D90A sbc r13,r25
  534. 524 0088 EA0A sbc r14,r26
  535. 525 008a FB0A sbc r15,r27
  536. 526 008c 1886 std Y+8,__zero_reg__
  537. 527 008e 1986 std Y+9,__zero_reg__
  538. 528 0090 1A86 std Y+10,__zero_reg__
  539. 529 0092 1B86 std Y+11,__zero_reg__
  540. 530 .L43:
  541. 531 0094 8885 ldd r24,Y+8
  542. 532 0096 9985 ldd r25,Y+9
  543. 533 0098 AA85 ldd r26,Y+10
  544. 534 009a BB85 ldd r27,Y+11
  545. 535 009c 892B or r24,r25
  546. 536 009e 8A2B or r24,r26
  547. 537 00a0 8B2B or r24,r27
  548. 538 00a2 01F4 brne .L41
  549. 539 00a4 EC85 ldd r30,Y+12
  550. 540 00a6 FD85 ldd r31,Y+13
  551. 541 00a8 3097 sbiw r30,0
  552. 542 00aa 01F0 breq .L45
  553. 543 00ac 6E85 ldd r22,Y+14
  554. 544 00ae 7F85 ldd r23,Y+15
  555. 545 00b0 CE01 movw r24,r28
  556. 546 00b2 1995 eicall
  557. 547 .L45:
  558. 548 00b4 E091 0000 lds r30,nutTimerList
  559. 549 00b8 F091 0000 lds r31,nutTimerList+1
  560. 550 00bc 0190 ld __tmp_reg__,Z+
  561. 551 00be F081 ld r31,Z
  562. 552 00c0 E02D mov r30,__tmp_reg__
  563. 553 00c2 F093 0000 sts nutTimerList+1,r31
  564. 554 00c6 E093 0000 sts nutTimerList,r30
  565. 555 00ca 3097 sbiw r30,0
  566. 556 00cc 01F0 breq .L46
  567. 557 00ce 1382 std Z+3,__zero_reg__
  568. 558 00d0 1282 std Z+2,__zero_reg__
  569. 559 .L46:
  570. 560 00d2 8C81 ldd r24,Y+4
  571. 561 00d4 9D81 ldd r25,Y+5
  572. 562 00d6 AE81 ldd r26,Y+6
  573. 563 00d8 BF81 ldd r27,Y+7
  574. 564 00da 8887 std Y+8,r24
  575. 565 00dc 9987 std Y+9,r25
  576. 566 00de AA87 std Y+10,r26
  577. 567 00e0 BB87 std Y+11,r27
  578. 568 00e2 892B or r24,r25
  579. 569 00e4 8A2B or r24,r26
  580. 570 00e6 8B2B or r24,r27
  581. GAS LISTING /tmp/ccH8SUYI.s page 11
  582. 571 00e8 01F4 brne .L47
  583. 572 00ea BE01 movw r22,r28
  584. 573 00ec 80E0 ldi r24,lo8(heapFreeList)
  585. 574 00ee 90E0 ldi r25,hi8(heapFreeList)
  586. 575 00f0 0E94 0000 call NutHeapRootFree
  587. 576 00f4 00C0 rjmp .L41
  588. 577 .L47:
  589. 578 00f6 CE01 movw r24,r28
  590. 579 00f8 0E94 0000 call NutTimerInsert
  591. 580 00fc 00C0 rjmp .L41
  592. 581 .L40:
  593. 582 /* epilogue start */
  594. 583 00fe DF91 pop r29
  595. 584 0100 CF91 pop r28
  596. 585 0102 FF90 pop r15
  597. 586 0104 EF90 pop r14
  598. 587 0106 DF90 pop r13
  599. 588 0108 CF90 pop r12
  600. 589 010a 0895 ret
  601. 590 .size NutTimerProcessElapsed, .-NutTimerProcessElapsed
  602. 591 .section .text.NutTimerCreate,"ax",@progbits
  603. 592 .global NutTimerCreate
  604. 593 .type NutTimerCreate, @function
  605. 594 NutTimerCreate:
  606. 595 0000 4F92 push r4
  607. 596 0002 5F92 push r5
  608. 597 0004 6F92 push r6
  609. 598 0006 7F92 push r7
  610. 599 0008 8F92 push r8
  611. 600 000a 9F92 push r9
  612. 601 000c AF92 push r10
  613. 602 000e BF92 push r11
  614. 603 0010 CF92 push r12
  615. 604 0012 DF92 push r13
  616. 605 0014 EF92 push r14
  617. 606 0016 FF92 push r15
  618. 607 0018 0F93 push r16
  619. 608 001a CF93 push r28
  620. 609 001c DF93 push r29
  621. 610 /* prologue: function */
  622. 611 /* frame size = 0 */
  623. 612 /* stack size = 15 */
  624. 613 .L__stack_usage = 15
  625. 614 001e 4B01 movw r8,r22
  626. 615 0020 5C01 movw r10,r24
  627. 616 0022 6A01 movw r12,r20
  628. 617 0024 7901 movw r14,r18
  629. 618 0026 60E1 ldi r22,lo8(16)
  630. 619 0028 70E0 ldi r23,0
  631. 620 002a 80E0 ldi r24,lo8(heapFreeList)
  632. 621 002c 90E0 ldi r25,hi8(heapFreeList)
  633. 622 002e 0E94 0000 call NutHeapRootAlloc
  634. 623 0032 EC01 movw r28,r24
  635. 624 0034 892B or r24,r25
  636. 625 0036 01F0 breq .L60
  637. 626 0038 0E94 0000 call NutGetTickCount
  638. 627 003c 4090 0000 lds r4,nut_ticks_resume
  639. GAS LISTING /tmp/ccH8SUYI.s page 12
  640. 628 0040 5090 0000 lds r5,nut_ticks_resume+1
  641. 629 0044 6090 0000 lds r6,nut_ticks_resume+2
  642. 630 0048 7090 0000 lds r7,nut_ticks_resume+3
  643. 631 004c A501 movw r20,r10
  644. 632 004e 9401 movw r18,r8
  645. 633 0050 2419 sub r18,r4
  646. 634 0052 3509 sbc r19,r5
  647. 635 0054 4609 sbc r20,r6
  648. 636 0056 5709 sbc r21,r7
  649. 637 0058 DC01 movw r26,r24
  650. 638 005a CB01 movw r24,r22
  651. 639 005c 820F add r24,r18
  652. 640 005e 931F adc r25,r19
  653. 641 0060 A41F adc r26,r20
  654. 642 0062 B51F adc r27,r21
  655. 643 0064 8887 std Y+8,r24
  656. 644 0066 9987 std Y+9,r25
  657. 645 0068 AA87 std Y+10,r26
  658. 646 006a BB87 std Y+11,r27
  659. 647 006c 00FF sbrs r16,0
  660. 648 006e 00C0 rjmp .L61
  661. 649 0070 1C82 std Y+4,__zero_reg__
  662. 650 0072 1D82 std Y+5,__zero_reg__
  663. 651 0074 1E82 std Y+6,__zero_reg__
  664. 652 0076 1F82 std Y+7,__zero_reg__
  665. 653 0078 00C0 rjmp .L62
  666. 654 .L61:
  667. 655 007a 8C82 std Y+4,r8
  668. 656 007c 9D82 std Y+5,r9
  669. 657 007e AE82 std Y+6,r10
  670. 658 0080 BF82 std Y+7,r11
  671. 659 .L62:
  672. 660 0082 DD86 std Y+13,r13
  673. 661 0084 CC86 std Y+12,r12
  674. 662 0086 FF86 std Y+15,r15
  675. 663 0088 EE86 std Y+14,r14
  676. 664 .L60:
  677. 665 008a CE01 movw r24,r28
  678. 666 /* epilogue start */
  679. 667 008c DF91 pop r29
  680. 668 008e CF91 pop r28
  681. 669 0090 0F91 pop r16
  682. 670 0092 FF90 pop r15
  683. 671 0094 EF90 pop r14
  684. 672 0096 DF90 pop r13
  685. 673 0098 CF90 pop r12
  686. 674 009a BF90 pop r11
  687. 675 009c AF90 pop r10
  688. 676 009e 9F90 pop r9
  689. 677 00a0 8F90 pop r8
  690. 678 00a2 7F90 pop r7
  691. 679 00a4 6F90 pop r6
  692. 680 00a6 5F90 pop r5
  693. 681 00a8 4F90 pop r4
  694. 682 00aa 0895 ret
  695. 683 .size NutTimerCreate, .-NutTimerCreate
  696. 684 .section .text.NutTimerStartTicks,"ax",@progbits
  697. GAS LISTING /tmp/ccH8SUYI.s page 13
  698. 685 .global NutTimerStartTicks
  699. 686 .type NutTimerStartTicks, @function
  700. 687 NutTimerStartTicks:
  701. 688 0000 0F93 push r16
  702. 689 0002 CF93 push r28
  703. 690 0004 DF93 push r29
  704. 691 /* prologue: function */
  705. 692 /* frame size = 0 */
  706. 693 /* stack size = 3 */
  707. 694 .L__stack_usage = 3
  708. 695 0006 0E94 0000 call NutTimerCreate
  709. 696 000a EC01 movw r28,r24
  710. 697 000c 0097 sbiw r24,0
  711. 698 000e 01F0 breq .L67
  712. 699 0010 0E94 0000 call NutTimerInsert
  713. 700 .L67:
  714. 701 0014 CE01 movw r24,r28
  715. 702 /* epilogue start */
  716. 703 0016 DF91 pop r29
  717. 704 0018 CF91 pop r28
  718. 705 001a 0F91 pop r16
  719. 706 001c 0895 ret
  720. 707 .size NutTimerStartTicks, .-NutTimerStartTicks
  721. 708 .section .text.NutTimerStart,"ax",@progbits
  722. 709 .global NutTimerStart
  723. 710 .type NutTimerStart, @function
  724. 711 NutTimerStart:
  725. 712 0000 0F93 push r16
  726. 713 0002 CF93 push r28
  727. 714 0004 DF93 push r29
  728. 715 0006 00D0 rcall .
  729. 716 0008 1F92 push __zero_reg__
  730. 717 000a CDB7 in r28,__SP_L__
  731. 718 000c DEB7 in r29,__SP_H__
  732. 719 /* prologue: function */
  733. 720 /* frame size = 4 */
  734. 721 /* stack size = 7 */
  735. 722 .L__stack_usage = 7
  736. 723 000e 2B83 std Y+3,r18
  737. 724 0010 3C83 std Y+4,r19
  738. 725 0012 4983 std Y+1,r20
  739. 726 0014 5A83 std Y+2,r21
  740. 727 0016 0E94 0000 call NutTimerMillisToTicks
  741. 728 001a 2B81 ldd r18,Y+3
  742. 729 001c 3C81 ldd r19,Y+4
  743. 730 001e 4981 ldd r20,Y+1
  744. 731 0020 5A81 ldd r21,Y+2
  745. 732 0022 0E94 0000 call NutTimerStartTicks
  746. 733 /* epilogue start */
  747. 734 0026 0F90 pop __tmp_reg__
  748. 735 0028 0F90 pop __tmp_reg__
  749. 736 002a 0F90 pop __tmp_reg__
  750. 737 002c 0F90 pop __tmp_reg__
  751. 738 002e DF91 pop r29
  752. 739 0030 CF91 pop r28
  753. 740 0032 0F91 pop r16
  754. 741 0034 0895 ret
  755. GAS LISTING /tmp/ccH8SUYI.s page 14
  756. 742 .size NutTimerStart, .-NutTimerStart
  757. 743 .section .text.NutSleep,"ax",@progbits
  758. 744 .global NutSleep
  759. 745 .type NutSleep, @function
  760. 746 NutSleep:
  761. 747 0000 CF92 push r12
  762. 748 0002 DF92 push r13
  763. 749 0004 EF92 push r14
  764. 750 0006 FF92 push r15
  765. 751 0008 0F93 push r16
  766. 752 000a CF93 push r28
  767. 753 000c DF93 push r29
  768. 754 /* prologue: function */
  769. 755 /* frame size = 0 */
  770. 756 /* stack size = 7 */
  771. 757 .L__stack_usage = 7
  772. 758 000e 6B01 movw r12,r22
  773. 759 0010 7C01 movw r14,r24
  774. 760 0012 672B or r22,r23
  775. 761 0014 682B or r22,r24
  776. 762 0016 692B or r22,r25
  777. 763 0018 01F4 brne .+2
  778. 764 001a 00C0 rjmp .L73
  779. 765 001c 60E0 ldi r22,lo8(runQueue)
  780. 766 001e 70E0 ldi r23,hi8(runQueue)
  781. 767 0020 8091 0000 lds r24,runningThread
  782. 768 0024 9091 0000 lds r25,runningThread+1
  783. 769 0028 0E94 0000 call NutThreadRemoveQueue
  784. 770 002c C091 0000 lds r28,runningThread
  785. 771 0030 D091 0000 lds r29,runningThread+1
  786. 772 0034 83E0 ldi r24,lo8(3)
  787. 773 0036 8F87 std Y+15,r24
  788. 774 0038 01E0 ldi r16,lo8(1)
  789. 775 003a 9E01 movw r18,r28
  790. 776 003c 40E0 ldi r20,lo8(gs(NutThreadWake))
  791. 777 003e 50E0 ldi r21,hi8(gs(NutThreadWake))
  792. 778 0040 C701 movw r24,r14
  793. 779 0042 B601 movw r22,r12
  794. 780 0044 0E94 0000 call NutTimerStart
  795. 781 0048 9E8B std Y+22,r25
  796. 782 004a 8D8B std Y+21,r24
  797. 783 004c 892B or r24,r25
  798. 784 004e 01F0 breq .L74
  799. 785 /* epilogue start */
  800. 786 0050 DF91 pop r29
  801. 787 0052 CF91 pop r28
  802. 788 0054 0F91 pop r16
  803. 789 0056 FF90 pop r15
  804. 790 0058 EF90 pop r14
  805. 791 005a DF90 pop r13
  806. 792 005c CF90 pop r12
  807. 793 005e 0C94 0000 jmp NutThreadResume
  808. 794 .L74:
  809. 795 0062 E091 0000 lds r30,runningThread
  810. 796 0066 F091 0000 lds r31,runningThread+1
  811. 797 006a 80E0 ldi r24,lo8(runQueue)
  812. 798 006c 90E0 ldi r25,hi8(runQueue)
  813. GAS LISTING /tmp/ccH8SUYI.s page 15
  814. 799 006e 908F std Z+24,r25
  815. 800 0070 878B std Z+23,r24
  816. 801 0072 8091 0000 lds r24,runQueue
  817. 802 0076 9091 0000 lds r25,runQueue+1
  818. 803 007a 9383 std Z+3,r25
  819. 804 007c 8283 std Z+2,r24
  820. 805 007e 81E0 ldi r24,lo8(1)
  821. 806 0080 8787 std Z+15,r24
  822. 807 0082 F093 0000 sts runQueue+1,r31
  823. 808 0086 E093 0000 sts runQueue,r30
  824. 809 /* epilogue start */
  825. 810 008a DF91 pop r29
  826. 811 008c CF91 pop r28
  827. 812 008e 0F91 pop r16
  828. 813 0090 FF90 pop r15
  829. 814 0092 EF90 pop r14
  830. 815 0094 DF90 pop r13
  831. 816 0096 CF90 pop r12
  832. 817 0098 0895 ret
  833. 818 .L73:
  834. 819 /* epilogue start */
  835. 820 009a DF91 pop r29
  836. 821 009c CF91 pop r28
  837. 822 009e 0F91 pop r16
  838. 823 00a0 FF90 pop r15
  839. 824 00a2 EF90 pop r14
  840. 825 00a4 DF90 pop r13
  841. 826 00a6 CF90 pop r12
  842. 827 00a8 0C94 0000 jmp NutThreadYield
  843. 828 .size NutSleep, .-NutSleep
  844. 829 .section .text.NutGetSeconds,"ax",@progbits
  845. 830 .global NutGetSeconds
  846. 831 .type NutGetSeconds, @function
  847. 832 NutGetSeconds:
  848. 833 /* prologue: function */
  849. 834 /* frame size = 0 */
  850. 835 /* stack size = 0 */
  851. 836 .L__stack_usage = 0
  852. 837 0000 6091 0000 lds r22,system_time
  853. 838 0004 7091 0000 lds r23,system_time+1
  854. 839 0008 8091 0000 lds r24,system_time+2
  855. 840 000c 9091 0000 lds r25,system_time+3
  856. 841 0010 0895 ret
  857. 842 .size NutGetSeconds, .-NutGetSeconds
  858. 843 .section .text.NutGetMillis,"ax",@progbits
  859. 844 .global NutGetMillis
  860. 845 .type NutGetMillis, @function
  861. 846 NutGetMillis:
  862. 847 0000 8F92 push r8
  863. 848 0002 9F92 push r9
  864. 849 0004 AF92 push r10
  865. 850 0006 BF92 push r11
  866. 851 0008 CF92 push r12
  867. 852 000a DF92 push r13
  868. 853 000c EF92 push r14
  869. 854 000e FF92 push r15
  870. 855 /* prologue: function */
  871. GAS LISTING /tmp/ccH8SUYI.s page 16
  872. 856 /* frame size = 0 */
  873. 857 /* stack size = 8 */
  874. 858 .L__stack_usage = 8
  875. 859 0010 E0E0 ldi r30,lo8(system_time)
  876. 860 0012 F0E0 ldi r31,hi8(system_time)
  877. 861 0014 2081 ld r18,Z
  878. 862 0016 3181 ldd r19,Z+1
  879. 863 0018 4281 ldd r20,Z+2
  880. 864 001a 5381 ldd r21,Z+3
  881. 865 001c 8480 ldd r8,Z+4
  882. 866 001e 9580 ldd r9,Z+5
  883. 867 0020 A680 ldd r10,Z+6
  884. 868 0022 B780 ldd r11,Z+7
  885. 869 0024 A8EE ldi r26,lo8(-24)
  886. 870 0026 B3E0 ldi r27,lo8(3)
  887. 871 0028 0E94 0000 call __muluhisi3
  888. 872 002c 6B01 movw r12,r22
  889. 873 002e 7C01 movw r14,r24
  890. 874 0030 C501 movw r24,r10
  891. 875 0032 B401 movw r22,r8
  892. 876 0034 28EE ldi r18,lo8(-24)
  893. 877 0036 33E0 ldi r19,lo8(3)
  894. 878 0038 40E0 ldi r20,0
  895. 879 003a 50E0 ldi r21,0
  896. 880 003c 0E94 0000 call __divmodsi4
  897. 881 0040 C701 movw r24,r14
  898. 882 0042 B601 movw r22,r12
  899. 883 0044 620F add r22,r18
  900. 884 0046 731F adc r23,r19
  901. 885 0048 841F adc r24,r20
  902. 886 004a 951F adc r25,r21
  903. 887 /* epilogue start */
  904. 888 004c FF90 pop r15
  905. 889 004e EF90 pop r14
  906. 890 0050 DF90 pop r13
  907. 891 0052 CF90 pop r12
  908. 892 0054 BF90 pop r11
  909. 893 0056 AF90 pop r10
  910. 894 0058 9F90 pop r9
  911. 895 005a 8F90 pop r8
  912. 896 005c 0895 ret
  913. 897 .size NutGetMillis, .-NutGetMillis
  914. 898 .section .text.NutClockSet,"ax",@progbits
  915. 899 .global NutClockSet
  916. 900 .type NutClockSet, @function
  917. 901 NutClockSet:
  918. 902 /* prologue: function */
  919. 903 /* frame size = 0 */
  920. 904 /* stack size = 0 */
  921. 905 .L__stack_usage = 0
  922. 906 0000 1092 0000 sts clock_cache,__zero_reg__
  923. 907 0004 1092 0000 sts clock_cache+1,__zero_reg__
  924. 908 0008 1092 0000 sts clock_cache+2,__zero_reg__
  925. 909 000c 1092 0000 sts clock_cache+3,__zero_reg__
  926. 910 0010 80E0 ldi r24,0
  927. 911 0012 90E0 ldi r25,0
  928. 912 0014 0895 ret
  929. GAS LISTING /tmp/ccH8SUYI.s page 17
  930. 913 .size NutClockSet, .-NutClockSet
  931. 914 .section .text.NutGetCpuClock,"ax",@progbits
  932. 915 .global NutGetCpuClock
  933. 916 .type NutGetCpuClock, @function
  934. 917 NutGetCpuClock:
  935. 918 /* prologue: function */
  936. 919 /* frame size = 0 */
  937. 920 /* stack size = 0 */
  938. 921 .L__stack_usage = 0
  939. 922 0000 60E0 ldi r22,0
  940. 923 0002 70E0 ldi r23,0
  941. 924 0004 81EE ldi r24,lo8(-31)
  942. 925 0006 90E0 ldi r25,0
  943. 926 0008 0895 ret
  944. 927 .size NutGetCpuClock, .-NutGetCpuClock
  945. 928 .comm _delay_loop_2_mult,2,1
  946. 929 .local clock_cache
  947. 930 .comm clock_cache,4,1
  948. 931 .global systick_us
  949. 932 .section .bss
  950. 933 .type systick_us, @object
  951. 934 .size systick_us, 4
  952. 935 systick_us:
  953. 936 0000 0000 0000 .zero 4
  954. 937 .global system_time
  955. 938 .type system_time, @object
  956. 939 .size system_time, 8
  957. 940 system_time:
  958. 941 0004 0000 0000 .zero 8
  959. 941 0000 0000
  960. 942 .global nut_ticks
  961. 943 .type nut_ticks, @object
  962. 944 .size nut_ticks, 4
  963. 945 nut_ticks:
  964. 946 000c 0000 0000 .zero 4
  965. 947 .local nut_ticks_resume
  966. 948 .comm nut_ticks_resume,4,1
  967. 949 .comm nutTimerList,2,1
  968. 950 .ident "GCC: (GNU) 5.3.0"
  969. 951 .global __do_clear_bss
  970. GAS LISTING /tmp/ccH8SUYI.s page 18
  971. DEFINED SYMBOLS
  972. *ABS*:0000000000000000 timer.c
  973. /tmp/ccH8SUYI.s:2 *ABS*:000000000000003e __SP_H__
  974. /tmp/ccH8SUYI.s:3 *ABS*:000000000000003d __SP_L__
  975. /tmp/ccH8SUYI.s:4 *ABS*:000000000000003f __SREG__
  976. /tmp/ccH8SUYI.s:5 *ABS*:000000000000003b __RAMPZ__
  977. /tmp/ccH8SUYI.s:6 *ABS*:0000000000000000 __tmp_reg__
  978. /tmp/ccH8SUYI.s:7 *ABS*:0000000000000001 __zero_reg__
  979. /tmp/ccH8SUYI.s:11 .text.NutTimerIntr:0000000000000000 NutTimerIntr
  980. /tmp/ccH8SUYI.s:945 .bss:000000000000000c nut_ticks
  981. /tmp/ccH8SUYI.s:940 .bss:0000000000000004 system_time
  982. /tmp/ccH8SUYI.s:935 .bss:0000000000000000 systick_us
  983. /tmp/ccH8SUYI.s:80 .text.NutMicroDelay.part.1:0000000000000000 NutMicroDelay.part.1
  984. *COM*:0000000000000002 _delay_loop_2_mult
  985. /tmp/ccH8SUYI.s:162 .text.NutTimerInit:0000000000000000 NutTimerInit
  986. /tmp/ccH8SUYI.s:196 .text.NutMicroDelay:0000000000000000 NutMicroDelay
  987. /tmp/ccH8SUYI.s:236 .text.NutDelay:0000000000000000 NutDelay
  988. /tmp/ccH8SUYI.s:261 .text.NutTimerInsert:0000000000000000 NutTimerInsert
  989. *COM*:0000000000000002 nutTimerList
  990. /tmp/ccH8SUYI.s:346 .text.NutTimerStop:0000000000000000 NutTimerStop
  991. /tmp/ccH8SUYI.s:431 .text.NutGetTickCount:0000000000000000 NutGetTickCount
  992. /tmp/ccH8SUYI.s:460 .text.NutTimerProcessElapsed:0000000000000000 NutTimerProcessElapsed
  993. /tmp/ccH8SUYI.s:930 .bss:0000000000000014 nut_ticks_resume
  994. /tmp/ccH8SUYI.s:594 .text.NutTimerCreate:0000000000000000 NutTimerCreate
  995. /tmp/ccH8SUYI.s:687 .text.NutTimerStartTicks:0000000000000000 NutTimerStartTicks
  996. /tmp/ccH8SUYI.s:711 .text.NutTimerStart:0000000000000000 NutTimerStart
  997. /tmp/ccH8SUYI.s:746 .text.NutSleep:0000000000000000 NutSleep
  998. /tmp/ccH8SUYI.s:832 .text.NutGetSeconds:0000000000000000 NutGetSeconds
  999. /tmp/ccH8SUYI.s:846 .text.NutGetMillis:0000000000000000 NutGetMillis
  1000. /tmp/ccH8SUYI.s:901 .text.NutClockSet:0000000000000000 NutClockSet
  1001. .bss:0000000000000010 clock_cache
  1002. /tmp/ccH8SUYI.s:917 .text.NutGetCpuClock:0000000000000000 NutGetCpuClock
  1003. UNDEFINED SYMBOLS
  1004. __muluhisi3
  1005. __mulohisi3
  1006. NutRegisterTimer
  1007. NutGetTickClock
  1008. __udivmodsi4
  1009. heapFreeList
  1010. NutHeapRootFree
  1011. NutHeapRootAlloc
  1012. NutTimerMillisToTicks
  1013. runQueue
  1014. runningThread
  1015. NutThreadRemoveQueue
  1016. NutThreadWake
  1017. NutThreadResume
  1018. NutThreadYield
  1019. __divmodsi4
  1020. __do_clear_bss