导航

    全志在线开发者论坛

    • 注册
    • 登录
    • 搜索
    • 版块
    • 话题
    • 在线文档
    • 社区主页

    T113 DMA 测试在开启mmu后,测试失败

    其它全志芯片讨论区
    4
    6
    3112
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Z
      ZM960406 LV 3 最后由 编辑

      使用的awboot的dma驱动,里面有一个dma_test函数,裸机情况下测试没问题,但开启mmu就测试失败不知为何

      M P 2 条回复 最后回复 回复 引用 分享 0
      • M
        mouse LV 3 @ZM960406 最后由 编辑

        @zm960406 在 T113 DMA 测试在开启mmu后,测试失败 中说:

        wboot

        send links

        1 条回复 最后回复 回复 引用 分享 0
        • A
          awwwwa LV 8 最后由 awwwwa 编辑

          如何开启的MMU?

          我看了下,他只是开启了MMU但是没有配置,没有设置页大小,页表位置,DCACHE,没有设置none cacheable空间

          uint32_t value = arm32_read_p15_c1();
          arm32_write_p15_c1(value | (1 << 0));
          
          Z 1 条回复 最后回复 回复 引用 分享 0
          • Z
            ZM960406 LV 3 最后由 编辑

            解决了,awboot中对dma设备寄存器的操作很多情况下都是先在内存中创建一个全局变量,给全局变量赋值后,再将赋值内容传给设备寄存器的地址处,虽然设备地址都被设为no cache了,但全局变量是cacheable的,而未初始化或初始化为0的全局变量都是放在.bss段的,所以.bss段需要设为no cache

            base = ((uint32_t)__bss_start__ ) & (~0xFFFFF);
                
                 end =  ((uint32_t)__bss_end__ ); 
                 n = (end - base) >> 20;
                 
                for (i = 0; i < n; i++) //dev
                {
                    MMU_ConfigSection((uint32_t *)__mmu_start, (const void *)(base + (i << 20)), (base + (i << 20)),
                                      &s_mmudmaAttr);
                }
            

            完美解决,测试成功,开了mmu后,基本达到了400Mbit/s的DMA传输速度

            [I] ------BootLoader Jump Successed-----------
            [D] welcome to T113s3
            [D] CLK: CPU PLL=PLL_CPU FREQ=1200MHz
            [D] CLK: PLL_peri (2X)=1200MHz, (1X)=600MHz, (800M)=800MHz
            [D] CLK: PLL_ddr=1584MHz
            [D] DMA: init
            [T] DMA: test 0x42000000 ====> 0x42800000, len 512KB
            [T] DMA: provide channel 0
            [D] DMA: test OK in 20ms
            [D] timer0 irq is enable
            [D] i am task0
            [D] i am task2
            
            
            1 条回复 最后回复 回复 引用 分享 0
            • Z
              ZM960406 LV 3 @awwwwa 最后由 编辑

              @awwwwa
              参考一下xboot代码,有mmu的配置和开启代码

              1 条回复 最后回复 回复 引用 分享 0
              • P
                ppatb01 LV 4 @ZM960406 最后由 编辑

                @zm960406 您好大佬,我想请教一下如果想使用串口DMA应该如何测试,可以分享一下DMA测试程序吗,感谢!

                1 条回复 最后回复 回复 引用 分享 0
                • 1 / 1
                • First post
                  Last post

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

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