📄 stm32f10x_dma.lst
字号:
386 * - DMA2_FLAG_GL3: DMA2 Channel3 global flag.
387 * - DMA2_FLAG_TC3: DMA2 Channel3 transfer complete flag.
388 * - DMA2_FLAG_HT3: DMA2 Channel3 half transfer flag.
389 * - DMA2_FLAG_TE3: DMA2 Channel3 transfer error flag.
390 * - DMA2_FLAG_GL4: DMA2 Channel4 global flag.
391 * - DMA2_FLAG_TC4: DMA2 Channel4 transfer complete flag.
392 * - DMA2_FLAG_HT4: DMA2 Channel4 half transfer flag.
393 * - DMA2_FLAG_TE4: DMA2 Channel4 transfer error flag.
394 * - DMA2_FLAG_GL5: DMA2 Channel5 global flag.
395 * - DMA2_FLAG_TC5: DMA2 Channel5 transfer complete flag.
396 * - DMA2_FLAG_HT5: DMA2 Channel5 half transfer flag.
397 * - DMA2_FLAG_TE5: DMA2 Channel5 transfer error flag.
398 * Output : None
399 * Return : The new state of DMA_FLAG (SET or RESET).
400 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
401 FlagStatus DMA_GetFlagStatus(u32 DMA_FLAG)
402 {
403 FlagStatus bitstatus = RESET;
404 u32 tmpreg = 0;
405
406 /* Check the parameters */
407 assert_param(IS_DMA_GET_FLAG(DMA_FLAG));
408
409 /* Calculate the used DMA */
410 if ((DMA_FLAG & FLAG_Mask) != (u32)RESET)
\ DMA_GetFlagStatus:
\ 00000000 C100 LSLS R1,R0,#+3
\ 00000002 02D5 BPL.N ??DMA_GetFlagStatus_0
411 {
412 /* Get DMA2 ISR register value */
413 tmpreg = DMA2->ISR ;
\ 00000004 .... LDR.N R1,??DataTable6 ;; 0x40020400
\ 00000006 0968 LDR R1,[R1, #+0]
\ 00000008 01E0 B.N ??DMA_GetFlagStatus_1
414 }
415 else
416 {
417 /* Get DMA1 ISR register value */
418 tmpreg = DMA1->ISR ;
\ ??DMA_GetFlagStatus_0:
\ 0000000A .... LDR.N R1,??DataTable7 ;; 0x40020000
\ 0000000C 0968 LDR R1,[R1, #+0]
419 }
420
421 /* Check the status of the specified DMA flag */
422 if ((tmpreg & DMA_FLAG) != (u32)RESET)
\ ??DMA_GetFlagStatus_1:
\ 0000000E 0840 ANDS R0,R0,R1
\ 00000010 01D0 BEQ.N ??DMA_GetFlagStatus_2
423 {
424 /* DMA_FLAG is set */
425 bitstatus = SET;
\ 00000012 0120 MOVS R0,#+1
\ 00000014 7047 BX LR
426 }
427 else
428 {
429 /* DMA_FLAG is reset */
430 bitstatus = RESET;
\ ??DMA_GetFlagStatus_2:
\ 00000016 0020 MOVS R0,#+0
431 }
432
433 /* Return the DMA_FLAG status */
434 return bitstatus;
\ 00000018 7047 BX LR ;; return
435 }
436
437 /*******************************************************************************
438 * Function Name : DMA_ClearFlag
439 * Description : Clears the DMAy Channelx's pending flags.
440 * Input : - DMA_FLAG: specifies the flag to clear.
441 * This parameter can be any combination (for the same DMA) of
442 * the following values:
443 * - DMA1_FLAG_GL1: DMA1 Channel1 global flag.
444 * - DMA1_FLAG_TC1: DMA1 Channel1 transfer complete flag.
445 * - DMA1_FLAG_HT1: DMA1 Channel1 half transfer flag.
446 * - DMA1_FLAG_TE1: DMA1 Channel1 transfer error flag.
447 * - DMA1_FLAG_GL2: DMA1 Channel2 global flag.
448 * - DMA1_FLAG_TC2: DMA1 Channel2 transfer complete flag.
449 * - DMA1_FLAG_HT2: DMA1 Channel2 half transfer flag.
450 * - DMA1_FLAG_TE2: DMA1 Channel2 transfer error flag.
451 * - DMA1_FLAG_GL3: DMA1 Channel3 global flag.
452 * - DMA1_FLAG_TC3: DMA1 Channel3 transfer complete flag.
453 * - DMA1_FLAG_HT3: DMA1 Channel3 half transfer flag.
454 * - DMA1_FLAG_TE3: DMA1 Channel3 transfer error flag.
455 * - DMA1_FLAG_GL4: DMA1 Channel4 global flag.
456 * - DMA1_FLAG_TC4: DMA1 Channel4 transfer complete flag.
457 * - DMA1_FLAG_HT4: DMA1 Channel4 half transfer flag.
458 * - DMA1_FLAG_TE4: DMA1 Channel4 transfer error flag.
459 * - DMA1_FLAG_GL5: DMA1 Channel5 global flag.
460 * - DMA1_FLAG_TC5: DMA1 Channel5 transfer complete flag.
461 * - DMA1_FLAG_HT5: DMA1 Channel5 half transfer flag.
462 * - DMA1_FLAG_TE5: DMA1 Channel5 transfer error flag.
463 * - DMA1_FLAG_GL6: DMA1 Channel6 global flag.
464 * - DMA1_FLAG_TC6: DMA1 Channel6 transfer complete flag.
465 * - DMA1_FLAG_HT6: DMA1 Channel6 half transfer flag.
466 * - DMA1_FLAG_TE6: DMA1 Channel6 transfer error flag.
467 * - DMA1_FLAG_GL7: DMA1 Channel7 global flag.
468 * - DMA1_FLAG_TC7: DMA1 Channel7 transfer complete flag.
469 * - DMA1_FLAG_HT7: DMA1 Channel7 half transfer flag.
470 * - DMA1_FLAG_TE7: DMA1 Channel7 transfer error flag.
471 * - DMA2_FLAG_GL1: DMA2 Channel1 global flag.
472 * - DMA2_FLAG_TC1: DMA2 Channel1 transfer complete flag.
473 * - DMA2_FLAG_HT1: DMA2 Channel1 half transfer flag.
474 * - DMA2_FLAG_TE1: DMA2 Channel1 transfer error flag.
475 * - DMA2_FLAG_GL2: DMA2 Channel2 global flag.
476 * - DMA2_FLAG_TC2: DMA2 Channel2 transfer complete flag.
477 * - DMA2_FLAG_HT2: DMA2 Channel2 half transfer flag.
478 * - DMA2_FLAG_TE2: DMA2 Channel2 transfer error flag.
479 * - DMA2_FLAG_GL3: DMA2 Channel3 global flag.
480 * - DMA2_FLAG_TC3: DMA2 Channel3 transfer complete flag.
481 * - DMA2_FLAG_HT3: DMA2 Channel3 half transfer flag.
482 * - DMA2_FLAG_TE3: DMA2 Channel3 transfer error flag.
483 * - DMA2_FLAG_GL4: DMA2 Channel4 global flag.
484 * - DMA2_FLAG_TC4: DMA2 Channel4 transfer complete flag.
485 * - DMA2_FLAG_HT4: DMA2 Channel4 half transfer flag.
486 * - DMA2_FLAG_TE4: DMA2 Channel4 transfer error flag.
487 * - DMA2_FLAG_GL5: DMA2 Channel5 global flag.
488 * - DMA2_FLAG_TC5: DMA2 Channel5 transfer complete flag.
489 * - DMA2_FLAG_HT5: DMA2 Channel5 half transfer flag.
490 * - DMA2_FLAG_TE5: DMA2 Channel5 transfer error flag.
491 * Output : None
492 * Return : None
493 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
494 void DMA_ClearFlag(u32 DMA_FLAG)
495 {
496 /* Check the parameters */
497 assert_param(IS_DMA_CLEAR_FLAG(DMA_FLAG));
498
499 /* Calculate the used DMA */
500 if ((DMA_FLAG & FLAG_Mask) != (u32)RESET)
\ DMA_ClearFlag:
\ 00000000 C100 LSLS R1,R0,#+3
\ 00000002 02D5 BPL.N ??DMA_ClearFlag_0
501 {
502 /* Clear the selected DMA flags */
503 DMA2->IFCR = DMA_FLAG;
\ 00000004 .... LDR.N R1,??DataTable8 ;; 0x40020404
\ 00000006 0860 STR R0,[R1, #+0]
\ 00000008 7047 BX LR
504 }
505 else
506 {
507 /* Clear the selected DMA flags */
508 DMA1->IFCR = DMA_FLAG;
\ ??DMA_ClearFlag_0:
\ 0000000A .... LDR.N R1,??DataTable9 ;; 0x40020004
\ 0000000C 0860 STR R0,[R1, #+0]
509 }
510 }
\ 0000000E 7047 BX LR ;; return
511
512 /*******************************************************************************
513 * Function Name : DMA_GetITStatus
514 * Description : Checks whether the specified DMAy Channelx interrupt has
515 * occurred or not.
516 * Input : - DMA_IT: specifies the DMA interrupt source to check.
517 * This parameter can be one of the following values:
518 * - DMA1_IT_GL1: DMA1 Channel1 global interrupt.
519 * - DMA1_IT_TC1: DMA1 Channel1 transfer complete interrupt.
520 * - DMA1_IT_HT1: DMA1 Channel1 half transfer interrupt.
521 * - DMA1_IT_TE1: DMA1 Channel1 transfer error interrupt.
522 * - DMA1_IT_GL2: DMA1 Channel2 global interrupt.
523 * - DMA1_IT_TC2: DMA1 Channel2 transfer complete interrupt.
524 * - DMA1_IT_HT2: DMA1 Channel2 half transfer interrupt.
525 * - DMA1_IT_TE2: DMA1 Channel2 transfer error interrupt.
526 * - DMA1_IT_GL3: DMA1 Channel3 global interrupt.
527 * - DMA1_IT_TC3: DMA1 Channel3 transfer complete interrupt.
528 * - DMA1_IT_HT3: DMA1 Channel3 half transfer interrupt.
529 * - DMA1_IT_TE3: DMA1 Channel3 transfer error interrupt.
530 * - DMA1_IT_GL4: DMA1 Channel4 global interrupt.
531 * - DMA1_IT_TC4: DMA1 Channel4 transfer complete interrupt.
532 * - DMA1_IT_HT4: DMA1 Channel4 half transfer interrupt.
533 * - DMA1_IT_TE4: DMA1 Channel4 transfer error interrupt.
534 * - DMA1_IT_GL5: DMA1 Channel5 global interrupt.
535 * - DMA1_IT_TC5: DMA1 Channel5 transfer complete interrupt.
536 * - DMA1_IT_HT5: DMA1 Channel5 half transfer interrupt.
537 * - DMA1_IT_TE5: DMA1 Channel5 transfer error interrupt.
538 * - DMA1_IT_GL6: DMA1 Channel6 global interrupt.
539 * - DMA1_IT_TC6: DMA1 Channel6 transfer complete interrupt.
540 * - DMA1_IT_HT6: DMA1 Channel6 half transfer interrupt.
541 * - DMA1_IT_TE6: DMA1 Channel6 transfer error interrupt.
542 * - DMA1_IT_GL7: DMA1 Channel7 global interrupt.
543 * - DMA1_IT_TC7: DMA1 Channel7 transfer complete interrupt.
544 * - DMA1_IT_HT7: DMA1 Channel7 half transfer interrupt.
545 * - DMA1_IT_TE7: DMA1 Channel7 transfer error interrupt.
546 * - DMA2_IT_GL1: DMA2 Channel1 global interrupt.
547 * - DMA2_IT_TC1: DMA2 Channel1 transfer complete interrupt.
548 * - DMA2_IT_HT1: DMA2 Channel1 half transfer interrupt.
549 * - DMA2_IT_TE1: DMA2 Channel1 transfer error interrupt.
550 * - DMA2_IT_GL2: DMA2 Channel2 global interrupt.
551 * - DMA2_IT_TC2: DMA2 Channel2 transfer complete interrupt.
552 * - DMA2_IT_HT2: DMA2 Channel2 half transfer interrupt.
553 * - DMA2_IT_TE2: DMA2 Channel2 transfer error interrupt.
554 * - DMA2_IT_GL3: DMA2 Channel3 global interrupt.
555 * - DMA2_IT_TC3: DMA2 Channel3 transfer complete interrupt.
556 * - DMA2_IT_HT3: DMA2 Channel3 half transfer interrupt.
557 * - DMA2_IT_TE3: DMA2 Channel3 transfer error interrupt.
558 * - DMA2_IT_GL4: DMA2 Channel4 global interrupt.
559 * - DMA2_IT_TC4: DMA2 Channel4 transfer complete interrupt.
560 * - DMA2_IT_HT4: DMA2 Channel4 half transfer interrupt.
561 * - DMA2_IT_TE4: DMA2 Channel4 transfer error interrupt.
562 * - DMA2_IT_GL5: DMA2 Channel5 global interrupt.
563 * - DMA2_IT_TC5: DMA2 Channel5 transfer complete interrupt.
564 * - DMA2_IT_HT5: DMA2 Channel5 half transfer interrupt.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -