📄 uimgr.lst
字号:
209:UIMgr.c **** need to NCK this request, since its too
210:UIMgr.c **** large...reset everything...*/
211:UIMgr.c **** charCount=0;
212:UIMgr.c **** charIndex=0;
213:UIMgr.c **** tokenCount=0;
214:UIMgr.c **** receivedCmd = invalidCmd;
215:UIMgr.c **** }
216:UIMgr.c **** else
217:UIMgr.c **** {
218:UIMgr.c **** /* tokenCount is still in range...*/
219:UIMgr.c **** UIMgr_convertTokenToValue();
220:UIMgr.c **** tokenCount++;
221:UIMgr.c **** }
222:UIMgr.c **** }
223:UIMgr.c **** }
224:UIMgr.c **** else if ( (tmpData >= 'A' && tmpData <= 'Z') ||
225:UIMgr.c **** (tmpData >= '0' && tmpData <= '9') )
226:UIMgr.c **** {
227:UIMgr.c **** /* a valid range of token was received */
228:UIMgr.c **** asciiTokenBuffer[charIndex] = tmpData;
229:UIMgr.c **** charCount++;
230:UIMgr.c **** charIndex++;
231:UIMgr.c **** if (charCount > MAX_TOKEN_LENGTH)//=3
232:UIMgr.c **** {
233:UIMgr.c **** /* we have received a token that cannot be handled...
234:UIMgr.c **** set the received cmd to an invalid cmd, and wait
235:UIMgr.c **** for the \r to process it */
236:UIMgr.c **** receivedCmd = invalidCmd;
237:UIMgr.c **** charIndex = 0; /* ...so we won't overwrite memory */
238:UIMgr.c **** }
239:UIMgr.c **** }
240:UIMgr.c **** else
241:UIMgr.c **** {
242:UIMgr.c **** /* an invalid character was received */
243:UIMgr.c **** receivedCmd = invalidCmd;
229 .LM16:
230 006e 9091 0000 lds r25,UIMgr_rxFifoHead
231 0072 8091 0000 lds r24,UIMgr_rxFifoTail
232 0076 9817 cp r25,r24
233 0078 09F4 brne .+2
234 007a 81C0 rjmp .L29
235 007c C6E0 ldi r28,lo8(6)
236 .L27:
238 .LM17:
239 007e 0E94 0000 call UIMgr_readRxFifo
240 0082 382F mov r19,r24
242 .LM18:
243 0084 8D30 cpi r24,lo8(13)
244 0086 69F5 brne .L11
246 .LM19:
247 0088 8091 0000 lds r24,tokenCount
248 008c 8823 tst r24
249 008e 19F4 brne .L12
251 .LM20:
252 0090 0E94 0000 call UIMgr_convertTokenToCmd
253 0094 07C0 rjmp .L13
254 .L12:
256 .LM21:
257 0096 0E94 0000 call UIMgr_convertTokenToValue
259 .LM22:
260 009a 8091 0000 lds r24,tokenCount
261 009e 8F5F subi r24,lo8(-(1))
262 00a0 8093 0000 sts tokenCount,r24
263 .L13:
265 .LM23:
266 00a4 84E6 ldi r24,lo8(100)
267 00a6 90E0 ldi r25,hi8(100)
268 00a8 0E94 0000 call Utility_delay
270 .LM24:
271 00ac 8091 0000 lds r24,receivedCmd
272 00b0 8550 subi r24,lo8(-(-5))
273 00b2 8230 cpi r24,lo8(2)
274 00b4 30F4 brsh .L14
276 .LM25:
277 00b6 0E94 0000 call UIMgr_sendNck
279 .LM26:
280 00ba 80E9 ldi r24,lo8(-112)
281 00bc 0E94 0000 call Exec_writeEventFifo
282 00c0 07C0 rjmp .L15
283 .L14:
285 .LM27:
286 00c2 0E94 0000 call UIMgr_sendAck
288 .LM28:
289 00c6 80E9 ldi r24,lo8(-112)
290 00c8 0E94 0000 call Exec_writeEventFifo
292 .LM29:
293 00cc 0E94 0000 call UIMgr_executeCmd
294 .L15:
296 .LM30:
297 00d0 1092 0000 sts tokenCount,__zero_reg__
299 .LM31:
300 00d4 80E4 ldi r24,lo8(64)
301 00d6 E0E0 ldi r30,lo8(tokenBuffer)
302 00d8 F0E0 ldi r31,hi8(tokenBuffer)
303 00da 1192 st Z+,__zero_reg__
304 00dc 8A95 dec r24
305 00de E9F7 brne .-6
306 00e0 47C0 rjmp .L9
307 .L11:
309 .LM32:
310 00e2 8032 cpi r24,lo8(32)
311 00e4 21F5 brne .L17
313 .LM33:
314 00e6 8091 0000 lds r24,tokenCount
315 00ea 8823 tst r24
316 00ec 41F4 brne .L18
318 .LM34:
319 00ee 0E94 0000 call UIMgr_convertTokenToCmd
321 .LM35:
322 00f2 8091 0000 lds r24,tokenCount
323 00f6 8F5F subi r24,lo8(-(1))
324 00f8 8093 0000 sts tokenCount,r24
325 00fc 39C0 rjmp .L9
326 .L18:
328 .LM36:
329 00fe 8091 0000 lds r24,tokenCount
330 0102 9927 clr r25
331 0104 0196 adiw r24,1
332 0106 8034 cpi r24,64
333 0108 9105 cpc r25,__zero_reg__
334 010a 4CF0 brlt .L20
336 .LM37:
337 010c 1092 0000 sts charCount,__zero_reg__
339 .LM38:
340 0110 1092 0000 sts charIndex,__zero_reg__
342 .LM39:
343 0114 1092 0000 sts tokenCount,__zero_reg__
345 .LM40:
346 0118 C093 0000 sts receivedCmd,r28
347 011c 29C0 rjmp .L9
348 .L20:
350 .LM41:
351 011e 0E94 0000 call UIMgr_convertTokenToValue
353 .LM42:
354 0122 8091 0000 lds r24,tokenCount
355 0126 8F5F subi r24,lo8(-(1))
356 0128 8093 0000 sts tokenCount,r24
357 012c 21C0 rjmp .L9
358 .L17:
360 .LM43:
361 012e 8154 subi r24,lo8(-(-65))
362 0130 8A31 cpi r24,lo8(26)
363 0132 18F0 brlo .L24
364 0134 8F5E subi r24,lo8(-(17))
365 0136 8A30 cpi r24,lo8(10)
366 0138 C8F4 brsh .L23
367 .L24:
369 .LM44:
370 013a 2091 0000 lds r18,charIndex
371 013e 822F mov r24,r18
372 0140 9927 clr r25
373 0142 FC01 movw r30,r24
374 0144 E050 subi r30,lo8(-(asciiTokenBuffer))
375 0146 F040 sbci r31,hi8(-(asciiTokenBuffer))
376 0148 3083 st Z,r19
378 .LM45:
379 014a 8091 0000 lds r24,charCount
380 014e 982F mov r25,r24
381 0150 9F5F subi r25,lo8(-(1))
382 0152 9093 0000 sts charCount,r25
384 .LM46:
385 0156 822F mov r24,r18
386 0158 8F5F subi r24,lo8(-(1))
387 015a 8093 0000 sts charIndex,r24
389 .LM47:
390 015e 9430 cpi r25,lo8(4)
391 0160 38F0 brlo .L9
393 .LM48:
394 0162 C093 0000 sts receivedCmd,r28
396 .LM49:
397 0166 1092 0000 sts charIndex,__zero_reg__
398 016a 02C0 rjmp .L9
399 .L23:
401 .LM50:
402 016c C093 0000 sts receivedCmd,r28
403 .L9:
404 0170 9091 0000 lds r25,UIMgr_rxFifoHead
405 0174 8091 0000 lds r24,UIMgr_rxFifoTail
406 0178 9817 cp r25,r24
407 017a 09F0 breq .+2
408 017c 80CF rjmp .L27
409 .L29:
244:UIMgr.c **** }
245:UIMgr.c **** } /* end while */
246:UIMgr.c ****
247:UIMgr.c **** asm volatile("clt"::); /* clear out the T flag in case it wasn't
411 .LM51:
412 /* #APP */
413 017e E894 clt
414 /* #NOAPP */
415 /* epilogue: frame size=0 */
416 0180 CF91 pop r28
417 0182 0895 ret
418 /* epilogue end (size=2) */
419 /* function UIMgr_processReceivedData size 141 (138) */
424 .Lscope3:
427 UIMgr_executeCmd:
248:UIMgr.c **** cleared already */
249:UIMgr.c **** }
250:UIMgr.c ****
251:UIMgr.c **** /***********************************************************
252:UIMgr.c **** Function Name: UIMgr_executeCmd
253:UIMgr.c **** Function Description: This function is responsible for
254:UIMgr.c **** executing whatever cmd is stored in the receivedCmd
255:UIMgr.c **** object.
256:UIMgr.c **** Inputs: none
257:UIMgr.c **** Outputs: none
258:UIMgr.c **** ***********************************************************/
259:UIMgr.c **** static void UIMgr_executeCmd(void)
260:UIMgr.c **** {
429 .LM52:
430 /* prologue: frame size=0 */
431 0184 CF93 push r28
432 0186 DF93 push r29
433 /* prologue end (size=2) */
261:UIMgr.c **** unsigned char i;//,eepromData, num_writes=0;
262:UIMgr.c **** unsigned char *pData;
263:UIMgr.c **** #if DEBUG_COLOR_MAP
264:UIMgr.c **** unsigned char asciiBuffer[5];
265:UIMgr.c **** #endif
266:UIMgr.c ****
267:UIMgr.c **** if (receivedCmd == pingCmd)
435 .LM53:
436 0188 8091 0000 lds r24,receivedCmd
437 018c 8130 cpi r24,lo8(1)
438 018e D9F1 breq .L30
268:UIMgr.c **** {
269:UIMgr.c **** }
270:UIMgr.c **** else if (receivedCmd == getVersionCmd)
440 .LM54:
441 0190 8823 tst r24
442 0192 69F4 brne .L33
271:UIMgr.c **** {
272:UIMgr.c **** pData = AVRcamVersion;
444 .LM55:
445 0194 C0E0 ldi r28,lo8(AVRcamVersion)
446 0196 D0E0 ldi r29,hi8(AVRcamVersion)
273:UIMgr.c **** while(*pData != 0)
274:UIMgr.c **** {
275:UIMgr.c **** UIMgr_writeTxFifo(*pData++);
448 .LM56:
449 0198 8091 0000 lds r24,AVRcamVersion
450 019c 8823 tst r24
451 019e 99F1 breq .L30
452 .L36:
453 01a0 8991 ld r24,Y+
454 01a2 0E94 0000 call UIMgr_writeTxFifo
455 01a6 8881 ld r24,Y
456 01a8 8823 tst r24
457 01aa D1F7 brne .L36
458 01ac 2CC0 rjmp .L30
459 .L33:
276:UIMgr.c **** }
277:UIMgr.c **** }
278:UIMgr.c **** else if (receivedCmd == resetCameraCmd)
461 .LM57:
462 01ae 8091 0000 lds r24,receivedCmd
463 01b2 8430 cpi r24,lo8(4)
464 01b4 19F4 brne .L38
279:UIMgr.c **** {
280:UIMgr.c **** CamInt_resetCam();
466 .LM58:
467 01b6 0E94 0000 call CamInt_resetCam
468 01ba 25C0 rjmp .L30
469 .L38:
281:UIMgr.c **** }
282:UIMgr.c **** else if (receivedCmd == dumpFrameCmd)
471 .LM59:
472 01bc 8091 0000 lds r24,receivedCmd
473 01c0 8330 cpi r24,lo8(3)
474 01c2 41F4 brne .L40
283:UIMgr.c **** {
284:UIMgr.c **** /* publish the event that will indicate that
285:UIMgr.c **** a request has come to dump a frame...this will
286:UIMgr.c **** be received by the FrameMgr, which will begin
287:UIMgr.c **** dumping the frame...a short delay is needed
288:UIMgr.c **** here to keep the Java demo app happy (sometimes
289:UIMgr.c **** it wouldn't be able to receive the serial data
290:UIMgr.c **** as quickly as AVRcam can provide it). */
291:UIMgr.c **** Utility_delay(100);
476 .LM60:
477 01c4 84E6 ldi r24,lo8(100)
478 01c6 90E0 ldi r25,hi8(100)
479 01c8 0E94 0000 call Utility_delay
292:UIMgr.c **** PUBLISH_EVENT(EV_DUMP_FRAME);
481 .LM61:
482 01cc 82E0 ldi r24,lo8(2)
483 01ce 0E94 0000 call Exec_writeEventFifo
484 01d2 19C0 rjmp .L30
485 .L40:
293:UIMgr.c **** }
294:UIMgr.c **** else if (receivedCmd == setCameraRegsCmd)
487 .LM62:
488 01d4 8091 0000 lds r24,receivedCmd
489 01d8 8230 cpi r24,lo8(2)
490 01da A9F4 brne .L30
295:UIMgr.c **** {
296:UIMgr.c **** /* we need to gather the tokens and
297:UIMgr.c **** build config cmds to be sent to the camera */
298:UIMgr.c **** for (i=1; i<tokenCount; i+=2) /* starts at 1 since first token
492 .LM63:
493 01dc C1E0 ldi r28,lo8(1)
494 01de 8091 0000 lds r24,tokenCount
495 01e2 C817 cp r28,r24
496 01e4 70F4 brsh .L50
497 .L46:
299:UIMgr.c **** is the CR cmd */
300:UIMgr.c **** {
301:UIMgr.c **** CamConfig_setCamReg(tokenBuffer[i],tokenBuffer[i+1]);
499 .LM64:
500 01e6 8C2F mov r24,r28
501 01e8 9927 clr r25
502 01ea FC01 movw r30,r24
503 01ec E050 subi r30,lo8(-(tokenBuffer))
504 01ee F040 sbci r31,hi8(-(tokenBuffer))
505 01f0 6181 ldd r22,Z+1
506 01f2 8081 ld r24,Z
507 01f4 0E94 0000 call CamConfig_setCamReg
509 .LM65:
510 01f8 CE5F subi r28,lo8(-(2))
511 01fa 8091 0000 lds r24,tokenCount
512 01fe C817 cp r28,r24
513 0200 90F3 brlo .L46
514 .L50:
302:UIMgr.c **** }
303:UIMgr.c **** CamConfig_sendFifoCmds();
516 .LM66:
517 0202 0E94 0000 call CamConfig_sendFifoCmds
518 .L30:
519 /* epilogue: frame size=0 */
520 0206 DF91 pop r29
521 0208 CF91 pop r28
522 020a 0895 ret
523 /* epilogue end (size=3) */
524 /* function UIMgr_executeCmd size 68 (63) */
530 .Lscope4:
533 UIMgr_convertTokenToValue:
304:UIMgr.c **** }
305:UIMgr.c ****
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -