bigbaicai

芯方式是以半导体人、电子工程师等电子行业相关领域从业人员为核心的知识经验学习、分享、交流社群。 凭借开放、合作、共赢的运营理念,聚集了来自国内外知名院校和顶尖科技公司的半导体人、电子工程师。 我们致力于营造专业、认真、有温度的分享交流环境,将高质量的内容和方案成规模地生产和分享,帮助个人和团队在芯方式找到有价值的Key。 http://www.icfans.com/

通话录音无声

0
阅读(84) 评论(0)

[DESCRIPTION]
请客户做了如下测试:1.确认原始版本有没有问题->客户用基于同一个原始版本做出来的另一个版本(假设为B),没有这
个问题。2.idle下录音没有问题3.比对版本B和有问题的版本A的media/l1audio,没有发现实质性的差异。版本A和B因为
transceiver换过,所以有更新部分library,但比对过dp_engine/dsp_ram,没有差异。4.请客户在几个关键的地方加
trace,结果如下: 1)amr515RecordHisr: 打出来的amr515.tmp_buf中是非0值。 2)amr515Encode:在
AMR515_Encode之后打印ptr的值,全是0值。 3)aud_media_read_data_ind_hdlr:打印aud_context_p->buf_p,全是
0值。所以应该是经过AMR515_Encode(放在internal ram里的库函数)后发生的错误。5.请Owner分析,怀疑是客户改过
scatter file,把AMR515_Encode所在的internal ram配置设错。请客户提供scatter file,发现客户把给AMR515用的
internal ram改小。6.接上trace32分析,发现在AMR515_Encode申请internal ram memory时分配失败,原因是
internal ram memory分配的空间是从code+zi区域后面开始分配(见DCM_Load),有多少分多少,没有用定义数组的形式
预留,所以也不会发生编译错误。由于memory分配不到,AMR515_Encode执行失败,所以encode出来的数据均为0.
[SOLUTION]来自半导体社区
修改scatter file:
DYNAMIC_CODE1 0xa000F000 OVERLAY 0x3000
改回我们默认的:
DYNAMIC_CODE1 0xa000D000 OVERLAY 0x5000