项目

一般

简介

错误 #4089

测量模块移植到APE2,DM空间向DDR空间 dma搬移失败

马 凤波一天 之前添加. 更新于 大约 19 小时 之前.

状态:
已解决
优先级:
普通
指派给:
开始日期:
2025-09-18
计划完成日期:
% 完成:

0%

预期时间:

描述

使用dma实现dm->ddr搬数,测试过程中发现dm数据在变化,而ddr中的数据一直不变,不符合预期。测试代码如下:
ape_csu_dma_1D_L2G_ch2ch3_transfer((uint64_t)ant0_2_unzip_dm2_ptr + antIndex * fre_data_length, //dm空间
(uint64_t)otic_out_Addr, //ddr
two_symbol_len,
DMA_TAG_L2G, 1);

错误原因,没有使用宏DM_TO_CSU_ADDR将dm地址转换成物理地址,各核对DM_TO_CSU_ADDR定义为:
core0/2/4/6: #define DM_TO_CSU_ADDR(addr) (((uint32_t)(addr)) - 0x100000)
core1/3/5/7: #define DM_TO_CSU_ADDR(addr) ((uint32_t)(addr))
代码修改后搬数成功。
ape_csu_dma_1D_L2G_ch2ch3_transfer((uint64_t)DM_TO_CSU_ADDR(ant0_2_unzip_dm2_ptr + antIndex * fre_data_length), //dm空间
(uint64_t)otic_out_Addr, //ddr
two_symbol_len,
DMA_TAG_L2G, 1);

注意:ddr地址的uint64_t类型转换最好有,当ddr地址最高位是1时,必须要强制类型转换成uint64_t,否则dma出错。

历史记录

#1

高 峰 更新于 大约 19 小时 之前

  • 主题dma搬移失败 变更为 DM空间向DDR空间 dma搬移失败
#2

高 峰 更新于 大约 19 小时 之前

  • 状态新建 变更为 已解决

DM地址DMA搬移时,需要用 DM_TO_CSU_ADDR 转换为CSU空间地址

#3

高 峰 更新于 大约 19 小时 之前

  • 主题DM空间向DDR空间 dma搬移失败 变更为 测量模块移植到APE2,DM空间向DDR空间 dma搬移失败

导出 Atom PDF