STM32 DMA drivers now export an STM32_DMA_MAX_TRANSFER definition.
@@ -39,6 +39,11 @@ | ||
39 | 39 | #define STM32_DMA_ADVANCED FALSE |
40 | 40 | |
41 | 41 | /** |
42 | + * @brief Maximum number of transfers in a single operation. | |
43 | + */ | |
44 | +#define STM32_DMA_MAX_TRANSFER 65535 | |
45 | + | |
46 | +/** | |
42 | 47 | * @brief Total number of DMA streams. |
43 | 48 | * @details This is the total number of streams among all the DMA units. |
44 | 49 | */ |
@@ -37,6 +37,11 @@ | ||
37 | 37 | #define STM32_DMA_ADVANCED TRUE |
38 | 38 | |
39 | 39 | /** |
40 | + * @brief Maximum number of transfers in a single operation. | |
41 | + */ | |
42 | +#define STM32_DMA_MAX_TRANSFER 65535 | |
43 | + | |
44 | +/** | |
40 | 45 | * @brief Total number of DMA streams. |
41 | 46 | * @details This is the total number of streams among all the DMA units. |
42 | 47 | */ |
@@ -534,7 +534,7 @@ | ||
534 | 534 | */ |
535 | 535 | void spi_lld_ignore(SPIDriver *spip, size_t n) { |
536 | 536 | |
537 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
537 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
538 | 538 | |
539 | 539 | dmaStreamSetMemory0(spip->dmarx, &dummyrx); |
540 | 540 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -566,7 +566,7 @@ | ||
566 | 566 | void spi_lld_exchange(SPIDriver *spip, size_t n, |
567 | 567 | const void *txbuf, void *rxbuf) { |
568 | 568 | |
569 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
569 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
570 | 570 | |
571 | 571 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
572 | 572 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -595,7 +595,7 @@ | ||
595 | 595 | */ |
596 | 596 | void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
597 | 597 | |
598 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
598 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
599 | 599 | |
600 | 600 | dmaStreamSetMemory0(spip->dmarx, &dummyrx); |
601 | 601 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -624,7 +624,7 @@ | ||
624 | 624 | */ |
625 | 625 | void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
626 | 626 | |
627 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
627 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
628 | 628 | |
629 | 629 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
630 | 630 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -720,7 +720,7 @@ | ||
720 | 720 | */ |
721 | 721 | msg_t spi_lld_ignore(SPIDriver *spip, size_t n) { |
722 | 722 | |
723 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
723 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
724 | 724 | |
725 | 725 | dmaStreamSetMemory0(spip->dmarx, &spip->rxsink); |
726 | 726 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -755,7 +755,7 @@ | ||
755 | 755 | msg_t spi_lld_exchange(SPIDriver *spip, size_t n, |
756 | 756 | const void *txbuf, void *rxbuf) { |
757 | 757 | |
758 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
758 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
759 | 759 | |
760 | 760 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
761 | 761 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -787,7 +787,7 @@ | ||
787 | 787 | */ |
788 | 788 | msg_t spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
789 | 789 | |
790 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
790 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
791 | 791 | |
792 | 792 | dmaStreamSetMemory0(spip->dmarx, &spip->rxsink); |
793 | 793 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -819,7 +819,7 @@ | ||
819 | 819 | */ |
820 | 820 | msg_t spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
821 | 821 | |
822 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
822 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
823 | 823 | |
824 | 824 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
825 | 825 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -559,7 +559,7 @@ | ||
559 | 559 | */ |
560 | 560 | void spi_lld_ignore(SPIDriver *spip, size_t n) { |
561 | 561 | |
562 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
562 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
563 | 563 | |
564 | 564 | dmaStreamSetMemory0(spip->dmarx, &dummyrx); |
565 | 565 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -591,7 +591,7 @@ | ||
591 | 591 | void spi_lld_exchange(SPIDriver *spip, size_t n, |
592 | 592 | const void *txbuf, void *rxbuf) { |
593 | 593 | |
594 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
594 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
595 | 595 | |
596 | 596 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
597 | 597 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -620,7 +620,7 @@ | ||
620 | 620 | */ |
621 | 621 | void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
622 | 622 | |
623 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
623 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
624 | 624 | |
625 | 625 | dmaStreamSetMemory0(spip->dmarx, &dummyrx); |
626 | 626 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -649,7 +649,7 @@ | ||
649 | 649 | */ |
650 | 650 | void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
651 | 651 | |
652 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
652 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
653 | 653 | |
654 | 654 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
655 | 655 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -730,7 +730,7 @@ | ||
730 | 730 | */ |
731 | 731 | msg_t spi_lld_ignore(SPIDriver *spip, size_t n) { |
732 | 732 | |
733 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
733 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
734 | 734 | |
735 | 735 | dmaStreamSetMemory0(spip->dmarx, &spip->rxsink); |
736 | 736 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -765,7 +765,7 @@ | ||
765 | 765 | msg_t spi_lld_exchange(SPIDriver *spip, size_t n, |
766 | 766 | const void *txbuf, void *rxbuf) { |
767 | 767 | |
768 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
768 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
769 | 769 | |
770 | 770 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
771 | 771 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -797,7 +797,7 @@ | ||
797 | 797 | */ |
798 | 798 | msg_t spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
799 | 799 | |
800 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
800 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
801 | 801 | |
802 | 802 | dmaStreamSetMemory0(spip->dmarx, &spip->rxsink); |
803 | 803 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -829,7 +829,7 @@ | ||
829 | 829 | */ |
830 | 830 | msg_t spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
831 | 831 | |
832 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
832 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
833 | 833 | |
834 | 834 | dmaStreamSetMemory0(spip->dmarx, rxbuf); |
835 | 835 | dmaStreamSetTransactionSize(spip->dmarx, n); |
@@ -825,7 +825,7 @@ | ||
825 | 825 | */ |
826 | 826 | void spi_lld_ignore(SPIDriver *spip, size_t n) { |
827 | 827 | |
828 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
828 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
829 | 829 | |
830 | 830 | spi_lld_wait_complete(spip); |
831 | 831 |
@@ -885,7 +885,7 @@ | ||
885 | 885 | void spi_lld_exchange(SPIDriver *spip, size_t n, |
886 | 886 | const void *txbuf, void *rxbuf) { |
887 | 887 | |
888 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
888 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
889 | 889 | |
890 | 890 | spi_lld_wait_complete(spip); |
891 | 891 |
@@ -942,7 +942,7 @@ | ||
942 | 942 | */ |
943 | 943 | void spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
944 | 944 | |
945 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
945 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
946 | 946 | |
947 | 947 | spi_lld_wait_complete(spip); |
948 | 948 |
@@ -999,7 +999,7 @@ | ||
999 | 999 | */ |
1000 | 1000 | void spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
1001 | 1001 | |
1002 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
1002 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
1003 | 1003 | |
1004 | 1004 | spi_lld_wait_complete(spip); |
1005 | 1005 |
@@ -1069,7 +1069,7 @@ | ||
1069 | 1069 | */ |
1070 | 1070 | msg_t spi_lld_ignore(SPIDriver *spip, size_t n) { |
1071 | 1071 | |
1072 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
1072 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
1073 | 1073 | |
1074 | 1074 | #if defined(STM32_SPI_DMA_REQUIRED) && defined(STM32_SPI_BDMA_REQUIRED) |
1075 | 1075 | if (spip->is_bdma) |
@@ -1130,7 +1130,7 @@ | ||
1130 | 1130 | msg_t spi_lld_exchange(SPIDriver *spip, size_t n, |
1131 | 1131 | const void *txbuf, void *rxbuf) { |
1132 | 1132 | |
1133 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
1133 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
1134 | 1134 | |
1135 | 1135 | #if defined(STM32_SPI_DMA_REQUIRED) && defined(STM32_SPI_BDMA_REQUIRED) |
1136 | 1136 | if (spip->is_bdma) |
@@ -1188,7 +1188,7 @@ | ||
1188 | 1188 | */ |
1189 | 1189 | msg_t spi_lld_send(SPIDriver *spip, size_t n, const void *txbuf) { |
1190 | 1190 | |
1191 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
1191 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
1192 | 1192 | |
1193 | 1193 | #if defined(STM32_SPI_DMA_REQUIRED) && defined(STM32_SPI_BDMA_REQUIRED) |
1194 | 1194 | if (spip->is_bdma) |
@@ -1246,7 +1246,7 @@ | ||
1246 | 1246 | */ |
1247 | 1247 | msg_t spi_lld_receive(SPIDriver *spip, size_t n, void *rxbuf) { |
1248 | 1248 | |
1249 | - osalDbgAssert(n < 65536, "unsupported DMA transfer size"); | |
1249 | + osalDbgAssert(n <= STM32_DMA_MAX_TRANSFER, "unsupported DMA transfer size"); | |
1250 | 1250 | |
1251 | 1251 | #if defined(STM32_SPI_DMA_REQUIRED) && defined(STM32_SPI_BDMA_REQUIRED) |
1252 | 1252 | if (spip->is_bdma) |
@@ -74,6 +74,7 @@ | ||
74 | 74 | ***************************************************************************** |
75 | 75 | |
76 | 76 | *** Next *** |
77 | +- NEW: STM32 DMA drivers now export an STM32_DMA_MAX_TRANSFER definition. | |
77 | 78 | - NEW: PAL events for RP2040 added. |
78 | 79 | - NEW: Added a "waend" field to the thread structure in RT for debug |
79 | 80 | convenience. |