tms320c5535加了一个滤波运算后,调试时工作,下载后不工作
程序是参考程序,完成音频的回放功能。Int16 aic3204_loop_linein( )
{
/* Initialize 5535 */
.....
/* Play Loop for 5 seconds */
for ( sec = 0 ; sec < 5 ; sec++ )
{
for ( msec = 0 ; msec < 1000 ; msec++ )
{
for ( sample = 0 ; sample < 48 ; sample++ )
{
/* Read 16-bit left channel Data */
EZDSP5535_I2S_readLeft(&data1);
/* Read 16-bit right channel Data */
EZDSP5535_I2S_readRight(&data2);
/* Write 16-bit left channel Data */
EZDSP5535_I2S_writeLeft(data1);
/* Write 16-bit right channel Data */
EZDSP5535_I2S_writeRight(data2);
}
}
}
EZDSP5535_I2S_close(); // Disble I2S
AIC3204_rset( 1, 0x01 );// Reset codec
return 0;
}
在该例程的基础上,我加了滤波的代码,
程序是参考程序,完成音频的回放功能。
Int16 aic3204_loop_linein( )
{
/* Initialize 5535 */
.....
/* Play Loop for 5 seconds */
for ( sec = 0 ; sec < 5 ; sec++ )
{
for ( msec = 0 ; msec < 1000 ; msec++ )
{
for ( sample = 0 ; sample < 48 ; sample++ )
{
/* Read 16-bit left channel Data */
EZDSP5535_I2S_readLeft(&data1);
/* Read 16-bit right channel Data */
EZDSP5535_I2S_readRight(&data2);
/* filtering data1 */
.....
/* filtering data2 */
...
/* Write 16-bit left channel Data */
EZDSP5535_I2S_writeLeft(data1);
/* Write 16-bit right channel Data */
EZDSP5535_I2S_writeRight(data2);
}
}
}
EZDSP5535_I2S_close(); // Disble I2S
AIC3204_rset( 1, 0x01 );// Reset codec
return 0;
}
经过CCS进行build之后,进入debug->run,能够完成滤波功能。
但是将*.out文件转成*.bin,并烧写到5535中之后,程序工作不正常,现象时完全听不出音乐了。
请问可能的原因是什么?本人估计是DSP BIOS没有设置 你好 在RAM中跑是没有问题的是吧
.out转.bin没有问题吧
两个方面你确保一下 读出你烧写后的数据 通过CCS的memory查看
并打开.bin 对比一下烧写的和读出的是一样的吗 请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 sizeof(int)返回的是字节数吧 第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...
在DSP中数据类型你需要研究一下 第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...
https://bbs.21ic.com/icview-556056-1-1.html?ordertype=1 zhangmangui 发表于 2019-6-22 17:05
https://bbs.21ic.com/icview-556056-1-1.html?ordertype=1
谢谢啦,最近在优化代码,没怎么看回复的晚了,我在一本书上招到了数据类型,tms320c5535的一个字节是16位的,不过文件读写的时候还是只是八位八位的,现在已经解决了,感谢! 第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...
这个至于操作系统的位数有关系吧。因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32位系统上为4字节,在16位系统上为2字节)
蒋博1026 发表于 2019-8-21 08:38
这个至于操作系统的位数有关系吧。因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32 ...
这个是在dsp上面实现的,是根据芯片自己定义的数据类型来的 第七子 发表于 2019-8-21 19:59
这个是在dsp上面实现的,是根据芯片自己定义的数据类型来的
就是这个意思,实现的平台不一样,具体的定义也会有所不同, zhangmangui 发表于 2019-6-22 17:03
sizeof(int)返回的是字节数吧
是的,sizeof(int)就是返回的int类型变量在内存中所占的字节数
页:
[1]