您尚未登录。

楼主 # 2025-06-13 15:21:21

wwwlll
会员
注册时间: 2023-12-15
已发帖子: 5
积分: 15

T113S3 DMA通道异常怎么恢复

1.在应用中禁用了DMA,然后通过手动写寄存器的方式调用DMA进行收发数据,发现跑一段时间后,DMA通道异常了
配置map如下
       desc_addr = 0x464454A0
      addr |     config |        src |        dst | cnt |        arg |       next |
0x464454A0 | 0x05000500 | 0x46445808 | 0x02501408 |   4 | 0x000000FF | 0x464454C0
0x464454C0 | 0x01130001 | 0x464458A0 | 0x02501400 |   8 | 0x000000FF | 0x464454E0
0x464454E0 | 0x00010113 | 0x02501400 | 0x46445AB0 |   1 | 0x000000FF | 0xFFFFF800

对通道的操作顺序就是
写 DMA_CH_EN=1,DMA_CH_PAUSE=1,暂停
写 DMA_CH_DESC_ADDR = 0x464454A0 ,
写DMA_CH_PAUSE=0,启用,
正常情况下,DMA开启后,这个寄存器写入的值是0x05000500 ,在其他通道验证没问题,

但是在这个通道里跑一段时间异常后,同样的方式操作
读出来寄存器如下
           DMA_IRQ_EN0(0x000):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
           DMA_IRQ_EN1(0x004):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
       DMA_IRQ_PEND0(0x010):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
       DMA_IRQ_PEND1(0x014):0x30700000, 0000-0000 0000-0000 | 0000-0000 0000-0000
       DMA_AUTO_GATE(0x028):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
            DMA_STATUS(0x030):0x0000C000, 0000-0000 0000-0000 | 1100-0000 0000-0000
DMA CH14:
               DMA_CH_EN(0x100):0x00000001, 0000-0000 0000-0000 | 0000-0000 0000-0001
         DMA_CH_PAUSE(0x104):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
DMA_CH_DESC_ADDR(0x108):0x464454A0, 0100-0110 0100-0100 | 0101-0100 1010-0000
           DMA_CH_CFG(0x10C):0xFFFFFFFF, 1111-1111 1111-1111 | 1111-1111 1111-1111
          DMA_CH_SRC(0x110):0x46444C18, 0100-0110 0100-0100 | 0100-1100 0001-1000
         DMA_CH_DEST(0x114):0x020000A0, 0000-0010 0000-0000 | 0000-0000 1010-0000
         DMA_CH_LEFT(0x118):0x01FFFFFF, 0000-0001 1111-1111 | 1111-1111 1111-1111
         DMA_CH_PARA(0x11C):0x0000FFFF, 0000-0000 0000-0000 | 1111-1111 1111-1111
         DMA_CH_MODE(0x128):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000
        DMA_CH_FDESC(0x12C):0xFFFFF800, 1111-1111 1111-1111 | 1111-1000 0000-0000
      DMA_CH_PKG_NUM(0x130):0x00000000, 0000-0000 0000-0000 | 0000-0000 0000-0000

问题出在 DMA_CH_CFG 这个寄存器,在这个DMA通道,不能自动把我的配置载入进去,读出来数据是全F,
猜测是不是全志隐藏的复位或者重新开启的寄存器 ,

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn