wavplay控件应用之SigmaStudio

1、安装WavPlay插件:WavPlay插件安装包下载路径:https://download.csdn.net/download/weixin_48408892/86740526

2、SigmaStudio添加插件,选择Tools-Add ins Browser菜单,打开添加插件窗口如下图
在这里插入图片描述

3、CCES中为Wavplay访问或控制的内存分配
/Buffer to be passed to DMA/
int32_t SPI_FLASH_BUFFER[MAX_WAV_PLAYER_BLOCK_SIZE];
/memory required to hold SPI information/
uint32_t SPI_INSTANCE_MEMORY[sizeof(SPI_HANDLE)];
/memory to hold wavplayer information/
uint32_t MODULE_STATE_MEMORY[sizeof(WAV_PLAYER_STATE)];

4、在main()中创建SPI_HANDLE和WAV_PLAYER_STATE实例,并将SPI_HANDLE实例中的状态指针指向WAV_PLAYER_STATE实例的位置
SPI_HANDLE hSPI = (SPI_HANDLE)&SPI_INSTANCE_MEMORY[0];
WAV_PLAYER_STATE pState = (WAV_PLAYER_STATE)&MODULE_STATE_MEMORY[0]; hSPI->pModuleState = (WAV_PLAYER_STATE*)pState;

5、在for循环前,调用初始化例程adi_initSpiFlash(SPI_HANDLE *hSPI)

6、在每次调用adi_ssn_process()之后调用adi_readFlash(SPI_HANDLE *hSPI, WAV_PLAYER_STATE *pState)

7、从链接后生成的映射文件中记录WAV_PLAYER_STATE的地址,它必须作为参数传递给模块。

8、
在这里插入图片描述
8、配置Flash文件读取初始地址、长度,并使能bReadEnable。
在这里插入图片描述
9、Flash音频访问举例:
ERROR_CODE spi_read_flash_wavplay(SPI_HANDLE hSPI, WAV_PLAYER_STATE pModuleState)
{
(void)memcpy(&pState->aTxBuffer[0u],pAudioBuffer,pState->nBlockSize);
pState->bTransferDone = 1u;
/initiate DMA transfer for next block of data/
if(1==is_last_from_wavplay)
{
is_last_from_wavplay=0;
lastsize=((int)pState->nFileLength - (int)pState->nCurrSampleCnt)/2;
err = spi_read_flash_data(hSPI, pState->nCurrFlashAddress, lastsize, 2u, pAudioBuffer );
for (int i=lastsize; inBlockSize ; i++)
{
pAudioBuffer[i] = pAudioBufferBack[i-lastsize];
}
pState->nCurrSampleCnt = (pState->nBlockSize - lastsize)2u;
pState->nCurrFlashAddress = pState->nFileStartAddress + pState->nCurrSampleCnt;
}
else
{
err = spi_read_flash_data(hSPI, pState->nCurrFlashAddress, pState->nBlockSize, 2u, pAudioBuffer );
/increment number of samples read/
pState->nCurrSampleCnt += pState->nBlockSize
2u;
if(((int)pState->nFileLength - (int)pState->nCurrSampleCnt) < (int)pState->nBlockSize
2)
{
/loop back to start of the file if count exceeds file length/
is_last_from_wavplay=1;
}
/increment address to be read/
pState->nCurrFlashAddress += pState->nBlockSize
2u;
}
}

Wav Play参考AE_50_IESS_WaveplayerIntegrationGuide.pdf

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值