文章目录

  • Introduction
  • Limitations
    • Unsupported Hardware features
    • Unsupported Software features
  • API
  • EDMA Event Mapping Definitions
  • Caution
  • Memory Footprint
  • EDMA silicon errata
    • Incorret read,hang,or data integrity issues

Introduction

AWRxxxx SOC中的EDMA IP可使用EDMA驱动程序软件进行高级编程,该驱动软件允许与操作系统连接。EDMA驱动程序公开IP提供的大多数功能的编程。

下列是对API/功能的高级描述:

  • 查询SoC上的EDMA实例数
  • 将EDMA的特定实例初始化为已知的干净禁用状态(类似重置的状态)
  • 打开一个EDMA实例,该实例返回实例信息,例如该实例上传输控制器的数量
  • 将通道配置为所需配置,并可选择启用通道。这包括参数集选择和参数集配置。用户可以选择为信道传输完成指示提供回调功能。
  • 启用/禁用通道
  • 配置参数集。通常用于链接参数
  • 链接参数集
  • 连锁通道
  • 一个以前配置好的通道开始传输(手动触发)
  • 等到传输完成(在配置中未提供回调时使用)
  • 用于设置参数集的源地址或目标地址的API,用于XWR16XX(DSP)上的某些用例
  • 从CC(Channel Controller)和所有的TCs(Transfer Controllers)生成错误的错误监视配置。某些设备上的处理器的相应错误状态查询,其中错误中断没有物理连接到处理器中断映射(例如,xWR16xx的R4F(MSS)上的EDMA instance#1)
  • 状态查询
  • 性能控制
  • 关闭EDMA的实例

这里的信道可以是DMA或QDMA信道

Limitations

Unsupported Hardware features

下列是EDMA硬件的以下功能不受支持:

  • 不提供 特权级别和特权ID的编程,这些都被定义为最高特权(默认设置)
  • 不支持在EDMA TC(Transfer Controller)中查询原活动寄存器和目标FIFO寄存器以进行高级调试

Unsupported Software features

不提供任何类型的资源管理,例如没有DMA或QDMA信道资源管理。用户需要在驱动程序之外进行静态或动态的资源管理。在XWR16xx/XWR18xx/XWR68xx上,驱动程序软件不会阻止(R4F和C674x)两个处理器操作相同的物理EDMA实例,软件实例不会在处理器之间共享(软件实例在处理器的本地存器中)。然而,如果两个处理器都希望在同一个物理实例上运行,然后,它们必须在驱动程序之外协调它们的活动(例如使用邮箱消息),以确保一次只有一个在操作相同的物理实例(因为如果没有多处理器信号量,读-修改-写入操作将变得不一致),并且还需要协调资源管理,如通道和传输完成代码。

API

EDMA API的头文件包含在<ti/drivers/emda/edma.h>

EDMA Event Mapping Definitions

64个DMA通道的事件映射定义可在<ti/common/sys_common_*.h>中参考,名字命名为:*_REQ__*。例如,对于在XWR14xx的例子中

#define EDMA_TPCC0_REQ_HWACC_0 (17U)

在上面的这个宏定义中,显示了EDMA的实例0(CC0),事件编号17(基于0)与SoC中硬件加速器的信道0相关联。在编程channelId参数的过程中,调用配置API时,可以根据需要使用这些定义,例如上面的示例define在使用的时候,表示当硬件加速器通道0输出线触发时,它将触发使用此定义配置的EDMA通道17。注意,在单元测试的时候没有说明这一点,因为它选择特定的数字来测试某些边界条件。

未绑定到任何硬件事件的通道可用于一般用途(例如,用于链接目的),这些通道用后缀标记:FREE_<n>,例如EMDA_TPCC0_REQ_FREE_0

Caution

在传输完成后禁用通道可能是很重要的,一种情况是:对参数为X的QDMA的通道进行编程,并用触发字完成传输。然后,与DMA信道相关联的同一参数X用于DMA信道配置因为它是空闲的。当配置API进行触发的时候,它仅仅只处理DMA通道寄存器,因为信道类型是DMA,并不会影响QDMA信道(在本例中是启用的)。当为这个DMA信道配置param时,当试图配置处于处于处于待命状态的触发字时,它将提前触发QDMA信道。在重用与其相关联的param之前禁用QDMA通道可以防止问题的发生。

Memory Footprint

驱动的内存占用取决于应用程序引用了多少API(基本操作不需要所有的API)。当大多数的API被使用的时候,单元测试代码生成的内存映射文件可用于获得内存占用的估计值。

EDMA silicon errata

Incorret read,hang,or data integrity issues

这个silicon勘误应用于xWR14xx ES3.0,xWR16xx ES2.0,和xWR18xx ES1.0。为了分析应用程序是否在任何记录的勘误方案中配置EDMA,用于可以将gEDMA_4K_errata_check中的字段设置为true,并估计是否通过api返回任何错误:EDMA_configParamSet和EDMA_setSourceAddress。在默认情况下,检查是被禁用的,但是可以通过gEDMA_4K_errata_check全局结构中的标志启用和控制。生成标志EDMA_4K_SILICON_ERRATA_CHECK在makefile中基于应用此勘误表的设备启用。有关报告的结构、检查和错误的更多详细信息,请参阅EDMA_4K_errata_check_t_

参考文献:

  1. 《mmWave SDK Module Documentation》

TI Driver---EDMA相关推荐

  1. TI处理器EDMA的三种触发方式与通道

    文章目录 EDMA的三种触发方式与通道 EDMA触发方式 手动触发 事件触发 链接触发 EDMA通道 何为EDMA通道? EDMA的三种触发方式与通道 目的:减轻CPU工作量,提高CPU效率 EDMA ...

  2. MSP432P401R TI Drivers 库函数学习笔记(四)GPIO

    目录 API 头文件 函数 (机翻) 宏 GPIO驱动程序api返回的通用状态代码 GPIO_PinConfig输出引脚配置宏 GPIO_PinConfig输入引脚配置宏 GPIO_PinConfig ...

  3. TI CC32XX SDA中SimpleLink Academy教程翻译(RTOS部分的基础介绍非常易懂)

    SimpleLink MCU平台是业界最广泛的基于ARM Cortex-M的有线和无线微控制器组合. 目录 一.Debug Printing 1.printf 2.Display_printf 3.S ...

  4. Industrial mmWave Sensors Device Overview(工业mmWave传感器设备概述)

    Hello, and welcome to the Device Overview for TI's IWR14 and IWR16 series of single chip CMOS based ...

  5. [NVIDIA] Ubuntu 20.04 安装 nvidia-460 + cuda-11.2

    CUDA,NVIDIA Driver 之间的版本对应关系表格 文章目录 安装 nvidia-460 安装 cuda-11.2 安装 cuDnn 安装 nvidia-460 首先查看显卡支持的驱动版本 ...

  6. 【DM642学习笔记一】关于Can't Initialize Target CPU的一种解决方法 : Error 0x80000240

    花了几天时间,终于可以顺利进入ccs软件开始学习了! 我使用的是瑞泰公司的ICETEK-DM642-IDK-M图像处理系统(ICETEK5100USB仿真器,仿真芯片为DM642).使用ccs2.21 ...

  7. Ubuntu 18.04 安装 NVIDIA 显卡驱动

    确认驱动版本: 访问网站https://www.nvidia.com/Download/index.aspx?lang=en-us 根据不同显卡确认驱动版本,目前最新版本是430 PPA源安装驱动: ...

  8. ubuntu18.04配置deepo深度学习环境(cuda + cudnn + nvidia-docker + deepo)--超级细致,并把遇到的错误和所有解决方案都列出来了

    0 了解本机基本信息 0 参考文档 主要整体是这篇 1.安装cuda和cudnn 2.安装cuda和cudnn 3.安装cuda和cudnn 4.安装cuda和cudnn 1.安装nvidia-doc ...

  9. Ubuntu18.04使用anaconda3安装tensorflow-gpu、pytorch

    安装过程与之前Ubuntu16.04差不多 需要下载的:Anaconda3, cuda9, cudnn7 链接: https://pan.baidu.com/s/1zETCwtUt-u9fRHOKX4 ...

  10. Nvidia-docker2 for ubuntu18.04初试!

    NVIDIA-Docker2深度-人工智能-tensorflow环境搭建 这篇文章是作为我在ubuntu18.04LTS上搭建我的深度环境并且运行的最悲催的血泪史,主要是记录我的环境搭建的问题,以便将 ...

最新文章

  1. 个人理解卷积 池化 的用处
  2. opencv读取avi视频并抽取帧
  3. bat贪吃蛇游戏代码_C语言写个贪吃蛇游戏
  4. 《Linux内核设计与实现》读书笔记(十)- 内核同步方法【转】
  5. linux ps 只显示端口,这30个Linux系统监控工具,每个系统管理员都应该知道
  6. Linux学习之exit函数
  7. php循环,die/exit脚本执行控制,文件载入及错误控制
  8. 计算机应用基础实践试题,计算机应用基础实践环节考试试题(一)
  9. phpstorm配置xdebug 3.0教程
  10. java 包的位置_通过Java在jar文件所在的位置创建目录
  11. 【小技巧】STA静态时序分析概述
  12. TCP/IP五层模型详解
  13. 亲测centos下mysql安装,不行锤我
  14. ADO.NET中5大对象简介
  15. 如何快速创建 Rproject 文件?
  16. iOS内购-iap-In-App Purchases-开发及注意事项
  17. 存储服务器怎样还原阵列信息,raid5数据恢复的方法
  18. kafka 新版本 操作命令
  19. Python实现一个简单的中国亲戚关系计算器,可能自己多少都有点混乱吧
  20. 牛!鸿星尔克登上亚马逊新品榜第一;中国跨境电商半年交易额近九千亿元;商务部回应亚马逊封号事件;亚马逊下架盲盒产品…|洞悉跨境

热门文章

  1. matlab 实现高阶动态电路,高阶电路动态特性的仿真分析
  2. Java 数据分批调用接口的正确姿势
  3. 用户画像,具体怎么分析?都跟你缕好了
  4. win10-快捷键冲突检测工具-OpenArk
  5. SSH2完美整合流程
  6. Fliqlo屏/保mac使用方法
  7. LOAM系列——ISCLOAM配置、编译、问题解决及VLP16测试效果(完结版)
  8. JavaScript(JS)(一)
  9. 护士服务规范与礼仪PPT模板
  10. jhat命令(Java Heap Analyse Tool)