Modul MCAL GPDMA
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
- Zahrňte
Gpdma_Port.hdo svého projektu. - Prolinkujte implementační soubory modulu Gpdma.
- 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
- Mr.Nobody — embedbits.com
Příspěvky jsou vítány! Otevřete prosím pull request.