Přeskočit na hlavní obsah

Modul MCAL GPDMA

Podporované rodiny STM32: H5 · U5
Nepodporované: G4, H7, L4

Přehled​

Modul Gpdma (General-Purpose DMA) v MCAL poskytuje abstrakci pro konfiguraci a správu přenosů DMA na mikrokontrolérech STM32. Zpřístupňuje veřejné typy a konfigurační struktury pro flexibilní využití DMA ve vestavěných aplikacích.

Struktura souborů​

  • Gpdma_Port.h — Deklaruje funkce veřejného API modulu Gpdma.
  • Gpdma_Types.h — Definuje veřejné typy, výčty a struktury používané API Gpdma.
  • Gpdma.c — Implementuje funkcionalitu modulu Gpdma.

Veřejné API​

Veřejné funkce​

Všechny veřejné funkce jsou deklarovány v Gpdma_Port.h. Tyto funkce umožňují přístup ke konfiguraci DMA, řízení přenosů a dotazům na stav. Příklady funkcí mohou zahrnovat:

  • Gpdma_Init(const gpdma_ConfigStruct_t* config)
  • Gpdma_StartTransfer(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel, const gpdma_TransferConfig_t* xferConfig)
  • Gpdma_StopTransfer(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel)
  • Gpdma_GetTransferState(gpdma_PeriphId_t periph, gpdma_ChannelId_t channel)

Úplný seznam dostupných funkcí a jejich dokumentaci naleznete v Gpdma_Port.h.

Veřejné typy​

Všechny veřejné typy používané API Gpdma jsou definovány v Gpdma_Types.h. Patří mezi ně:

  • Výčty pro periferie DMA, kanály, směry, priority, události a chyby (např. gpdma_PeriphId_t, gpdma_ChannelId_t, gpdma_Direction_t)
  • Struktury pro konfiguraci (např. gpdma_TransferConfig_t, gpdma_ConfigStruct_t)
  • Typy ukazatelů na callback funkce pro přerušení

Podrobné definice typů a jejich popisy naleznete v Gpdma_Types.h.

Příklad použití​

#include "Gpdma_Port.h"
gpdmaTransferConfigt xferConfig = { // Initialize transfer configuration fields };

gpdmaConfigStructt dmaConfig = { .PeriphId = GPDMAPERIPH1, .ChannelId = GPDMACHANNEL0, .TransferConfig = &xferConfig, .TransfersCount = 1, // Other fields as needed };

int main(void) { GpdmaInit(&dmaConfig); GpdmaStartTransfer(GPDMAPERIPH1, GPDMACHANNEL0, &xferConfig); // … }

🛠 Integrace s CMake​

  1. Zahrňte Gpdma_Port.h do svého projektu.
  2. Prolinkujte implementační soubory modulu Gpdma.
  3. Nakonfigurujte modul podle potřeb vašeho hardwaru.

Licence​

Tento projekt je licencován pod licencí Creative Commons Uveďte původ–Neužívejte komerčně 4.0 Mezinárodní (CC BY-NC 4.0).

Toto dílo můžete volně používat, upravovat a sdílet pro nekomerční účely za předpokladu, že uvedete odpovídající autorství.

Úplné podmínky najdete v LICENSE.md nebo navštivte creativecommons.org/licenses/by-nc/4.0.


Autoři​

Příspěvky jsou vítány! Otevřete prosím pull request.