s3c6410 DMA

2023-05-16

/*
S3C6410中DMA操作步骤:
1、决定使用安全DMAC(SDMAC)还是通用DMAC(DMAC);
2、开始相应DMAC的系统时钟,并关闭另外一组的时钟(系统默认开启SDMA时钟);
3、开启DMAC控制,设置DMAC_Configuration寄存器;
4、清除传输结束中断寄存器和错误中断寄存器;
5、选择合适的优先级通道;
6、设置通道的源数据地址和目的数据地址(设置DMACC_SrcAddr和DMACC_DestAddr);
7、设置通道控制寄存器0(设置DMACC_Control0);
8、设置通道控制寄存器1,(传输大小,设置DMACC_Control1);
9、设置通道配置寄存器;(设置DMACC_Configuration)
10、使能相应通道(设置DMACC_Configuratoin);

*/

#define SDMA_SEL         (*((volatile unsigned long *)0x7E00F110))
#define DMACIntTCClear       (*((volatile unsigned long *)0x7DB00008))
#define DMACIntErrClr        (*((volatile unsigned long *)0x7DB00010))
#define DMACConfiguration       (*((volatile unsigned long *)0x7DB00030))
#define DMACSync        (*((volatile unsigned long *)0x7DB00034))
#define DMACC0SrcAddr       (*((volatile unsigned long *)0x7DB00100))
#define DMACC0DestAddr       (*((volatile unsigned long *)0x7DB00104))
#define DMACC0Control0       (*((volatile unsigned long *)0x7DB0010c))
#define DMACC0Control1       (*((volatile unsigned long *)0x7DB00110))
#define DMACC0Configuration     (*((volatile unsigned long *)0x7DB00114))

 

char src[100] = "\n\rHello World-> This is a test!\n\r";

char dest[100] ;

 

void dma_init()
{
 //DMA控制器的选择(SDMAC0)
 SDMA_SEL = 0;
 

 /* 如果外设的工作时钟与DMA控制器的时钟不相同, 要使能"同步逻辑" */
 DMACSync = 0;
 
 //DMA控制器使能
 DMACConfiguration = 1;
 
 
 //初始化源地址
 DMACC0SrcAddr = (unsigned int)src;
 
 
 //初始化目的地址
 DMACC0DestAddr = (unsigned int)dest;

 

//对控制寄存器进行配置
 DMACC0Control0 = (1 << 26)| (1<<27);
 DMACC0Control1 = 0x64;     //传输的大小
     
}

 

void dma_start()
{
 //开启channel0 DMA
 DMACC0Configuration  = 1; 
}

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

s3c6410 DMA 的相关文章

  • STM32H7xx 串口DMA发送&接收(LL库)

    文章目录 1 前言2 STM32H7实现2 1 关键步骤2 2 注意事项 3 代码仓库 1 前言 关于串口DMA收发实现 xff0c 不同CPU其套路都是类似的 xff0c 不同之处在于寄存器配置 依赖BSP库等差异 串口DMA收发详细实现
  • STM32H7A3 ADC+DMA使用问题

    问题1 xff1a DMA采用半字传输16位ADC值 xff0c 用于存储ADC数据的数组一定是采集数的两倍 xff0c 否则会产生ADC溢出的错误中断HAL ADC ErrorCallback xff0c 从而无法进入ADC采集完成中断H
  • STM32F4 DMA

    STM32F4有2个DMA xff0c 每个DMA控制器有8个数据流 xff0c 每个数据流有多达8个通道 xff0c 但是DMA1 控制器 AHB 外设端口与 DMA2 控制器的情况不同 xff0c 不连接到总线矩阵 xff0c 因此 x
  • CubeMX 配置PWM使用DMA,生成Dshot600的协议

    看到电调支持Dshot125 600的协议 xff0c 想自己做一个支持Dshot协议的驱动 xff0c 所以研究了一下 xff0c 如何利用精确的PWM产生Dshot协议 先看结果 xff01 图中为油门值为1500的时候的输出的Dsho
  • STM32 串口 DMA 数据读取(详细代码)

    最近重新开始学32 xff0c 搞到串口 DMA 的时候 xff0c 数据读取卡了很长一段时间 xff0c 最终 xff0c 功夫不负有心人终于搞出来了 在此以记录一下 xff0c 方便以后查询使用 在调试的过程中也遇到了很多bug xff
  • STM32_串口的DMA接收

    STM32使用DMA在串口接收数据的方法如下 xff1a span class token macro property span class token directive hash span span class token direc
  • STM32带FIFO的DMA传输应用示例

    STM32系列芯片都内置DMA外设 xff0c 其中很多系列的DMA配备了FIFO 这里以STM32F429芯片及开发板为例 xff0c 演示一下带FIFO的DMA传输实现过程 大致情况是这样的 xff0c 我用TIMER1通道1的比较事件
  • STM32使用串口空闲中断(IDLE)和 DMA接收一串数据流

    STM32使用串口空闲中断 xff08 IDLE xff09 和 DMA接收不定长数据 方法一 使用宏定义判断IDLE标志位 空闲的定义是总线上在一个字节的时间内没有再接收到数据 xff0c USART IT IDLE空闲中断是检测到有数据
  • stm32---DMA

    DMA 全称Direct Memory Access xff08 直接存储器访问 xff09 xff0c 把一个地址空间的值 复制 到另一个地址空间 xff0c 使用DMA传输方式无需CPU直接控制传输 xff0c 通过硬件为RAM和IO设
  • WS2812灯珠(二)-- STM32 SPI+DMA方式驱动

    通过硬件SPI的可以很巧妙的模拟出WS2812的通信时序 xff0c 用spi的8位数据模拟ws281x的一位数据 要将系统时钟设置为56M xff0c SPI分频数设置为8 xff0c 则SPI的通信频率为7M xff0c 1s 7M 1
  • UART+DMA数据传输

    DMA的概念 DMA xff08 Direct Memory Access xff09 即直接内存访问 xff0c DMA传输方式无需CPU直接控制传输 xff0c 通过硬件为RAM I O设备开辟一条直接传输数据的通路 xff0c 能使C
  • stm32串口DMA方式向上位机连续发送数据

    目录 一 认识DMA1 DMA框图2 什么是DMA xff1f 3 DMA传输方式4 DMA传输参数5 DMA数据传输的四个要素6 DMA的应用场景 二 串口DMA方式向上位机发送数据1 实验要求2 通过STMCube配置项目 1 设置RC
  • STM32 进阶教程 15 - 串口DMA收发

    前言 串口操作相信大家一定很熟悉 如果你已经会串口的收发数据 并可以灵活使用轮询及中断方式对串口进行数据收发 那么恭喜你 学完本节内容后 也将可以学会串口的更高级操作方式 DMA方式 DMA操作串口可以大大减轻MCU的负担 同时也可以加快数
  • 多核架构中的 CPU 和内存访问

    我想知道如果 例如 CPU 的 2 个核心尝试同时访问内存 通过内存控制器 一般 如何处理内存访问 实际上 当内核和启用 DMA 的 IO 设备尝试以相同方式访问时 同样适用 I think 内存控制器足够智能 可以利用地址总线并同时处理这
  • arm64 上的 Linux:从 mmapped 相干 DMA 缓冲区发送数据时,sendto 导致“未处理的故障:对齐故障 (0x96000021)”

    我正在构建一个基于配备arm64 CPU的UltraScale FPGA的数据采集系统 数据通过DMA传输到RAM 驱动程序中的 DMA 缓冲区保留如下 virt buf i dma zalloc coherent pdev gt dev
  • Linux驱动程序DMA传输到PC作为主机的PCIe卡

    我正在开发一个 DMA 例程 将数据从 PC 传输到 PCIe 卡上的 FPGA 我阅读了 DMA API txt 和 LDD3 ch 15 详细信息 但是 我不知道如何从 PC 到 PCIe 卡上的一致 iomem 块进行 DMA 传输
  • 从哪里开始学习 Linux DMA/设备驱动/内存分配

    我正在移植 调试设备驱动程序 由另一个内核模块使用 并面临死胡同 因为 dma sync single for device 因内核错误而失败 我不知道这个函数应该做什么 而且谷歌搜索也没有什么帮助 所以我可能需要了解更多关于这个东西的知识
  • 为什么在 Linux 中使用 kmalloc 和 GFP_DMA 时会得到高地址?

    我正在 Linux 中为 DMA 设备编写设备驱动程序 在Linux 设备驱动程序 第 15 章 http lwn net images pdf LDD3 ch15 pdf 它说 对于有这种限制的设备 应该分配内存 通过将 GFP DMA
  • PWM DMA 到整个 GPIO

    我有一个 STM32F4 我想对一个已与掩码进行 或 运算的 GPIO 端口进行 PWM 处理 所以 也许我们想要 PWM0b00100010一段时间为 200khz 但随后 10khz 后 我们现在想要 PWM0b00010001 然后
  • 环形缓冲区和 DMA

    我试图了解从数据包到达网卡到目标应用程序收到数据包之间发生的所有事情 假设 缓冲区足够大 可以容纳整个数据包 我知道情况并非总是如此 但我不想介绍太多技术细节 一种选择是 1 Packet reaches the NIC 2 Interru

随机推荐

  • 【视频】海康摄像头、NVR网络协议简介

    目录 郭老二博文之 图像视频汇总 1 软硬件整体架构 2 涉及的网络协议 3 协议简介 3 1 海康私有协议 设备发现SADP 进行设备的发现 激活 修改网络参数 忘记密码等 SDK 4200 系统平台的接入前端设备 协议不对外开放 但对外
  • 十分钟读懂游戏研发、发行、渠道那些事儿

    国庆在家写了7天东西 xff0c 实在是累得够呛 我重新梳理了一下以前做过的事儿 xff0c 正好把去年年初发到腾讯GAD的文章拿过来做个修改补充 xff0c 算是再做个总结吧 这篇文章主要是介绍游戏行业的上下游产业链有哪些玩家 xff0c
  • pomelo源码解析--新建项目(cli工具: pomelo)

    pomelo怎么新建项目 官方文档 1 安装pomelo 2 新建项目HelloWorld 我简单整理了下创建新项目关键步骤 xff1a 安装pomelo 方式一 xff1a npm install pomelo g 方式二 xff1a g
  • pomelo源码解析--启动项目(pomelo start)

    我们知道启动pomelo服务器是命令pomelo start xff0c 那执行pomelo start到底都做了些什么 xff1f 服务器之间是怎么连接的 xff1f 客户端是怎么给服务器发消息的 xff1f 下面我们通过源码一步步来展开
  • 博客迁移 https://cxx001.gitee.io

    博客新地址 xff1a https cxx001 gitee io
  • OpenGL--粒子系统

    理论基础 1 xff0c 粒子系统的基本思想是用许多形状简单且赋予生命的微小粒子作为基本元素来表示物体 一般由点或很小的多边形通过纹理贴图表示 xff0c 侧重于物体的总体形态和特征的动态变化 把物体定义为许多不规则 xff0c 随机分布的
  • Cocos2dx-- 聊天系统之富文本(RichText)与字体对齐

    前言 游戏开发中我们一般都会有聊天系统 xff0c 我们可以同时或单独发文字 xff0c 图片 xff0c 表情 xff0c 超链接等信息的文本即称为富文本 如下图所示 xff1a 我使用的是cocos 3 4引擎版本里的RichText富
  • OpenGL--天空盒

    理论基础 1 xff0c 目前虚拟场景中天空建模常用的方法有天空顶 SkyDome 半球形 和天空盒 SkyBox 长方体 两种方法 其本质都是摄像机处在一个盒子中间 xff0c 这个盒子通过纹理贴图形成的虚拟世界场景 其中天空盒绘制技术非
  • OpenGL--使用Shader

    创建Shader 关于在OpenGL中怎么创建Shader这个在很早我博客中就有过详细介绍了 这里全当复习 xff0c 温故而知新 xff5e 在OpenGL中 xff0c 存在Program和Shader两个概念 xff0c Progra
  • 轻松学习CAN总线系列---3.CAN数据遵循的格式

    CAN帧 帧类型数据帧远程帧寻址CRC和应答位填充 帧类型 数据帧 xff08 Data frame xff09 为传输用户数据 xff0c ISO 11898 1定义了数据帧 数据帧可以传输的最大有效负载为八个字节 xff0c 即数据场
  • 无法解析的外部符号 "public: virtual struct CRuntimeClass

    无法解析的外部符号 34 public virtual struct CRuntimeClass thiscall CMessageBox GetRuntimeClass void const 34 以下原因是会引起上述错误的 xff1a
  • Qt控件美化 用好CSS/QSS可视化工具

    一 CSS概念 级联样式表 CSS 包含应用于网页中的元素的样式规则 CSS 样式定义元素的显示方式以及元素在页中的放置位置 可以创建一个通用规则 xff0c 只要 Web 浏览器遇到一个元素实例 xff0c 或遇到一个分配给某个特定样式类
  • c/c++中的struct和class的区别

    主要有两种情况 xff1a 1 C语言中的struct和c 43 43 中的class区别 2 c 43 43 中的struct和c 43 43 中的class的区别 下面分别介绍 xff1a 1 C语言中的struct和c 43 43 中
  • Linux应用层对串口的使用操作

    在Linux中串口作为字符设备 xff0c 设备节点在 dev 目录下 xff0c 使用普通的open xff0c close xff0c write和read等系统调用即可使用 这其中会涉及到一些串口的基本属性的设置 xff0c 如 波特
  • 给定两个字符串str1和str2,查找str2在str1中出现的位置

    给定string str1和string str2 xff0c 编写一个库函数 xff0c 返回str2在str1中的位置 如 xff1a str1为 34 ABCDLANCEXYZ 34 xff0c str2为 34 LANCE 34 x
  • 中国交通标志检测数据集

    版权声明 xff1a 本文为转发问 xff0c 原文见博客 https blog csdn net dong ma article details 84339007 中国交通标志检测数据集 xff08 CCTSDB xff09 来源于 A
  • CentOS 修改ls目录的颜色

    修改ls目录的颜色 linux系统默认目录颜色是蓝色的 xff0c 在黑背景下看不清楚 xff0c 可以通过以下2种方法修改ls查看的颜色 bash profile文件在用的根目录下 xff0c ls al可以看到 方法一 xff1a 1
  • Tiny210(S5PV210) U-BOOT(六)----DDR内存配置

    上次讲完了Nand Flash的低级初始化 xff0c 然后Nand Flash的操作主要是在board init f nand xff0c 中 xff0c 涉及到将代码从Nand Flash中copy到DDR中 xff0c 这个放到后面实
  • NAND FLASH命名规则

    基于网络的一个修订版 三星的pure nandflash xff08 就是不带其他模块只是nandflash存储芯片 xff09 的命名规则如下 xff1a 1 Memory K 2 NANDFlash 9 3 Small Classifi
  • s3c6410 DMA

    S3C6410中DMA操作步骤 xff1a 1 决定使用安全DMAC SDMAC 还是通用DMAC DMAC xff1b 2 开始相应DMAC的系统时钟 xff0c 并关闭另外一组的时钟 xff08 系统默认开启SDMA时钟 xff09 x