// TITLE: Private header file used to share internal variables and library.
#pragma once
#include <stdint.h> // uint32_t
#include <inc/hw_types.h> // uint8_t
struct tUSBDMAInstance {
enum{
MAX_CHANNELS = 8
};
uint32_t ui32Base;
uint32_t ui32IntNum;
uint32_t pui32Config[MAX_CHANNELS];
uint32_t pui32MaxPacketSize[MAX_CHANNELS];
uint32_t *ppui32Data[MAX_CHANNELS];
uint32_t pui32Count[MAX_CHANNELS];
uint8_t pui8Endpoint[MAX_CHANNELS];
uint32_t pui32EPDMAMode0[MAX_CHANNELS];
uint32_t pui32EPDMAMode1[MAX_CHANNELS];
uint32_t ui32Pending;
uint32_t ui32Complete;
virtual void ArbSizeSet(uint32_t Channel, uint32_t ArbSize) {}
virtual uint32_t ChannelAllocate( uint8_t Endpoint,
uint32_t MaxPacketSize,
uint32_t Config) {return 0;}
virtual void ChannelEnable(uint32_t Channel) {}
virtual void ChannelDisable(uint32_t Channel) {}
virtual void ChannelRelease(uint8_t Endpoint) {}
virtual uint32_t ChannelStatus(uint32_t ui32Channel) {return 0;}
virtual void ChannelIntDisable(uint32_t ui32Channel) {}
virtual void ChannelIntEnable(uint32_t ui32Channel) {}
virtual void IntHandler(uint32_t ui32Status);
virtual uint32_t IntStatus() {return 0;}
virtual void IntStatusClear(uint32_t Status) {ui32Complete &= ~Status;}
virtual uint32_t Status() {return 0;}
virtual uint32_t Transfer(uint32_t ui32Channel, void *pvBuffer,
uint32_t ui32Size) {return 0;}
virtual void UnitSizeSet(uint32_t Channel, uint32_t BitSize) {}
void init(uint32_t);
};
//*****************************************************************************
// These are the USB libraries DMA functions.
//*****************************************************************************
tUSBDMAInstance * USBLibDMAInit(uint32_t ui32Index);
Vorgefundene Kodierung: UTF-8 | 0
|