60 lines
1.6 KiB
C
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 MOCKABLE
|
|
#define 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* MOCKABLE(Dma_GetIsReg)(DMA_TypeDef *dma, uint32_t stream);
|
|
volatile uint32_t* MOCKABLE(Dma_GetIfcReg)(DMA_TypeDef *dma, uint32_t stream);
|
|
uint32_t MOCKABLE(Dma_GetDmeMask)(uint32_t stream);
|
|
uint32_t MOCKABLE(Dma_GetTeMask)(uint32_t stream);
|
|
uint32_t MOCKABLE(Dma_GetHtMask)(uint32_t stream);
|
|
uint32_t MOCKABLE(Dma_GetTcMask)(uint32_t stream);
|
|
uint32_t MOCKABLE(Dma_GetFeMask)(uint32_t stream);
|
|
void MOCKABLE(Dma_Init)(struct dmainfo_t *info, DMA_TypeDef *dma, uint32_t stream);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* DMA_HELPER_H_ */
|