#define USER_VER 20190801
#define NUM_CORES 1
#define CORE_ID 0
#define CORE_SPEED 216e6f
#define SAMPLE_SPEED 216e6f
#define HAS_FLOAT_SUPPORT 1
#define HAS_FLASH_FILESYSTEM 1
#define HAS_GPIO 1
#define NO_INPUT_PINS 1
#define NO_OUTPUT_PINS 1
#define IS_SMP 0
#define NUM_AUDIO_THREADS 2
#define AUDIO_SAMPLE_RATE 48000.0f
#define AUDIO_BLOCK_SIZE 32
#define IS_COMPLEX 0
#define SAMPLE_SIZE_IN_BYTES 4
#define MASTER_HEAP_SIZE (1024*31)
#define FASTB_HEAP_SIZE (1024*80)
#define SLOW_HEAP_SIZE (1024*2048)
#define MAX_COMMAND_BUFFER_LEN 264
#include "ModuleList.h"
UINT32 g_MasterHeap[MASTER_HEAP_SIZE] @ ".DTCMRAM_Section";
UINT32 g_FastbHeap[FASTB_HEAP_SIZE];
__no_init UINT32 g_SlowHeap[SLOW_HEAP_SIZE] @ ".SDRAM_Section";
const void * g_module_descriptor_table[] =
{
(void *)LISTOFCLASSOBJECTS
};
UINT32 g_module_descriptor_table_size = sizeof(g_module_descriptor_table) / sizeof(g_module_descriptor_table[0]);
void AWEInstanceInit()
{
g_AWEInstance.
pName =
"ST32F769";
g_AWEInstance.
numModules = g_module_descriptor_table_size;
}
/-----------------------------------------------------------------------------
void BSP_AUDIO_IN_DMA_Handler(void)
{
int nSamplesAvail;
INT16 * pUSBSamples;
INT32 layoutMask;
INT32 bAudioIsStarted;
INT32 bLayoutValid;
pUSBSamples = USB_Playback_ASRCSamples;
if (!bAudioIsStarted)
{
memset(AudioBufferOut, 0, sizeof(AudioBufferOut) );
}
else
{
if (!bLayoutValid)
{
memcpy(&AudioBufferOut[nOutWriteNdx], &AudioBufferIn[nInReadNdx], STEREO_BLOCK_SIZE_IN_SAMPLES * PCM_SIZE_IN_BYTES);
}
else
{
if (layoutMask > 0)
{
if (layoutMask & 1)
{
if (!g_bAudioPump1Active)
{
NVIC_SetPendingIRQ(AudioWeaverPump_IRQ1);
}
}
if (layoutMask & 2)
{
if (!g_bAudioPump2Active)
{
NVIC_SetPendingIRQ(AudioWeaverPump_IRQ2);
}
}
}
}
}
nInReadNdx = (nInReadNdx + STEREO_BLOCK_SIZE_IN_SAMPLES) % INPUT_AUDIO_BUFFER_SIZE;
nMicReadBufferNdx = (nMicReadBufferNdx + NEW_MIC_BUFFER_SAMPLES) % MIC_BUFF_SIZE;
nOutWriteNdx = (nOutWriteNdx + STEREO_BLOCK_SIZE_IN_SAMPLES) % OUTPUT_AUDIO_BUFFER_SIZE;
}
void AudioWeaverPump_IRQHandler1(void)
{
g_bAudioPump1Active = TRUE;
NVIC_ClearPendingIRQ(AudioWeaverPump_IRQ1);
g_bDeferredProcessingRequired =
awe_audioPump(&g_AWEInstance, 0);
g_bAudioPump1Active = FALSE;
}
void AudioWeaverPump_IRQHandler2(void)
{
g_bAudioPump2Active = TRUE;
NVIC_ClearPendingIRQ(AudioWeaverPump_IRQ2);
g_bDeferredProcessingRequired =
awe_audioPump(&g_AWEInstance, 1);
g_bAudioPump2Active = FALSE;
}
void AWEIdleLoop(void)
{
BOOL bMoreProcessingRequired = FALSE;
while(TRUE)
{
if (g_bPacketReceived)
{
g_bPacketReceived = FALSE;
USBSendReply(&g_AWEInstance);
}
{
UINT32 classID;
INT32 nValue;
if (g_bDeferredProcessingRequired || bMoreProcessingRequired)
{
g_bDeferredProcessingRequired = FALSE;
}
{
if (classID == AWE_SinkInt1_classID)
{
}
}
{
if (classID == AWE_DC1_classID)
{
}
}
}
}
}
int main(void)
{
targetInit();
AWEIdleLoop();
}