
TMS320C6678
文章平均质量分 83
TMS320C6678
kunkliu
good good study
展开
-
TI DM6437 EDMA3使用总结
1.概述 EDMA3控制器的基本用处是:独立于CPU批量的进行数据传输。 典型的用法: a:服务外部内存(比如DDR) b:服务芯片内的内存(比如:L2 SRAM) c:服务外设,比如:串口 主要目的:减轻DSP 的数据传输任务。 EDMA3控制器由2个主要模块组成: EDMA3通道控制器(EDMA3CC),充当EDMA3控制器的用户接口,EDMA3CC包括:参数RAM(PaRAM)通道控制寄存器、中断控制寄存器。EDMA3CC负责软件请求或外设事...转载 2021-06-19 11:14:11 · 2324 阅读 · 3 评论 -
EDMA3浅析
EDMA3概述 基于C66x的内核处理器主要具有两种DMA传输:IDMA、EDMA3。 IDMA:只提供核内部(L1P、L1D、L2、CFG)的数据移动服务。 EDMA3:实现器件上两个存储器映射的从终端(Slave Endpoint)之间的数据传输(如DDR3、MSM SRAM、L2)。 EDMA3控制器由用户设定,服务于器件上两个...转载 2021-06-19 11:11:46 · 1448 阅读 · 0 评论 -
C66xDSP芯片—semaphore 2 介绍
Semaphore 2简介 多核芯片(具体参考相应的数据表文档)包含一个增强型信号量模型来管理C66xCorePacs的共享资源。Semaphore可以强制对一些芯片级的共享资源只可以执行原子操作,进而保证对其的读写的顺序。每个核在拥有资源时,Semaphore模块会对每个核提供专门的中断。 Semaphore不是和硬件资源绑定在一起,而是可以通过软件来将Semaphore灵活的配置到不同的硬件资源。 Semaphore支持8个masters...转载 2020-12-16 09:47:05 · 1861 阅读 · 0 评论 -
XDC工具使用示例
http://www.usr.cc/thread-52037-1-1.html 这个文章实际上是为读示例代码服务的,下面转而进入读代码系统的第四篇:codec engine代码阅读四---CE_DIR/examples/ti/sdo/ce/examles/codecs/videnc_copy 在xdc工具的文档里,有一个chm文件,我们跟着这个文件做一些简单的利用xdc的程序编译. ...转载 2020-12-14 18:55:46 · 2406 阅读 · 0 评论 -
TMS320C6678开发笔记---SRIO例程3
15.7节 SRIO Direct I/O写在前面的话: 在整理这部分内容之前,我已经调试完成了在两片6678 上通过NWRITE、NREAD、DOORBELL通讯。SRIO学习调试可以说是从之前的一无所知过度到了现在的入门级别,最初连最基本的概念也不知道,TI的英文手册看了一遍,没有看懂,网上也有对TI英文手册的部分理论章节的翻译,看了以后也是没有太懂,庆幸的是这段时间创龙出了对TI英文手册的全方位翻译,看了一遍也还是一知半解,并没有整体的把局。我总结道:首次阅读对于这种专业术语概念...原创 2020-11-20 09:15:19 · 5415 阅读 · 0 评论 -
TMS320C6678开发笔记---SRIO例程2
15.5节 创龙例程tl-srio-test分析15.5.1 工程分析工程介绍tl-srio-test与tl-srio-target配合使用完成SRIO数据传输。创龙第二版6678资料包提供的例程,(第一版例程使用创龙自己写的SRIO寄存器操作函数,我认为可用性方面比较狭窄)相对第一版例程,第二版例程基于pdk_C6678_1_1_2_6包,可以更好的与TI的其他例程适配,此处也将调试经验写一下。程序逻辑如下:tl-srio-target只负责初始化SRIO,并未做其他操作 tl-sri.原创 2020-11-20 09:14:54 · 4436 阅读 · 3 评论 -
TMS320C6678开发笔记---SRIO例程1
第15节 SRIO例程参考文档:(系列博客,对官方SRIO手册的中文解释)https://blog.youkuaiyun.com/kunkliu/article/details/105271629创龙提供的SRIO中文参考资料《C66x串行快速输入输出(SRIO)用户指南.pdf》TI官方资料《Serial Rapid IO (SRIO) User Guide.pdf》15.1节 K1_STK_v1.1回环测试例程K1_STK_v1.1 中参考文档:(建议看一下)《KeyStone...原创 2020-11-20 09:14:38 · 7372 阅读 · 3 评论 -
TMS320C6678开发笔记---网络例程
第17节 网络例程ps:两周前调试的网络,现在有些记不清了,现试着回想将开发流程写出来。17.1节 创龙NDK_TCP例程编译例程位置:E:\ft6678\doc\Tronlong6678\Demo\SYSBIOS\Application\NDK_TCP 编译依赖的库版本* CCSv7 IDE* 7.4* 依赖组件版本为* - XDCTools 3.50.5.12-core ** - Board Library 4.6.0.01 ** - NDK 2.25....原创 2020-11-19 15:28:30 · 5898 阅读 · 5 评论 -
TMS320C6678开发笔记---SRIO 启动
15.11节 zynq ps端控制srio ip核与6678通讯zynq端使用xilinx官网提供的历程xsrio_dma_lookback_example.c,(C:\Xilinx\SDK\2017.4\data\embeddedsw\XilinxProcessorIPLib\drivers\srio_v1_1\examples)对其内部代码修改,将srio的初始化代码全部屏蔽,只留下DMA的操作代码,(对于ps端看见的是一个DMA控制器)。 ps端需要对组一个SRIO HELLO包头,具体格式参.原创 2020-11-19 15:19:04 · 3687 阅读 · 0 评论 -
TMS320C6678开发笔记---image_processing例程
第14节 image_processing例程14.1节 代码与资料代码位置:C:\ti\mcsdk_2_01_02_06\demos\image_processing 主要参考例程:image_processing_evmc6678l_master和image_processing_evmc6678l_slave 参考资料:C:\ti\mcsdk_2_01_02_06\demos\image_processing\docs\image_processing_demonstration_r..原创 2020-11-19 15:09:25 · 1738 阅读 · 1 评论 -
TMS320C6678开发笔记---NDK重新编译
17.9节 NDK重新编译17.9.1 参考文章参考文章:Rebuilding the NDK Corehttps://processors.wiki.ti.com/index.php/Rebuilding_the_NDK_Corehttps://processors.wiki.ti.com/index.php/Rebuilding_The_NDK_Core_Using_Gmakehttps://blog.youkuaiyun.com/kunkliu/article/details/1071121.原创 2020-11-19 14:58:29 · 1058 阅读 · 0 评论 -
TMS320C6678开发笔记---小端变大端工程修改
第22节 小端变大端工程修改21.1节 工程小端变大端修改以下几点:21.1.1 工程大小端修改21.1.2 BISO库编译修改21.1.3 platform_lib_evmc6678l库编译修改1将platform_lib_evmc6678l工程配置为big,然后重新编译。C:\ti\pdk_C6678_1_1_2_6\packages\ti\platform\evmc6678l\platform_lib/lib/debug/ti.platform.evm6678l..原创 2020-11-19 14:55:05 · 1625 阅读 · 1 评论 -
TMS320C6678开发笔记---IBL编译与分析5
9.4节 IBL编译输出文件分析9.4.1 编译分析汇总生成的第一个文件:i2cparam_c66x_le.out即i2cparam_0x51_c6678_le_0x500.out其作用是通过CCS加载此文件,在运行gel脚本,设置ibl参数,这个过程可以将ibl写死,对应的c文件为boot_loader\ibl\src\util\i2cConfig\i2cparam.c 生成的第二个文件:iblConfig.out(不能在CCS中运行,可以在MinGW中运行),对应的c文件为boot_load.原创 2020-11-19 14:40:40 · 2206 阅读 · 0 评论 -
TMS320C6678开发笔记---IBL编译与分析4
9.3.13修改app.out在nor flash的起始地址C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\util\iblConfig\src\device.c9.3.14 NOR FLASH IBL使用烧写步骤最终编译出来的NOR Flash的IBL镜像为spiRom.bin(C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\make\ibl_c66x) 使用norwriter_evm6678l.out将IBL.原创 2020-11-19 14:34:50 · 1514 阅读 · 2 评论 -
TMS320C6678开发笔记---IBL编译与分析3
9.3.7 makefile修改C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\make\makefile9.3.8 iblinit.c修改C:\MinGW\msys\1.0\ibl\boot_loader\ibl\src\main\iblinit.c将IBL_ENTER_ROM设为0,或者将函数iblEnterRom();注释掉9.3.9 将MinGW命令行输出信息输出到文件IBL_buildibl_6678 2>&1原创 2020-11-19 14:29:16 · 1133 阅读 · 1 评论 -
TMS320C6678开发笔记---IBL编译与分析2
9.3节 IBL从I2C启动移植到SPI-NOR启动编译器版本:ti_cgt_c6000_7.3.0_setup_win32.exe,下载地址参考1.3.5 编译器工具链下载地址 编译参考文章《IBL_Build_Burn.doc》自己网上下载9.3.0 编译命令运行C:\MinGW\msys\1.0\msys.bat (命令行操作方式与linux基本一致) 切换到C:\MinGW\msys\1.0\ibl\boot_loader目录下 编译时将360等软件关闭 运行以下命令即可..原创 2020-11-19 14:24:19 · 1827 阅读 · 0 评论 -
TMS320C6678开发笔记---IBL编译与分析1
第9节 IBL编译与分析9.1节 MinGW安装下载与安装参考文章:https://blog.youkuaiyun.com/kunkliu/article/details/106786512 安装建议:将所有包全部安装,可在网络好的电脑上安装完成后将安装文件考到本机电脑。打开命令行:C:\MinGW\msys\1.0\msys.bat转存失败重新上传取消...原创 2020-11-19 14:19:05 · 2004 阅读 · 0 评论 -
TMS320C6678的地址映射范围及性能比较
TMS320C6678的地址映射范围 1.存储器系统简介2.DSP 核,EDMA3,IDMA 拷贝数据的性能比较3.DSP 核访问存储器的时延3.1 DSP 核访问LL2 的时延3.2 DSP 核访问SL2 的时延3.3DSP 核访问外部DDR 存储器的时延 TMS320C6678 有8 个C66x 核,典型速度是1GHz,每个核有 32KB L1D SRAM,32KB L1P SRAM 和 512KB L...转载 2020-10-08 13:43:04 · 3252 阅读 · 1 评论 -
TI6678 MSMC关闭Cache方法总结
背景TI6678的MSMC在默认条件下是开启对L1d的缓存的,但是却没有硬件机制维护MSMC的Cache一致性,在这种情况下如果将多核共享变量存放在MSMC中,将会出现多核访问共享变量不一致的问题。在某个项目进行过程中需要使用MSMC存放核间信号量等共享数据供八核使用,经过查阅资料与实验实现了这一功能,故总结如下,仅供参考。(推荐使用方法二)简单举例假设共享变量Flag存放于0x0c000000处,核0负责对Flag进行写,核1负责对Flag进行读。 核0操作如下:while(1){转载 2020-10-08 13:39:51 · 3974 阅读 · 5 评论 -
6678与FPGA PCIE调试
本人调试是将DSP作为RC端,FPGA作为EP端,且下文是对DSP代码的讲解。本人调试参考代码是D:\ti\pdk_C6678_1_1_2_6\packages\ti\drv\exampleProjects\PCIE_exampleProject。本文所指的PCIE...转载 2020-09-19 13:47:28 · 1971 阅读 · 0 评论 -
TI XDC工具入门简介
1.XDC(Express DSP Component)是TI提供的一个命令行工具,它可以生成并使用实时软件组件包。 2.以上两图说明了XDC的工作方式:通过相关文件设定操作指令,读入源码、库文件以及已经存在的组件包最终生成可执行文件。3.Package------XDC工作的基本单元。包括有:源码、库文件以及元数据;元数据这包含有该包的版本信息和依赖信息,以及模块(Module)信息。4.XDC使用方法: 5.XDC需要.转载 2020-09-11 16:14:45 · 1364 阅读 · 0 评论 -
TI 操作系统之 启动时序
本文由博主译自《SYS/BIOS(TI-RTOSKernel) v6.46 User's Guide》,TEXASINSTRUMENTS,文献编号:SPRUEX3Q,2016年6月,P47-48。内容以原文为准,转载或拷贝需标明本网址的链接。3.1 SYS/BIOS启动时序SYS/BIOS启动时序在逻辑上分为2个阶段:发生在应用(程序)的main( ) 函数调用之前的操作;发生在应用(程序)的main( ) 函...转载 2020-09-11 16:02:09 · 1090 阅读 · 0 评论 -
DSP6678DDR配制方法
做MCU及其他DSP的设计时,可能大家觉得时钟的设计其实是很简单的。没错,比如现在很热门的ARM系列的MCU,设计时没人单独提出来过什么时钟设计。为什么在提到TMS320C6678的时候要特别的提出时钟设计呢?说实话,要想用好C6678,尤其是在多任务图像通信的场合,还真的得仔细研究其时钟系统。在这里,我将按照我个人在工作中的理解来写C6678的时钟系统。所以看起来会工程味道重一些,没有学术的味道。C6678的时钟系统架构,设计得非常人性化,使用也比较方便。其系统架构如下图:从架构图中可以清晰的看出转载 2020-08-21 11:37:35 · 2756 阅读 · 0 评论 -
RapidIO协议介绍,CPS-1848介绍
RapidIO是由Motorola和Mercury等公司率先倡导的一种高性能、 低引脚数、 基于数据包交换的互连体系结构,是为满足和未来高性能嵌入式系统需求而设计的一种开放式互连技术标准。RapidIO主要应用于嵌入式系统内部互连,支持芯片到芯片、板到板间的通讯,可作为嵌入式设备的背板(Backplane)连接。RapidIO协议由逻辑层、传输层和物理层构成。逻辑层定义了所有协议和包格式。这是对终端进行初始化和完成传送的很有必要的信息。传输层为数据包从一个终端到另一个终端通道的必要信息。物理层描述了设备转载 2020-08-10 14:43:48 · 5260 阅读 · 1 评论 -
TMS320C6678开发笔记1-6---C6678单核烧写程序
第6节 单核烧写加载程序6.1节 TI参考文档参考文档:《KeystoneI Bootloader Resources and FAQ》讲的非常好,建议一定要看https://processors.wiki.ti.com/index.php/KeystoneI_Bootloader_Resources_and_FAQ#Direct_Boot_Examples_.28without_IBL.29里面有三个工程:C6678 EVM SPI boot example C6657 EVM ..原创 2020-08-06 14:20:58 · 4848 阅读 · 0 评论 -
TMS320C6678开发笔记1-4---SEED-XDS560v2仿真器使用
第4节 仿真器加载程序方法4.1节 SEED-XDS560v2仿真器使用下载地址:https://www.seeddsp.com/index.php/Home/Product/detail/name/1/id/31.html4.2节 仿真器加载方法原创 2020-08-06 12:24:31 · 3593 阅读 · 0 评论 -
TMS320C6678开发笔记1-5---TI提供的烧写程序
第5节 TI提供的烧写程序5.1节 NOR烧写程序5.1.1 烧写工程建立导入工程路径:C:\ti\mcsdk_2_01_02_06\tools\writer\nor\evmc6678l5.1.2 烧写工程修改 1、编译:添加环境变量TI_PDK_C6678_INSTALL_DIR = C:\ti\pdk_C6678_1_1_2_6 环境变量路径必须为pdk_C6678_1_1_2_6,工程才可以编译通过。 TI 原工程编译配置:(可编译通过)修改工程..原创 2020-08-06 12:19:30 · 2448 阅读 · 1 评论 -
TMS320C6678开发笔记1-3---Rebuilding The PDK
1.4节 Rebuilding The PDK参考文章:《TI Processor SDK 如何生成例程》https://blog.youkuaiyun.com/kunkliu/article/details/105410484《Rebuilding The PDK》https://processors.wiki.ti.com/index.php/Rebuilding_The_PDK#PDK_Example_and_Test_Project_Creation使用PDK版本:pdk_c66..原创 2020-08-06 11:35:47 · 1444 阅读 · 0 评论 -
DSP:TMS320C6657 之MAD方法 烧写多核镜像到nand flash or nor flash
工具网盘资料的"program-tools\multicore-boot"目录。 在使用该工具之前,请提前安装好 python 2.x 以上版本,安装程序在文件夹"Demo\Host App"下。可以直接默认路径安装C:\Python27(1)修改 Build.bat下面以使用 SEED-XDS560v2 仿真器烧写ibl.bin至EEPROM、烧写MultiCore_DualImage_Core0_SYSBIOS_v1.out 和 MultiCore_DualImag转载 2020-07-30 20:18:10 · 938 阅读 · 0 评论 -
RapidIO的启动与初始化
RapidIO的启动与初始化概述RapidIO的启动与初始化主要包括以下几个方面的内容:系统初始化 器件枚举 路由表配置 存储器映射一旦配置好RapidIO系统,系统就会在RapidIO互连结构中透明地传递I/O事务。从软件角度观察,由于软件并不与RapidIO硬件进行交互,所以,RapidIO对软件是透明的。例如,某一地...转载 2020-07-29 19:28:22 · 1145 阅读 · 0 评论 -
SRIO系统初始化过程和路由配置
参考RapidIO规范《RapidIO_Rev_2.2_Specification》书籍《RapidIO The Embedded System Interconnect》系列博客SRIO学习系列博客RapidIO(还介绍了TSI721...转载 2020-07-29 19:23:48 · 3107 阅读 · 0 评论 -
TMS320C6678开发笔记1-2---TI各种组件下载
1.3节 组件下载地址1.3.1 组件下载总地址TI组件下载总地址:http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/1.3.2 XDCTools下载地址http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/rtsc/index.htmlXDCTools与CCS版本有关系1.3.3 NDK 下载地址htt.原创 2020-07-22 17:56:18 · 1195 阅读 · 0 评论 -
TMS320C6678开发笔记1-1---CCS开发环境搭建
第1节 CCS开发环境搭建1.1节 CCS软件下载安装CCS软件目前调试安装版本为7.4,安装请务必按照默认目录按照。有两种下载方法:1、TI官网中提供了统一的CCS软件下载,里面有CCS各个版本的下载路径,当知道所以用CCS版本时,可采用此方法下载。http://www.ti.com/tool/CCSTUDIO-KEYSTONE2、通过在SDK包下载的地方,指定了对应SDK的CCS版本,推荐使用此方法。下文介绍。1.2节 SDK包下载与安装使用SDK版本...原创 2020-07-22 17:42:36 · 2882 阅读 · 1 评论 -
DSP- 6678--------- SRIO通信(3)slave_main
一、打开主核创建的heapBuf/* Open the heap created by the other processor. Loop until opened. */do { status = HeapBufMP_open(HEAP_NAME, &heapHandle); if (s...转载 2020-07-21 17:06:12 · 844 阅读 · 0 评论 -
DSP- 6678--------- SRIO通信(2)主核函数master_main
一、创建 heapBuf HeapBufMP_Params_init(&heapBufParams); heapBufParams.regionId = 0; heapBufParams.name = HEAP_NAME; hea...转载 2020-07-21 17:03:38 · 1100 阅读 · 0 评论 -
DSP- 6678---------messageQ的使用
MessageQ模块:主核(核0)在将图像文件输入共享内存后,需要将输入图像缓存和输出图像缓存的地址打包成消息,传递给从核。总之,MessageQ是用来传递少量信息的,一般是地址,标志位之类的参数,不是传递大规模数组用的。对于大规模的数组,可以利用messageQ传递其首地址。MessageQ模块的主要特点:1. 实现了处理期间变长消息的传递,所需要传递的消息一般超过32bit;2. 其消息的传递都是通过操作消息队列来实现的;3. 每个消息队列可以有多个写者,但只能有一个读者,而每个任务(task)转载 2020-07-21 10:07:09 · 1890 阅读 · 0 评论 -
SRIO 有关门铃和数据的发送
转载 2020-07-17 19:10:55 · 2241 阅读 · 0 评论 -
SRIO通信dsp在nwrite时如果带门铃信号,完成传输的时间会很长
现象:dsp在nwrite完成会发送一个nwrite finished的门铃信号,计时dsp的单次发送传输时间会很长,达到秒级别 分析:多种尝试后,发现nwrite不加门铃,传输时间是正常的,因此怀疑门铃发送问题;网上查了有类似问题,提到一个关键问题,门铃信号是要有response信号的,查询dsp的状态寄存器也确实是指示传输超时;fpga端的...转载 2020-07-17 19:05:21 · 1446 阅读 · 2 评论 -
C66xx SRIO DoorBell的使用
关于SRIO DoorBell中断的路径Keystone DSP的SRIO模块共有24个system Interrupt,即INTDST0~23。其中INDTST0~15为通用的system Interrupt,可以连接到LSU或者DoorBell中断,再输入到CIC0,而INTDST16~23只连接DoorBell中断,属于system Event,直接输入到CorePac。KeyStorn模块的DoorBell...转载 2020-07-17 14:29:58 · 1836 阅读 · 0 评论 -
TI_DSP_SRIO - Doorbell原理(中断路由到core-1)
Doorbell的中断到core的机制是由DOORBELLx_ICRRx寄存器实现的,共有八个ICRR寄存器。When doorbell packets are received by the SRIO peripheral, theseICRRsroutedoorbell interrupt requests(在ISCR寄存器中指示) from the associated doo...转载 2020-07-14 19:22:18 · 1737 阅读 · 0 评论