Modul MCAL GPDMA
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
- Zahrňte
Gpdma_Port.hdo svojho projektu. - Prilinkujte implementačné súbory modulu Gpdma.
- 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
- Mr.Nobody — embedbits.com
Príspevky sú vítané! Otvorte prosím pull request.