aurix中DMA使用
来源:互联网 发布:think php框架 编辑:程序博客网 时间:2024/05/17 04:04
首先请注意:DMA的源/目标地址必须是64位对齐
DMA就是从数据源到DMA控制器,再从DMA控制器到目标源。
DMA硬件请求包括自身的请求或其他的DMA请求通道。
DMA控制器主要由这三部分组成:DMA channel 、 move engine 、 bus switch
设置DMA通道,DMA shadow reg的作用是体现在link DMA使用的时候,指定Shadow Addr,等上一段搬完后,能自动把shadow addr赋值到源或者目标地址,开始搬运下一段。
DMA通道请求控制
然而触发dma请求,可以通过硬件或软件
硬件可以由ICU中断单元触发,硬件请求通过TSRz.HTRE.使能或不使能,需要dma转化后,软件reset该位。
软件请求则是直接设置 CHCSRz.SCH位
软件操作模式:
软件操作时通过TSRz.HTRE位不使用硬件操作。
硬件操作模式:
ICU中断触发,TSRz.ECH位需要使能硬件模式。
如果要使用硬件中断请求DMA,一定要注意中,中断优先级SRPN的设置!原话
说白了,也就是外设的中断如果是向DMA请求,则设置中断优先级一定要等于待处理的DMA的通道ID号,如果不一致,这触发不了该DMA的通道工作。
还有就是,如果要使用硬件中断控制DMA,进行DMA配置的部分一定要在enable interrupt之前。
下面则详细说一下DMA整个控制顺序,如下:
Pending的通道通过DMA仲裁后,选择优先级高的active,给move engine去搬运,其中搬运的时候经过SRI总线,有bus switch来转换。
其中在bus switch这里的优先级已经确定,Cerberus是作为bus switch的看门狗
这是在SRI中优先级,然而对于move engine访问spb资源,则move engine 的优先级则需要设置:
- aurix中DMA使用
- aurix中mutlican的使用
- aurix中AD采样
- stm32中DMA基本使用
- Nios II中DMA设备的使用
- STM32中DMA的使用入门
- STM32中DMA的使用入门
- iar中使用DMA+printf+uart1
- dma使用
- stm 之 iic中dma无法使用的问题
- aurix编译环境
- STM32中DMA AD
- DMA通道的使用
- STM32 DMA使用浅谈
- SPI DMA 的使用
- STM32 DMA使用详解
- 五、DMA入门使用
- DMA的使用实例
- 最长回文子串
- linux 文件管理
- Android 反编译 -smali语法
- 通过调用函数,比较两个数的大小
- 程序员需要的不仅仅是技术
- aurix中DMA使用
- 推荐系统开发之要考虑的问题
- LINUX命令后面常见的>/DEV/NULL 和 2>&1 的含义
- 安装AppServ完成后 不能访问到127.0.0.1的问题
- luasocket系列: luasocket tcp
- python常用库整理
- TQ2440利用nfs挂载文件系统不稳定,启动成功后,总是一会时间就重启
- LeetCode101 SynmetricTree Java题解
- 数组内数值的排序