安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第11页页共共99页页第第1133章章SupportFunctions的的使使用用((一一))本期教程主要讲解支持函数中的数据拷贝,数据赋值和浮点数转换为定点数。13.1数据拷贝Copy13.2数据填充Fill13.3浮点数转定点数FloattoFix13.4总结1133..11数数据据拷拷贝贝CCooppyy这部分函数用于数据拷贝,公式描述如下:pDst[n]=pSrc[n];0=nblockSize.1133..11..11aarrmm__ccooppyy__ff3322函数定义如下:voidarm_copy_f32(float32_t*pSrc,float32_t*pDst,uint32_tblockSize)参数定义:[in]*pSrcpointstoinputvector[out]*pDstpointstooutputvector[in]blockSizelengthoftheinputvector1133..11..22aarrmm__ccooppyy__qq3311此函数的使用比较简单,函数定义如下:voidarm_copy_q31(q31_t*pSrc,q31_t*pDst,uint32_tblockSize)参数定义:[in]*pSrcpointstoinputvector[out]*pDstpointstooutputvector[in]blockSizelengthoftheinputvector1133..11..33aarrmm__ccooppyy__qq1155函数定义如下:voidarm_copy_q15(q15_t*pSrc,q15_t*pDst,uint32_tblockSize)参数定义:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第22页页共共99页页[in]*pSrcpointstoinputvector[out]*pDstpointstooutputvector[in]blockSizelengthoftheinputvector1133..11..44aarrmm__ccooppyy__qq77函数定义如下:voidarm_copy_q7(q7_t*pSrc,7_t*pDst,int32_tblockSize)参数定义:[in]*pSrcpointstoinputvector[out]*pDstpointstooutputvector[in]blockSizelengthoftheinputvector1133..11..55实实例例讲讲解解实验目的:1.学习SupportFunctions中的数据拷贝实验内容:1.按下按键K1,串口打印函数DSP_Copy的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第33页页共共99页页程序设计:/***********************************************************************************************************函数名:DSP_Copy*功能说明:数据拷贝*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_Copy(void){float32_tpSrc[10]={0.6557,0.0357,0.8491,0.9340,0.6787,0.7577,0.7431,0.3922,0.6555,0.1712};float32_tpDst[10];uint32_tpIndex;q31_tpSrc1[10];q31_tpDst1[10];q15_tpSrc2[10];q15_tpDst2[10];q7_tpSrc3[10];q7_tpDst3[10];for(pIndex=0;pIndex10;pIndex++){printf(pSrc[%d]=%f\r\n,pIndex,pSrc[pIndex]);}arm_copy_f32(pSrc,pDst,10);for(pIndex=0;pIndex10;pIndex++){printf(arm_copy_f32:pDst[%d]=%f\r\n,pIndex,pDst[pIndex]);}/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc1[pIndex]=rand();printf(pSrc1[%d]=%d\r\n,pIndex,pSrc1[pIndex]);}arm_copy_q31(pSrc1,pDst1,10);for(pIndex=0;pIndex10;pIndex++){printf(arm_copy_q31:pDst1[%d]=%d\r\n,pIndex,pDst1[pIndex]);}/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc2[pIndex]=rand()%32768;printf(pSrc2[%d]=%d\r\n,pIndex,pSrc2[pIndex]);}arm_copy_q15(pSrc2,pDst2,10);for(pIndex=0;pIndex10;pIndex++){printf(arm_copy_q15:pDst2[%d]=%d\r\n,pIndex,pDst2[pIndex]);}/*****************************************************************/for(pIndex=0;pIndex10;pIndex++){pSrc3[pIndex]=rand()%128;printf(pSrc3[%d]=%d\r\n,pIndex,pSrc3[pIndex]);}arm_copy_q7(pSrc3,pDst3,10);for(pIndex=0;pIndex10;pIndex++){printf(arm_copy_q7:pDst3[%d]=%d\r\n,pIndex,pDst3[pIndex]);}安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第44页页共共99页页/*****************************************************************/printf(******************************************************************\r\n);}1133..22数数据据填填充充FFiillll这部分函数用于数据填充,公式描述如下:pDst[n]=value;0=nblockSize.1133..22..11aarrmm__ffiillll__ff3322函数定义如下:voidarm_fill_f32(float32_tvalue,float32_t*pDst,uint32_tblockSize)参数定义:[in]valueinputvaluetobefilled[out]*pDstpointstooutputvector[in]blockSizelengthoftheoutputvector1133..22..22aarrmm__ffiillll__qq3311此函数的使用比较简单,函数定义如下:voidarm_fill_q31(q31_tvalue,q31_t*pDst,uint32_tblockSize)参数定义:[in]valueinputvaluetobefilled[out]*pDstpointstooutputvector[in]blockSizelengthoftheoutputvector1133..22..33aarrmm__ffiillll__qq1155函数定义如下:voidarm_fill_q15(q15_tvalue,q15_t*pDst,uint32_tblockSize)参数定义:[in]valueinputvaluetobefilled[out]*pDstpointstooutputvector[in]blockSizelengthoftheoutputvector1133..22..44aarrmm__ffiillll__qq77函数定义如下:voidarm_fill_q7(q7_tvalue,q7_t*pDst,uint32_tblockSize)参数定义:安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第55页页共共99页页[in]valueinputvaluetobefilled[out]*pDstpointstooutputvector[in]blockSizelengthoftheoutputvector1133..22..55实实例例讲讲解解实验目的:1.学习SupportFunctions中的数据填充实验内容:1.按下按键K2,串口打印函数DSP_Fill的输出结果实验现象:通过窗口上位机软件SecureCRT(V5光盘里面有此软件)查看打印信息现象如下:程序设计:/***********************************************************************************************************函数名:DSP_Fill*功能说明:数据填充*形参:无*返回值:无**********************************************************************************************************/staticvoidDSP_Fill(void){float32_tpDst[10];uint32_tpIndex;安安富富莱莱UUMM440033DDSSPP教教程程SSTTMM3322--VV55开开发发板板系系统统篇篇手手册册22001155年年0011月月1155日日版版本本::11..00第第66页页共共99页页q31_tpDst1[10];q15_tpDst2[10];q7_tpDst3[10];arm_fill_f32(3.33f,pDst,10);for(pIndex=0;pIndex10;pIndex++){printf(arm_fill_f32:pDst[%d]=%f\r\n,pIndex,pDst[pIndex]);}/**********************************************