mma745x.lst 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. GAS LISTING /tmp/cc0O1Jrw.s page 1
  2. 1 .file "mma745x.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.Mma745xWrite,"ax",@progbits
  10. 9 .global Mma745xWrite
  11. 10 .type Mma745xWrite, @function
  12. 11 Mma745xWrite:
  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 CF93 push r28
  23. 22 0014 DF93 push r29
  24. 23 /* prologue: function */
  25. 24 /* frame size = 0 */
  26. 25 /* stack size = 11 */
  27. 26 .L__stack_usage = 11
  28. 27 0016 EA01 movw r28,r20
  29. 28 0018 282F mov r18,r24
  30. 29 001a 30E0 ldi r19,0
  31. 30 001c 40E0 ldi r20,0
  32. 31 001e 50E0 ldi r21,0
  33. 32 0020 84EF ldi r24,lo8(-12)
  34. 33 0022 882E mov r8,r24
  35. 34 0024 9924 clr r9
  36. 35 0026 9394 inc r9
  37. 36 0028 A12C mov r10,__zero_reg__
  38. 37 002a B12C mov r11,__zero_reg__
  39. 38 002c 6E01 movw r12,r28
  40. 39 002e 7B01 movw r14,r22
  41. 40 0030 01E0 ldi r16,lo8(1)
  42. 41 0032 6DE1 ldi r22,lo8(29)
  43. 42 0034 80E0 ldi r24,lo8(AVRTwiBus)
  44. 43 0036 90E0 ldi r25,hi8(AVRTwiBus)
  45. 44 0038 0E94 0000 call NutTwiMasterRegWrite
  46. 45 003c 21E0 ldi r18,lo8(1)
  47. 46 003e 30E0 ldi r19,0
  48. 47 0040 8C17 cp r24,r28
  49. 48 0042 9D07 cpc r25,r29
  50. 49 0044 01F4 brne .L2
  51. 50 0046 20E0 ldi r18,0
  52. 51 0048 30E0 ldi r19,0
  53. 52 .L2:
  54. 53 004a 8827 clr r24
  55. 54 004c 9927 clr r25
  56. 55 004e 821B sub r24,r18
  57. 56 0050 930B sbc r25,r19
  58. 57 /* epilogue start */
  59. GAS LISTING /tmp/cc0O1Jrw.s page 2
  60. 58 0052 DF91 pop r29
  61. 59 0054 CF91 pop r28
  62. 60 0056 0F91 pop r16
  63. 61 0058 FF90 pop r15
  64. 62 005a EF90 pop r14
  65. 63 005c DF90 pop r13
  66. 64 005e CF90 pop r12
  67. 65 0060 BF90 pop r11
  68. 66 0062 AF90 pop r10
  69. 67 0064 9F90 pop r9
  70. 68 0066 8F90 pop r8
  71. 69 0068 0895 ret
  72. 70 .size Mma745xWrite, .-Mma745xWrite
  73. 71 .section .text.Mma745xRead,"ax",@progbits
  74. 72 .global Mma745xRead
  75. 73 .type Mma745xRead, @function
  76. 74 Mma745xRead:
  77. 75 0000 8F92 push r8
  78. 76 0002 9F92 push r9
  79. 77 0004 AF92 push r10
  80. 78 0006 BF92 push r11
  81. 79 0008 CF92 push r12
  82. 80 000a DF92 push r13
  83. 81 000c EF92 push r14
  84. 82 000e FF92 push r15
  85. 83 0010 0F93 push r16
  86. 84 0012 CF93 push r28
  87. 85 0014 DF93 push r29
  88. 86 /* prologue: function */
  89. 87 /* frame size = 0 */
  90. 88 /* stack size = 11 */
  91. 89 .L__stack_usage = 11
  92. 90 0016 EA01 movw r28,r20
  93. 91 0018 282F mov r18,r24
  94. 92 001a 30E0 ldi r19,0
  95. 93 001c 40E0 ldi r20,0
  96. 94 001e 50E0 ldi r21,0
  97. 95 0020 84EF ldi r24,lo8(-12)
  98. 96 0022 882E mov r8,r24
  99. 97 0024 9924 clr r9
  100. 98 0026 9394 inc r9
  101. 99 0028 A12C mov r10,__zero_reg__
  102. 100 002a B12C mov r11,__zero_reg__
  103. 101 002c 6E01 movw r12,r28
  104. 102 002e 7B01 movw r14,r22
  105. 103 0030 01E0 ldi r16,lo8(1)
  106. 104 0032 6DE1 ldi r22,lo8(29)
  107. 105 0034 80E0 ldi r24,lo8(AVRTwiBus)
  108. 106 0036 90E0 ldi r25,hi8(AVRTwiBus)
  109. 107 0038 0E94 0000 call NutTwiMasterRegRead
  110. 108 003c 21E0 ldi r18,lo8(1)
  111. 109 003e 30E0 ldi r19,0
  112. 110 0040 8C17 cp r24,r28
  113. 111 0042 9D07 cpc r25,r29
  114. 112 0044 01F4 brne .L5
  115. 113 0046 20E0 ldi r18,0
  116. 114 0048 30E0 ldi r19,0
  117. GAS LISTING /tmp/cc0O1Jrw.s page 3
  118. 115 .L5:
  119. 116 004a 8827 clr r24
  120. 117 004c 9927 clr r25
  121. 118 004e 821B sub r24,r18
  122. 119 0050 930B sbc r25,r19
  123. 120 /* epilogue start */
  124. 121 0052 DF91 pop r29
  125. 122 0054 CF91 pop r28
  126. 123 0056 0F91 pop r16
  127. 124 0058 FF90 pop r15
  128. 125 005a EF90 pop r14
  129. 126 005c DF90 pop r13
  130. 127 005e CF90 pop r12
  131. 128 0060 BF90 pop r11
  132. 129 0062 AF90 pop r10
  133. 130 0064 9F90 pop r9
  134. 131 0066 8F90 pop r8
  135. 132 0068 0895 ret
  136. 133 .size Mma745xRead, .-Mma745xRead
  137. 134 .section .text.Mma745xReadVal8,"ax",@progbits
  138. 135 .global Mma745xReadVal8
  139. 136 .type Mma745xReadVal8, @function
  140. 137 Mma745xReadVal8:
  141. 138 /* prologue: function */
  142. 139 /* frame size = 0 */
  143. 140 /* stack size = 0 */
  144. 141 .L__stack_usage = 0
  145. 142 0000 43E0 ldi r20,lo8(3)
  146. 143 0002 50E0 ldi r21,0
  147. 144 0004 BC01 movw r22,r24
  148. 145 0006 86E0 ldi r24,lo8(6)
  149. 146 0008 0C94 0000 jmp Mma745xRead
  150. 147 .size Mma745xReadVal8, .-Mma745xReadVal8
  151. 148 .section .text.Mma745xReadVal10,"ax",@progbits
  152. 149 .global Mma745xReadVal10
  153. 150 .type Mma745xReadVal10, @function
  154. 151 Mma745xReadVal10:
  155. 152 0000 CF93 push r28
  156. 153 0002 DF93 push r29
  157. 154 /* prologue: function */
  158. 155 /* frame size = 0 */
  159. 156 /* stack size = 2 */
  160. 157 .L__stack_usage = 2
  161. 158 0004 EB01 movw r28,r22
  162. 159 0006 46E0 ldi r20,lo8(6)
  163. 160 0008 50E0 ldi r21,0
  164. 161 000a 0E94 0000 call Mma745xRead
  165. 162 000e 2881 ld r18,Y
  166. 163 0010 3981 ldd r19,Y+1
  167. 164 0012 31FF sbrs r19,1
  168. 165 0014 00C0 rjmp .L8
  169. 166 0016 2095 com r18
  170. 167 0018 4DEF ldi r20,253
  171. 168 001a 3427 eor r19,r20
  172. 169 001c 3E5F subi r19,-2
  173. 170 001e 3983 std Y+1,r19
  174. 171 0020 2883 st Y,r18
  175. GAS LISTING /tmp/cc0O1Jrw.s page 4
  176. 172 .L8:
  177. 173 0022 2A81 ldd r18,Y+2
  178. 174 0024 3B81 ldd r19,Y+3
  179. 175 0026 31FF sbrs r19,1
  180. 176 0028 00C0 rjmp .L9
  181. 177 002a 2095 com r18
  182. 178 002c 4DEF ldi r20,253
  183. 179 002e 3427 eor r19,r20
  184. 180 0030 3E5F subi r19,-2
  185. 181 0032 3B83 std Y+3,r19
  186. 182 0034 2A83 std Y+2,r18
  187. 183 .L9:
  188. 184 0036 2C81 ldd r18,Y+4
  189. 185 0038 3D81 ldd r19,Y+5
  190. 186 003a 31FF sbrs r19,1
  191. 187 003c 00C0 rjmp .L10
  192. 188 003e 2095 com r18
  193. 189 0040 4DEF ldi r20,253
  194. 190 0042 3427 eor r19,r20
  195. 191 0044 3E5F subi r19,-2
  196. 192 0046 3D83 std Y+5,r19
  197. 193 0048 2C83 std Y+4,r18
  198. 194 .L10:
  199. 195 /* epilogue start */
  200. 196 004a DF91 pop r29
  201. 197 004c CF91 pop r28
  202. 198 004e 0895 ret
  203. 199 .size Mma745xReadVal10, .-Mma745xReadVal10
  204. 200 .section .text.Mma745xReadG,"ax",@progbits
  205. 201 .global Mma745xReadG
  206. 202 .type Mma745xReadG, @function
  207. 203 Mma745xReadG:
  208. 204 0000 CF93 push r28
  209. 205 0002 DF93 push r29
  210. 206 /* prologue: function */
  211. 207 /* frame size = 0 */
  212. 208 /* stack size = 2 */
  213. 209 .L__stack_usage = 2
  214. 210 0004 EC01 movw r28,r24
  215. 211 0006 8091 0000 lds r24,mmaForce
  216. 212 000a 9091 0000 lds r25,mmaForce+1
  217. 213 000e 0E94 0000 call Mma745xReadVal8
  218. 214 0012 E091 0000 lds r30,mmaCfg
  219. 215 0016 F091 0000 lds r31,mmaCfg+1
  220. 216 001a 2081 ld r18,Z
  221. 217 001c 2C70 andi r18,lo8(12)
  222. 218 001e 2430 cpi r18,lo8(4)
  223. 219 0020 01F4 brne .+2
  224. 220 0022 00C0 rjmp .L22
  225. 221 0024 2830 cpi r18,lo8(8)
  226. 222 0026 01F0 breq .L23
  227. 223 0028 2111 cpse r18,__zero_reg__
  228. 224 002a 00C0 rjmp .L21
  229. 225 002c E091 0000 lds r30,mmaForce
  230. 226 0030 F091 0000 lds r31,mmaForce+1
  231. 227 0034 2081 ld r18,Z
  232. 228 0036 44E6 ldi r20,lo8(100)
  233. GAS LISTING /tmp/cc0O1Jrw.s page 5
  234. 229 0038 2402 muls r18,r20
  235. 230 003a 9001 movw r18,r0
  236. 231 003c 1124 clr __zero_reg__
  237. 232 003e 37FF sbrs r19,7
  238. 233 0040 00C0 rjmp .L25
  239. 234 0042 215F subi r18,-15
  240. 235 0044 3F4F sbci r19,-1
  241. 236 .L25:
  242. 237 0046 64E0 ldi r22,4
  243. 238 1:
  244. 239 0048 3595 asr r19
  245. 240 004a 2795 ror r18
  246. 241 004c 6A95 dec r22
  247. 242 004e 01F4 brne 1b
  248. 243 0050 3983 std Y+1,r19
  249. 244 0052 2883 st Y,r18
  250. 245 0054 2181 ldd r18,Z+1
  251. 246 0056 44E6 ldi r20,lo8(100)
  252. 247 0058 2402 muls r18,r20
  253. 248 005a 9001 movw r18,r0
  254. 249 005c 1124 clr __zero_reg__
  255. 250 005e 37FF sbrs r19,7
  256. 251 0060 00C0 rjmp .L26
  257. 252 0062 215F subi r18,-15
  258. 253 0064 3F4F sbci r19,-1
  259. 254 .L26:
  260. 255 0066 54E0 ldi r21,4
  261. 256 1:
  262. 257 0068 3595 asr r19
  263. 258 006a 2795 ror r18
  264. 259 006c 5A95 dec r21
  265. 260 006e 01F4 brne 1b
  266. 261 0070 3B83 std Y+3,r19
  267. 262 0072 2A83 std Y+2,r18
  268. 263 0074 2281 ldd r18,Z+2
  269. 264 0076 44E6 ldi r20,lo8(100)
  270. 265 0078 2402 muls r18,r20
  271. 266 007a 9001 movw r18,r0
  272. 267 007c 1124 clr __zero_reg__
  273. 268 007e 37FF sbrs r19,7
  274. 269 0080 00C0 rjmp .L27
  275. 270 0082 215F subi r18,-15
  276. 271 0084 3F4F sbci r19,-1
  277. 272 .L27:
  278. 273 0086 44E0 ldi r20,4
  279. 274 1:
  280. 275 0088 3595 asr r19
  281. 276 008a 2795 ror r18
  282. 277 008c 4A95 dec r20
  283. 278 008e 01F4 brne 1b
  284. 279 0090 00C0 rjmp .L34
  285. 280 .L23:
  286. 281 0092 E091 0000 lds r30,mmaForce
  287. 282 0096 F091 0000 lds r31,mmaForce+1
  288. 283 009a 2081 ld r18,Z
  289. 284 009c 44E6 ldi r20,lo8(100)
  290. 285 009e 2402 muls r18,r20
  291. GAS LISTING /tmp/cc0O1Jrw.s page 6
  292. 286 00a0 9001 movw r18,r0
  293. 287 00a2 1124 clr __zero_reg__
  294. 288 00a4 37FF sbrs r19,7
  295. 289 00a6 00C0 rjmp .L28
  296. 290 00a8 215E subi r18,-31
  297. 291 00aa 3F4F sbci r19,-1
  298. 292 .L28:
  299. 293 00ac B5E0 ldi r27,5
  300. 294 1:
  301. 295 00ae 3595 asr r19
  302. 296 00b0 2795 ror r18
  303. 297 00b2 BA95 dec r27
  304. 298 00b4 01F4 brne 1b
  305. 299 00b6 3983 std Y+1,r19
  306. 300 00b8 2883 st Y,r18
  307. 301 00ba 2181 ldd r18,Z+1
  308. 302 00bc 44E6 ldi r20,lo8(100)
  309. 303 00be 2402 muls r18,r20
  310. 304 00c0 9001 movw r18,r0
  311. 305 00c2 1124 clr __zero_reg__
  312. 306 00c4 37FF sbrs r19,7
  313. 307 00c6 00C0 rjmp .L29
  314. 308 00c8 215E subi r18,-31
  315. 309 00ca 3F4F sbci r19,-1
  316. 310 .L29:
  317. 311 00cc A5E0 ldi r26,5
  318. 312 1:
  319. 313 00ce 3595 asr r19
  320. 314 00d0 2795 ror r18
  321. 315 00d2 AA95 dec r26
  322. 316 00d4 01F4 brne 1b
  323. 317 00d6 3B83 std Y+3,r19
  324. 318 00d8 2A83 std Y+2,r18
  325. 319 00da 2281 ldd r18,Z+2
  326. 320 00dc 44E6 ldi r20,lo8(100)
  327. 321 00de 2402 muls r18,r20
  328. 322 00e0 9001 movw r18,r0
  329. 323 00e2 1124 clr __zero_reg__
  330. 324 00e4 37FF sbrs r19,7
  331. 325 00e6 00C0 rjmp .L30
  332. 326 00e8 215E subi r18,-31
  333. 327 00ea 3F4F sbci r19,-1
  334. 328 .L30:
  335. 329 00ec 75E0 ldi r23,5
  336. 330 1:
  337. 331 00ee 3595 asr r19
  338. 332 00f0 2795 ror r18
  339. 333 00f2 7A95 dec r23
  340. 334 00f4 01F4 brne 1b
  341. 335 00f6 00C0 rjmp .L34
  342. 336 .L22:
  343. 337 00f8 E091 0000 lds r30,mmaForce
  344. 338 00fc F091 0000 lds r31,mmaForce+1
  345. 339 0100 2081 ld r18,Z
  346. 340 0102 44E6 ldi r20,lo8(100)
  347. 341 0104 2402 muls r18,r20
  348. 342 0106 9001 movw r18,r0
  349. GAS LISTING /tmp/cc0O1Jrw.s page 7
  350. 343 0108 1124 clr __zero_reg__
  351. 344 010a 37FF sbrs r19,7
  352. 345 010c 00C0 rjmp .L31
  353. 346 010e 215C subi r18,-63
  354. 347 0110 3F4F sbci r19,-1
  355. 348 .L31:
  356. 349 0112 66E0 ldi r22,6
  357. 350 1:
  358. 351 0114 3595 asr r19
  359. 352 0116 2795 ror r18
  360. 353 0118 6A95 dec r22
  361. 354 011a 01F4 brne 1b
  362. 355 011c 3983 std Y+1,r19
  363. 356 011e 2883 st Y,r18
  364. 357 0120 2181 ldd r18,Z+1
  365. 358 0122 44E6 ldi r20,lo8(100)
  366. 359 0124 2402 muls r18,r20
  367. 360 0126 9001 movw r18,r0
  368. 361 0128 1124 clr __zero_reg__
  369. 362 012a 37FF sbrs r19,7
  370. 363 012c 00C0 rjmp .L32
  371. 364 012e 215C subi r18,-63
  372. 365 0130 3F4F sbci r19,-1
  373. 366 .L32:
  374. 367 0132 56E0 ldi r21,6
  375. 368 1:
  376. 369 0134 3595 asr r19
  377. 370 0136 2795 ror r18
  378. 371 0138 5A95 dec r21
  379. 372 013a 01F4 brne 1b
  380. 373 013c 3B83 std Y+3,r19
  381. 374 013e 2A83 std Y+2,r18
  382. 375 0140 2281 ldd r18,Z+2
  383. 376 0142 44E6 ldi r20,lo8(100)
  384. 377 0144 2402 muls r18,r20
  385. 378 0146 9001 movw r18,r0
  386. 379 0148 1124 clr __zero_reg__
  387. 380 014a 37FF sbrs r19,7
  388. 381 014c 00C0 rjmp .L33
  389. 382 014e 215C subi r18,-63
  390. 383 0150 3F4F sbci r19,-1
  391. 384 .L33:
  392. 385 0152 46E0 ldi r20,6
  393. 386 1:
  394. 387 0154 3595 asr r19
  395. 388 0156 2795 ror r18
  396. 389 0158 4A95 dec r20
  397. 390 015a 01F4 brne 1b
  398. 391 .L34:
  399. 392 015c 3D83 std Y+5,r19
  400. 393 015e 2C83 std Y+4,r18
  401. 394 .L21:
  402. 395 /* epilogue start */
  403. 396 0160 DF91 pop r29
  404. 397 0162 CF91 pop r28
  405. 398 0164 0895 ret
  406. 399 .size Mma745xReadG, .-Mma745xReadG
  407. GAS LISTING /tmp/cc0O1Jrw.s page 8
  408. 400 .section .text.Mma745xReadCal,"ax",@progbits
  409. 401 .global Mma745xReadCal
  410. 402 .type Mma745xReadCal, @function
  411. 403 Mma745xReadCal:
  412. 404 /* prologue: function */
  413. 405 /* frame size = 0 */
  414. 406 /* stack size = 0 */
  415. 407 .L__stack_usage = 0
  416. 408 0000 BC01 movw r22,r24
  417. 409 0002 80E1 ldi r24,lo8(16)
  418. 410 0004 0C94 0000 jmp Mma745xReadVal10
  419. 411 .size Mma745xReadCal, .-Mma745xReadCal
  420. 412 .section .text.Mma745xWriteCal,"ax",@progbits
  421. 413 .global Mma745xWriteCal
  422. 414 .type Mma745xWriteCal, @function
  423. 415 Mma745xWriteCal:
  424. 416 /* prologue: function */
  425. 417 /* frame size = 0 */
  426. 418 /* stack size = 0 */
  427. 419 .L__stack_usage = 0
  428. 420 0000 46E0 ldi r20,lo8(6)
  429. 421 0002 50E0 ldi r21,0
  430. 422 0004 BC01 movw r22,r24
  431. 423 0006 80E1 ldi r24,lo8(16)
  432. 424 0008 0C94 0000 jmp Mma745xWrite
  433. 425 .size Mma745xWriteCal, .-Mma745xWriteCal
  434. 426 .section .text.Mma745xCtl,"ax",@progbits
  435. 427 .global Mma745xCtl
  436. 428 .type Mma745xCtl, @function
  437. 429 Mma745xCtl:
  438. 430 0000 0F93 push r16
  439. 431 0002 1F93 push r17
  440. 432 0004 CF93 push r28
  441. 433 0006 DF93 push r29
  442. 434 0008 1F92 push __zero_reg__
  443. 435 000a CDB7 in r28,__SP_L__
  444. 436 000c DEB7 in r29,__SP_H__
  445. 437 /* prologue: function */
  446. 438 /* frame size = 1 */
  447. 439 /* stack size = 5 */
  448. 440 .L__stack_usage = 5
  449. 441 000e 8B01 movw r16,r22
  450. 442 0010 8130 cpi r24,lo8(1)
  451. 443 0012 01F0 breq .L39
  452. 444 0014 00F0 brlo .L40
  453. 445 0016 8230 cpi r24,lo8(2)
  454. 446 0018 01F0 breq .L41
  455. 447 001a 8430 cpi r24,lo8(4)
  456. 448 001c 01F4 brne .L46
  457. 449 001e FB01 movw r30,r22
  458. 450 0020 8081 ld r24,Z
  459. 451 0022 8370 andi r24,lo8(3)
  460. 452 0024 8983 std Y+1,r24
  461. 453 0026 41E0 ldi r20,lo8(1)
  462. 454 0028 50E0 ldi r21,0
  463. 455 002a BE01 movw r22,r28
  464. 456 002c 6F5F subi r22,-1
  465. GAS LISTING /tmp/cc0O1Jrw.s page 9
  466. 457 002e 7F4F sbci r23,-1
  467. 458 0030 87E1 ldi r24,lo8(23)
  468. 459 0032 0E94 0000 call Mma745xWrite
  469. 460 0036 9981 ldd r25,Y+1
  470. 461 0038 83E0 ldi r24,lo8(3)
  471. 462 003a 8927 eor r24,r25
  472. 463 003c 8983 std Y+1,r24
  473. 464 003e 41E0 ldi r20,lo8(1)
  474. 465 0040 50E0 ldi r21,0
  475. 466 0042 BE01 movw r22,r28
  476. 467 0044 6F5F subi r22,-1
  477. 468 0046 7F4F sbci r23,-1
  478. 469 0048 87E1 ldi r24,lo8(23)
  479. 470 004a 0E94 0000 call Mma745xWrite
  480. 471 004e 00C0 rjmp .L38
  481. 472 .L40:
  482. 473 0050 42E0 ldi r20,lo8(2)
  483. 474 0052 50E0 ldi r21,0
  484. 475 0054 89E0 ldi r24,lo8(9)
  485. 476 0056 00C0 rjmp .L45
  486. 477 .L39:
  487. 478 0058 41E0 ldi r20,lo8(1)
  488. 479 005a 50E0 ldi r21,0
  489. 480 005c 86E1 ldi r24,lo8(22)
  490. 481 005e 0E94 0000 call Mma745xWrite
  491. 482 0062 0097 sbiw r24,0
  492. 483 0064 01F4 brne .L38
  493. 484 0066 F801 movw r30,r16
  494. 485 0068 2081 ld r18,Z
  495. 486 006a E091 0000 lds r30,mmaCfg
  496. 487 006e F091 0000 lds r31,mmaCfg+1
  497. 488 0072 2083 st Z,r18
  498. 489 0074 00C0 rjmp .L38
  499. 490 .L41:
  500. 491 0076 41E0 ldi r20,lo8(1)
  501. 492 0078 50E0 ldi r21,0
  502. 493 007a 8AE0 ldi r24,lo8(10)
  503. 494 .L45:
  504. 495 007c 0E94 0000 call Mma745xRead
  505. 496 0080 00C0 rjmp .L38
  506. 497 .L46:
  507. 498 0082 8FEF ldi r24,lo8(-1)
  508. 499 0084 9FEF ldi r25,lo8(-1)
  509. 500 .L38:
  510. 501 /* epilogue start */
  511. 502 0086 0F90 pop __tmp_reg__
  512. 503 0088 DF91 pop r29
  513. 504 008a CF91 pop r28
  514. 505 008c 1F91 pop r17
  515. 506 008e 0F91 pop r16
  516. 507 0090 0895 ret
  517. 508 .size Mma745xCtl, .-Mma745xCtl
  518. 509 .section .text.Mma745xInit,"ax",@progbits
  519. 510 .global Mma745xInit
  520. 511 .type Mma745xInit, @function
  521. 512 Mma745xInit:
  522. 513 0000 FF92 push r15
  523. GAS LISTING /tmp/cc0O1Jrw.s page 10
  524. 514 0002 0F93 push r16
  525. 515 0004 1F93 push r17
  526. 516 0006 CF93 push r28
  527. 517 0008 DF93 push r29
  528. 518 000a 1F92 push __zero_reg__
  529. 519 000c CDB7 in r28,__SP_L__
  530. 520 000e DEB7 in r29,__SP_H__
  531. 521 /* prologue: function */
  532. 522 /* frame size = 1 */
  533. 523 /* stack size = 6 */
  534. 524 .L__stack_usage = 6
  535. 525 0010 F82E mov r15,r24
  536. 526 0012 8B01 movw r16,r22
  537. 527 0014 1982 std Y+1,__zero_reg__
  538. 528 0016 69E0 ldi r22,lo8(9)
  539. 529 0018 70E0 ldi r23,0
  540. 530 001a 80E0 ldi r24,lo8(heapFreeList)
  541. 531 001c 90E0 ldi r25,hi8(heapFreeList)
  542. 532 001e 0E94 0000 call NutHeapRootAlloc
  543. 533 0022 9093 0000 sts mmaCfg+1,r25
  544. 534 0026 8093 0000 sts mmaCfg,r24
  545. 535 002a 892B or r24,r25
  546. 536 002c 01F4 brne .L48
  547. 537 .L50:
  548. 538 002e 8FEF ldi r24,lo8(-1)
  549. 539 0030 9FEF ldi r25,lo8(-1)
  550. 540 0032 00C0 rjmp .L49
  551. 541 .L48:
  552. 542 0034 63E0 ldi r22,lo8(3)
  553. 543 0036 70E0 ldi r23,0
  554. 544 0038 80E0 ldi r24,lo8(heapFreeList)
  555. 545 003a 90E0 ldi r25,hi8(heapFreeList)
  556. 546 003c 0E94 0000 call NutHeapRootAlloc
  557. 547 0040 9093 0000 sts mmaForce+1,r25
  558. 548 0044 8093 0000 sts mmaForce,r24
  559. 549 0048 892B or r24,r25
  560. 550 004a 01F0 breq .L50
  561. 551 004c A091 0000 lds r26,mmaCfg
  562. 552 0050 B091 0000 lds r27,mmaCfg+1
  563. 553 0054 89E0 ldi r24,lo8(9)
  564. 554 0056 0115 cp r16,__zero_reg__
  565. 555 0058 1105 cpc r17,__zero_reg__
  566. 556 005a 01F0 breq .L51
  567. 557 005c F801 movw r30,r16
  568. 558 005e 00C0 rjmp .L57
  569. 559 .L51:
  570. 560 0060 E0E0 ldi r30,lo8(mmaDefault)
  571. 561 0062 F0E0 ldi r31,hi8(mmaDefault)
  572. 562 .L57:
  573. 563 0:
  574. 564 0064 0190 ld r0,Z+
  575. 565 0066 0D92 st X+,r0
  576. 566 0068 8A95 dec r24
  577. 567 006a 01F4 brne 0b
  578. 568 006c 6091 0000 lds r22,mmaCfg
  579. 569 0070 7091 0000 lds r23,mmaCfg+1
  580. 570 0074 49E0 ldi r20,lo8(9)
  581. GAS LISTING /tmp/cc0O1Jrw.s page 11
  582. 571 0076 50E0 ldi r21,0
  583. 572 0078 86E1 ldi r24,lo8(22)
  584. 573 007a 0E94 0000 call Mma745xWrite
  585. 574 007e FF20 tst r15
  586. 575 0080 01F0 breq .L53
  587. 576 0082 80E1 ldi r24,lo8(16)
  588. 577 0084 8983 std Y+1,r24
  589. 578 0086 41E0 ldi r20,lo8(1)
  590. 579 0088 50E0 ldi r21,0
  591. 580 008a BE01 movw r22,r28
  592. 581 008c 6F5F subi r22,-1
  593. 582 008e 7F4F sbci r23,-1
  594. 583 0090 86E1 ldi r24,lo8(22)
  595. 584 0092 0E94 0000 call Mma745xWrite
  596. 585 .L53:
  597. 586 0096 80E0 ldi r24,0
  598. 587 0098 90E0 ldi r25,0
  599. 588 .L49:
  600. 589 /* epilogue start */
  601. 590 009a 0F90 pop __tmp_reg__
  602. 591 009c DF91 pop r29
  603. 592 009e CF91 pop r28
  604. 593 00a0 1F91 pop r17
  605. 594 00a2 0F91 pop r16
  606. 595 00a4 FF90 pop r15
  607. 596 00a6 0895 ret
  608. 597 .size Mma745xInit, .-Mma745xInit
  609. 598 .local mmaForce
  610. 599 .comm mmaForce,2,1
  611. 600 .local mmaCfg
  612. 601 .comm mmaCfg,2,1
  613. 602 .global mmaDefault
  614. 603 .section .rodata
  615. 604 .type mmaDefault, @object
  616. 605 .size mmaDefault, 9
  617. 606 mmaDefault:
  618. 607 0000 00 .byte 0
  619. 608 0001 00 .byte 0
  620. 609 0002 00 .byte 0
  621. 610 0003 00 .byte 0
  622. 611 0004 7F .byte 127
  623. 612 0005 18 .byte 24
  624. 613 0006 64 .byte 100
  625. 614 0007 00 .byte 0
  626. 615 0008 00 .byte 0
  627. 616 .ident "GCC: (GNU) 5.3.0"
  628. 617 .global __do_copy_data
  629. 618 .global __do_clear_bss
  630. GAS LISTING /tmp/cc0O1Jrw.s page 12
  631. DEFINED SYMBOLS
  632. *ABS*:0000000000000000 mma745x.c
  633. /tmp/cc0O1Jrw.s:2 *ABS*:000000000000003e __SP_H__
  634. /tmp/cc0O1Jrw.s:3 *ABS*:000000000000003d __SP_L__
  635. /tmp/cc0O1Jrw.s:4 *ABS*:000000000000003f __SREG__
  636. /tmp/cc0O1Jrw.s:5 *ABS*:000000000000003b __RAMPZ__
  637. /tmp/cc0O1Jrw.s:6 *ABS*:0000000000000000 __tmp_reg__
  638. /tmp/cc0O1Jrw.s:7 *ABS*:0000000000000001 __zero_reg__
  639. /tmp/cc0O1Jrw.s:11 .text.Mma745xWrite:0000000000000000 Mma745xWrite
  640. /tmp/cc0O1Jrw.s:74 .text.Mma745xRead:0000000000000000 Mma745xRead
  641. /tmp/cc0O1Jrw.s:137 .text.Mma745xReadVal8:0000000000000000 Mma745xReadVal8
  642. /tmp/cc0O1Jrw.s:151 .text.Mma745xReadVal10:0000000000000000 Mma745xReadVal10
  643. /tmp/cc0O1Jrw.s:203 .text.Mma745xReadG:0000000000000000 Mma745xReadG
  644. .bss:0000000000000000 mmaForce
  645. /tmp/cc0O1Jrw.s:599 .bss:0000000000000002 mmaCfg
  646. /tmp/cc0O1Jrw.s:403 .text.Mma745xReadCal:0000000000000000 Mma745xReadCal
  647. /tmp/cc0O1Jrw.s:415 .text.Mma745xWriteCal:0000000000000000 Mma745xWriteCal
  648. /tmp/cc0O1Jrw.s:429 .text.Mma745xCtl:0000000000000000 Mma745xCtl
  649. /tmp/cc0O1Jrw.s:512 .text.Mma745xInit:0000000000000000 Mma745xInit
  650. /tmp/cc0O1Jrw.s:606 .rodata:0000000000000000 mmaDefault
  651. UNDEFINED SYMBOLS
  652. AVRTwiBus
  653. NutTwiMasterRegWrite
  654. NutTwiMasterRegRead
  655. heapFreeList
  656. NutHeapRootAlloc
  657. __do_copy_data
  658. __do_clear_bss