|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 tenankesi555 于 2013-4-15 12:51 编辑
完成第一个项目ADPCM编码器之后,主菜开始登场了。老师给我安排了一个G.729语音编码器的全汇编实现。我还记得刚下载了G.729的源代码的时候,我说了句:靠,这么多。打印出来以后有一两百页吧,记得前一个月,我真的很迷茫,一个是编解码器的理论看的头疼,另一个是我怀疑这么多的程序一下子用汇编写会很困难。
过了一个月,我确定了编程方案。用混合编程的方式将源程序的各个模块进行替换,最终在各个被替换了得模块基础上完成全汇编。这样就为这个工程提供了很多便利。G.729提供了很多测试向量,我逐个替换模块,大大简化了调试难度,最终调试的时候可以确保出错只是各个模块之间的错误,不会是模块里面的错误。编程开始了,首先是熟悉大量的汇编指令,程序入口,CMD写法,调用汇编函数时的参量传输方式,程序编好后,又要用到memory,寄存器,CCS里的tool工具,graphy等来进行调试。完成调试以后又对程序进行并行指令优化和流水线延迟优化。
汇编指令:C55x里包含的指令比较多,买一本叫《TMS320C55X系列DSP指令系统,开发工具与编程指南》,注意的一点是,你在编写程序的时候对要用到的指令一定要仔细阅读,因为很有可能这条指令就和你想象中的不一样。这方面我已经吃过不少亏了,比如SUB Xmem,Ymen,ACx这条指令,一般我们认为是Ymen-Xmen,但是这条指令的意思是Xmen-Ymen。往往就是这样一个不起眼的错误没有注意到,会让你花上好多天来调程序。有一些指令你仔细阅读手册也不一定能理解对,这就需要你编一个小程序来测试一下这个指令是不是你想象的那样。千万不要觉得这麻烦,往往这些小问题会让你焦头烂额。 |
|