Navigation

    全志在线开发者论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • 在线文档
    • 社区主页

    t113的dma是否有bug??????????

    其它全志芯片讨论区
    4
    8
    3320
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • S
      smiletiger LV 6 last edited by

      请问一下t113的dma是否有bug,我在测试uart3的rxd接收dma,配置为dma1,然后开始接收数据,比如我配置为接收256个字节产生dma完成中断,这个是没有问题的,并且也能正常接收到数据,但是想实现任意长度数据的接收,然后就想到读取dma寄存器的
      0x0118 + N*0x0040 DMAC Channel Byte Counter Left Register N (Default Value: 0x0000_0000)这个寄存器,看资料这个寄存器里面读出来的数据就是代表本次dma传输剩余的数据,比如我上位机发送10个数据过去,然后这里应该读取出来的是(256-10)=246个,打是我在读取中发现这里的数据固定为256.....只有当上位机发送128个字节之后,这里的数据变成128 ,然后继续保持128不变,直到上位机发送完256个字节这里才变成0,
      也就是说这个寄存器里面的数据是按照128字节跳跃的,并不是接收到多少个,这里减少多少个,是我配置的问题还是这个芯片本身的bug,

      如果按照128字节跳跃的话,我该如何实现dma接收不定长数据的功能

      1 Reply Last reply Reply Quote Share 1
      • Moved from MR Series by  YuzukiTsuru YuzukiTsuru 
      • YuzukiTsuru
        柚木 鉉 LV 9 last edited by

        是啥sdk有这个bug

        S 2 Replies Last reply Reply Quote Share 0
        • S
          smiletiger LV 6 @YuzukiTsuru last edited by

          @yuzukitsuru 我用的是裸机,我测试出来的结果就是用dma接收串口数据的时候,不是串口接收到一个dma就捕获一个,而是需要等到128字节,dma才会从串口获取128字节,当然如果我配置为dma长度为16字节,那么16字节就可以.

          1 Reply Last reply Reply Quote Share 0
          • S
            smiletiger LV 6 @YuzukiTsuru last edited by

            @yuzukitsuru 以前用的smt32之类的单片机都是一个个接收的啊,串口缓冲区有一个数据dma就传输一个,并不是这样128字节一起传输啊,这个你们有没有碰到过,串口比较特殊的,接收到的数据可能是不定长的,并不能事先设置固定的dma长度啊

            YuzukiTsuru C 2 Replies Last reply Reply Quote Share 0
            • YuzukiTsuru
              柚木 鉉 LV 9 @smiletiger last edited by

              @smiletiger 我记得好像有寄存器可以设置,不过我没搞过

              1 Reply Last reply Reply Quote Share 0
              • C
                chengwei_peng LV 6 @smiletiger last edited by

                @smiletiger 串口的DMA确实是有点问题的,因为不知道每次接收的长度,使用DMA搬运并不知道一次搬多少,只能配置为CPU读取。不说了,知道垃圾就行。

                S 1 Reply Last reply Reply Quote Share 0
                • S
                  smiletiger LV 6 @chengwei_peng last edited by

                  @chengwei_peng 哦,cpu读取的话占用cpu比较高,因为我用到的波特率是1.5Mbps,我在研究研究吧,只能曲线救国了

                  1 Reply Last reply Reply Quote Share 0
                  • Q
                    qqqlb LV 6 last edited by

                    挖个坟?dma接收不定长数据的功能,需要配合timeout来完成。楼主看试试能不能行

                    1 Reply Last reply Reply Quote Share 0
                    • 1 / 1
                    • First post
                      Last post

                    Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号

                    行为准则 | 用户协议 | 隐私权政策