码迷,mamicode.com
首页 > 其他好文 > 详细

EDMA3随笔

时间:2014-07-18 09:36:01      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:使用   os   问题   算法   c   ar   

最近查DM814x上两个M3莫名其妙挂掉的问题查了将近两周,最后发现居然是各个模块的dma乱用引起的。

 

A8上的音频mcasp用了两个dma通道……

TI给的simcop里面imx实现的swosd又用了一串的dma通道……

M3上面的cover业务又用了一个……

后面dsp上加跑的算法又用了两个,然后就开始出现死机了,诶……

 

查到最后,发现是有些模块的edma通道都用冲突了,dsp上算法用的qdma通道随便拿了几个paRamSet,tcc也完全随意指定的。

 

记得以前开发648的时候,这些东西都是有约定的。

 

这个DM814x是中途接手的项目,接手后忙着解决各种各样的bug,处理各种各样的需求,这些东西自己也没有留意,偶尔也有出现几次系统莫名奇怪挂了的问题,但是都没查出来,因为根本方向。

这次算法再加上来之后,终于压垮了这头骆驼,呵呵,还好,终于问题暴露出来,也解决了。

 

以后要注意,对于这种多核的Soc,特别是要注意dma通道的分配使用的情况。

 

其实TI也有自己的edma3框架库,可惜的前面的人开发的时候根本没用这些东西,一群文盲干的事情啊。

 

edma3:channel,emda,qdma,paRamSet,tcc,queue,tc

上面这些都是需要注意的地方,特别是qdma,用的别人的tcc和paRamSet,要格外注意!!!!

EDMA3随笔,布布扣,bubuko.com

EDMA3随笔

标签:使用   os   问题   算法   c   ar   

原文地址:http://www.cnblogs.com/masky/p/3851997.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!