【电路笔记 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-28 | Reserved | 0 | 预留位,必须写入0。 |
| 27-24 | PRIVID | 0-Fh | 权限标识符,表示编程此PaRAM集的外部主机/CPU/DMA的权限级别。该值在任何部分PaRAM集被写入时设置为EDMA3主控的权限识别值。 |
| 23 | ITCCHEN | 0, 1 | 中间传输完成链式使能。 |
| 0 | 禁用中间传输完成链式功能。 | ||
| 1 | 启用中间传输完成链式功能。当启用时,每次中间链接传输完成(除了PaRAM集中最后一个TR),都会设置链式事件寄存器(CER/CERH)中的相应位。 | ||
| 22 | TCCHEN | 0, 1 | 传输完成链式使能。 |
| 0 | 禁用传输完成链式功能。 | ||
| 1 | 启用传输完成链式功能。当启用时,在最终链接传输完成时(即PaRAM集中最后一个TR完成时),会设置链式事件寄存器(CER/CERH)中的相应位。 | ||
| 21 | ITCINTEN | 0, 1 | 中间传输完成中断使能。 |
| 0 | 禁用中间传输完成中断。 | ||
| 1 | 启用中间传输完成中断。当启用时,每次中间传输完成(除了PaRAM集中最后一个TR),都会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。 | ||
| 20 | TCINTEN | 0, 1 | 传输完成中断使能。 |
| 0 | 禁用传输完成中断。 | ||
| 1 | 启用传输完成中断。当启用时,在最终传输完成时(即PaRAM集中最后一个TR完成时),会设置中断挂起寄存器(IPR/IPRH)中的相应位。为了生成CPU中断,对应的IER[TCC]/IERH[TCC]位必须设置为1。 | ||
| 19-18 | Reserved | 0 | 预留位,必须写入0。 |
| 17-12 | TCC | 0-3Fh | 传输完成代码。这个6位代码用于设置链式使能寄存器(CER[TCC]/CERH[TCC])中的相关位或中断挂起寄存器(IPR[TCC]/IPRH[TCC])中的相关位。 |
| 11 | TCCMODE | 0, 1 | 传输完成代码模式。指示传输被认为完成的时间点,以用于链式和中断生成。 |
| 0 | 正常完成:数据传输完成后才认为传输完成。 | ||
| 1 | 提前完成:EDMA3CC提交一个TR给EDMA3TC后即认为传输完成。此时TC可能仍在传输数据。 | ||
| 10-8 | FWID | 0-7h | FIFO宽度。仅适用于SAM或DAM设置为常量地址模式的情况。 |
| 0 | FIFO宽度为8位。 | ||
| 1h | FIFO宽度为16位。 | ||
| 2h | FIFO宽度为32位。 | ||
| 3h | FIFO宽度为64位。 | ||
| 4h | FIFO宽度为128位。 | ||
| 5h | FIFO宽度为256位。 | ||
| 6h-7h | 预留位,必须写入0。 | ||
| 7-4 | Reserved | 0 | 预留位,必须写入0。 |
| 3 | STATIC | 0, 1 | 静态PaRAM集。 |
| 0 | PaRAM集不是静态的。PaRAM集在TR提交后会被更新或链接。应为DMA通道或非最终传输使用。 | ||
| 1 | PaRAM集是静态的。PaRAM集在TR提交后不会被更新或链接。应为独立QDMA传输或链接列表中最终传输使用。 | ||
| 2 | SYNCDIM | 0, 1 | 传输同步维度。 |
| 0 | A同步:每个事件触发单个ACNT字节数组的传输。 | ||
| 1 | AB同步:每个事件触发BCNT个ACNT字节数组的传输。 | ||
| 1 | DAM | 0, 1 | 目标地址模式。 |
| 0 | 增量模式(INCR):目标地址在数组内递增。目标不是FIFO。 | ||
| 1 | 固定地址模式(CONST):目标地址在数组内循环到FIFO宽度。 | ||
| 0 | SAM | 0, 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)示例代码示例配置:块传输示例配置:矩阵转置示例配置:…...
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时要求输入账户和密码,需要确保以下几点: 确保 eurekaSecurityEnabled 配置为 true:这个配置项控制是否启用Eureka的安全认证。如果它被设置为 false,即使配置了用户名和密码,也不会启用安全认…...
后台管理系统全屏功能实现
后台管理系统中有一个比较常见的功能就是全屏显示,以方便用最大的屏幕查看系统,特别是在小屏模式下。 对于 screenfull 而言,浏览器本身已经提供了对用的 API,点击这里即可查看,这个 API 中,主要提供了两个…...
风电叶片市场竞争激烈:开启绿色能源新篇章的巨大潜力
一、引言 面对全球气候变化的严峻挑战,可再生能源的开发与利用已成为各国共识。风电,作为技术最成熟、最具规模化开发条件的可再生能源之一,正以前所未有的速度发展。而风电叶片,作为风电机组的核心部件,其技术创新与…...
【Unity3D日常开发】Unity3D中适用WEBGL打开Window文件对话框打开/上传文件
推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享QQ群:398291828小红书小破站 大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。 一、前言 Unity3D发布的WEBGL程序是不支持直接的I/O操…...
C# 或 .NetCore 如何使用 NPOI 导出图片到 Excel 文件
今天在本文中,我们将尝试使用NPOI库将图像插入到 Excel 文件的特定位置。请将以下逻辑添加到您的写作方法中,在 Excel 文件中添加图像(JPEG、PNG),我已经有一个示例 jpeg 文件 - Read-write-excel-npoi.jpg ,我们将尝试…...
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ə/:the 11th letter of the Greek alphabet (希腊语字母表的第 11 个字母)https://learn.m…...
【Rust自学】11.4. 用should_panic检查恐慌
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 11.4.1. 验证错误处理的情况 测试函数出了验证代码的返回值是否正确,还需要验证代码是否如预期的去处理了发生错误的情况。比…...
高斯函数Gaussian绘制matlab
高斯 约翰卡尔弗里德里希高斯,(德语:Johann Carl Friedrich Gau,英语:Gauss,拉丁语:Carolus Fridericus Gauss)1777年4月30日–1855年2月23日,德国著名数学家、物理学家…...
获取客户端真实IP地址
当处理来自客户端的请求时,尤其是在存在代理服务器的情况下,可能需要考虑多种HTTP请求头,以尽可能准确地获取用户的真实IP地址。以下是考虑了X-Forwarded-For、Proxy-Client-IP、WL-Proxy-Client-IP、HTTP_CLIENT_IP、HTTP_X_FORWARDED_FOR的…...
Kotlin学习(一)
1. Kotlin 作用域函数 如果同学们已经在项目中用过 Kotlin 语言,那么一定见过 let 函数!因为每当 Kotlin 检测到某个对象可能为空时,会自动帮我们修改为用 let 函数实现:user.name?.let{ textView.text it }。这里的 let 函数就…...
鸿蒙UI开发——日历选择器
1、概 述 在项目开发中,我们时常会用到日历选择器,效果如下: ArkUI已经为我们提供了组件,我们可以直接使用,下面针对日历组件做简单介绍。 2、CalendarPickerDialog 接口定义如下: // 定义日历选择器弹…...
2025-1-9 QT 使用 QXlsx库 读取 .xlsx 文件 —— 导入 QXlsx库以及读取 .xlsx 的源码 实践出真知,你我共勉
文章目录 1. 导入QXlsx库2. 使用 QXlsx库 读取 .xlsx 文件小结 网上有很多教程,但太费劲了,这里有个非常简便的好方法,分享给大家。 1. 导入QXlsx库 转载链接 :https://github.com/QtExcel/QXlsx/blob/master/HowToSetProject.md…...
React中createRoot函数原理解读——Element对象与Fiber对象、FiberRootNode与HostRootNode
【2024最新版】React18 核心源码分析教程(全61集) Element对象与Fiber对象 在 React 中,Element 对象 和 Fiber 对象 是核心概念,用于实现 React 的高效渲染和更新机制。以下是它们的详细解读: 1. Element 对象 定…...
利用Python实现Union-Find算法
Union-Find(又称 并查集)是一种高效解决 动态连通性问题 的算法。它主要提供两种操作: Union(x, y):将元素 x 和 y 连接。Find(x):找到元素 x 所属的集合的标识符(通常是集合的根节点)。 常用…...
【LeetCode: 912. 排序数组 + 归并排序】
🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…...
AI时代来了,我们不再需要IDE了
大家好,我是编程乐趣。 最近在思考一个问题,那就是AI这么强大。 未来有没有可能,我们就不需要不需要开发工具了,只需一个浏览器就可以开发软件了。 一、AI带来的变化 1、代码生成与补全 AI工具如GitHub Copilot等能够根据代码…...
PL/SQL语言的网络编程
PL/SQL语言的网络编程 引言 在信息化迅速发展的今天,网络编程作为现代软件开发的重要组成部分,受到了广泛关注。而在数据库管理系统中,Oracle 提供了 PL/SQL(Procedural Language/Structured Query Language)&#x…...
vue video重复视频 设置 srcObject 视频流不占用资源 减少资源浪费
// 直接设置srcObject减少获取视频流:通过 captureStream() 方法从下方视频元素获取视频流。 // 设置 srcObject:将获取到的视频流设置为上方视频的 srcObject 减少资源浪费 // 获取到需要复制到的dom元素 const firstVideoElement proxy.$refs.firs…...
SecGPT-14B接口加密:保障OpenClaw安全任务通信隐私
SecGPT-14B接口加密:保障OpenClaw安全任务通信隐私 1. 为什么需要加密OpenClaw与SecGPT-14B的通信 去年我在调试一个自动化财务报告生成流程时,突然发现OpenClaw传输的报表片段竟然被公司内网监控系统捕获。虽然只是测试数据,但这个意外让我…...
程序员必备:10个免费IT电子书网站实测推荐(附优缺点对比)
程序员必备:10个免费IT电子书资源站深度评测与实战指南 在技术迭代飞快的时代,持续学习是程序员保持竞争力的核心。优质电子书资源站如同数字时代的图书馆,但面对海量选择,如何高效筛选真正实用的平台?本文基于三个月实…...
2026年04月04日最热门的开源项目(Github)
根据本期榜单的数据,可以从多个维度对项目进行分析: 1. 项目分布 语言使用情况:榜单中使用的编程语言包括JavaScript(1个项目)、TypeScript(6个项目)、Python(5个项目)…...
钙钛矿材料的“电控开关“:罗格斯大学实现光发射强度近100%调节
这项由美国罗格斯大学物理与天文系以及英国帝国理工学院化学系联合开展的研究发表于2026年3月17日,研究成果展现了一种全新的光电器件控制方式。感兴趣深入了解的读者可以查阅完整论文获取更多技术细节。如果把发光材料比作一个可调光的台灯,那么传统方法…...
ATmega328P ADC底层控制库:精度、功耗与实时性深度优化
1. 项目概述AnalogControlPanel(ACP)是一个专为ATmega328P系列Arduino平台(Uno、Nano、Pro Mini)设计的底层ADC控制库。它并非替代analogRead()的简易封装,而是一套面向嵌入式工程师的、对AVR片上模数转换器࿰…...
如何用Bubblewrap CLI创建你的第一个Trusted Web Activity项目
如何用Bubblewrap CLI创建你的第一个Trusted Web Activity项目 【免费下载链接】bubblewrap Bubblewrap is a Command Line Interface (CLI) that helps developers to create a Project for an Android application that launches an existing Progressive Web App (PWAs) usi…...
Go语言macdriver性能基准测试:与其他macOS开发方案的终极对比分析
Go语言macdriver性能基准测试:与其他macOS开发方案的终极对比分析 【免费下载链接】macdriver Native Mac APIs for Go. Previously known as MacDriver 项目地址: https://gitcode.com/gh_mirrors/ma/macdriver 在macOS原生应用开发领域,选择合适…...
计算机基础知识简介
欢迎来到我的软考中级——软件设计师备考合集。这里不只是一份简单的知识点堆砌,而是我在备考征途中,对庞杂知识体系进行深度梳理与内化的结晶。 面对浩瀚的考纲,从计算机组成原理的底层逻辑,到操作系统的进程调度;从数…...
松下Panasonic伺服调试软件(支持MINAS - A/A3/A4/B/E/S系列与MDD...
松下Panasonic 伺服调试 软件 支持MINAS-A A3 A4 B E S 英文版 MDDA、MHDA、MSMA、MSDA、MDMA、可以修改参数、JOG点动调试、参数拷贝、复制等 松下 伺服 软件刚拿到台新拆箱的MHDA-MA3A1A伺服驱动器?或者翻出实验室积灰好几年的MSMA电机搭MDDA A1板子练手ÿ…...
React Native 项目重构利器:使用 react-native-rename 快速迁移应用品牌
React Native 项目重构利器:使用 react-native-rename 快速迁移应用品牌 【免费下载链接】react-native-rename Rename react-native app with just one command 项目地址: https://gitcode.com/gh_mirrors/re/react-native-rename react-native-rename 是一…...
