spirituallife 发表于 2015-7-8 10:37

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没有设置

zhangmangui 发表于 2015-7-8 21:35

你好    在RAM中跑是没有问题的是吧
.out转.bin没有问题吧   
两个方面你确保一下   读出你烧写后的数据   通过CCS的memory查看
并打开.bin   对比一下烧写的和读出的是一样的吗

第七子 发表于 2019-6-13 22:07

请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊

zhangmangui 发表于 2019-6-22 17:03

sizeof(int)返回的是字节数吧   

zhangmangui 发表于 2019-6-22 17:03

第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...

在DSP中数据类型你需要研究一下   

zhangmangui 发表于 2019-6-22 17:05

第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...

https://bbs.21ic.com/icview-556056-1-1.html?ordertype=1

第七子 发表于 2019-8-20 20:58

zhangmangui 发表于 2019-6-22 17:05
https://bbs.21ic.com/icview-556056-1-1.html?ordertype=1

谢谢啦,最近在优化代码,没怎么看回复的晚了,我在一本书上招到了数据类型,tms320c5535的一个字节是16位的,不过文件读写的时候还是只是八位八位的,现在已经解决了,感谢!

蒋博1026 发表于 2019-8-21 08:38

第七子 发表于 2019-6-13 22:07
请问你的这个ccs编译环境下,c5535的sizeof(int)是多少啊,我的是1,结果不太对啊 ...

这个至于操作系统的位数有关系吧。因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32位系统上为4字节,在16位系统上为2字节)

第七子 发表于 2019-8-21 19:59

蒋博1026 发表于 2019-8-21 08:38
这个至于操作系统的位数有关系吧。因为在不同平台下各种数据类型所占的内存字节数不尽相同(譬如int在32 ...

这个是在dsp上面实现的,是根据芯片自己定义的数据类型来的

蒋博1026 发表于 2019-8-23 09:42

第七子 发表于 2019-8-21 19:59
这个是在dsp上面实现的,是根据芯片自己定义的数据类型来的

就是这个意思,实现的平台不一样,具体的定义也会有所不同,

蒋博1026 发表于 2019-8-23 09:43

zhangmangui 发表于 2019-6-22 17:03
sizeof(int)返回的是字节数吧

是的,sizeof(int)就是返回的int类型变量在内存中所占的字节数
页: [1]
查看完整版本: tms320c5535加了一个滤波运算后,调试时工作,下载后不工作