TMS320C6678多核烧写研究v1,0
- 格式:ppt
- 大小:2.98 MB
- 文档页数:41


TMS320C6678的EMIF16多核程序烧写软件使用说明目录1 概述 (5)1.1 范围 (5)1.2 目的 (5)1.3 设计依据 (5)1.4 背景 (5)1.5 开发环境和运行环境 (5)2 任务概述 (5)3 多核的待烧写工程说明 (6)3.1 core0待烧写工程说明 (6)3.1.1 工程文件说明 (6)3.1.2 程序流程图 (7)3.1.3 操作步骤 (7)3.2 core1~core7待烧写工程说明 (8)4 EMIF16加载转换工具说明 (9)4.1 使用说明 (9)4.2 生成文件格式说明 (9)4.2.1 core0的.dat文件的格式 (9)4.2.2 core1~core7的.dat文件的格式 (10)5 烧写工程说明 (10)5.1 工程文件说明 (10)5.2 程序流程图 (11)6 Boot Mode设定 (12)7 加载成功检验 (13)图表目录图1 TMS320C6678的EMIF16多核加载总体框图 (5)图2 core0待烧写程序的执行过程 (7)图3 core0的.dat文件格式 (9)图4 core1~core7的.dat文件格式 (10)图5 core0代码烧写流程图 (12)表1 八个核的代码在Flash中的空间分配 (8)表2 烧写工程文件的函数说明 (11)表3 Boot Mode pins 定义 (12)符号和缩略词说明DSP:数字信号处理器(Digital Signal Processor)SPI:串行设备接口(Serial Peripheral Interface)EMIF16:外部存储器接口(External Memory Interface)DDR3:外部存储器PLL:锁相环L2 SRAM:二级静态存储器IPC:核间通信(Interprocessor Communications)TMS320C6678的EMIF16多核程序烧写软件使用说明1概述1.1范围本文档包括:TMS320C6678的EMIF16多核程序烧写软件使用说明。
简简单单学TI多核DSP(1):TMS320C6678的架构一.这么学DSP比较有效在开始C6678的架构讲解之前,我想拉出一点篇幅,给大家谈一下,根据我个人的理解,怎么样才能比较快的学好DSP。
(1)学习DSP,首先要与学MCU区分开,毕竟这是两个完全不同的架构,而且DSP与MCU的设计思路完全不一样。
MCU是为通用的控制而设计,DSP则是专为高速应用而设计;(2)从硬件的角度来考虑,要玩转DSP,首先需要仔细阅读其数据手册和用户指南。
数据手册中,重点阅读DSP的技术指标,最关键的是对芯片的电源需求做详细的了解,其中对核电压的需求一定要认真了解,这是DSP稳定运行的基本条件;做硬件设计的人,电源设计是最基本的,不仅要考虑电源的电压,更重要的是要考虑电源的抗跌落性能、动态性能。
尤其在DSP使用场合,高速电路对电源的要求尤其苛刻,尤其是对于上电时序需要特别注意;(3)在对DSP芯片的电源需求做了深入的了解后,下一步就是要仔细阅读如何启动DSP,前面说了,DSP与MCU不一样,但是有一点又是非常相似的,就是DSP跟MCU一样,需要明确的设置好启动的选项。
因为DSP是独立的高速信号应用,DSP的控制程序和算法都是独立的存储在独立的存储空间。
所以如何根据产品的需求进行启动的配置,这是非常重要的;(4)在了解了DSP的启动选项后,还有一个需要密切关注的,就是对于晶体或者TCXO等等的选择,这一点为什么要提出来,本人是做无线通信的,做基站或者终端,都必须根据网络的需要,确定你需要的系统基准时钟的技术指标,如果你选择的晶体或者TCXO等等指标落后于你的网络系统的需要,那么在使用和测试的过程中,将会出现失步的问题。
无线通信最严重的通信故障就是失步。
尤其是我们国家推行的TD-SCDMA以及TDD-LTE都对网络的同步提出了极为苛刻的要求,在做DSP设计时,尤其需要对DSP的输入时钟根据系统的性能需要,做特别的处理;(5)对于高速DSP,比如我们接下来要讲的8核高速DSP TMS320C6678而言,一个至关重要的硬件设计,就是存储器的设计。
540 引言在当今数字化不断加快的背景下,各信号处理系统对嵌入式实时性要求在进一步提高。
TI推出的多核DSP TMS320C6678,具有8个运算核心,单核心主频最高可达1.25Ghz [1],无论是定点或浮点都具有较高的计算能力,并且TI为其配套了专用嵌入式实时操作系统SYS/BIOS,使该款芯片在软件设计上的难度大大降低。
在实际应用中,应用场景复杂多变,我们可根据其引导方式将其分成两类,一类需要主机将应用程序镜像下载到DSP内存并激活DSP运行用户程序。
另一类是将用户程序烧写在外部存储器中,上电后由DSP的引导程序完成自加载启动[2-3]。
C6678内置了一级引导程序RBL,RBL为用户提供了多种引导方式以满足其不同需求。
但同时RBL程序相对简单,无法满足一些较为复杂的引导需求,这时往往需要二级引导程序的辅助。
因此,C6678的启动引导过程常常是由一级和二级引导程序共同完成的。
1 C6678启动过程RBL是厂家固化在其Boot Rom内的一段程序,其主要功能是通过判断DEVSTAT寄存器后三位BOOTMODE[2:0]的状态来决定运行的Boot代码。
当C6678上电后,由内部的EDMA将Boot Rom中的代码搬运到Core0的内存中执行,完成一系列初始化工作。
C6678上电启动的大致过程可描述为:Core0运行RBL;RBL根据BootMode[2:0]运行相应一级引导程序;一级引导程序引导用户程序启动,如有二级引导,则先引导二级引导程序,由二级引导程序引导用户程序启动。
2 C6678常用引导方式2.1 PCIE BootPCIE [4]是一种高速串行总线的扩展标准,C6678集成了PCIE外设接口,PCIE启动过程可简单描述为:RBL检测到BootMode[2:0]的值并初始化PCIE模块;主机加载程序在PC与DSP间建立内存映射;主机通过PCIE总线将DDR初始化程序送入Core0 的L2内存并初始化DDR;主机将用户程序推送至DDR内存指定位置,并将入口地址写入magic地址[5],DSP跳转到magic内的入口地址执行,并通过IPC 中断通知从核工作。