/*
 * llmemcpydma.h
 *
 *  Created on: Nov 4, 2019
 *      Author: abody
 */

#ifndef LL_MEMCPY_DMA_H_
#define LL_MEMCPY_DMA_H_
#include "f4ll/dmahelper.h"
#include "singleton.h"

namespace f4ll {

class MemcpyDma : public Singleton<MemcpyDma>, private DmaHelper
{
	friend class Singleton<MemcpyDma>;
public:
	void* Copy(void *dst, void const *src, uint16_t length);
	void DmaTransferCompleted();
private:
	MemcpyDma(DMA_TypeDef *dma, uint32_t stream);
	bool volatile m_busy = false;
};

} /* namespace f4ll */

#endif /* LL_MEMCPY_DMA_H_ */
