zoukankan      html  css  js  c++  java
  • EDMA3随笔

    最近查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,要格外注意!!!!

  • 相关阅读:
    视图类
    基于前一天再补充
    多表与基表等概念
    模块与序列化
    vue简单实现购物车列表功能
    再顾vue
    再探vue
    iptables编辑
    python 字符串替换、正则查找替换
    Map的遍历
  • 原文地址:https://www.cnblogs.com/masky/p/3851997.html
Copyright © 2011-2022 走看看