f4ll_c/dmahelper.h

60 lines
1.6 KiB
C

/*
* dma_helper.h
*
* Created on: Sep 18, 2019
* Author: abody
*/
#ifndef DMA_HELPER_H_
#define DMA_HELPER_H_
#include <inttypes.h>
#include <platform/dma_ll.h>
#ifndef DECLARE_MOCKPTR
#define DECLARE_MOCKPTR(...)
#endif
#ifndef MAKE_MOCKABLE
#define MAKE_MOCKABLE(x) x
#endif
#ifdef __cplusplus
extern "C" {
#endif
struct dmainfo_t {
DMA_TypeDef *dma;
uint32_t stream;
volatile uint32_t *isReg;
volatile uint32_t *ifcReg;
uint32_t feMask;
uint32_t dmeMask;
uint32_t teMask;
uint32_t htMask;
uint32_t tcMask;
};
#ifdef UNITTEST
DECLARE_MOCKPTR(volatile uint32_t*, Dma_GetIsReg, DMA_TypeDef*, uint32_t)
DECLARE_MOCKPTR(volatile uint32_t*, Dma_GetIfcReg, DMA_TypeDef*, uint32_t)
DECLARE_MOCKPTR(uint32_t, Dma_GetDmeMask, uint32_t)
DECLARE_MOCKPTR(uint32_t, Dma_GetTeMask, uint32_t)
DECLARE_MOCKPTR(uint32_t, Dma_GetHtMask, uint32_t)
DECLARE_MOCKPTR(uint32_t, Dma_GetTcMask, uint32_t)
DECLARE_MOCKPTR(uint32_t, Dma_GetFeMask, uint32_t)
DECLARE_MOCKPTR(void, Dma_Init, struct dmainfo_t*, DMA_TypeDef*, uint32_t)
#endif // UNITTEST
volatile uint32_t* MAKE_MOCKABLE(Dma_GetIsReg)(DMA_TypeDef *dma, uint32_t stream);
volatile uint32_t* MAKE_MOCKABLE(Dma_GetIfcReg)(DMA_TypeDef *dma, uint32_t stream);
uint32_t MAKE_MOCKABLE(Dma_GetDmeMask)(uint32_t stream);
uint32_t MAKE_MOCKABLE(Dma_GetTeMask)(uint32_t stream);
uint32_t MAKE_MOCKABLE(Dma_GetHtMask)(uint32_t stream);
uint32_t MAKE_MOCKABLE(Dma_GetTcMask)(uint32_t stream);
uint32_t MAKE_MOCKABLE(Dma_GetFeMask)(uint32_t stream);
void MAKE_MOCKABLE(Dma_Init)(struct dmainfo_t *info, DMA_TypeDef *dma, uint32_t stream);
#ifdef __cplusplus
}
#endif
#endif /* DMA_HELPER_H_ */