keys.lst 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565
  1. GAS LISTING /tmp/cc5O7ouI.s page 1
  2. 1 .file "keys.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.KeyTimerCb,"ax",@progbits
  10. 9 .global KeyTimerCb
  11. 10 .type KeyTimerCb, @function
  12. 11 KeyTimerCb:
  13. 12 /* prologue: function */
  14. 13 /* frame size = 0 */
  15. 14 /* stack size = 0 */
  16. 15 .L__stack_usage = 0
  17. 16 0000 CB01 movw r24,r22
  18. 17 0002 0C94 0000 jmp NutEventPostAsync
  19. 18 .size KeyTimerCb, .-KeyTimerCb
  20. 19 .section .text.sys_key,"ax",@progbits
  21. 20 .global sys_key
  22. 21 .type sys_key, @function
  23. 22 sys_key:
  24. 23 /* prologue: function */
  25. 24 /* frame size = 0 */
  26. 25 /* stack size = 0 */
  27. 26 .L__stack_usage = 0
  28. 27 0000 8C01 movw r16,r24
  29. 28 0002 80E1 ldi r24,lo8(16)
  30. 29 0004 0E94 0000 call NutThreadSetPriority
  31. 30 .L3:
  32. 31 0008 40E0 ldi r20,0
  33. 32 000a 50E0 ldi r21,0
  34. 33 000c BA01 movw r22,r20
  35. 34 000e C801 movw r24,r16
  36. 35 0010 0E94 0000 call NutEventWait
  37. 36 0014 892B or r24,r25
  38. 37 0016 01F4 brne .L3
  39. 38 0018 C091 0000 lds r28,first_key
  40. 39 001c D091 0000 lds r29,first_key+1
  41. 40 0020 0E94 0000 call NutGetMillis
  42. 41 0024 6B01 movw r12,r22
  43. 42 0026 7C01 movw r14,r24
  44. 43 .L4:
  45. 44 0028 2097 sbiw r28,0
  46. 45 002a 01F0 breq .L3
  47. 46 002c 8C85 ldd r24,Y+12
  48. 47 002e 9D85 ldd r25,Y+13
  49. 48 0030 8E7F andi r24,254
  50. 49 0032 9D87 std Y+13,r25
  51. 50 0034 8C87 std Y+12,r24
  52. 51 0036 6885 ldd r22,Y+8
  53. 52 0038 7985 ldd r23,Y+9
  54. 53 003a 8E81 ldd r24,Y+6
  55. 54 003c 9F81 ldd r25,Y+7
  56. 55 003e 0E94 0000 call GpioPinGet
  57. 56 0042 21E0 ldi r18,lo8(1)
  58. 57 0044 30E0 ldi r19,0
  59. GAS LISTING /tmp/cc5O7ouI.s page 2
  60. 58 0046 892B or r24,r25
  61. 59 0048 01F0 breq .L5
  62. 60 004a 20E0 ldi r18,0
  63. 61 004c 30E0 ldi r19,0
  64. 62 .L5:
  65. 63 004e 8C85 ldd r24,Y+12
  66. 64 0050 9D85 ldd r25,Y+13
  67. 65 0052 822B or r24,r18
  68. 66 0054 932B or r25,r19
  69. 67 0056 9D87 std Y+13,r25
  70. 68 0058 8C87 std Y+12,r24
  71. 69 005a AC01 movw r20,r24
  72. 70 005c 4170 andi r20,1
  73. 71 005e 5527 clr r21
  74. 72 0060 2A85 ldd r18,Y+10
  75. 73 0062 3B85 ldd r19,Y+11
  76. 74 0064 2170 andi r18,1
  77. 75 0066 3327 clr r19
  78. 76 0068 2417 cp r18,r20
  79. 77 006a 3507 cpc r19,r21
  80. 78 006c 04F4 brge .L6
  81. 79 006e CC8A std Y+20,r12
  82. 80 0070 DD8A std Y+21,r13
  83. 81 0072 EE8A std Y+22,r14
  84. 82 0074 FF8A std Y+23,r15
  85. 83 0076 2E85 ldd r18,Y+14
  86. 84 0078 3F85 ldd r19,Y+15
  87. 85 007a 2031 cpi r18,16
  88. 86 007c 3105 cpc r19,__zero_reg__
  89. 87 007e 01F0 breq .+2
  90. 88 0080 00C0 rjmp .L8
  91. 89 0082 8260 ori r24,2
  92. 90 0084 00C0 rjmp .L56
  93. 91 .L6:
  94. 92 0086 4217 cp r20,r18
  95. 93 0088 5307 cpc r21,r19
  96. 94 008a 04F4 brge .L11
  97. 95 008c 8B7F andi r24,251
  98. 96 008e 9D87 std Y+13,r25
  99. 97 0090 8C87 std Y+12,r24
  100. 98 0092 2E85 ldd r18,Y+14
  101. 99 0094 3F85 ldd r19,Y+15
  102. 100 0096 2032 cpi r18,32
  103. 101 0098 3105 cpc r19,__zero_reg__
  104. 102 009a 01F4 brne .L12
  105. 103 009c 8262 ori r24,34
  106. 104 009e 00C0 rjmp .L56
  107. 105 .L12:
  108. 106 00a0 2038 cpi r18,-128
  109. 107 00a2 3105 cpc r19,__zero_reg__
  110. 108 00a4 01F0 breq .+2
  111. 109 00a6 00C0 rjmp .L8
  112. 110 00a8 4C89 ldd r20,Y+20
  113. 111 00aa 5D89 ldd r21,Y+21
  114. 112 00ac 6E89 ldd r22,Y+22
  115. 113 00ae 7F89 ldd r23,Y+23
  116. 114 00b0 4601 movw r8,r12
  117. GAS LISTING /tmp/cc5O7ouI.s page 3
  118. 115 00b2 5701 movw r10,r14
  119. 116 00b4 841A sub r8,r20
  120. 117 00b6 950A sbc r9,r21
  121. 118 00b8 A60A sbc r10,r22
  122. 119 00ba B70A sbc r11,r23
  123. 120 00bc 4889 ldd r20,Y+16
  124. 121 00be 5989 ldd r21,Y+17
  125. 122 00c0 6A89 ldd r22,Y+18
  126. 123 00c2 7B89 ldd r23,Y+19
  127. 124 00c4 8416 cp r8,r20
  128. 125 00c6 9506 cpc r9,r21
  129. 126 00c8 A606 cpc r10,r22
  130. 127 00ca B706 cpc r11,r23
  131. 128 00cc 00F4 brsh .L8
  132. 129 00ce 8268 ori r24,130
  133. 130 .L56:
  134. 131 00d0 9D87 std Y+13,r25
  135. 132 00d2 8C87 std Y+12,r24
  136. 133 00d4 8A81 ldd r24,Y+2
  137. 134 00d6 9B81 ldd r25,Y+3
  138. 135 00d8 0097 sbiw r24,0
  139. 136 00da 01F0 breq .L14
  140. 137 00dc 0E94 0000 call NutEventPost
  141. 138 .L14:
  142. 139 00e0 EC81 ldd r30,Y+4
  143. 140 00e2 FD81 ldd r31,Y+5
  144. 141 00e4 3097 sbiw r30,0
  145. 142 00e6 01F0 breq .L8
  146. 143 00e8 1995 eicall
  147. 144 00ea 00C0 rjmp .L8
  148. 145 .L11:
  149. 146 00ec 452B or r20,r21
  150. 147 00ee 01F0 breq .L8
  151. 148 00f0 2E85 ldd r18,Y+14
  152. 149 00f2 3F85 ldd r19,Y+15
  153. 150 00f4 2034 cpi r18,64
  154. 151 00f6 3105 cpc r19,__zero_reg__
  155. 152 00f8 01F4 brne .L8
  156. 153 00fa 4C89 ldd r20,Y+20
  157. 154 00fc 5D89 ldd r21,Y+21
  158. 155 00fe 6E89 ldd r22,Y+22
  159. 156 0100 7F89 ldd r23,Y+23
  160. 157 0102 4601 movw r8,r12
  161. 158 0104 5701 movw r10,r14
  162. 159 0106 841A sub r8,r20
  163. 160 0108 950A sbc r9,r21
  164. 161 010a A60A sbc r10,r22
  165. 162 010c B70A sbc r11,r23
  166. 163 010e 4889 ldd r20,Y+16
  167. 164 0110 5989 ldd r21,Y+17
  168. 165 0112 6A89 ldd r22,Y+18
  169. 166 0114 7B89 ldd r23,Y+19
  170. 167 0116 4815 cp r20,r8
  171. 168 0118 5905 cpc r21,r9
  172. 169 011a 6A05 cpc r22,r10
  173. 170 011c 7B05 cpc r23,r11
  174. 171 011e 00F4 brsh .L8
  175. GAS LISTING /tmp/cc5O7ouI.s page 4
  176. 172 0120 82FD sbrc r24,2
  177. 173 0122 00C0 rjmp .L8
  178. 174 0124 8264 ori r24,66
  179. 175 0126 9D87 std Y+13,r25
  180. 176 0128 8C87 std Y+12,r24
  181. 177 012a 8A81 ldd r24,Y+2
  182. 178 012c 9B81 ldd r25,Y+3
  183. 179 012e 0097 sbiw r24,0
  184. 180 0130 01F0 breq .L15
  185. 181 0132 0E94 0000 call NutEventPost
  186. 182 .L15:
  187. 183 0136 EC81 ldd r30,Y+4
  188. 184 0138 FD81 ldd r31,Y+5
  189. 185 013a 3097 sbiw r30,0
  190. 186 013c 01F0 breq .L16
  191. 187 013e 1995 eicall
  192. 188 .L16:
  193. 189 0140 8C85 ldd r24,Y+12
  194. 190 0142 9D85 ldd r25,Y+13
  195. 191 0144 8460 ori r24,4
  196. 192 0146 9D87 std Y+13,r25
  197. 193 0148 8C87 std Y+12,r24
  198. 194 .L8:
  199. 195 014a 8C85 ldd r24,Y+12
  200. 196 014c 9D85 ldd r25,Y+13
  201. 197 014e 9B87 std Y+11,r25
  202. 198 0150 8A87 std Y+10,r24
  203. 199 0152 0990 ld __tmp_reg__,Y+
  204. 200 0154 D881 ld r29,Y
  205. 201 0156 C02D mov r28,__tmp_reg__
  206. 202 0158 00C0 rjmp .L4
  207. 203 .size sys_key, .-sys_key
  208. 204 .section .text.NutGetKeyState,"ax",@progbits
  209. 205 .global NutGetKeyState
  210. 206 .type NutGetKeyState, @function
  211. 207 NutGetKeyState:
  212. 208 /* prologue: function */
  213. 209 /* frame size = 0 */
  214. 210 /* stack size = 0 */
  215. 211 .L__stack_usage = 0
  216. 212 0000 FC01 movw r30,r24
  217. 213 0002 892B or r24,r25
  218. 214 0004 01F0 breq .L61
  219. 215 0006 8485 ldd r24,Z+12
  220. 216 0008 9585 ldd r25,Z+13
  221. 217 000a 9C01 movw r18,r24
  222. 218 000c 2D7F andi r18,253
  223. 219 000e 3587 std Z+13,r19
  224. 220 0010 2487 std Z+12,r18
  225. 221 0012 0895 ret
  226. 222 .L61:
  227. 223 0014 8FEF ldi r24,lo8(-1)
  228. 224 0016 9FEF ldi r25,lo8(-1)
  229. 225 .L60:
  230. 226 0018 0895 ret
  231. 227 .size NutGetKeyState, .-NutGetKeyState
  232. 228 .section .text.NutGetKeyTime,"ax",@progbits
  233. GAS LISTING /tmp/cc5O7ouI.s page 5
  234. 229 .global NutGetKeyTime
  235. 230 .type NutGetKeyTime, @function
  236. 231 NutGetKeyTime:
  237. 232 0000 CF93 push r28
  238. 233 0002 DF93 push r29
  239. 234 /* prologue: function */
  240. 235 /* frame size = 0 */
  241. 236 /* stack size = 2 */
  242. 237 .L__stack_usage = 2
  243. 238 0004 EC01 movw r28,r24
  244. 239 0006 892B or r24,r25
  245. 240 0008 01F0 breq .L64
  246. 241 000a 0E94 0000 call NutGetMillis
  247. 242 000e 2C89 ldd r18,Y+20
  248. 243 0010 3D89 ldd r19,Y+21
  249. 244 0012 CB01 movw r24,r22
  250. 245 0014 821B sub r24,r18
  251. 246 0016 930B sbc r25,r19
  252. 247 0018 00C0 rjmp .L63
  253. 248 .L64:
  254. 249 001a 8FEF ldi r24,lo8(-1)
  255. 250 001c 9FEF ldi r25,lo8(-1)
  256. 251 .L63:
  257. 252 /* epilogue start */
  258. 253 001e DF91 pop r29
  259. 254 0020 CF91 pop r28
  260. 255 0022 0895 ret
  261. 256 .size NutGetKeyTime, .-NutGetKeyTime
  262. 257 .section .text.InitKEY,"ax",@progbits
  263. 258 .global InitKEY
  264. 259 .type InitKEY, @function
  265. 260 InitKEY:
  266. 261 /* prologue: function */
  267. 262 /* frame size = 0 */
  268. 263 /* stack size = 0 */
  269. 264 .L__stack_usage = 0
  270. 265 0000 FC01 movw r30,r24
  271. 266 0002 8681 ldd r24,Z+6
  272. 267 0004 9781 ldd r25,Z+7
  273. 268 0006 8038 cpi r24,-128
  274. 269 0008 9105 cpc r25,__zero_reg__
  275. 270 000a 04F4 brge .L67
  276. 271 000c 6085 ldd r22,Z+8
  277. 272 000e 7185 ldd r23,Z+9
  278. 273 0010 24E1 ldi r18,lo8(20)
  279. 274 0012 30E0 ldi r19,0
  280. 275 0014 40E0 ldi r20,0
  281. 276 0016 50E0 ldi r21,0
  282. 277 0018 0E94 0000 call GpioPinConfigSet
  283. 278 001c 80E0 ldi r24,0
  284. 279 001e 90E0 ldi r25,0
  285. 280 0020 0895 ret
  286. 281 .L67:
  287. 282 0022 8FEF ldi r24,lo8(-1)
  288. 283 0024 9FEF ldi r25,lo8(-1)
  289. 284 0026 0895 ret
  290. 285 .size InitKEY, .-InitKEY
  291. GAS LISTING /tmp/cc5O7ouI.s page 6
  292. 286 .section .text.NutAssignKeyEvt,"ax",@progbits
  293. 287 .global NutAssignKeyEvt
  294. 288 .type NutAssignKeyEvt, @function
  295. 289 NutAssignKeyEvt:
  296. 290 /* prologue: function */
  297. 291 /* frame size = 0 */
  298. 292 /* stack size = 0 */
  299. 293 .L__stack_usage = 0
  300. 294 0000 FC01 movw r30,r24
  301. 295 0002 892B or r24,r25
  302. 296 0004 01F0 breq .L70
  303. 297 0006 7383 std Z+3,r23
  304. 298 0008 6283 std Z+2,r22
  305. 299 000a 8485 ldd r24,Z+12
  306. 300 000c 9585 ldd r25,Z+13
  307. 301 000e 8D7F andi r24,253
  308. 302 0010 9587 std Z+13,r25
  309. 303 0012 8487 std Z+12,r24
  310. 304 0014 80E0 ldi r24,0
  311. 305 0016 90E0 ldi r25,0
  312. 306 0018 0895 ret
  313. 307 .L70:
  314. 308 001a 8FEF ldi r24,lo8(-1)
  315. 309 001c 9FEF ldi r25,lo8(-1)
  316. 310 001e 0895 ret
  317. 311 .size NutAssignKeyEvt, .-NutAssignKeyEvt
  318. 312 .section .text.NutAssignKeyFkt,"ax",@progbits
  319. 313 .global NutAssignKeyFkt
  320. 314 .type NutAssignKeyFkt, @function
  321. 315 NutAssignKeyFkt:
  322. 316 /* prologue: function */
  323. 317 /* frame size = 0 */
  324. 318 /* stack size = 0 */
  325. 319 .L__stack_usage = 0
  326. 320 0000 FC01 movw r30,r24
  327. 321 0002 892B or r24,r25
  328. 322 0004 01F0 breq .L73
  329. 323 0006 7583 std Z+5,r23
  330. 324 0008 6483 std Z+4,r22
  331. 325 000a 8485 ldd r24,Z+12
  332. 326 000c 9585 ldd r25,Z+13
  333. 327 000e 8D7F andi r24,253
  334. 328 0010 9587 std Z+13,r25
  335. 329 0012 8487 std Z+12,r24
  336. 330 0014 80E0 ldi r24,0
  337. 331 0016 90E0 ldi r25,0
  338. 332 0018 0895 ret
  339. 333 .L73:
  340. 334 001a 8FEF ldi r24,lo8(-1)
  341. 335 001c 9FEF ldi r25,lo8(-1)
  342. 336 001e 0895 ret
  343. 337 .size NutAssignKeyFkt, .-NutAssignKeyFkt
  344. 338 .section .rodata.str1.1,"aMS",@progbits,1
  345. 339 .LC0:
  346. 340 0000 7379 735F .string "sys_key"
  347. 340 6B65 7900
  348. 341 .section .text.NutRegisterKey,"ax",@progbits
  349. GAS LISTING /tmp/cc5O7ouI.s page 7
  350. 342 .global NutRegisterKey
  351. 343 .type NutRegisterKey, @function
  352. 344 NutRegisterKey:
  353. 345 0000 2F92 push r2
  354. 346 0002 3F92 push r3
  355. 347 0004 4F92 push r4
  356. 348 0006 5F92 push r5
  357. 349 0008 6F92 push r6
  358. 350 000a 7F92 push r7
  359. 351 000c 8F92 push r8
  360. 352 000e 9F92 push r9
  361. 353 0010 AF92 push r10
  362. 354 0012 BF92 push r11
  363. 355 0014 CF92 push r12
  364. 356 0016 DF92 push r13
  365. 357 0018 EF92 push r14
  366. 358 001a FF92 push r15
  367. 359 001c 0F93 push r16
  368. 360 001e 1F93 push r17
  369. 361 0020 CF93 push r28
  370. 362 0022 DF93 push r29
  371. 363 /* prologue: function */
  372. 364 /* frame size = 0 */
  373. 365 /* stack size = 18 */
  374. 366 .L__stack_usage = 18
  375. 367 0024 4C01 movw r8,r24
  376. 368 0026 3B01 movw r6,r22
  377. 369 0028 5A01 movw r10,r20
  378. 370 002a 6901 movw r12,r18
  379. 371 002c 88E1 ldi r24,lo8(24)
  380. 372 002e 90E0 ldi r25,0
  381. 373 0030 0E94 0000 call malloc
  382. 374 0034 EC01 movw r28,r24
  383. 375 0036 F401 movw r30,r8
  384. 376 0038 9183 std Z+1,r25
  385. 377 003a 8083 st Z,r24
  386. 378 003c 892B or r24,r25
  387. 379 003e 01F4 brne .+2
  388. 380 0040 00C0 rjmp .L78
  389. 381 0042 7F82 std Y+7,r7
  390. 382 0044 6E82 std Y+6,r6
  391. 383 0046 B986 std Y+9,r11
  392. 384 0048 A886 std Y+8,r10
  393. 385 004a DF86 std Y+15,r13
  394. 386 004c CE86 std Y+14,r12
  395. 387 004e E88A std Y+16,r14
  396. 388 0050 F98A std Y+17,r15
  397. 389 0052 0A8B std Y+18,r16
  398. 390 0054 1B8B std Y+19,r17
  399. 391 0056 1D82 std Y+5,__zero_reg__
  400. 392 0058 1C82 std Y+4,__zero_reg__
  401. 393 005a 1B82 std Y+3,__zero_reg__
  402. 394 005c 1A82 std Y+2,__zero_reg__
  403. 395 005e 81E0 ldi r24,lo8(1)
  404. 396 0060 90E0 ldi r25,0
  405. 397 0062 9D87 std Y+13,r25
  406. 398 0064 8C87 std Y+12,r24
  407. GAS LISTING /tmp/cc5O7ouI.s page 8
  408. 399 0066 9B87 std Y+11,r25
  409. 400 0068 8A87 std Y+10,r24
  410. 401 006a 1C8A std Y+20,__zero_reg__
  411. 402 006c 1D8A std Y+21,__zero_reg__
  412. 403 006e 1E8A std Y+22,__zero_reg__
  413. 404 0070 1F8A std Y+23,__zero_reg__
  414. 405 0072 CE01 movw r24,r28
  415. 406 0074 0E94 0000 call InitKEY
  416. 407 /* #APP */
  417. 408 ; 364 "../../nut/dev/keys.c" 1
  418. 409 0078 0FB6 in __tmp_reg__, __SREG__
  419. 410 007a F894 cli
  420. 411 007c 0F92 push __tmp_reg__
  421. 412
  422. 413 ; 0 "" 2
  423. 414 /* #NOAPP */
  424. 415 007e 8091 0000 lds r24,first_key
  425. 416 0082 9091 0000 lds r25,first_key+1
  426. 417 0086 0097 sbiw r24,0
  427. 418 0088 01F0 breq .L80
  428. 419 008a 9983 std Y+1,r25
  429. 420 008c 8883 st Y,r24
  430. 421 .L80:
  431. 422 008e D093 0000 sts first_key+1,r29
  432. 423 0092 C093 0000 sts first_key,r28
  433. 424 /* #APP */
  434. 425 ; 373 "../../nut/dev/keys.c" 1
  435. 426 0096 0F90 pop __tmp_reg__
  436. 427 0098 0FBE out __SREG__, __tmp_reg__
  437. 428
  438. 429 ; 0 "" 2
  439. 430 /* #NOAPP */
  440. 431 009a 8091 0000 lds r24,key_tmr
  441. 432 009e 9091 0000 lds r25,key_tmr+1
  442. 433 00a2 892B or r24,r25
  443. 434 00a4 01F4 brne .L79
  444. 435 00a6 20E0 ldi r18,0
  445. 436 00a8 31E0 ldi r19,lo8(1)
  446. 437 00aa 40E0 ldi r20,lo8(key_evt)
  447. 438 00ac 50E0 ldi r21,hi8(key_evt)
  448. 439 00ae 60E0 ldi r22,lo8(gs(sys_key))
  449. 440 00b0 70E0 ldi r23,hi8(gs(sys_key))
  450. 441 00b2 80E0 ldi r24,lo8(.LC0)
  451. 442 00b4 90E0 ldi r25,hi8(.LC0)
  452. 443 00b6 0E94 0000 call NutThreadCreate
  453. 444 00ba 00E0 ldi r16,0
  454. 445 00bc 20E0 ldi r18,lo8(key_evt)
  455. 446 00be 30E0 ldi r19,hi8(key_evt)
  456. 447 00c0 40E0 ldi r20,lo8(gs(KeyTimerCb))
  457. 448 00c2 50E0 ldi r21,hi8(gs(KeyTimerCb))
  458. 449 00c4 6AE0 ldi r22,lo8(10)
  459. 450 00c6 70E0 ldi r23,0
  460. 451 00c8 80E0 ldi r24,0
  461. 452 00ca 90E0 ldi r25,0
  462. 453 00cc 0E94 0000 call NutTimerStart
  463. 454 00d0 9093 0000 sts key_tmr+1,r25
  464. 455 00d4 8093 0000 sts key_tmr,r24
  465. GAS LISTING /tmp/cc5O7ouI.s page 9
  466. 456 00d8 00C0 rjmp .L79
  467. 457 .L78:
  468. 458 00da 8FEF ldi r24,lo8(-1)
  469. 459 00dc 9FEF ldi r25,lo8(-1)
  470. 460 00de 00C0 rjmp .L75
  471. 461 .L79:
  472. 462 00e0 80E0 ldi r24,0
  473. 463 00e2 90E0 ldi r25,0
  474. 464 .L75:
  475. 465 /* epilogue start */
  476. 466 00e4 DF91 pop r29
  477. 467 00e6 CF91 pop r28
  478. 468 00e8 1F91 pop r17
  479. 469 00ea 0F91 pop r16
  480. 470 00ec FF90 pop r15
  481. 471 00ee EF90 pop r14
  482. 472 00f0 DF90 pop r13
  483. 473 00f2 CF90 pop r12
  484. 474 00f4 BF90 pop r11
  485. 475 00f6 AF90 pop r10
  486. 476 00f8 9F90 pop r9
  487. 477 00fa 8F90 pop r8
  488. 478 00fc 7F90 pop r7
  489. 479 00fe 6F90 pop r6
  490. 480 0100 5F90 pop r5
  491. 481 0102 4F90 pop r4
  492. 482 0104 3F90 pop r3
  493. 483 0106 2F90 pop r2
  494. 484 0108 0895 ret
  495. 485 .size NutRegisterKey, .-NutRegisterKey
  496. 486 .global key_evt
  497. 487 .section .bss
  498. 488 .type key_evt, @object
  499. 489 .size key_evt, 2
  500. 490 key_evt:
  501. 491 0000 0000 .zero 2
  502. 492 .global key_tmr
  503. 493 .type key_tmr, @object
  504. 494 .size key_tmr, 2
  505. 495 key_tmr:
  506. 496 0002 0000 .zero 2
  507. 497 .local first_key
  508. 498 .comm first_key,2,1
  509. 499 .ident "GCC: (GNU) 5.3.0"
  510. 500 .global __do_copy_data
  511. 501 .global __do_clear_bss
  512. GAS LISTING /tmp/cc5O7ouI.s page 10
  513. DEFINED SYMBOLS
  514. *ABS*:0000000000000000 keys.c
  515. /tmp/cc5O7ouI.s:2 *ABS*:000000000000003e __SP_H__
  516. /tmp/cc5O7ouI.s:3 *ABS*:000000000000003d __SP_L__
  517. /tmp/cc5O7ouI.s:4 *ABS*:000000000000003f __SREG__
  518. /tmp/cc5O7ouI.s:5 *ABS*:000000000000003b __RAMPZ__
  519. /tmp/cc5O7ouI.s:6 *ABS*:0000000000000000 __tmp_reg__
  520. /tmp/cc5O7ouI.s:7 *ABS*:0000000000000001 __zero_reg__
  521. /tmp/cc5O7ouI.s:11 .text.KeyTimerCb:0000000000000000 KeyTimerCb
  522. /tmp/cc5O7ouI.s:22 .text.sys_key:0000000000000000 sys_key
  523. .bss:0000000000000004 first_key
  524. /tmp/cc5O7ouI.s:207 .text.NutGetKeyState:0000000000000000 NutGetKeyState
  525. /tmp/cc5O7ouI.s:231 .text.NutGetKeyTime:0000000000000000 NutGetKeyTime
  526. /tmp/cc5O7ouI.s:260 .text.InitKEY:0000000000000000 InitKEY
  527. /tmp/cc5O7ouI.s:289 .text.NutAssignKeyEvt:0000000000000000 NutAssignKeyEvt
  528. /tmp/cc5O7ouI.s:315 .text.NutAssignKeyFkt:0000000000000000 NutAssignKeyFkt
  529. /tmp/cc5O7ouI.s:344 .text.NutRegisterKey:0000000000000000 NutRegisterKey
  530. /tmp/cc5O7ouI.s:495 .bss:0000000000000002 key_tmr
  531. /tmp/cc5O7ouI.s:490 .bss:0000000000000000 key_evt
  532. UNDEFINED SYMBOLS
  533. NutEventPostAsync
  534. NutThreadSetPriority
  535. NutEventWait
  536. NutGetMillis
  537. GpioPinGet
  538. NutEventPost
  539. GpioPinConfigSet
  540. malloc
  541. NutThreadCreate
  542. NutTimerStart
  543. __do_copy_data
  544. __do_clear_bss