当前位置: 首页 > news >正文

【电路笔记 TMS320C6***DSP】C6748 EDMA3配置笔记 寄存器配置+影子通道寄存器+配置示例

目录

    • 参照资料
    • 内存映射寄存器分类
    • 影子通道寄存器
    • 传输中断
    • PaRAM参数
      • SRC、DST
      • A_B_CNT、CCNT
      • SRC_DST_BIDX
      • SRC_DST_CIDX
      • OPT
      • opt示例
    • 链接传输LINK_BCNTRLD (LinkAddress/BCountReloadParameter)
    • 示例代码
    • 示例配置:块传输
    • 示例配置:矩阵转置
    • 示例配置:链接传输

参照资料

  • 第三代增强型内存直接存取控制……视频教程
  • TMS320C642x DSP Enhanced Direct Memory Access (EDMA3)
    Controller User’s Guide https://www.ti.com/lit/ug/spruem5a/spruem5a.pdf

内存映射寄存器分类

在这里插入图片描述

影子通道寄存器

在这里插入图片描述

传输中断

在这里插入图片描述

在这里插入图片描述

PaRAM参数

  • PaRAM参数在说明文档的第四章
    在这里插入图片描述

在这里插入图片描述

SRC、DST

在这里插入图片描述

A_B_CNT、CCNT

在这里插入图片描述
在这里插入图片描述

SRC_DST_BIDX

在这里插入图片描述

SRC_DST_CIDX

在这里插入图片描述

OPT

  • 通道选项参数OPT字段描述表格(Channel Options Parameters (OPT) Field Descriptions)
位域字段名值范围描述
31-28Reserved0预留位,必须写入0。
27-24PRIVID0-Fh权限标识符,表示编程此PaRAM集的外部主机/CPU/DMA的权限级别。该值在任何部分PaRAM集被写入时设置为EDMA3主控的权限识别值。
23ITCCHEN0, 1中间传输完成链式使能。
0禁用中间传输完成链式功能。
1启用中间传输完成链式功能。当启用时,每次中间链接传输完成(除了PaRAM集中最后一个TR),都会设置链式事件寄存器(CER/CERH)中的相应位。
22TCCHEN0, 1传输完成链式使能。
0禁用传输完成链式功能。
1启用传输完成链式功能。当启用时,在最终链接传输完成时(即PaRAM集中最后一个TR完成时),会设置链式事件寄存器(CER/CERH)中的相应位。
21ITCINTEN0, 1中间传输完成中断使能。
0禁用中间传输完成中断。
1启用中间传输完成中断。当启用时,每次中间传输完成(除了PaRAM集中最后一个TR),都会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。
20TCINTEN0, 1传输完成中断使能。
0禁用传输完成中断。
1启用传输完成中断。当启用时,在最终传输完成时(即PaRAM集中最后一个TR完成时),会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。
19-18Reserved0预留位,必须写入0。
17-12TCC0-3Fh传输完成代码。这个6位代码用于设置链式使能寄存器(CER[TCC]/CERH[TCC])中的相关位或中断挂起寄存器(IPR[TCC]/IPRH[TCC])中的相关位。
11TCCMODE0, 1传输完成代码模式。指示传输被认为完成的时间点,以用于链式和中断生成。
0正常完成:数据传输完成后才认为传输完成。
1提前完成:EDMA3CC提交一个TR给EDMA3TC后即认为传输完成。此时TC可能仍在传输数据。
10-8FWID0-7hFIFO宽度。仅适用于SAM或DAM设置为常量地址模式的情况。
0FIFO宽度为8位。
1hFIFO宽度为16位。
2hFIFO宽度为32位。
3hFIFO宽度为64位。
4hFIFO宽度为128位。
5hFIFO宽度为256位。
6h-7h预留位,必须写入0。
7-4Reserved0预留位,必须写入0。
3STATIC0, 1静态PaRAM集。
0PaRAM集不是静态的。PaRAM集在TR提交后会被更新或链接。应为DMA通道或非最终传输使用。
1PaRAM集是静态的。PaRAM集在TR提交后不会被更新或链接。应为独立QDMA传输或链接列表中最终传输使用。
2SYNCDIM0, 1传输同步维度。
0A同步:每个事件触发单个ACNT字节数组的传输。
1AB同步:每个事件触发BCNT个ACNT字节数组的传输。
1DAM0, 1目标地址模式。
0增量模式(INCR):目标地址在数组内递增。目标不是FIFO。
1固定地址模式(CONST):目标地址在数组内循环到FIFO宽度。
0SAM0, 1源地址模式。
0增量模式(INCR):源地址在数组内递增。源不是FIFO。
1固定地址模式(CONST):源地址在数组内循环到FIFO宽度。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

opt示例

  • opt 字段是EDMA3参数集(PaRAM Set)中的一个非常重要的配置项,它通过位域(bit fields)来设置多种传输选项,以下为一个示例。
paramSet.opt =  (0 << 23) | // Bit 23: ITCCHEN = 0 (Disable intermediate transfer complete chaining)(0 << 22) | // Bit 22: TCCHEN = 0 (Disable transfer complete chaining)(0 << 21) | // Bit 21: ITCINTEN = 0 (Disable intermediate transfer complete interrupt)(1 << 20) | // Bit 20: TCINTEN = 1 启用传输完成中断。当启用时,在最终传输完成时(即PaRAM集中最后一个TR完成时),会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。)(0 << 12) | // Bit 12: 17-12传输完成控制代码,为000000。(0 << 11) | // Bits 11: 传输完成代码模式为正常完成。指示传输被认为完成的时间点,以用于链式和中断生成。(1 << 8)  | // Bits 8: 10-8为FIFO宽度。FIFO宽度为16位。 0 0 1,FIFO宽度为16位(1 << 3)  | // Bits 3: PaRAM集是静态的。PaRAM集在TR提交后不会被更新或链接。应为独立QDMA传输或链接列表中最终传输使用。(0 << 2)  | // Bits 2: A同步:每个事件触发单个ACNT字节数组的传输。(1 << 1)  | // Bits 1: 固定地址模式(CONST):目标地址在数组内循环到FIFO宽度。(0 << 0);   // Bits 0: 源地址模式为增量模式(INCR):源地址在数组内递增。源不是FIFO。

链接传输LINK_BCNTRLD (LinkAddress/BCountReloadParameter)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

示例代码

/****************************************************************************/
/*      https://bbs.elecfans.com/jishu_1790271_1_1.html  https://bbs.elecfans.com/jishu_520116_1_1.html  */
/*       EDMA3 传输配置(在初始化之后)                              */
/****************************************************************************/
void EDMA3GpioInit()
{EDMA3CCPaRAMEntry paramSet;unsigned int acnt = 64;        // 一维unsigned int bcnt = 1;                // 二维unsigned int ccnt = 1;                // 三维// 申请 EDMA3 通道EDMA3RequestChannel(SOC_EDMA30CC_0_REGS, chType, chNum, tccNum, evtQ);// 可添加回调函数:https://e2echina.ti.com/support/processors/f/processors-forum/30494/c6748-edma3-spi// cb_Fxn[cbf_index] = &hcallback; // Registering Callback Function  // 或 hcb_Fxn[cbf_index] = &hcallback; // Registering Callback Function  // 配置参数 RAMparamSet.srcAddr = (unsigned int)(&StringScr);paramSet.destAddr = (unsigned int)(&StringDst);paramSet.aCnt = (unsigned short)acnt;paramSet.bCnt = (unsigned short)bcnt;paramSet.cCnt = (unsigned short)ccnt;// 设置 SRC / DES 索引paramSet.srcBIdx = (short)acnt;paramSet.destBIdx = (short)acnt;// A Sync 传输模式(一维传输模式)paramSet.srcCIdx = (short)acnt;paramSet.destCIdx = (short)acnt;paramSet.linkAddr = (unsigned short)0xFFFFu;paramSet.bCntReload = (unsigned short)0u;paramSet.opt = 0u;// Src 及 Dest 使用自增(INCR)模式paramSet.opt &= 0xFFFFFFFCu;// 配置 TCCparamSet.opt |= ((tccNum << EDMA3CC_OPT_TCC_SHIFT) & EDMA3CC_OPT_TCC);// 写参数 RAMEDMA3SetPaRAM(SOC_EDMA30CC_0_REGS, chNum, ¶mSet);// 使能传输EDMA3EnableTransfer(SOC_EDMA30CC_0_REGS, chNum, trigMode);
}

示例配置:块传输

在这里插入图片描述

示例配置:矩阵转置

在这里插入图片描述

示例配置:链接传输

在这里插入图片描述

相关文章:

【电路笔记 TMS320C6***DSP】C6748 EDMA3配置笔记 寄存器配置+影子通道寄存器+配置示例

目录 参照资料内存映射寄存器分类影子通道寄存器传输中断PaRAM参数SRC、DSTA_B_CNT、CCNTSRC_DST_BIDXSRC_DST_CIDXOPTopt示例 链接传输LINK_BCNTRLD (LinkAddress/BCountReloadParameter)示例代码示例配置&#xff1a;块传输示例配置&#xff1a;矩阵转置示例配置&#xff1a;…...

2025新春烟花代码(二)HTML5实现孔明灯和烟花效果

效果展示 源代码 <!DOCTYPE html> <html lang"en"> <script>var _hmt _hmt || [];(function () {var hm document.createElement("script");hm.src "https://hm.baidu.com/hm.js?45f95f1bfde85c7777c3d1157e8c2d34";var …...

apollo内置eureka dashboard授权登录

要确保访问Eureka Server时要求输入账户和密码&#xff0c;需要确保以下几点&#xff1a; 确保 eurekaSecurityEnabled 配置为 true&#xff1a;这个配置项控制是否启用Eureka的安全认证。如果它被设置为 false&#xff0c;即使配置了用户名和密码&#xff0c;也不会启用安全认…...

后台管理系统全屏功能实现

后台管理系统中有一个比较常见的功能就是全屏显示&#xff0c;以方便用最大的屏幕查看系统&#xff0c;特别是在小屏模式下。 对于 screenfull 而言&#xff0c;浏览器本身已经提供了对用的 API&#xff0c;点击这里即可查看&#xff0c;这个 API 中&#xff0c;主要提供了两个…...

风电叶片市场竞争激烈:开启绿色能源新篇章的巨大潜力

一、引言 面对全球气候变化的严峻挑战&#xff0c;可再生能源的开发与利用已成为各国共识。风电&#xff0c;作为技术最成熟、最具规模化开发条件的可再生能源之一&#xff0c;正以前所未有的速度发展。而风电叶片&#xff0c;作为风电机组的核心部件&#xff0c;其技术创新与…...

【Unity3D日常开发】Unity3D中适用WEBGL打开Window文件对话框打开/上传文件

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群&#xff1a;398291828小红书小破站 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 Unity3D发布的WEBGL程序是不支持直接的I/O操…...

C# 或 .NetCore 如何使用 NPOI 导出图片到 Excel 文件

今天在本文中&#xff0c;我们将尝试使用NPOI库将图像插入到 Excel 文件的特定位置。请将以下逻辑添加到您的写作方法中&#xff0c;在 Excel 文件中添加图像&#xff08;JPEG、PNG&#xff09;,我已经有一个示例 jpeg 文件 - Read-write-excel-npoi.jpg &#xff0c;我们将尝试…...

Lambda expressions in C++ (C++ 中的 lambda 表达式)

Lambda expressions in C {C 中的 lambda 表达式} 1. Parts of a lambda expression (Lambda 表达式的各个部分)1.2. Parameter list (Optional) References lambda /ˈlm.də/&#xff1a;the 11th letter of the Greek alphabet (希腊语字母表的第 11 个字母)https://learn.m…...

【Rust自学】11.4. 用should_panic检查恐慌

喜欢的话别忘了点赞、收藏加关注哦&#xff0c;对接下来的教程有兴趣的可以关注专栏。谢谢喵&#xff01;(&#xff65;ω&#xff65;) 11.4.1. 验证错误处理的情况 测试函数出了验证代码的返回值是否正确&#xff0c;还需要验证代码是否如预期的去处理了发生错误的情况。比…...

高斯函数Gaussian绘制matlab

高斯 约翰卡尔弗里德里希高斯&#xff0c;&#xff08;德语&#xff1a;Johann Carl Friedrich Gau&#xff0c;英语&#xff1a;Gauss&#xff0c;拉丁语&#xff1a;Carolus Fridericus Gauss&#xff09;1777年4月30日–1855年2月23日&#xff0c;德国著名数学家、物理学家…...

获取客户端真实IP地址

当处理来自客户端的请求时&#xff0c;尤其是在存在代理服务器的情况下&#xff0c;可能需要考虑多种HTTP请求头&#xff0c;以尽可能准确地获取用户的真实IP地址。以下是考虑了X-Forwarded-For、Proxy-Client-IP、WL-Proxy-Client-IP、HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR的…...

Kotlin学习(一)

1. Kotlin 作用域函数 如果同学们已经在项目中用过 Kotlin 语言&#xff0c;那么一定见过 let 函数&#xff01;因为每当 Kotlin 检测到某个对象可能为空时&#xff0c;会自动帮我们修改为用 let 函数实现&#xff1a;user.name?.let{ textView.text it }。这里的 let 函数就…...

鸿蒙UI开发——日历选择器

1、概 述 在项目开发中&#xff0c;我们时常会用到日历选择器&#xff0c;效果如下&#xff1a; ArkUI已经为我们提供了组件&#xff0c;我们可以直接使用&#xff0c;下面针对日历组件做简单介绍。 2、CalendarPickerDialog 接口定义如下&#xff1a; // 定义日历选择器弹…...

2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉

文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程&#xff0c;但太费劲了&#xff0c;这里有个非常简便的好方法&#xff0c;分享给大家。 1. 导入QXlsx库 转载链接 &#xff1a;https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md…...

React中createRoot函数原理解读——Element对象与Fiber对象、FiberRootNode与HostRootNode

【2024最新版】React18 核心源码分析教程&#xff08;全61集&#xff09; Element对象与Fiber对象 在 React 中&#xff0c;Element 对象 和 Fiber 对象 是核心概念&#xff0c;用于实现 React 的高效渲染和更新机制。以下是它们的详细解读&#xff1a; 1. Element 对象 定…...

利用Python实现Union-Find算法

Union-Find&#xff08;又称 并查集&#xff09;是一种高效解决 动态连通性问题 的算法。它主要提供两种操作&#xff1a; Union(x, y)&#xff1a;将元素 x 和 y 连接。Find(x)&#xff1a;找到元素 x 所属的集合的标识符&#xff08;通常是集合的根节点&#xff09;。 常用…...

【LeetCode: 912. 排序数组 + 归并排序】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…...

AI时代来了,我们不再需要IDE了

大家好&#xff0c;我是编程乐趣。 最近在思考一个问题&#xff0c;那就是AI这么强大。 未来有没有可能&#xff0c;我们就不需要不需要开发工具了&#xff0c;只需一个浏览器就可以开发软件了。 一、AI带来的变化 1、代码生成与补全 AI工具如GitHub Copilot等能够根据代码…...

PL/SQL语言的网络编程

PL/SQL语言的网络编程 引言 在信息化迅速发展的今天&#xff0c;网络编程作为现代软件开发的重要组成部分&#xff0c;受到了广泛关注。而在数据库管理系统中&#xff0c;Oracle 提供了 PL/SQL&#xff08;Procedural Language/Structured Query Language&#xff09;&#x…...

vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费

// 直接设置srcObject减少获取视频流&#xff1a;通过 captureStream() 方法从下方视频元素获取视频流。 // 设置 srcObject&#xff1a;将获取到的视频流设置为上方视频的 srcObject 减少资源浪费 // 获取到需要复制到的dom元素 const firstVideoElement proxy.$refs.firs…...

晶振参数深度解读与替代选型实战(55.2MHz 工业级无源晶振案例)

前言作为嵌入式 / 硬件 FAE&#xff0c;日常工作中晶振的参数解读、客户需求替代是高频场景。最近遇到一个典型的工业级宽温晶振客户需求&#xff0c;参数里藏着很多新手容易踩的坑&#xff0c;比如 “负频率” 的误解、负载电容不匹配、宽温范围忽略等问题。本文以客户的55.2M…...

3个实战场景掌握Kafka-UI:高效管理Apache Kafka集群的实用指南

3个实战场景掌握Kafka-UI&#xff1a;高效管理Apache Kafka集群的实用指南 【免费下载链接】kafka-ui Open-Source Web UI for managing Apache Kafka clusters 项目地址: https://gitcode.com/gh_mirrors/kaf/kafka-ui Kafka-UI是一款专业的开源Web界面工具&#xff0c…...

微信虚拟支付求支招

最近微信小程序不是要求必须接入虚拟支付吗&#xff0c;然后我们接入了&#xff0c;并走通了流程。但是&#xff01;&#xff01;使用其它体验极差&#xff0c;具体如下&#xff1a; 1.这块的开发流程手册&#xff0c;狗看了都摇头。我看着流程自己理解的意思是&#xff0c;我们…...

小米手表表盘设计革命:无需编程,5分钟打造个性化智能表盘

小米手表表盘设计革命&#xff1a;无需编程&#xff0c;5分钟打造个性化智能表盘 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 关键词&#xff1a; Mi-Creat…...

Faster-Whisper-GUI:高效本地语音识别与字幕生成终极指南

Faster-Whisper-GUI&#xff1a;高效本地语音识别与字幕生成终极指南 【免费下载链接】faster-whisper-GUI faster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI 在人工智能语音技术快速发展的今天&#xff0c;本地化语音…...

车标识别平台

车标识别平台选题背景分析随着全球汽车产业的蓬勃发展以及智能交通系统&#xff08;ITS&#xff09;的加速建设&#xff0c;车标识别技术作为计算机视觉与人工智能领域的重要应用分支&#xff0c;其市场需求与技术价值日益凸显。开发一个高效、精准的车标识别平台&#xff0c;其…...

极简TextCNN,五分钟看懂文本分类基线算法

TextCNN引入 TextCNN是基于卷积神经网络实现的用于文本分类的首选基线模型&#xff0c;它没有复杂的循环结构&#xff0c;也不用花费大量时间训练预训练模型&#xff0c;仅通过简单的卷积、池化操作&#xff0c;就能快速捕捉文本中的关键特征&#xff0c;实现文本分类。 Text…...

告别CentOS!Debian 11 + VMware 保姆级教程:搞定那些只支持国产系统的Linux客户端(以aTrust为例)

Debian 11 VMware 全栈解决方案&#xff1a;无缝运行国产Linux客户端软件 在开源世界的版图中&#xff0c;CentOS曾经是企业级Linux的代名词&#xff0c;但随着Red Hat战略调整和CentOS Stream的转型&#xff0c;许多传统解决方案正在面临前所未有的兼容性挑战。特别是在需要对…...

Go语言云原生开发:构建高可用微服务架构

Go语言云原生开发&#xff1a;构建高可用微服务架构 引言 云原生开发已成为现代应用开发的主流范式&#xff0c;Go语言凭借其轻量级、高性能和出色的并发支持&#xff0c;成为云原生开发的首选语言。本文将深入探讨Go语言在云原生环境中的应用&#xff0c;帮助您构建高可用的微…...

告别VirtualBox的‘不是Host-Only适配器’错误:一个网络配置的深度修复指南

VirtualBox Host-Only网络故障全解析&#xff1a;从原理到实战修复 当你正准备启动VirtualBox中的开发环境虚拟机时&#xff0c;突然弹出的红色错误提示框让所有工作戛然而止——"Interface is not a Host-Only Adapter"。这个看似简单的网络适配器错误背后&#xf…...