找回密码
 立即注册
查看: 20|回复: 2

疑为DMA总线并行访问题反馈

[复制链接]
  • 打卡等级:偶尔看看III
  • 打卡总天数:32
  • 最近打卡:2026-03-05 16:54:22

36

主题

1149

回帖

2859

积分

荣誉版主

积分
2859
发表于 昨天 16:54 | 显示全部楼层 |阅读模式
型号: AI8051U-34K64  LQFP48,
问题描述,发现一个代码段xdata区的静态全局变量被未知指针改写或自身访问不正常,数据错乱。可排除代码自己的写错,因为代码是成熟代码移值的.
经过几天的排查,销定在DMA身上,DMA局部代码如下:

void ledp_run()
{
    ledp_yhdata_dt(Hub_Bufferdc);            //现在改成端口模拟时序一切正常
   
//    Buffer = (u16)Hub_Bufferdc;                      //使用DMA发数据就有问题
//    DMA_LCM_TXAH = (u8)(Buffer>>8);
//    DMA_LCM_TXAL = (u8)(Buffer);
//    DMA_LCM_TRIG_WD();
   
        HUB_STB=1;
        NOP(16);
        HUB_STB=0;
}

/*---------------------------------------------------------
DMA 配置
----------------------------------------------------------*/
void DMA_LCM_config()
{
        DMA_LCM_InitTypeDef                DMA_LCM_InitStructure;                        //结构定义

        DMA_LCM_InitStructure.DMA_Enable = ENABLE;                                //DMA使能          ENABLE,DISABLE
        DMA_LCM_InitStructure.DMA_Length = 128-1;              //DMA传输总字节数          (0~65535) + 1, 不要超过芯片 xdata 空间上限
//        DMA_LCM_InitStructure.DMA_Length = xfnu*128-1;              //DMA传输总字节数          (0~65535) + 1, 不要超过芯片 xdata 空间上限
//        DMA_LCM_InitStructure.DMA_Tx_Buffer = (u16)Hub_Bufferdc;      //发送数据存储地址
//        DMA_LCM_InitStructure.DMA_Rx_Buffer = (u16)Hub_Bufferdc;      //接收数据存储地址
        DMA_LCM_Inilize(&DMA_LCM_InitStructure);                            //初始化
   
    DMA_LCM_CFG = 0x02;     //  DAM访问优先级
}

问题奇怪就奇怪到,不是DMA自身发送数据有问题。DMA可以正确发送数据。
但是另一个模块中的数据总是不正常,DMA是在中断里触发的。
怀疑是DMA占住了XDATA的总线访问权,使另外的代码访问XDATA时出现读写错误,但手册上说是可以并行访问的。
2. 改用端口模拟时序一切正常。
3. DMA应该注意的都注意了,比如4字节对齐,不进入空IDL模式。


暂时改用端口模拟已解决问题,只是反馈一下给官方是否需要留意,不需要大家帮忙解决问题。

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:242
  • 最近打卡:2026-03-05 08:18:32
已绑定手机

22

主题

621

回帖

2290

积分

金牌会员

积分
2290
发表于 昨天 17:11 | 显示全部楼层
关掉DMA试一下
回复

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:465
  • 最近打卡:2026-03-05 08:52:40
已绑定手机

102

主题

4131

回帖

9087

积分

荣誉版主

无情的代码机器

积分
9087
发表于 昨天 17:20 | 显示全部楼层
楼主有空可否搞个问题复现工程上传下,目前已知的只有qspi的p2p会修改xram


截图202603051719328980.jpg
三天不学习,赶不上刘少奇~
回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-3-6 00:18 , Processed in 0.102634 second(s), 59 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表