Preskočiť na hlavný obsah

Modul MCAL GPDMA

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

Prehľad​

Modul Gpdma (General-Purpose DMA) v MCAL poskytuje abstrakciu na konfiguráciu a správu prenosov DMA na mikrokontroléroch STM32. Sprístupňuje verejné typy a konfiguračné štruktúry pre flexibilné využitie DMA vo vstavaných aplikáciách.

Štruktúra súborov​

  • Gpdma_Port.h — Deklaruje funkcie verejného API modulu Gpdma.
  • Gpdma_Types.h — Definuje verejné typy, enumerácie a štruktúry používané API Gpdma.
  • Gpdma.c — Implementuje funkcionalitu modulu Gpdma.

Verejné API​

Verejné funkcie​

Všetky verejné funkcie sú deklarované v Gpdma_Port.h. Tieto funkcie poskytujú prístup ku konfigurácii DMA, riadeniu prenosov a dotazom na stav. Príklady funkcií:

  • 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ý zoznam a dokumentáciu dostupných funkcií nájdete v Gpdma_Port.h.

Verejné typy​

Všetky verejné typy používané API Gpdma sú definované v Gpdma_Types.h. Patria medzi ne:

  • Enumerácie pre periférie DMA, kanály, smery, priority, udalosti a chyby (napr. gpdma_PeriphId_t, gpdma_ChannelId_t, gpdma_Direction_t)
  • Štruktúry pre konfiguráciu (napr. gpdma_TransferConfig_t, gpdma_ConfigStruct_t)
  • Typy ukazovateľov na callback funkcie pre prerušenia

Podrobné definície a popisy typov nájdete v Gpdma_Types.h.

Príklad použitia​

#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); // … }

🛠 Integrácia s CMake​

  1. Zahrňte Gpdma_Port.h do svojho projektu.
  2. Prilinkujte implementačné súbory modulu Gpdma.
  3. Nakonfigurujte modul podľa potrieb vášho hardvéru.

Licencia​

Tento projekt je licencovaný pod licenciou Creative Commons Attribution–NonCommercial 4.0 International (CC BY-NC 4.0).

Toto dielo môžete slobodne používať, upravovať a zdieľať na nekomerčné účely, pokiaľ uvediete primeraný zdroj.

Úplné znenie podmienok nájdete v LICENSE.md alebo na creativecommons.org/licenses/by-nc/4.0.


Autori​

Príspevky sú vítané! Otvorte prosím pull request.