【求助】imx6q 平台下,如何使用 DMA 进行音频数据的传输? [问题点数:50分]

Bbs1
本版专家分:0
结帖率 66.67%
其他相关推荐
针对stm32 DMA传输AD数据,在完成中断后如何复位的问题的思考
案发条件 ADC连续单通道模式AD采集,触发DMA获取数据。程序如下 void ADC_DMAInit(void) {     ADC_InitTypeDef ADC_InitStructure; RCC_HSICmd(ENABLE); // Enable HSI Clock      ADC_IO_Init(); while(RCC_GetFlagStatus(RCC_FL
I.MX6 DMA驱动测试历程imx6 sdma mem to mem demo
memory to memory sdma copy demo,飞思卡尔的imx6 sdma驱动mem to mem的例子 imx6 sdma内存复制驱动, linux内核3.0.35版本! SDMA例子,亲测可用 飞思卡尔的i.mx6驱动,飞思卡尔的i.mx6驱动内存到内存的sdma驱动例子,测试通过; 聚散内容到聚散内存的复制,编译方法是写一个makefile 然后设定内核编译环境的环境变量,然后 make, Makefile 内容: obj-m += imx6_sdma_test_sg_to_sg_demo.o all: make -C /home/xxx/你的内核目录 SUBDIRS=$(PWD) modules clean: make -C /home/xxx/你的内核目录 SUBDIRS=$(PWD) clean
dma传输原理,及其linux总线驱动之DMA传输
转载了他人的一篇文章,已表明转载的地址,如有侵权,请告知。 dma传输原理 1.DMA请求  CPU对DMA控制器初始化,并向I/O接口发出操作命令,I/O接口提出DMA请求。   2.DMA响应    DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示DMA已经响应
odroid-xu4
odroid-xu4 学习手册
STM32的ADC1+ADC3 16路采集 DMA传输 数据不错位
1) ADC多通道采集:(多通道采集必须用扫描模式,扫描模式时规则组的通道共用一个寄存器,so必须用DMA传输;为防止数据错位,不能用连续模式,而应在查询或中断中先关闭ADC转换,再开启ADC转换)so应采用扫描、非连续的方式、DMA正常模式,DMA的EOC中断或查询; 上述的配置下,ADC运行流程如下: 每个规则通道采集之后,每个ADC_DR会更新,这个更新会启动一次DMA,同时会产生EOC
在freescale mx6q平台上添加spi资源
1:配置管脚为SPI功能 在board-mx6q_sabresd.h的最后添加,复制被重定义 (以添加SPI2为例)         MX6Q_PAD_EIM_CS0__ECSPI2_SCLK, MX6Q_PAD_EIM_CS1__ECSPI2_MOSI, MX6Q_PAD_EIM_OE__ECSPI2_MISO,
嵌入式Linux——DMA:在内核中简单使用DMA实现内存中数据传递
简介:     本文主要介绍在内核中简单使用DMA实现内存数据传递。由于本篇文章中没有介绍与框架相关的程序,只是使用字符设备来操作DMA,同时也没有抽象的层次,因此本文中代码分析部分就相对简单。但我还是会将文章分为两部分,第一部分我将介绍与DMA相关的知识。而第二部分讲解在内核中如何通过代码实现DMA的数据传递。  Linux内核:linux-2.6.22.6  所用开发板:JZ2440 V...
利用DMA进行数据传输的例子
在用DMA进行数据操作时,无非就是对DMA进行相关的控制和一些寄存器的配置,下面是一个比较经典的DMA进行传输的例子: #include #include #include #include #include #include "system.h" #include "sys/alt_dma.h" //#include "altear_avalon_dma.h" #include "al
研究ALSA的DMA使用
对于DMA的介绍,网上资料很多。我们重点关注我们如何使用DMA。 在声卡里,我们负责音频数据传输的就是DMA通道,这个属于DMA传输的外设和内存传输。看看内核如何实现,而我们又如何使用? 先看看DMA在ALSA的角色: struct snd_soc_platform s3c24xx_soc_platform = { .name = "s3c24xx-audio", .pcm_
TI CC2530(DMA编程——手动触发DMA传送,一个数组拷贝到另一个数组里)
DMA基础 直接存储访问(Direct Memory Access,DMA),允许不同速度的硬件装置之间的通信,不依赖于CPU。下面两张图形象地描述了DMA方式与非DMA方式的区别: DMAC具有独立的控制三大总线(数据总线、地址总线、控制总线)来访问存储器和I/O端口的能力,它能像CPU一样提供数据传送所需的地址信息和读写控制信息。DMAC和CPU都挂在系统总线上,当进入DM
SPI 的DMA接收
一、概述 在项目开发中,需要用到SPI接口来进行大量数据的传输,为了能节省CPU的工作时间,采用DMA来进行数据发送则是明智之举。 二、工作模式描述 1、发送方作为主机发送数据,接收方作为从机接收数据,基本的硬件连接为: 主机——从机 NSS ——NSS SCK——SCK MOSI——MOSI GND——GND(注意一定要共地,否则数据会错很多)
基于matlab的dct图像压缩
matlab下的dct图像压缩。X=imread('c:\MATLAB7\toolbox\images\imdemos\5.JPG'); trueImage=double(X); trueImage=trueImage/255; figure; imshow(trueImage); title('原始图象'); %对图象进行归一化 %以下为对图象进行DCT变换%得到图象的DCT系数矩阵及DCT系数方差矩阵 dctm=dctmtx(8); imageDCT=blkproc(i,[8 8],'P1*x*P2',dctm,dctm.'); DCTvar=im2col(imageDCT,[8 8],'distinct'); n=size(DCTvar,1); DCTvar=(sum(DCTvar.*DCTvar)-(sum(DCTvar)/n).^2)/n; [dum,order]=sort(DCTvar); %以下为显示系数图象 %1表示保留的系数,表示丢弃的系数 cnum=64-cnum; mask=ones(8,8); mask(order(1:cnum))=zeros(1,cnum); im8x8=zeros(9,9); im8x8(1:8,1:8)=mask; im128x128=kron(im8x8(1:8,1:8),ones(16)); figure; imshow(im128x128); title('DCT 系数'); %以下为重构及显示图象 dctm=dctmtx(8); newImage=blkproc(imageDCT,[8 8],'P1*(x.*P2)*P3',dctm.',mas(1:8,1:8),dctm); figure; imshow(newImage); title('重构图象'); %以下为显示误差图象 figure; imshow(trueImage-newImage+0.45); title('误差图象'); %以下为计算归一化图象的均方误差 error=(trueImage.^2-newImage.^2); MSE=sum(error( )/prod(size(trueImage));
DMA数据传输过程
一.DMA方式特点:   1、 外部设备的输入输出请求直接发给主储存器。   主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。   2、 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。   由于在外围设备与主存储器之间传送数据不需要执行程序
DMA_DAC_uvision
STM32平台下,采用DMA方式采集DAC数据,下载可直接使用,具有很好的参考价值。
DMA详解
1,概念:DMA全称为Direct Memory Accessuart,即直接内存存取,是一种外设和内存直接数据传输的方式,作用就是减少CPU的负担传输,特别适合大数据高速度传输使用。 2,DMA通道 stm32f1系列包含2个DMA控制器,DMA1有7个通道。DMA2有5个通道,每个通道最高可接收8个外设的DMA请求,每个通道还有一个冲裁器,用于处理DMA请求间的优先级。 stm
DMA传输详解
直接存储器存取(DMADirect Memory Access)方式是用硬件实现存储器与存储器之间或存储器与I\O设备之间直接进行高速数据传送,不需要CPU的干预。这种方式通常用来传送数据块。MSP430f16x系列单片机内部含有DMA模块,而且几乎内部所有外设都可以触发DMA开始存取数据。这里实现了这个模块的程序通用的函数库,方便使用。 硬件介绍: MSP430F15X/16X 系列
STM32的SPI采用DMA方式传输测试
STM32的SPI采用DMA方式传输测试   文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 环境: 主机:WIN7 开发环境:MDK4.23 MCU:STM32F103CBT6   说明: 参考链接:http://www.openedv.com/posts/list/3159.htm SPI传输数据分为连续传输和非连续传输
STM32 DMA 应用之(二) DMA 串口 数据传输--发送
一、DMA请求映像 由此我们知道如果需要使用串口1的发送功能需要用到的是DMA1_Channel4 使用串口1的接收功能需要用到的是DMA1_Channel5     二、怎样配置软件来使用DMA  把数据传到串口发送? (1)配置dma  /*********************************************************
STM32外设DMA使用总结
STM32外设DMA使用总结: 1、根据需要选择DAM模式: 2、对于DMA1的Chanel3,对应外设为USART3的RX 试想:如果串口接收中断和DAM中断同时打开,CPU如何相应? (1)中断优先级不同:这好说,支持嵌套中断(NVIC)的Cortex-M3自然优先服务中断优先级高的 (2)中断优先级相同:处理原则,先来先处理;若同时到来,中断号低的优先处理 查询手册可知,DMA(IRQn number 13)会先于USART3(39)被CPU处理 3、设置DMA模式为循环模式,则: (1)只开DMA中
STM32学习笔记之DMA使用
实验:控制串口一以DMA方式发送(TX)数据 一、初始化DMA        对STM32任何模块使用前都要对其初始化、首先就是初始化外设时钟,查看时钟 数可知DMA时钟由AHB得来。 初始化时钟:RCC->AHBENR|=1         在读数据手册可知:直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须
对java与.net平台进行的分析和看法
对java与.net平台进行的分析和看法一、简介 JAVA与.NET继续发展下去,可能的两种结果:其中的一种退出竞争或是两种共存,而共存的可能性更大。JAVA得以生存的原因在于它的时间优势:它已经发展了六年;它在大多数的操作系统上可以运行;它得到了业界领导者如ORACLE、IBM的支持;并且使用JAVA进行开发的项目计划几乎覆盖所有的应用程序领域。而.NET的优势在于微软拥有90%的桌
多核计算与程序设计 - 01 基础知识 之一 多核编程与单核多线程和分布式编程的区别
这个分类的知识来自周伟明先生的《多核计算与程序设计》一书,在此把书中对我个人帮助较大的部分整理出来,以便更容易的在工作中加以应用。 一,多核编程与单核多线程的区别 1, 锁竞争导致的串行化的区别 在单核系统中如果某个线程获取了锁,那么这个线程将获取CPU的运行时间,其他线程将被阻塞。但CPU始终处于运行状态,影响计算时间的其实只是加锁和解锁的时间。并不会发生CPU空闲的现象。
ADC采集数据(DMA模式)
ADC采集数据(DMA模式)         写这篇文章,也是自己参考了一些书籍,加上自己的感悟总结之后写出来的。正所谓天下文章一大抄,取个文雅的名字叫模仿、借鉴、参考。不过这也是一种学习的方法,我想你看我这篇文章也是这个目的吧!但是我要说,学来的东西总要有自己的体会和感悟,不能让自己的脑袋成了别人的跑马场不是!好了,废话不多说,直接上程序(程序有注释,可以参考)。 adc.h文件 #ifn
STM32学习笔记之ADC--DMA方式
程序功能是把ADC1模块里通道14的输入电压转换后通过USART2发送到PC,在PC机上用串口调试助手观察接收数据:STM32是12位ADC,测量结果基本还可以!程序用了DMA来传输ADC转换值,调高了读取速度。串口部分用是上一篇串口调试笔记里的代码。/*******************************************************************
STM32 DMA传输 中断方式配置 源代码
 stm32单片机源程序:#include "pbdata.h"void RCC_Configuration(void);void GPIO_Configuration(void);void NVIC_Configuration(void);void USART_Configuration(void);void ADC_Configuration(void);void DMA_Configurat...
串口以DMA方式发送(TX)数据
实验:控制串口一以DMA方式发送(TX)数据 一、初始化DMA        对STM32任何模块使用前都要对其初始化、首先就是初始化外设时钟,查看时钟 数可知DMA时钟由AHB得来。 初始化时钟:RCC->AHBENR|=1         在读数据手册可知:直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。无须
ARM Cortex-A9 NEON性能初步测试
最近在ZC702上对ARM Cortex-A9的NEON性能做了些测试。 测试代码如下: .balign 4 .global neon_best_pipelne .arm neon_best_pipelne: .rept 10000 vmla.f32 q10, q0, q5 vmla.f32
DMA(一)
DMA介紹之所以要介绍DMA,因为它对性能太重要了!只有活用了DMA,CPU的性能才能上去!S3c2410有四个DMA,每个DMA支持工作方式基本相同,但支持的source Dest可能略有不同,具体见Datasheet。 这里具体DMA CONTROL寄存器(DCON)的配置说明,进而引出DMA的各种工作方式。Atomic transfer:指的是DMA的单次原子操作,它可以是Unit模式(传输1个data size),也可以是burst模式(传输4个data size),具体对应DCON[28]。Da
用ADC连续采集11路模拟信号,并由DMA传输到内存
描述:用ADC连续采集11路模拟信号,并由DMA传输到内存。ADC配置为扫描并且连续转换模式,ADC的时钟配置为12MHZ。在每次转换结束后,由DMA循环将转换的数据传输到内存中。ADC可以连续采集N次求平均值。最后通过串口传输出最后转换的结果。 程序如下: #include "stm32f10x.h"        //这个头文件包括STM32F10x所有外围寄存器、位、内存映射的定义 #
STM32:ADC采集数据实例(采用DMA模式)
硬件平台:stm32f10xZET6 开发环境:keil MDK uVision v4.10 开发语言:C、ST_lib_3.5固件库 将STM32 开发板供电(DC5V),插上 JLINK,插上串口线(两头都是母 的交叉线),打开超级终端,配置超级终端为 115200 8-N-1,将编译好的程序下载到开发板,即可看到超级终端打印出如下信息: 当旋转开发板开发板上的滑动变阻器时, A
DMA通道:多通道,互斥,使用
DMA, Direct Memory Access,是避开CPU直接处理的方法。 常见的PCIe卡,如网卡, PLX系列解调卡都在使用。 1 网卡,采用ring queue,环形缓冲队列来处理DMA传递上来的数据。这个缓冲,是为了缓冲DMA读上来的数据,以不浪费宝贵的DMA访问时间。即,为了保证DMA不停的去访问网卡,特意对DMA说,数据放我处缓冲,你忙去吧。 2 DMA通道。 DMA通道
不同平台下StreamingAssets的文件路径预编译
01.//不同平台下StreamingAssets的路径是不同的,这里需要注意一下。 02.public static readonly string PathURL = 03.#if UNITY_ANDROID   //安卓 04.    "jar:file://" + Application.dataPath + "!/assets/"; 05.#elif UNIT
STM32 DMA正常模式等待传输完成和开始下一次传输
选择DMA的正常模式,即DMA只传输一次。如果当传输完一次后,还想再传输一次,就需要重启DMA: DMA_Cmd(DMA1_Channel6,DISABLE);  重新设置源地址  重新设置目的地址  重设传输数量  DMA_Cmd(DMA1_Channel6,ENABLE);  因此建议把DMA_InitStructure定义为全局变量,然后可以使用下面语句来重启DMA:
stm32 ADC全解(单次,连续DMA传输)
学习STM32的ADC转换,在开发板上写程序调试。 四个任务: 四个任务: 1.AD以中断方式(单次)采集一路 2.AD以中断方式连续采集四路 3.ADC多路采集,DMA传输,DMA深度为一级 4.ADC以DMA方式采集四路,每路DMA深度为28级,并滤波,说明滤波原理 总结: 第一个任务 :ADC以中断方式采集一路ADC,通过
RTP FILTER
在directshow 平台下 利用JRTPLIB来打包XVID视频流,并进行传输
全功能智能车之无FIFO摄像头 DMA传送优化(第三篇)
无FIFO摄像头 DMA传送优化: 原来虽说是DMA传输,但是那是定时器定时触发DMA的,并不是根据摄像头的引脚信号触发的DMA,存在很多的不合理性,这次的程序是用摄像头PCLK引脚来触发DMA。 STM32F103的缺陷: 1.定时器没有回溯清除DMA请求标志的功能,也就是说要启用一个定时器触发中断,在该中断里清除自己的状态位,好让下次的DMA再次请求, //定时器1触发中断服务程序
MediaPlayer类的使用
Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 。该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码和播放音视频。
利用windows API 进行窗口编程
Windows窗口是如何产生的?          Windows窗口到底是如何创建的.脱离了一些IDE开发环境,脱离了应用程序创建向导,我们改如何创建windows视窗程序呢?他到到底是如何产生的?带着这些疑问,我们开始一个一个的了解. 在windows下创建窗口分五步:   a.      创建窗口的消息处理函数(消息处理回调函数) b.      定义窗口入口函数 c.
8237dma的四种传送方式简介
8237A有四种工作方式:单字节传送、数据块传送、请求传送和多片级联。  (1)单字节传送(single mode)   单字节传送方式是每次DMA传送时,仅传送一个字节。传送一个字节之后,当前字节计数器减1,地址寄存器加1或减1,HRQ变为无效,释放总线控制权,将控制权交还给CPU。如果传送使得字节计数器减为0或由外设产生信号时,则终止DMA传送。   单字节传送方式的特点是:一次传送一个字节,
DMA的理解
DMA控制器是一种在系统内部转移数据的独特外设,可以将其视为一种能够通过一组专用总线将内部和外部存储器与每个具有DMA能力的外设连接起来的控制器。它之所以属于外设,是因为它是在处理器的编程控制下来执行传输的。值得注意的是,通常只有数据流量较大(kBps或者更高)的外设才需要支持DMA能力,这些应用方面典型的例子包括视频、音频和网络接口。     一般而言,DMA控制器将包括一条地址总线、一条数据
STM32学习笔记一一DMA传输
1.简介 DMA:全称为: Direct Memory Access,即直接存储器访问。 DMA 传输方式无需 CPU 直接控制传输,也没有中断处理方式那样保留现场和恢复现场的过程,通过硬件为 RAM 与 I/O 设备开辟一条直接传送数据的通路, 能使 CPU 的效率大为提高。 STM32 最多有 2 个 DMA 控制器(DMA2 仅存在大容量产品中), DMA1 有 7 个通道。 DMA2 ...
两种形式的dma 实现memory copy代码
在飞思卡尔的时候,需要用SDMA实现内存到内存memory copy的功能,需要做两部分的工作: 1:在DMA controller中加入M2M的支持。 2:写一个驱动来调用DMA controller的M2M功能。 上面的2实际上对于不同的SoC来讲,思路是一样的,有通用性,在这里总结下。 当时在实现的时候,用了两种方法: 1:cyclic, 用dma_alloc_coherent分配
DMA导致的CACHE一致性问题解决方案
转载时请标明作者 waterhawk,  原文地址: 先简单说一下DMA的CACHE一致性是个啥问题。复制: CPU在访问内存时,首先判断所要访问的内容是否在Cache中,如果在,就称为“命中(hit)”,此时CPU直接从Cache中调用该内容;否则,就 称为“ 不命中”,CPU只好去内存中调用所需的子程序或指令了。CPU不但可以直接从Cache中读出内容,也可以直接往其中写入内容。由于Cac
dma传输与memcpy传输对比测试结果分析。。。
1.测试代码,如下,网上找的,驱动的环境搭建之前 /* * DMA test module * * Copyright (C) 2007 KEDACOM Corporation * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU
USB数据采集系统中DMA数据传输的实现
引言 USB通用串行总线(Universal Serial Bus)是被PC机广泛采用的一种总线,目前已经在计算机主板上大量集成,成为一种标准配置接口。它的即插即用、真正的热插拔、可总线供电、高性能和系统造价低等一系列的优点,使得USB接口得到了广泛的应用。特别是随着USB2.0高速传输协议的出现,其数据传输速度达到了480Mb/s,使得USB接口方式的虚拟仪器系统成为今天低成本虚拟仪器系统
DMA传输数据过程简介
DMA传送操作分三个阶段:准备阶段、DMA传送阶段和传送结束阶段。   1.准备阶段:在这个阶段中,CPU通过指令向DMA控制器发送必要的传送参数。   ①控制字送DMA控制器指出数据传送方向。   ②预置MBAP,即数据块在主存缓冲区的首址。   ③置DAR外设的地址,如外设为磁盘机,其地址包括:磁盘机号、盘面号、柱面号和扇区号。   ④给WBC预置,指出数据传送字节/字数。   
对于stm32中dma的理解
一.dma常识. 1.作用:实现片内数据之间的高速传输。即是能够不占用cpu实现数据传输。 2.模式:外设到存储器传输、存储器到外设传输和存储器到存储器传输三种传输模式。 3.stm32中的dma支持外设通道选择,并且可以用仲裁器配置adc对数据流的处理顺序。 4.dma带有一个被称为fifo的东西,主要配置fifo来实现对传输双方要求字长不匹配的调整。即所谓 FIFO 对于要求源地址和
STM32——使用PWM+DMA实现脉冲发送精确控制
我为什么要写这个代码。。。 之前用stm32写过脉冲发送的代码,用来控制步进电机,但是缺点明显,之前是用定时器中断做的,所以一但控制的电机多起来,MCU资源占用就很大,这在大多数情况下是不可接受的,更不用说多轴联动了。 最近做的步进电机CAN总线控制系统,就想顺便重新写驱动。希望做到占用很少的MCU资源,实现脉冲发送的精确控制。既然是用来控制步进电机,那么脉冲的数量和频率一定要可控,要不然怎么...
STM32 ADC单通道与多通道_DMA学习笔记 百度搜索
STM32 ADC单通道与多通道_DMA学习笔记 百度搜索  http://wenku.baidu.com/view/0ef1e59eda38376baf1faee6.html?re=view
STM32 DMA->内存到内存
基于STM32 F401 Discovery板: DMA2在AHB1总线上 步骤一:使能DMA #define DMA_STREAM_CLOCK RCC_AHB1Periph_DMA2 RCC_AHB1PeriphClockCmd(DMA_STREAM_CLOCK, ENABLE);步骤二:reset DMA Stream register: /* R
STM32的UART DMA传输总结
使用DMA传输可以连续获取或发送一段信息而不占用中断或延时,在通信频繁或有大段信息要传输时非常有用。 由上表可知,要使用USART1TX/RX我们选择通道4和5 1、 DMA传输方式: (1) DMA_Mode_Normal,当通道配置为非循环模式时,传输结束后(即传输计数变为0)将不再产生DMA操作。要开始新的DMA传输,需要3个步骤:在关闭DMA通道的情况下,在DMA_CNDTRx寄
DMA传输的C语言实现
DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现DMA传输的C语言实现
.net平台(C#)MongoDB最新版操作类
.net平台(C#)MongoDB最新版操作类 MongoDB操作类源码包括添加、修改、删除和查询(包括分页)等同步及异步操作类完整的代码。 本项目是以最新版的MVC结合MongoDB呈现,对MongoDB有兴趣的朋友很有参考价值。 可以直接拿到自己的项目直接开发,可以少走弯路。
这个编译器可以调用windows的api,然后直接调用API码写出VC的IDE
这个编译器可以调用windows的api,然后直接调用API码写出VC的IDE
DMA原理和实验
最近忙于驱动这块,于是我自己整理了有关S3C2410的DMA的基本编程及DMA的相关寄存器操作。 一.DMA访问的原理     1.DMA(Driect Memory Access)访问的概述     当系统内存想要与高速外设或者内存的不同区域之间进行大数据的快速传送时,查询和中断这两种方式不能满足要求:DMA就是为解决这样的问题提出来的。 (中断方式较之查询方式来说,可以提高CPU的利用
编译原理——实验 1.2 在 Windows平台下使用 Flex和 Bison
 一、实验目的 1. 学习使用语法分析程序自动构造工具 Bison  3   2. 熟悉YACC源程序语法 3. 掌握语法分析程序的自动构造方法 二、实验平台 Windows + Flex + Bison 三、基础内容 1. 实现以下步骤, 掌握Flex和Bison的工作过程 a) 在 DOS 命令提示符下依次执行以下两行命令     flex  c
第21章 DMA—直接存储区访问—零死角玩转STM32-F429系列
第21章     DMA—直接存储区访问 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege     本章参考资料:《STM32F4xx中文参考手册》DMA控制器章节。 学习本章时,配合《STM32F4xx中文参考手册》DMA控制器章节一起阅读,效果会更佳,特别是涉及
CUDA C编程权威指南
高性能计算技术丛书
新路程------imx6的uart小结(1)
imx6用的是RS485,今天看看这个接口是怎么初始化的。 首先在./arch/arm/mach-mx6/board-mx6q_sabresd.c里找uart的相关信息 在static void __init mx6_sabresd_board_init(void)肯定会有初始化的相关信息 gpio_request(SABRESD_EPDC_PWRSTAT, "uart2_e
两种DMA触发方式的传输过程
DMA数据传输可由 2 种方法触发:或者软件请求数据(通过一个函数例如 read)或者硬件异步推数据到系统. 在第一种情况, 包含的步骤总结如下: 1. 当一个进程调用 read, 驱动方法分配一个 DMA 缓冲并引导硬件来传输它的数据到那个缓冲. 这个进程被置为睡眠. 2. 硬件写数据到这个 DMA 缓冲并且在它完成时引发一个中断. 3. 中断处理获得输入数据, 确认
自己用MFC做的播放器
自制做的MFC小播放器 有播放列表 收藏列表
PIO操作与DMA操作
IDE数据传输模式 随着技术的发展,产品对数据传输速度要求的提高,IDE接口硬盘的数据传输模式,经历过三个不同的技术变化,由最初的PIO模式,到DMA模式,再到Ultra DMA模式。 1> PIO模式 PIO的英文拼写是“Programming Input/Output Model”,PIO模式是一种通过CPU执行I/O端口指令来进行数据的读写的数据交换模式。是最早先的硬盘数据
hidmac-hisi
海思平台上3511-3520如何进行dma发送接收的linux驱动
[Linux内存]DMA学习笔记一
http://www.cnblogs.com/hanyan225/archive/2010/10/28/1863854.html
Windows下的flex和bison
Windows下的flex和bison,用于编程辅助
STM32 DMA 应用之(一)SRAM 与flash 间数据传输
一、为什么要用DMA? DMA  全称:Direct MemoryAccess 就是可以直接内存存取; 正是它可以直接操作内存所以具备以下优点: 而无需经过CPU去操作内存的存取,这样可以解放CPU出来干其他的事情; 因为他可以进行存储器时间的数据传输,而不需经过cpu,所以大大加快了数据传输速度—是一种高速的数据传输;   二.DMA有几种传输数据方式: (1)内存到 内存之间
SDIO驱动(16)使用DMA传输数据2
DMA控制器驱动框架中的第二个函数: s3c24xx_dma_order_set(&s3c2440_dma_order);参数s3c2440_dma_order是一个全局变量,抽象的是下图物理channel和逻辑channel及其互相关系: static struct s3c24xx_dma_order __initdata s3c2440_dma_order = { .channe
J2EE 平台搭建详细步骤
J2EE环境配置用到的软件资源:以下资源大部分可以在http://yiyi735.blog.xunlei.com/里下载到。l 系统环境:本人的系统配置为WINDOWS XP SP2 P42.8G 512M内存。l JAVA环境:jdk-1_5_0_02-windows-i586-p.exel 数据库:MSQL 5.0l 服务器:Tomcat5.0l 开发平台:ecli
STM32F10XX中SPI的DMA发送数据
参考资料: http://blog.csdn.net/jdh99/article/details/7603029 http://www.openedv.com/posts/list/3159.htm     上面提到的两篇博文比较详细深刻的说明了DMA的工作方式以及SPI的DMA传输方式的特点。结合对Stm32F103VET6中SPI的DMA传输方式的配置和学习谈谈感受,在看下面
DMA方式的数据传送过程
DMA方式的数据传送过程       DMA方式具有如下特点:   1、 外部设备的输入输出请求直接发给主储存器。   主存储器既可以被CPU访问,也可以被外围设备访问。因此,在主存储器中通常要有一个存储管理部件来为各种访问主存储器的申请排队,一般计算机系统把外围设备的访问申请安排在最高优先级。   2、 不需要做保存现场和恢复现场等工作,从而使DMA方式的工作速度大大加快。   由于...
USART 串口 DMA 发送和接收
串口DMA发送: 发送数据的流程: 前台程序中有数据要发送,则需要做如下几件事 1.      在数据发送缓冲区内放好要发送的数据,说明:此数据缓冲区的首地址必须要在DMA初始化的时候写入到DMA配置中去。 2.      将数据缓冲区内要发送的数据字节数赋值给发送DMA通道,(串口发送DMA和串口接收DAM不是同一个DMA通道) 3.      开启DMA,一旦开启,则DMA开始发送数
STM32硬件IIC之DMA传输数据
这里给出一个实现用DMA传输IIC数据的实现过程 这里咱们说3个点 1.检查IIC总线上是否有指定地址的器件 2.IIC读取数据 3.IIC写数据 下面来一个一个详细说明1.检查IIC总线上是否有指定地址的器件1.判断是否总线忙,如果忙则等待 2.产生起始位 3.等待起始位产生完成 4.发送器件地址(这里选择读写都是可以的) 5.等待是否有ACK位回应,(这里有两种判断方法1.通过判断ACK
直接内存访问(DMA)初探
1.DMA简介 DMA(Direct Memory Access),直译为直接内存访问,是一种无需CPU的参与就可以让外设与系统内存之间进行双向数据传输的硬件机制。 使用DMA可以使系统CPU从实际的I/O数据传输过程中摆脱出来,从而大大提高系统的吞吐率。 2.DMA工作过程 DMA方式的数据传输由DMA控制器(DMAC)控制,在传输期间,CPU可以并发的执行其他任务。当DMA结束
STM32—DMA之外设到外设使用
无论是外设与MEM的哪种组合,DMA的操作本质是地址到地址的操作。 STM的RM中没有具体说明外设到外设的SETTING,通过猜想与验证,得到以下结论。 DMA传输方式的外设到外设,只需将其中一个外设的寄存器地址当成MEM的地址即可,其他设置与外设到MEM一致即可实现外设之间的DMA传输。 注:特殊的在于DMA的MEM2MEM需要使能CCR中MEM2MEM。
PCI总线 DMA burst 基本概念
DMA和burst不是一个概念。 DMA传送不经过CPU的控制,假如硬盘的数据不能经过DMA控制器读到内存,那么每完成一次将硬盘的数据读出来,再存放到内存的操作,都要通过CPU运行几条读写指令来完成,这时CPU就做不了别的事了,如果有DMA控制器,则这个过程不需要CPU的参与,只需要占用总线就可以了。CPU还可以去完成别的运算。 Burst操作还是要通过CPU的参与的,与单独的一次读写
VTK-8.0.1 基于QT5.7.0 中的mingw win7编译
VTK-8.0.1 (在win7平台下) 使用 Qt5.7.0进行编译结果libs
androidLBS签到
使用android 平台下进行地图服务应用
JLINK仿真手册
这是关于如何使用JLINK在MINI2440平台下进行AXD仿真的手册,是友善公司设计的。
DMA方式传输数据到TIM3,更新PWM
定义:DMA,全称为: Direct Memory Access,即直接存储器访问, DMA 传输将数据从一个地址空间复制到另外一个地址空间。 当 CPU 初始化这个传输动作,传输动作本身是由DMA 控制器 来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。 作用对象:存储器和存储器间的传输,外设和存储器,存储器和外设的传输;闪存、 SRAM、外设的 SRAM、 APB1...
STM32系统学习——DMA(直接储存器访问)
DMA主要功能是传输数据,但是不需要占用CPU,即在传输数据时,CPU可以做别的事,像多线程。数据传输从外设到存储器或者从存储器到存储器。DMA控制器包含了DMA1和DMA2,其中DMA1有7个通道,DMA2有5个通道,可以理解为传输数据的一种管道。要注意的是,DMA2只存在于大容量单片机中。 一、DMA框图解析 DMA控制器独立于内核,属于一个单独外设,结构结合下图来看 1.DMA请求
ALSA交叉编译与测试
内核版本:由menuconfig配置文件TOP6410_3d.config编译所得内核2.6.28.6(使用老版28内核或使用默认menuconfig配置文件编译会出现alsa录音没有声音的问题) 文件系统版本:老版光盘中的ubifs即可 alsa-lib版本:1.0.9 alsa-util版本:1.0.9a 其他版本的alsa-lib和alsa-util不能保证正常工作
基于.net平台下大型分布式HIS系统之药房药库系统
1.药房药库相关业务演示分析 2.药库入库业务界面实现 3.药库入库业务界面实现 4.药库入库业务后台实现 5.药库入库保存和打票实现 6.药库入库审核 7.药库入库审核保存 8.药品盘点 9.药品盘点数据初始化 10.药品盘点数据保存和审核 11.药品盘点数据审核和打印 12.药品盘点更新库存 13.药房划价业务分析 14.药房划价界面业务 15.药房划价界面业务 16.药房划价保存业务 17.药房划价打票业务 18.药房门诊发药业务 19.药房门诊发药保存业务 20.药房住院发药界面业务 21.药房住院发药逻辑业务 22.药房退药业务逻辑(门诊) 23.药房退药业务逻辑(住院) 24.药房退药业务逻辑(住院) 25.药房药品维护
Win10平台下的常用软件
由于电脑系统最近崩溃两次,让我有了备份常用软件清单的想法。工欲善其事必先利其器,不断追求效率的提升是一件很幸福的事情。清单不定期更新。 原文发布于个人博客(好望角),并在博客持续修改更新,此处可能更新不及时。 楔子 操作系统 软件 日常必备 Shadowsocks(SS) Chrome Firefox Git Bandzip Pycharm Xshell Offices Te...
stm32串口HAL库的DMA发送问题
本文使用stm32f411ret的串口1的DMA方式发送数据,刚开始调试的时候发现串口只能发送一次数据,之后就把系统hang住了。通过网上搜资料和不断尝试,发现问题是中断回调函数没有写的原因。 使用HAL库的DMA,需要同时实现DMA中断回调函数和串口中断回调函数。 void DMA2_Stream7_IRQHandler(void) { HAL_DMA_IRQHandler(Uar...
Corba开发之基于Name Service实现
在之前的文章中描述了Corba基于ior的实现,还有一种常用的是基于nameService实现;Corba的对象命名服务就是给对象实例提供一个名称,以便用户通过这些名称来获取对象的实例。对象命名服务是ORB上的对象找到其它对象的基本机制。名字是用来识别一个对象的可人工辨认的值,命名服务将这些名字映射到对象标记,名字-对象关联叫做名字联编。命名语言环境是一个名字空间,对象名字在这里是独一无二的。每个
STM32 DMA发送完成标志位的查询
void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) { uint32_t flag_it = hdma->DmaBaseAddress->ISR; uint32_t source_it = hdma->Instance->CCR; /* Half Transfer Complete Interrupt manage...
PCI设备Windows NT平台驱动程序设计
本文通过现有最常见的AMCC公司生产的AMCC S5933 PCI 控制芯片为例说明在WINDOWS NT平台下如何编写设备驱动程序以实现DMA传输方式
STM32F0xx_DMA收发USART数据配置详细过程
前言 关于DMA(Direct Memory Access)的功能,前面关注我微信的人应该知道,其实我已经在F1芯片上简单讲了一下。有网友要求在F0讲解一下使用DMA收发串口数据。今天就应网友要求总结一下在F0芯片上,使用DMA方式传输(收发)USART数据的功能。 在多种芯片上(F0、F1、F2、F3、F4)了解过DMA模块功能的朋友可能会发现一个特点,就是DMA的功能有很多相似的地方,甚至
用DMA实现printf
printf作为标准库常用的一个函数,应用在嵌入式系统里,只需要将fputc函数重定向到串口,就可以使用printf进行格式化打印了。但在嵌入式系统中,printf是一个相对比较占资源的函数,特别是stm32这种主频不高的处理器,调试过程中如果过多地使用printf甚至会影响程序本来的结果。stm32有DMA这种好东西,把程序运行过程中的调试信息通过DMA的方式打印出来,无疑提高了程序运行的效率。
IMX6Q 触摸屏调试(TSC2007驱动)
IMX6Q 触摸屏调试(TSC2007驱动)
STM32使用DMA从串口读可变长度数据到内存
首先要解决DMA怎么知道要接收的数据何时开始,何时结束的问题。 如果把DMA设成循环模式肯定是不行的,所以把DMA设置成正常模式。 STM32的串口有监测总线是否处于空闲的功能,我们可以使用这个功能,当数据传输完总线变成空闲状态时产生中断,来对收到的数据进行处理。因此整个过程就变成:当一堆数据开始传输,DMA默默地把数据搬运到内存中,当这堆数据传输完成,总线变成空闲状态时,马上产生中断,在中断
linux总线驱动之DMA传输
最早接触DMA的时候是大三的微机原理,当时不是很理解,什么DMA模式啊,只知道是传输速度快,不经过CPU,但是到底是怎么样的不经过CPU呢?还是不理解。这次I2C控制器里面带了DMA的模式,所以有机会去接触下了。        而具体的DMA的意思是什么http://baike.baidu.com/view/32471.htm,百度百科里还是不错的。   DMA的工作过程:
联想企业协作平台
联想集团的企业协同办公平台介绍,在一个平台下如何进行高效协作,最大化企业生产力。
STM32双缓冲机制初始化(使用STM32CubeMX)
1.使用STM32CubeMX配置的串口引脚设置和dma的设置会生成在usart.c。   1)如果DMA接收想采用循环缓冲区的方式,可以直接将RX-DMA设置成Circle方式,然后数据就会硬件上自动实现环形缓冲区的功能,省了不少时间。   2)DMA在采用Normal模式的时候,当一次任务完成后,DMA->DMA_BufferSize自动清零,并且DMA自动停止。如果想再次设置DMA...
DMA和cache一致性问题
CPU缓存(Cache Memory)是位于CPU与内存之间的临时存储器,它的容量比内存小的多但是交换速度却比内存要快得多。缓存的出现主要是为了解决CPU运算速度与内存 读写速度不匹配的矛盾,因为CPU运算速度要比内存读写速度快很多,这样会使CPU花费很长时间等待数据到来或把数据写入内存。在缓存中的数据是内存中的 一小部分,但这一小部分是短时间内CPU即将访问的,当CPU调用
STM32之ADC实例(基于DMA方式)
ADC简介:     ADC(Analog-to-Digital Converter,模/ 数转换器)。也就是将模拟信号转换为数字信号进行处理,在存储或传输时,模数转换器几乎必不可少。    STM32在片上集成的ADC外设非常强大,我使用的奋斗开发板是STM32F103VET6,属于增强型的CPU,它有18个通道,可测量16个外部和2个内部信号源。各通道的A/D转换可以单次,连续,扫描或间断
DSP6416-BIOS
主要介绍关于TI公司的DSP6416平台下如何进行基于DSP-BIOS的应用程序设计
AT91SAM9260硬件时钟RTC的使用
AT91SAM9260平台下如何使用硬件时钟RTC,使用过程及应用。
STM32的DMA中断
当设置DMA_BufferSize后,只有当传送完所设的大小后,才会产生一个DMA_IT_TC中断。如果使能了HTIF,则当传送了一半大小的数据后就会产生一个中断。 例如,DMA用在USART的接收上,当把DMA_BufferSize设置成4后,只有当传送完4个DataSize后,才会产生一个中断。
关于stm32 HAL库在freertos下串口+DMA发送完成中断处理的问题
stm32+HAL+freertos+USART+DMA
我们是很有底线的