i2cbus.lst 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. GAS LISTING /tmp/cc8zHL1d.s page 1
  2. 1 .file "i2cbus.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.NutRegisterI2cSlave,"ax",@progbits
  10. 9 .global NutRegisterI2cSlave
  11. 10 .type NutRegisterI2cSlave, @function
  12. 11 NutRegisterI2cSlave:
  13. 12 0000 0F93 push r16
  14. 13 0002 1F93 push r17
  15. 14 0004 CF93 push r28
  16. 15 0006 DF93 push r29
  17. 16 /* prologue: function */
  18. 17 /* frame size = 0 */
  19. 18 /* stack size = 4 */
  20. 19 .L__stack_usage = 4
  21. 20 0008 8C01 movw r16,r24
  22. 21 000a EB01 movw r28,r22
  23. 22 000c 8A89 ldd r24,Y+18
  24. 23 000e 80FD sbrc r24,0
  25. 24 0010 00C0 rjmp .L2
  26. 25 0012 EA81 ldd r30,Y+2
  27. 26 0014 FB81 ldd r31,Y+3
  28. 27 0016 CB01 movw r24,r22
  29. 28 0018 1995 eicall
  30. 29 001a 0097 sbiw r24,0
  31. 30 001c 01F4 brne .L4
  32. 31 001e 8A89 ldd r24,Y+18
  33. 32 0020 8160 ori r24,lo8(1)
  34. 33 0022 8A8B std Y+18,r24
  35. 34 0024 CE01 movw r24,r28
  36. 35 0026 4396 adiw r24,19
  37. 36 0028 0E94 0000 call NutEventPost
  38. 37 .L2:
  39. 38 002c F801 movw r30,r16
  40. 39 002e D183 std Z+1,r29
  41. 40 0030 C083 st Z,r28
  42. 41 0032 80E0 ldi r24,0
  43. 42 0034 90E0 ldi r25,0
  44. 43 .L4:
  45. 44 /* epilogue start */
  46. 45 0036 DF91 pop r29
  47. 46 0038 CF91 pop r28
  48. 47 003a 1F91 pop r17
  49. 48 003c 0F91 pop r16
  50. 49 003e 0895 ret
  51. 50 .size NutRegisterI2cSlave, .-NutRegisterI2cSlave
  52. 51 .section .text.NutI2cBusRate,"ax",@progbits
  53. 52 .global NutI2cBusRate
  54. 53 .type NutI2cBusRate, @function
  55. 54 NutI2cBusRate:
  56. 55 0000 CF92 push r12
  57. 56 0002 DF92 push r13
  58. 57 0004 EF92 push r14
  59. GAS LISTING /tmp/cc8zHL1d.s page 2
  60. 58 0006 FF92 push r15
  61. 59 0008 CF93 push r28
  62. 60 000a DF93 push r29
  63. 61 /* prologue: function */
  64. 62 /* frame size = 0 */
  65. 63 /* stack size = 6 */
  66. 64 .L__stack_usage = 6
  67. 65 000c EC01 movw r28,r24
  68. 66 000e CE84 ldd r12,Y+14
  69. 67 0010 DF84 ldd r13,Y+15
  70. 68 0012 E888 ldd r14,Y+16
  71. 69 0014 F988 ldd r15,Y+17
  72. 70 0016 4F3F cpi r20,-1
  73. 71 0018 8FEF ldi r24,-1
  74. 72 001a 5807 cpc r21,r24
  75. 73 001c 6807 cpc r22,r24
  76. 74 001e 7807 cpc r23,r24
  77. 75 0020 01F0 breq .L7
  78. 76 0022 4E87 std Y+14,r20
  79. 77 0024 5F87 std Y+15,r21
  80. 78 0026 688B std Y+16,r22
  81. 79 0028 798B std Y+17,r23
  82. 80 002a EC81 ldd r30,Y+4
  83. 81 002c FD81 ldd r31,Y+5
  84. 82 002e CE01 movw r24,r28
  85. 83 0030 1995 eicall
  86. 84 0032 892B or r24,r25
  87. 85 0034 01F0 breq .L7
  88. 86 0036 CE86 std Y+14,r12
  89. 87 0038 DF86 std Y+15,r13
  90. 88 003a E88A std Y+16,r14
  91. 89 003c F98A std Y+17,r15
  92. 90 003e CC24 clr r12
  93. 91 0040 CA94 dec r12
  94. 92 0042 DC2C mov r13,r12
  95. 93 0044 7601 movw r14,r12
  96. 94 .L7:
  97. 95 0046 C701 movw r24,r14
  98. 96 0048 B601 movw r22,r12
  99. 97 /* epilogue start */
  100. 98 004a DF91 pop r29
  101. 99 004c CF91 pop r28
  102. 100 004e FF90 pop r15
  103. 101 0050 EF90 pop r14
  104. 102 0052 DF90 pop r13
  105. 103 0054 CF90 pop r12
  106. 104 0056 0895 ret
  107. 105 .size NutI2cBusRate, .-NutI2cBusRate
  108. 106 .section .text.NutI2cBusTimeout,"ax",@progbits
  109. 107 .global NutI2cBusTimeout
  110. 108 .type NutI2cBusTimeout, @function
  111. 109 NutI2cBusTimeout:
  112. 110 0000 0F93 push r16
  113. 111 0002 1F93 push r17
  114. 112 /* prologue: function */
  115. 113 /* frame size = 0 */
  116. 114 /* stack size = 2 */
  117. GAS LISTING /tmp/cc8zHL1d.s page 3
  118. 115 .L__stack_usage = 2
  119. 116 0004 FC01 movw r30,r24
  120. 117 0006 0285 ldd r16,Z+10
  121. 118 0008 1385 ldd r17,Z+11
  122. 119 000a 2485 ldd r18,Z+12
  123. 120 000c 3585 ldd r19,Z+13
  124. 121 000e 4F3F cpi r20,-1
  125. 122 0010 FFEF ldi r31,-1
  126. 123 0012 5F07 cpc r21,r31
  127. 124 0014 6F07 cpc r22,r31
  128. 125 0016 7F07 cpc r23,r31
  129. 126 0018 01F0 breq .L15
  130. 127 001a FC01 movw r30,r24
  131. 128 001c 4287 std Z+10,r20
  132. 129 001e 5387 std Z+11,r21
  133. 130 0020 6487 std Z+12,r22
  134. 131 0022 7587 std Z+13,r23
  135. 132 .L15:
  136. 133 0024 C901 movw r24,r18
  137. 134 0026 B801 movw r22,r16
  138. 135 /* epilogue start */
  139. 136 0028 1F91 pop r17
  140. 137 002a 0F91 pop r16
  141. 138 002c 0895 ret
  142. 139 .size NutI2cBusTimeout, .-NutI2cBusTimeout
  143. 140 .section .text.NutI2cBusScan,"ax",@progbits
  144. 141 .global NutI2cBusScan
  145. 142 .type NutI2cBusScan, @function
  146. 143 NutI2cBusScan:
  147. 144 0000 8F92 push r8
  148. 145 0002 9F92 push r9
  149. 146 0004 AF92 push r10
  150. 147 0006 BF92 push r11
  151. 148 0008 CF92 push r12
  152. 149 000a DF92 push r13
  153. 150 000c FF92 push r15
  154. 151 000e 0F93 push r16
  155. 152 0010 1F93 push r17
  156. 153 0012 CF93 push r28
  157. 154 0014 DF93 push r29
  158. 155 /* prologue: function */
  159. 156 /* frame size = 0 */
  160. 157 /* stack size = 11 */
  161. 158 .L__stack_usage = 11
  162. 159 0016 EC01 movw r28,r24
  163. 160 0018 8B01 movw r16,r22
  164. 161 001a 5A01 movw r10,r20
  165. 162 001c 8A89 ldd r24,Y+18
  166. 163 001e 982F mov r25,r24
  167. 164 0020 9170 andi r25,lo8(1)
  168. 165 0022 F92E mov r15,r25
  169. 166 0024 80FF sbrs r24,0
  170. 167 0026 00C0 rjmp .L20
  171. 168 .L22:
  172. 169 0028 6E01 movw r12,r28
  173. 170 002a 83E1 ldi r24,19
  174. 171 002c C80E add r12,r24
  175. GAS LISTING /tmp/cc8zHL1d.s page 4
  176. 172 002e D11C adc r13,__zero_reg__
  177. 173 0030 00C0 rjmp .L21
  178. 174 .L20:
  179. 175 0032 EC81 ldd r30,Y+4
  180. 176 0034 FD81 ldd r31,Y+5
  181. 177 0036 CE01 movw r24,r28
  182. 178 0038 1995 eicall
  183. 179 003a 892B or r24,r25
  184. 180 003c 01F0 breq .L22
  185. 181 .L27:
  186. 182 003e 8FEF ldi r24,lo8(-1)
  187. 183 0040 9FEF ldi r25,lo8(-1)
  188. 184 0042 00C0 rjmp .L23
  189. 185 .L29:
  190. 186 0044 F110 cpse r15,__zero_reg__
  191. 187 0046 00C0 rjmp .L24
  192. 188 .L28:
  193. 189 0048 EE81 ldd r30,Y+6
  194. 190 004a FF81 ldd r31,Y+7
  195. 191 004c B801 movw r22,r16
  196. 192 004e CE01 movw r24,r28
  197. 193 0050 1995 eicall
  198. 194 0052 4C01 movw r8,r24
  199. 195 0054 FF20 tst r15
  200. 196 0056 01F0 breq .L26
  201. 197 0058 C601 movw r24,r12
  202. 198 005a 0E94 0000 call NutEventPost
  203. 199 .L26:
  204. 200 005e 8928 or r8,r9
  205. 201 0060 01F0 breq .L30
  206. 202 0062 0F5F subi r16,-1
  207. 203 0064 1F4F sbci r17,-1
  208. 204 .L21:
  209. 205 0066 A016 cp r10,r16
  210. 206 0068 B106 cpc r11,r17
  211. 207 006a 04F4 brge .L29
  212. 208 006c 00C0 rjmp .L27
  213. 209 .L24:
  214. 210 006e 4A85 ldd r20,Y+10
  215. 211 0070 5B85 ldd r21,Y+11
  216. 212 0072 6C85 ldd r22,Y+12
  217. 213 0074 7D85 ldd r23,Y+13
  218. 214 0076 C601 movw r24,r12
  219. 215 0078 0E94 0000 call NutEventWait
  220. 216 007c 892B or r24,r25
  221. 217 007e 01F0 breq .L28
  222. 218 0080 00C0 rjmp .L27
  223. 219 .L30:
  224. 220 0082 C801 movw r24,r16
  225. 221 .L23:
  226. 222 /* epilogue start */
  227. 223 0084 DF91 pop r29
  228. 224 0086 CF91 pop r28
  229. 225 0088 1F91 pop r17
  230. 226 008a 0F91 pop r16
  231. 227 008c FF90 pop r15
  232. 228 008e DF90 pop r13
  233. GAS LISTING /tmp/cc8zHL1d.s page 5
  234. 229 0090 CF90 pop r12
  235. 230 0092 BF90 pop r11
  236. 231 0094 AF90 pop r10
  237. 232 0096 9F90 pop r9
  238. 233 0098 8F90 pop r8
  239. 234 009a 0895 ret
  240. 235 .size NutI2cBusScan, .-NutI2cBusScan
  241. 236 .section .text.NutI2cSlaveAddress,"ax",@progbits
  242. 237 .global NutI2cSlaveAddress
  243. 238 .type NutI2cSlaveAddress, @function
  244. 239 NutI2cSlaveAddress:
  245. 240 /* prologue: function */
  246. 241 /* frame size = 0 */
  247. 242 /* stack size = 0 */
  248. 243 .L__stack_usage = 0
  249. 244 0000 FC01 movw r30,r24
  250. 245 0002 8281 ldd r24,Z+2
  251. 246 0004 9381 ldd r25,Z+3
  252. 247 0006 6F3F cpi r22,-1
  253. 248 0008 2FEF ldi r18,-1
  254. 249 000a 7207 cpc r23,r18
  255. 250 000c 01F0 breq .L35
  256. 251 000e 7383 std Z+3,r23
  257. 252 0010 6283 std Z+2,r22
  258. 253 .L35:
  259. 254 0012 0895 ret
  260. 255 .size NutI2cSlaveAddress, .-NutI2cSlaveAddress
  261. 256 .section .text.NutI2cSlaveTimeout,"ax",@progbits
  262. 257 .global NutI2cSlaveTimeout
  263. 258 .type NutI2cSlaveTimeout, @function
  264. 259 NutI2cSlaveTimeout:
  265. 260 0000 0F93 push r16
  266. 261 0002 1F93 push r17
  267. 262 /* prologue: function */
  268. 263 /* frame size = 0 */
  269. 264 /* stack size = 2 */
  270. 265 .L__stack_usage = 2
  271. 266 0004 FC01 movw r30,r24
  272. 267 0006 0481 ldd r16,Z+4
  273. 268 0008 1581 ldd r17,Z+5
  274. 269 000a 2681 ldd r18,Z+6
  275. 270 000c 3781 ldd r19,Z+7
  276. 271 000e 4F3F cpi r20,-1
  277. 272 0010 FFEF ldi r31,-1
  278. 273 0012 5F07 cpc r21,r31
  279. 274 0014 6F07 cpc r22,r31
  280. 275 0016 7F07 cpc r23,r31
  281. 276 0018 01F0 breq .L40
  282. 277 001a FC01 movw r30,r24
  283. 278 001c 4483 std Z+4,r20
  284. 279 001e 5583 std Z+5,r21
  285. 280 0020 6683 std Z+6,r22
  286. 281 0022 7783 std Z+7,r23
  287. 282 .L40:
  288. 283 0024 C901 movw r24,r18
  289. 284 0026 B801 movw r22,r16
  290. 285 /* epilogue start */
  291. GAS LISTING /tmp/cc8zHL1d.s page 6
  292. 286 0028 1F91 pop r17
  293. 287 002a 0F91 pop r16
  294. 288 002c 0895 ret
  295. 289 .size NutI2cSlaveTimeout, .-NutI2cSlaveTimeout
  296. 290 .section .text.NutI2cMasterTransceive,"ax",@progbits
  297. 291 .global NutI2cMasterTransceive
  298. 292 .type NutI2cMasterTransceive, @function
  299. 293 NutI2cMasterTransceive:
  300. 294 0000 4F92 push r4
  301. 295 0002 5F92 push r5
  302. 296 0004 6F92 push r6
  303. 297 0006 7F92 push r7
  304. 298 0008 8F92 push r8
  305. 299 000a 9F92 push r9
  306. 300 000c AF92 push r10
  307. 301 000e BF92 push r11
  308. 302 0010 CF92 push r12
  309. 303 0012 DF92 push r13
  310. 304 0014 EF92 push r14
  311. 305 0016 FF92 push r15
  312. 306 0018 0F93 push r16
  313. 307 001a 1F93 push r17
  314. 308 001c CF93 push r28
  315. 309 001e DF93 push r29
  316. 310 0020 CDB7 in r28,__SP_L__
  317. 311 0022 DEB7 in r29,__SP_H__
  318. 312 0024 2C97 sbiw r28,12
  319. 313 0026 0FB6 in __tmp_reg__,__SREG__
  320. 314 0028 F894 cli
  321. 315 002a DEBF out __SP_H__,r29
  322. 316 002c 0FBE out __SREG__,__tmp_reg__
  323. 317 002e CDBF out __SP_L__,r28
  324. 318 /* prologue: function */
  325. 319 /* frame size = 12 */
  326. 320 /* stack size = 28 */
  327. 321 .L__stack_usage = 28
  328. 322 0030 5C01 movw r10,r24
  329. 323 0032 3B01 movw r6,r22
  330. 324 0034 4A01 movw r8,r20
  331. 325 0036 2901 movw r4,r18
  332. 326 0038 DC01 movw r26,r24
  333. 327 003a ED90 ld r14,X+
  334. 328 003c FC90 ld r15,X
  335. 329 003e 6701 movw r12,r14
  336. 330 0040 B3E1 ldi r27,19
  337. 331 0042 CB0E add r12,r27
  338. 332 0044 D11C adc r13,__zero_reg__
  339. 333 0046 F701 movw r30,r14
  340. 334 0048 4285 ldd r20,Z+10
  341. 335 004a 5385 ldd r21,Z+11
  342. 336 004c 6485 ldd r22,Z+12
  343. 337 004e 7585 ldd r23,Z+13
  344. 338 0050 C601 movw r24,r12
  345. 339 0052 0E94 0000 call NutEventWait
  346. 340 0056 0097 sbiw r24,0
  347. 341 0058 01F0 breq .L45
  348. 342 005a 25E0 ldi r18,lo8(5)
  349. GAS LISTING /tmp/cc8zHL1d.s page 7
  350. 343 005c 30E0 ldi r19,0
  351. 344 005e 3093 0000 sts errno+1,r19
  352. 345 0062 2093 0000 sts errno,r18
  353. 346 0066 00C0 rjmp .L46
  354. 347 .L45:
  355. 348 0068 7A82 std Y+2,r7
  356. 349 006a 6982 std Y+1,r6
  357. 350 006c 9C82 std Y+4,r9
  358. 351 006e 8B82 std Y+3,r8
  359. 352 0070 1E82 std Y+6,__zero_reg__
  360. 353 0072 1D82 std Y+5,__zero_reg__
  361. 354 0074 5886 std Y+8,r5
  362. 355 0076 4F82 std Y+7,r4
  363. 356 0078 1A87 std Y+10,r17
  364. 357 007a 0987 std Y+9,r16
  365. 358 007c 1C86 std Y+12,__zero_reg__
  366. 359 007e 1B86 std Y+11,__zero_reg__
  367. 360 0080 D701 movw r26,r14
  368. 361 0082 1896 adiw r26,8
  369. 362 0084 ED91 ld r30,X+
  370. 363 0086 FC91 ld r31,X
  371. 364 0088 1997 sbiw r26,8+1
  372. 365 008a BE01 movw r22,r28
  373. 366 008c 6F5F subi r22,-1
  374. 367 008e 7F4F sbci r23,-1
  375. 368 0090 C501 movw r24,r10
  376. 369 0092 1995 eicall
  377. 370 0094 C601 movw r24,r12
  378. 371 0096 0E94 0000 call NutEventPost
  379. 372 009a 8B85 ldd r24,Y+11
  380. 373 009c 9C85 ldd r25,Y+12
  381. 374 .L46:
  382. 375 /* epilogue start */
  383. 376 009e 2C96 adiw r28,12
  384. 377 00a0 0FB6 in __tmp_reg__,__SREG__
  385. 378 00a2 F894 cli
  386. 379 00a4 DEBF out __SP_H__,r29
  387. 380 00a6 0FBE out __SREG__,__tmp_reg__
  388. 381 00a8 CDBF out __SP_L__,r28
  389. 382 00aa DF91 pop r29
  390. 383 00ac CF91 pop r28
  391. 384 00ae 1F91 pop r17
  392. 385 00b0 0F91 pop r16
  393. 386 00b2 FF90 pop r15
  394. 387 00b4 EF90 pop r14
  395. 388 00b6 DF90 pop r13
  396. 389 00b8 CF90 pop r12
  397. 390 00ba BF90 pop r11
  398. 391 00bc AF90 pop r10
  399. 392 00be 9F90 pop r9
  400. 393 00c0 8F90 pop r8
  401. 394 00c2 7F90 pop r7
  402. 395 00c4 6F90 pop r6
  403. 396 00c6 5F90 pop r5
  404. 397 00c8 4F90 pop r4
  405. 398 00ca 0895 ret
  406. 399 .size NutI2cMasterTransceive, .-NutI2cMasterTransceive
  407. GAS LISTING /tmp/cc8zHL1d.s page 8
  408. 400 .ident "GCC: (GNU) 5.3.0"
  409. GAS LISTING /tmp/cc8zHL1d.s page 9
  410. DEFINED SYMBOLS
  411. *ABS*:0000000000000000 i2cbus.c
  412. /tmp/cc8zHL1d.s:2 *ABS*:000000000000003e __SP_H__
  413. /tmp/cc8zHL1d.s:3 *ABS*:000000000000003d __SP_L__
  414. /tmp/cc8zHL1d.s:4 *ABS*:000000000000003f __SREG__
  415. /tmp/cc8zHL1d.s:5 *ABS*:000000000000003b __RAMPZ__
  416. /tmp/cc8zHL1d.s:6 *ABS*:0000000000000000 __tmp_reg__
  417. /tmp/cc8zHL1d.s:7 *ABS*:0000000000000001 __zero_reg__
  418. /tmp/cc8zHL1d.s:11 .text.NutRegisterI2cSlave:0000000000000000 NutRegisterI2cSlave
  419. /tmp/cc8zHL1d.s:54 .text.NutI2cBusRate:0000000000000000 NutI2cBusRate
  420. /tmp/cc8zHL1d.s:109 .text.NutI2cBusTimeout:0000000000000000 NutI2cBusTimeout
  421. /tmp/cc8zHL1d.s:143 .text.NutI2cBusScan:0000000000000000 NutI2cBusScan
  422. /tmp/cc8zHL1d.s:239 .text.NutI2cSlaveAddress:0000000000000000 NutI2cSlaveAddress
  423. /tmp/cc8zHL1d.s:259 .text.NutI2cSlaveTimeout:0000000000000000 NutI2cSlaveTimeout
  424. /tmp/cc8zHL1d.s:293 .text.NutI2cMasterTransceive:0000000000000000 NutI2cMasterTransceive
  425. UNDEFINED SYMBOLS
  426. NutEventPost
  427. NutEventWait
  428. errno