sht21.lst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432
  1. GAS LISTING /tmp/ccNeS3nq.s page 1
  2. 1 .file "sht21.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.ShtCrc,"ax",@progbits
  10. 9 .global ShtCrc
  11. 10 .type ShtCrc, @function
  12. 11 ShtCrc:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 9C01 movw r18,r24
  18. 17 0002 482F mov r20,r24
  19. 18 0004 FC01 movw r30,r24
  20. 19 0006 90E0 ldi r25,0
  21. 20 0008 51E3 ldi r21,lo8(49)
  22. 21 .L2:
  23. 22 000a 8E2F mov r24,r30
  24. 23 000c 841B sub r24,r20
  25. 24 000e 8617 cp r24,r22
  26. 25 0010 00F4 brsh .L10
  27. 26 0012 8191 ld r24,Z+
  28. 27 0014 9827 eor r25,r24
  29. 28 0016 88E0 ldi r24,lo8(8)
  30. 29 .L5:
  31. 30 0018 97FF sbrs r25,7
  32. 31 001a 00C0 rjmp .L3
  33. 32 001c 990F lsl r25
  34. 33 001e 9527 eor r25,r21
  35. 34 0020 00C0 rjmp .L4
  36. 35 .L3:
  37. 36 0022 990F lsl r25
  38. 37 .L4:
  39. 38 0024 8150 subi r24,lo8(-(-1))
  40. 39 0026 01F4 brne .L5
  41. 40 0028 00C0 rjmp .L2
  42. 41 .L10:
  43. 42 002a F901 movw r30,r18
  44. 43 002c E60F add r30,r22
  45. 44 002e F11D adc r31,__zero_reg__
  46. 45 0030 41E0 ldi r20,lo8(1)
  47. 46 0032 50E0 ldi r21,0
  48. 47 0034 8081 ld r24,Z
  49. 48 0036 8913 cpse r24,r25
  50. 49 0038 00C0 rjmp .L7
  51. 50 003a 40E0 ldi r20,0
  52. 51 003c 50E0 ldi r21,0
  53. 52 .L7:
  54. 53 003e 8827 clr r24
  55. 54 0040 9927 clr r25
  56. 55 0042 841B sub r24,r20
  57. 56 0044 950B sbc r25,r21
  58. 57 0046 0895 ret
  59. GAS LISTING /tmp/ccNeS3nq.s page 2
  60. 58 .size ShtCrc, .-ShtCrc
  61. 59 .section .text.ShtCommand,"ax",@progbits
  62. 60 .global ShtCommand
  63. 61 .type ShtCommand, @function
  64. 62 ShtCommand:
  65. 63 0000 4F92 push r4
  66. 64 0002 5F92 push r5
  67. 65 0004 6F92 push r6
  68. 66 0006 7F92 push r7
  69. 67 0008 8F92 push r8
  70. 68 000a 9F92 push r9
  71. 69 000c AF92 push r10
  72. 70 000e BF92 push r11
  73. 71 0010 CF92 push r12
  74. 72 0012 DF92 push r13
  75. 73 0014 EF92 push r14
  76. 74 0016 FF92 push r15
  77. 75 0018 0F93 push r16
  78. 76 001a 1F93 push r17
  79. 77 001c CF93 push r28
  80. 78 001e DF93 push r29
  81. 79 0020 00D0 rcall .
  82. 80 0022 1F92 push __zero_reg__
  83. 81 0024 1F92 push __zero_reg__
  84. 82 0026 CDB7 in r28,__SP_L__
  85. 83 0028 DEB7 in r29,__SP_H__
  86. 84 /* prologue: function */
  87. 85 /* frame size = 5 */
  88. 86 /* stack size = 21 */
  89. 87 .L__stack_usage = 21
  90. 88 002a 8D83 std Y+5,r24
  91. 89 002c 2B01 movw r4,r22
  92. 90 002e 44EF ldi r20,lo8(-12)
  93. 91 0030 51E0 ldi r21,lo8(1)
  94. 92 0032 60E0 ldi r22,0
  95. 93 0034 70E0 ldi r23,0
  96. 94 0036 80E0 ldi r24,lo8(sht_mutex)
  97. 95 0038 90E0 ldi r25,hi8(sht_mutex)
  98. 96 003a 0E94 0000 call NutEventWait
  99. 97 003e 3C01 movw r6,r24
  100. 98 0040 892B or r24,r25
  101. 99 0042 01F0 breq .+2
  102. 100 0044 00C0 rjmp .L27
  103. 101 0046 8D81 ldd r24,Y+5
  104. 102 0048 863E cpi r24,lo8(-26)
  105. 103 004a 01F4 brne .+2
  106. 104 004c 00C0 rjmp .L14
  107. 105 004e 00F4 brsh .L15
  108. 106 0050 833E cpi r24,lo8(-29)
  109. 107 0052 01F0 breq .L16
  110. 108 0054 853E cpi r24,lo8(-27)
  111. 109 0056 01F0 breq .L16
  112. 110 0058 00C0 rjmp .L13
  113. 111 .L15:
  114. 112 005a 873E cpi r24,lo8(-25)
  115. 113 005c 01F4 brne .+2
  116. 114 005e 00C0 rjmp .L17
  117. GAS LISTING /tmp/ccNeS3nq.s page 3
  118. 115 0060 8E3F cpi r24,lo8(-2)
  119. 116 0062 01F0 breq .+2
  120. 117 0064 00C0 rjmp .L13
  121. 118 0066 5AE0 ldi r21,lo8(10)
  122. 119 0068 A52E mov r10,r21
  123. 120 006a B12C mov r11,__zero_reg__
  124. 121 006c C12C mov r12,__zero_reg__
  125. 122 006e D12C mov r13,__zero_reg__
  126. 123 0070 E12C mov r14,__zero_reg__
  127. 124 0072 F12C mov r15,__zero_reg__
  128. 125 0074 00E0 ldi r16,0
  129. 126 0076 10E0 ldi r17,0
  130. 127 0078 21E0 ldi r18,lo8(1)
  131. 128 007a 30E0 ldi r19,0
  132. 129 007c AE01 movw r20,r28
  133. 130 007e 4B5F subi r20,-5
  134. 131 0080 5F4F sbci r21,-1
  135. 132 0082 60E4 ldi r22,lo8(64)
  136. 133 0084 80E0 ldi r24,lo8(AVRTwiBus)
  137. 134 0086 90E0 ldi r25,hi8(AVRTwiBus)
  138. 135 0088 0E94 0000 call NutTwiMasterTranceive
  139. 136 008c 8C01 movw r16,r24
  140. 137 008e 6FE0 ldi r22,lo8(15)
  141. 138 0090 70E0 ldi r23,0
  142. 139 0092 80E0 ldi r24,0
  143. 140 0094 90E0 ldi r25,0
  144. 141 0096 0E94 0000 call NutSleep
  145. 142 009a 00C0 rjmp .L19
  146. 143 .L16:
  147. 144 009c 3AE5 ldi r19,lo8(90)
  148. 145 009e A32E mov r10,r19
  149. 146 00a0 B12C mov r11,__zero_reg__
  150. 147 00a2 C12C mov r12,__zero_reg__
  151. 148 00a4 D12C mov r13,__zero_reg__
  152. 149 00a6 43E0 ldi r20,lo8(3)
  153. 150 00a8 E42E mov r14,r20
  154. 151 00aa F12C mov r15,__zero_reg__
  155. 152 00ac 8E01 movw r16,r28
  156. 153 00ae 0F5F subi r16,-1
  157. 154 00b0 1F4F sbci r17,-1
  158. 155 00b2 21E0 ldi r18,lo8(1)
  159. 156 00b4 30E0 ldi r19,0
  160. 157 00b6 AE01 movw r20,r28
  161. 158 00b8 4B5F subi r20,-5
  162. 159 00ba 5F4F sbci r21,-1
  163. 160 00bc 60E4 ldi r22,lo8(64)
  164. 161 00be 80E0 ldi r24,lo8(AVRTwiBus)
  165. 162 00c0 90E0 ldi r25,hi8(AVRTwiBus)
  166. 163 00c2 0E94 0000 call NutTwiMasterTranceive
  167. 164 00c6 0397 sbiw r24,3
  168. 165 00c8 01F0 breq .+2
  169. 166 00ca 00C0 rjmp .L13
  170. 167 00cc 62E0 ldi r22,lo8(2)
  171. 168 00ce C801 movw r24,r16
  172. 169 00d0 0E94 0000 call ShtCrc
  173. 170 00d4 8C01 movw r16,r24
  174. 171 00d6 8981 ldd r24,Y+1
  175. GAS LISTING /tmp/ccNeS3nq.s page 4
  176. 172 00d8 9A81 ldd r25,Y+2
  177. 173 00da 9827 eor r25,r24
  178. 174 00dc 8927 eor r24,r25
  179. 175 00de 9827 eor r25,r24
  180. 176 00e0 F201 movw r30,r4
  181. 177 00e2 9183 std Z+1,r25
  182. 178 00e4 8083 st Z,r24
  183. 179 00e6 00C0 rjmp .L19
  184. 180 .L17:
  185. 181 00e8 94E6 ldi r25,lo8(100)
  186. 182 00ea 892E mov r8,r25
  187. 183 00ec 912C mov r9,__zero_reg__
  188. 184 00ee A12C mov r10,__zero_reg__
  189. 185 00f0 B12C mov r11,__zero_reg__
  190. 186 00f2 CC24 clr r12
  191. 187 00f4 C394 inc r12
  192. 188 00f6 D12C mov r13,__zero_reg__
  193. 189 00f8 CE01 movw r24,r28
  194. 190 00fa 0196 adiw r24,1
  195. 191 00fc 7C01 movw r14,r24
  196. 192 00fe 01E0 ldi r16,lo8(1)
  197. 193 0100 27EE ldi r18,lo8(-25)
  198. 194 0102 30E0 ldi r19,0
  199. 195 0104 40E0 ldi r20,0
  200. 196 0106 50E0 ldi r21,0
  201. 197 0108 60E4 ldi r22,lo8(64)
  202. 198 010a 80E0 ldi r24,lo8(AVRTwiBus)
  203. 199 010c 90E0 ldi r25,hi8(AVRTwiBus)
  204. 200 010e 0E94 0000 call NutTwiMasterRegRead
  205. 201 0112 8C01 movw r16,r24
  206. 202 0114 0197 sbiw r24,1
  207. 203 0116 01F4 brne .L19
  208. 204 0118 8981 ldd r24,Y+1
  209. 205 011a F201 movw r30,r4
  210. 206 011c 8083 st Z,r24
  211. 207 011e 00C0 rjmp .L20
  212. 208 .L14:
  213. 209 0120 8983 std Y+1,r24
  214. 210 0122 F201 movw r30,r4
  215. 211 0124 8081 ld r24,Z
  216. 212 0126 8A83 std Y+2,r24
  217. 213 0128 84E6 ldi r24,lo8(100)
  218. 214 012a A82E mov r10,r24
  219. 215 012c B12C mov r11,__zero_reg__
  220. 216 012e C12C mov r12,__zero_reg__
  221. 217 0130 D12C mov r13,__zero_reg__
  222. 218 0132 E12C mov r14,__zero_reg__
  223. 219 0134 F12C mov r15,__zero_reg__
  224. 220 0136 00E0 ldi r16,0
  225. 221 0138 10E0 ldi r17,0
  226. 222 013a 22E0 ldi r18,lo8(2)
  227. 223 013c 30E0 ldi r19,0
  228. 224 013e AE01 movw r20,r28
  229. 225 0140 4F5F subi r20,-1
  230. 226 0142 5F4F sbci r21,-1
  231. 227 0144 60E4 ldi r22,lo8(64)
  232. 228 0146 80E0 ldi r24,lo8(AVRTwiBus)
  233. GAS LISTING /tmp/ccNeS3nq.s page 5
  234. 229 0148 90E0 ldi r25,hi8(AVRTwiBus)
  235. 230 014a 0E94 0000 call NutTwiMasterTranceive
  236. 231 014e 8C01 movw r16,r24
  237. 232 .L19:
  238. 233 0150 1016 cp __zero_reg__,r16
  239. 234 0152 1106 cpc __zero_reg__,r17
  240. 235 0154 04F0 brlt .L20
  241. 236 .L21:
  242. 237 0156 3801 movw r6,r16
  243. 238 .L20:
  244. 239 0158 80E0 ldi r24,lo8(sht_mutex)
  245. 240 015a 90E0 ldi r25,hi8(sht_mutex)
  246. 241 015c 0E94 0000 call NutEventPost
  247. 242 0160 00C0 rjmp .L27
  248. 243 .L13:
  249. 244 0162 0FEF ldi r16,lo8(-1)
  250. 245 0164 1FEF ldi r17,lo8(-1)
  251. 246 0166 00C0 rjmp .L21
  252. 247 .L27:
  253. 248 0168 C301 movw r24,r6
  254. 249 /* epilogue start */
  255. 250 016a 0F90 pop __tmp_reg__
  256. 251 016c 0F90 pop __tmp_reg__
  257. 252 016e 0F90 pop __tmp_reg__
  258. 253 0170 0F90 pop __tmp_reg__
  259. 254 0172 0F90 pop __tmp_reg__
  260. 255 0174 DF91 pop r29
  261. 256 0176 CF91 pop r28
  262. 257 0178 1F91 pop r17
  263. 258 017a 0F91 pop r16
  264. 259 017c FF90 pop r15
  265. 260 017e EF90 pop r14
  266. 261 0180 DF90 pop r13
  267. 262 0182 CF90 pop r12
  268. 263 0184 BF90 pop r11
  269. 264 0186 AF90 pop r10
  270. 265 0188 9F90 pop r9
  271. 266 018a 8F90 pop r8
  272. 267 018c 7F90 pop r7
  273. 268 018e 6F90 pop r6
  274. 269 0190 5F90 pop r5
  275. 270 0192 4F90 pop r4
  276. 271 0194 0895 ret
  277. 272 .size ShtCommand, .-ShtCommand
  278. 273 .section .text.ShtRead,"ax",@progbits
  279. 274 .global ShtRead
  280. 275 .type ShtRead, @function
  281. 276 ShtRead:
  282. 277 0000 EF92 push r14
  283. 278 0002 FF92 push r15
  284. 279 0004 1F93 push r17
  285. 280 0006 CF93 push r28
  286. 281 0008 DF93 push r29
  287. 282 000a 1F92 push __zero_reg__
  288. 283 000c 1F92 push __zero_reg__
  289. 284 000e CDB7 in r28,__SP_L__
  290. 285 0010 DEB7 in r29,__SP_H__
  291. GAS LISTING /tmp/ccNeS3nq.s page 6
  292. 286 /* prologue: function */
  293. 287 /* frame size = 2 */
  294. 288 /* stack size = 7 */
  295. 289 .L__stack_usage = 7
  296. 290 0012 182F mov r17,r24
  297. 291 0014 7B01 movw r14,r22
  298. 292 0016 1A82 std Y+2,__zero_reg__
  299. 293 0018 1982 std Y+1,__zero_reg__
  300. 294 001a BE01 movw r22,r28
  301. 295 001c 6F5F subi r22,-1
  302. 296 001e 7F4F sbci r23,-1
  303. 297 0020 0E94 0000 call ShtCommand
  304. 298 0024 AC01 movw r20,r24
  305. 299 0026 892B or r24,r25
  306. 300 0028 01F4 brne .L31
  307. 301 002a 2981 ldd r18,Y+1
  308. 302 002c 3A81 ldd r19,Y+2
  309. 303 002e 2C7F andi r18,252
  310. 304 0030 133E cpi r17,lo8(-29)
  311. 305 0032 01F4 brne .L32
  312. 306 0034 A4EA ldi r26,lo8(-92)
  313. 307 0036 B4E4 ldi r27,lo8(68)
  314. 308 0038 0E94 0000 call __umulhisi3
  315. 309 003c 8D54 subi r24,77
  316. 310 003e 9241 sbci r25,18
  317. 311 0040 00C0 rjmp .L33
  318. 312 .L32:
  319. 313 0042 153E cpi r17,lo8(-27)
  320. 314 0044 01F4 brne .L31
  321. 315 0046 A4ED ldi r26,lo8(-44)
  322. 316 0048 B0E3 ldi r27,lo8(48)
  323. 317 004a 0E94 0000 call __umulhisi3
  324. 318 004e 8855 subi r24,88
  325. 319 0050 9240 sbci r25,2
  326. 320 .L33:
  327. 321 0052 F701 movw r30,r14
  328. 322 0054 9183 std Z+1,r25
  329. 323 0056 8083 st Z,r24
  330. 324 .L31:
  331. 325 0058 CA01 movw r24,r20
  332. 326 /* epilogue start */
  333. 327 005a 0F90 pop __tmp_reg__
  334. 328 005c 0F90 pop __tmp_reg__
  335. 329 005e DF91 pop r29
  336. 330 0060 CF91 pop r28
  337. 331 0062 1F91 pop r17
  338. 332 0064 FF90 pop r15
  339. 333 0066 EF90 pop r14
  340. 334 0068 0895 ret
  341. 335 .size ShtRead, .-ShtRead
  342. 336 .section .text.ShtInit,"ax",@progbits
  343. 337 .global ShtInit
  344. 338 .type ShtInit, @function
  345. 339 ShtInit:
  346. 340 0000 CF93 push r28
  347. 341 0002 DF93 push r29
  348. 342 0004 1F92 push __zero_reg__
  349. GAS LISTING /tmp/ccNeS3nq.s page 7
  350. 343 0006 1F92 push __zero_reg__
  351. 344 0008 CDB7 in r28,__SP_L__
  352. 345 000a DEB7 in r29,__SP_H__
  353. 346 /* prologue: function */
  354. 347 /* frame size = 2 */
  355. 348 /* stack size = 4 */
  356. 349 .L__stack_usage = 4
  357. 350 000c 80E0 ldi r24,lo8(sht_mutex)
  358. 351 000e 90E0 ldi r25,hi8(sht_mutex)
  359. 352 0010 0E94 0000 call NutEventPost
  360. 353 0014 BE01 movw r22,r28
  361. 354 0016 6F5F subi r22,-1
  362. 355 0018 7F4F sbci r23,-1
  363. 356 001a 8EEF ldi r24,lo8(-2)
  364. 357 001c 0E94 0000 call ShtCommand
  365. 358 0020 97FD sbrc r25,7
  366. 359 0022 00C0 rjmp .L35
  367. 360 0024 BE01 movw r22,r28
  368. 361 0026 6F5F subi r22,-1
  369. 362 0028 7F4F sbci r23,-1
  370. 363 002a 87EE ldi r24,lo8(-25)
  371. 364 002c 0E94 0000 call ShtCommand
  372. 365 0030 8981 ldd r24,Y+1
  373. 366 0032 9A81 ldd r25,Y+2
  374. 367 0034 8E77 andi r24,126
  375. 368 0036 9A83 std Y+2,r25
  376. 369 0038 8983 std Y+1,r24
  377. 370 003a BE01 movw r22,r28
  378. 371 003c 6F5F subi r22,-1
  379. 372 003e 7F4F sbci r23,-1
  380. 373 0040 86EE ldi r24,lo8(-26)
  381. 374 0042 0E94 0000 call ShtCommand
  382. 375 .L35:
  383. 376 /* epilogue start */
  384. 377 0046 0F90 pop __tmp_reg__
  385. 378 0048 0F90 pop __tmp_reg__
  386. 379 004a DF91 pop r29
  387. 380 004c CF91 pop r28
  388. 381 004e 0895 ret
  389. 382 .size ShtInit, .-ShtInit
  390. 383 .comm sht_mutex,2,1
  391. 384 .ident "GCC: (GNU) 5.3.0"
  392. 385 .global __do_clear_bss
  393. GAS LISTING /tmp/ccNeS3nq.s page 8
  394. DEFINED SYMBOLS
  395. *ABS*:0000000000000000 sht21.c
  396. /tmp/ccNeS3nq.s:2 *ABS*:000000000000003e __SP_H__
  397. /tmp/ccNeS3nq.s:3 *ABS*:000000000000003d __SP_L__
  398. /tmp/ccNeS3nq.s:4 *ABS*:000000000000003f __SREG__
  399. /tmp/ccNeS3nq.s:5 *ABS*:000000000000003b __RAMPZ__
  400. /tmp/ccNeS3nq.s:6 *ABS*:0000000000000000 __tmp_reg__
  401. /tmp/ccNeS3nq.s:7 *ABS*:0000000000000001 __zero_reg__
  402. /tmp/ccNeS3nq.s:11 .text.ShtCrc:0000000000000000 ShtCrc
  403. /tmp/ccNeS3nq.s:62 .text.ShtCommand:0000000000000000 ShtCommand
  404. *COM*:0000000000000002 sht_mutex
  405. /tmp/ccNeS3nq.s:276 .text.ShtRead:0000000000000000 ShtRead
  406. /tmp/ccNeS3nq.s:339 .text.ShtInit:0000000000000000 ShtInit
  407. UNDEFINED SYMBOLS
  408. NutEventWait
  409. AVRTwiBus
  410. NutTwiMasterTranceive
  411. NutSleep
  412. NutTwiMasterRegRead
  413. NutEventPost
  414. __umulhisi3
  415. __do_clear_bss