首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

ColdFire中DMA使用[讨论]

ColdFire中DMA使用[讨论]

各位大虾好:


想请教在COLDFIRE的MCF5213中的DMA模式发送UART数据是否只能发送偶数个数据,我在使用DMA发送数据过程中只要启动DMA发送,读其DSR寄存器会发现总线错误,初始化代码如下:


    MCF_SCM_RAMBAR = 0
        | MCF_SCM_RAMBAR_BDE;
    
    MCF_SCM_PACR0123 = 0x44444444;
    MCF_SCM_GPACR01  = 0x0C0C0000;
    
    MCF_DMA_DMAREQC = 0x0000000C;  // DMA通道0设定为UART0发送
    MCF_DMA_DSR0    = 0x01000000;  // 清除DSR寄存器
    MCF_DMA_DSR0   |= 0x00000010;  // 设定发送数据共16Byte
    MCF_DMA_SAR0    = 0x20001538;  // 源数据地址
    MCF_DMA_DAR0    = 0x4000020C;  // 目的数据地址(UART0发送数据寄存器)
    MCF_DMA_DCR0    = 0x20520000;  // 源地址++,目标地址不变
    MCF_DMA_DCR0   |= 0x00010000;  // 启动DMA发送


其中UART0中断已经关闭,并且其能正常发送数据


恳望知道朋友能不吝赐教,谢谢!

我使用的MCF54455,也是会出现总线错误,郁闷中。
返回列表