基于TMS320C6678 的多核DSP 上电加载技术

最新更新时间:2014-01-19来源: 电源网关键字:TMS320C6678  DSP 手机看文章 扫描二维码
随时随地手机看文章

在视频检测、医疗影像及红外图像快速跟瞄系统应用中,越来越复杂的二维、三维甚至四维的图像处理,需要并行化的处理系统,并能够运行复杂的算法。要实现这些复杂的系统,高端FPGA+高性能DSP是目前普遍采用的方案,而单个DSP的性能已发展至极限,所以解决复杂的并行算法,多核DSP是现在发展的全新方向,其中多核DSP的根加载技术是其难点之一。

TI公司推出的DSP芯片TMS320C6678(C6678)具有8个内核的高性能DSP,每个内核工作频率均达1 GHz.

其支持的Boot 模式有SPI、I2C、EMAC、SRIO 和并口Emif16 NOR-FLASH.其中Emif16 NOR-FLASH模式是不用上位机参与、比较简单、独立成系统的一种,大多独立DSP系统采用该方式。

网上能搜索到关于C6472和C6678零星一些加载资料,都是借助于第三方转换工具,太过于笼统。下面是针对C6678 的并口Emif16NOR-FLASH的上电加载作详细的探讨。

1 C6678 的上电加载过程

所谓上电加载(上电自举),即是当DSP复位后,正常运行用户程序之前运行的一段小程序,就像PC机的BIOS 一样。多核加载同单核加载区别很大,不但要负责主核的加载而且还有其他核的加载与激活。C6678的Emif16 NOR-FLASH 可以直接执行程序(XIP)(这与C641x系列DSP不同),其上电加载过程示于图1.

上电复位后,DSP 首先运行固化在片上ROM 位于地址0x20b00000 的程序,称为片上Loader,片上Loader根据DSP硬件管脚状态,判断用户采用的Boot模式以跳转到相应模式的二级加载程序。如图1的Emif16 NOR-FLASH 模式中,运行片上Loader 后,PC 指针直接指向NOR-FLASH 首地址0×70000000 并开始执行FLASH 上的二级Loader 程序,二级Loader 存储在FLASH 开始地址0×70000000~0×70000400 的范围内。从0×70000400开始保存应用程序的根表数据(即被烧烧写到FLASH中的应用程序的数据)。二级Loader的功能是将保存在FLASH中的Core0~Core7的根表数据搬移到DSP相应的地址段内,搬移完后,二级Loader 程序PC 指针跳到Core0的主程序入口地址_c_int00处,开始执行Core0的应用程序。在Core0 的应用程序开始加有使其他核激活运行的代码(这也是有别于单核的特殊之处),至此整个多核加载就此完成。事实上,如果你的应用程序很小,且运行速度要求不高,图1中的2、3和4过程都可以不要,只要把应用程序的原始代码数据烧写到FLASH从0×70000000 开始的位置,上电正常运行即可(这在C641x 上是不行的),如此DSP 的许多高性能就体现不出来,且多核工程大多采用嵌入式sysbios工程,占用存储器比较大,所以正常的Boot过程必须采用图1所示的二级加载过程。

 

 

从图1 中看出,一个完整多核加载过程,开发者需要做的是二级加载器Loader 的编写、FLASH 中映像文件的产生、FLASH烧写器的编写,主核对各辅助核的触发代码的编写(被加载的应用程序不在本范围内)。

2 多核映像文件的组成与产生

映像文件就是用户要烧写到外部FLASH上的全部数据文件,它是由二级加载器Loader的代码数据(在文件前部)和应用程序的根表(Boot Table)数据(文件后部)的合成数据文件。单核和多核的二级Loader 都一样,区别就是后部的根表数据。根表是应用程序的所有代码和数据以在片上占用的地址来分段存储的数据包,包的第一个4 B 是main()函数的入口地址_C_int00,后面由若干数据段组成,每个段前4 B为该段数据的字节长度Byte_count_x(x 为段序号),接着4 B Address_x 为该段在片上的存储地址,后面是Byte_count_x个字节的具体数据Data_x.所有数据段结束后是4个字节0作为根表的结束标记。该根表格式如表1所示。每一个段的数据字节数可能不是4的整数倍,根表中数据区就在后面添0按4 B的整数倍向上取整,故整个根表文件字节数必是4的整数倍。

根表数据产生很简单,由应用程序最终生成的Out文件,通过ccs自带工具hex6x.exe选择不同的参数而产生,产生的文件即是根表文件,可以选择生成二进制文件或文本文件,本研究采用二进制。其产生命令为(app为应用程序名,app.out为ccs产生的连接文件):

hex6x -boot -b -e _c_int00 -order L -memwidth=32 -romwidth=32 -o app.bin app.out

app.bin为产生的二进制根表文件,将二级Loader程序的二进制代码加到根表文件的头部即是app 应用程序的映像文件。

 

 

多核的映像文件是由二级加载器Loader和多个核应用的根表合并而成的文件。多个核对应多个独立的工程,并由CCS 产生多个out 文件,再由hex6x.exe 产生各核的根表文件。后对Core0 的根表文件先去掉末尾4 个0字节,再将各辅助核的根表文件的开始的入口地址_C_int00和末尾4个0字节去掉,加到Core0被去掉了末尾字节的根表文件后,然后再将每个核的_C_int00当成一个4字节的数据段来保存到上面的合成文件的后面,而各_C_int00在片上的存放地址即为各核的专门固定地址Boot Magic Address,如Core1 的Boot Magic Ad-dress 为0x1187fffc,Core2 为0x1287fffc,…,Core7 为0x1787fffc.所有根表数据段构成后,再将4个0字节作为结尾标志加到文件的最后,这样合并后的根表文件如表2所示。同样,将二级Loader的代码数据加到该文件头部即形成多核的映像文件。由hex6x 生成的单核根表文件到合成映像文件的产生,全是文件操作,可以用一般的C语言工具,甚至Matlab等工具都可以完成。

 

同表1相比,表2仅仅只是增加了所有辅助核数据段和各核的_C_int00特殊数据段而已,表头和结束字节都相同,因此完全适用于二级Loader按统一Boot Table格式搬移数据。需特别注意,各辅助核的out文件通过hex6x.exe 产生的根表数据段中,当映射到L2(0×00800000~0x0087FFFF)的范围时,与Core0 的地址是相互覆盖的,产生合成根表时必须加上各核的L2基地址0×10000000 + n*0×1000000(n 为辅助核号),如Core1 的地址0×00825000,映射为0×11825000,同样地址Core2映射为0×12825000,Core7映射为0×17825000.

3 二级Loader 程序和FLASH烧写程序

二级Loader 是一段小代码程序,其功能就是将FLASH 的根表数据如图1 中从0×70000400 开始按表2的格式保存的数据搬移到DSP的RAM中。该Loader比较简单,一般是一小段汇编代码,代码如下:

 

 

需要注意的是,由于DDR 没有初始化,所以二级Loader不能加载DDR数据,DDR只作数据存储器用,确实要加载到DDR中,只能将DDR数据存在FLASH一指定段中,待Core0运行开始初始化DDR 后,将该数据读到RAM中。

对于FLASH 的烧写程序,主要任务就是把多核的合成文件烧写到外部Emif16 NOR-FLASH 存储器中。

由于TI大部分的Emif并口加载都是开放式的,开发者完全可以根据自己的思路和格式来产生和烧写映像文件,故烧写器TI公司是不提供的。其实,一旦合成根表文件产生后,烧写器也显得容易了。烧写器一般使用输出legacy COFF格式的CCS工程即可。从图1的加载过程看,要烧写的映像文件内容包括二级加载器Loader的代码和表2 的根表文件两部分。二级Loader可以放到烧写器的开头main()函数之前,也可以放到Core0的应用程序同样位置,本研究采用前者,将二级Loader代码映射到烧写工程中指定的存储器。boot_load段。烧写器的编程流程如图2所示。

 

 

4 辅助核的触发

多核的加载,如果图1 中仅仅只是进入Core0 的_C_int00地址运行而其他核还未激活,加载仍然是失败的。辅助核的触发,必须两个条件,一是将各核工程的入口地址_C_int00 写到各核的Boot Magic Address 处;二是向各核的核间中断触发寄存器IPCx(1

一旦辅助核被触发,在辅助核应用程序中,须向各自核的Boot Magic Address 写入数据0xbabeface 替换各自的_C_int00.

5 结语

多核DSP 加载是一项比较复杂但又很重要的过程,也是多核技术的应用难点之一,一个多核DSP开发人员,如果要成功走向应用,上电加载这一关是必须要过的。各核的应用工程可以是输出elf格式sysbios工程,也可以不是sysbios 工程。上面的多核Emif16NOR-FLASH 加载方法,在自研的C6678 图像信号处理系统中已成功加载。

关键字:TMS320C6678  DSP 编辑:探路者 引用地址:基于TMS320C6678 的多核DSP 上电加载技术

上一篇:基于DSP的数字存储示波卡的设计方案
下一篇:基于FPGA的步进电机控制系统的设计方案

推荐阅读最新更新时间:2023-10-12 22:34

Inband Software为Tensilica客户提供DSP软件开发服务
Inband的专长包括音频和语音编解码器、图像处理和数字通信 美国加州SANTA CLARA 2012年8月7日讯– Tensilica今日宣布与Xtensions™软件认证伙伴Inband Software开展紧密合作并共同开发多个HiFi音频/语音DSP(数据信号处理器)软件移植项目。 Inband Software能够在包括Tensilica HiFi音频DSP的多种平台上进行算法开发、定点化及性能优化。Inband Software拥有包括音频和语音编解码器、图像处理和数字通信等多种DSP应用的经验并与Tensilica合作开发了数款音频编解码器,包括G.711、G.726和G.722,以及各种数据包丢失隐藏模
[嵌入式]
STM32 DSP库函数详解
对于每个函数,都存在浮点数和定点数的类型,由于使用方法是一致的,这里我们仅以32为浮点数为例来说明。 一.BasicMathFunctions 1.绝对值 pDst = abs(pSrc ), 0 = n blockSize 示例 float32_t *pSrc; float32_t *pDst; uint32_t blocksize; arm_add_f32(pSrc,pDst,blocksize); 2.求和 pDst = pSrcA + pSrcB , 0 = n blockSize. 示例 float32_t *pSrcA; float32_t *pSrcB; float32_t *pD
[单片机]
智能化视频引领第三次DSP技术浪潮,TI首席科学家解读未来创新应用
1965年4月,《电子学杂志》刊登了一位在仙童公司工作的36岁工程师的文章——《往集成电路里塞进更多元件》,这位名叫戈登.摩尔的工程师以拗口的句子对半导体芯片的未来做了预言---他说,为了求得最低成本,集成电路的复杂性大约每一年就会翻一番。这便是摩尔定律的最初原型,连摩尔也没有想到,他的这个小小的发现会引领半导体产业的40年的辉煌发展(未来还将引领)。但是,摩尔定律虽然预言了芯片晶体管数量的发展规律,却没有考虑到由此产生的芯片功耗问题,而另一个人,发现了这个问题并提出了自己的假设,我们称之为“Gene定律”。这个人就是目前TI的首席战略科学家Gene.A.Frantz(方进)。 15年前,当全球都在为Intel的386,48
[焦点新闻]
基于DSP的全数字单相变频器的设计及实现
  本文介绍了基于 DSP TMS320LF2407A并使用 SPWM 控制技术的全数字单相 变频器 的设计及实现方法,最后给出了实验波形。   常见的AC/DC/AC 变频器 ,是对输出部分进行变频、变压调节,而且在多种逆变控制技术中,应用最广泛的一种逆变控制技术是正弦脉宽调制 ( SPWM )技术。在变频调速系统中,应用 DSP 作为控制芯片以实现数字化控制,它既提高了系统可靠性,又使系统的控制精度高、实时性强、硬件简单、软件编程容易,是变频调速系统中最有发展前景的研究方向之一。   TMS320LF2407A芯片简介   TMS320LF2407A是TI公司专为电机控制而设计的单片 DSP 控制器。它具有高
[嵌入式]
基于<font color='red'>DSP</font>的全数字单相变频器的设计及实现
基于引言DSP平台的USB接口设计
引言 USB接口(Universal Serial Bus)是一种通用的高速串行接口。它最主要的特点是它的高速传输特性。USB1.1理论速度极限可以达到12Mb/s,USB2.0可达到 480Mb/s。这样,它可以很好解决大数据量的数据在嵌入式系统与PC机之间的互传问题;同时,它支持热插拔,并且最多同时支持127个外设,非常适合嵌入式系统的应用。 本次设计是在一个已有的DSP图像采集嵌入式系统的基础上,为它配接上一个USB1.1的接口,以达到DSP图像采集系统高速地将图像数据回传到PC机中的目的。设计的要求主要有: ①在原有平台提供的接口基础上,加入一个低成本、高速度的USB接口;
[嵌入式]
德州仪器在KeyStone多核DSP上实施H.265
    日前,德州仪器 (TI) 宣布推出一款基于业界最新视频编码标准 H.265 的前期制造编解码器。该器件针对 TI 基于 KeyStone 的多核数字信号处理器 (DSP) TMS320C6678 进行了优化。H.265 标准经过精心设计,可充分发挥并行处理优势,使 C6678 多核 DSP 成为理想的 H.265 实施平台,通过其 8 个 1.25 GHz DSP 内核实现 320 GMAC 与 160 GFLOP 混合定浮点性能。 TI 基于软件的 H.265 标准实施可为客户新增编解码器差异化特性以及其它预处理和后处理算法提供充足的空间。此外,TI 设计方案还可在开发实时视频基础设施设备(如多媒体网关、IMS 媒体服
[嵌入式]
基于DSP+FPGA多视频通道的切换控制
随着计算机和数字图像处理技术的飞速发展,视频监控技术应用广泛。传统的视频监控系统都是用单一摄像头对某一固定场景进行监控,不仅视频的视野范围有限,而且不能对同一个物体的不同方位进行监控。这里提出了一种多通道视频监控系统,通过对不同视频通道稳定、可靠地切换控制,实现监控不同场景。该系统不仅弥补了传统监控视频范围有限的不足,而且提高了监控资源的利用率,降低了监控成本。 1 系统硬件结构 采用DSP+FPGA的硬件结构方案,利用DSP和FPGA控制MAX4312选通所需要的视频通道,从而达到在多路视频通道间进行切换的目的。系统结构框图如图1所示。 1.1 控制器件的选型 根据实际需要,DSP采用ADI公司推
[单片机]
基于<font color='red'>DSP</font>+FPGA多视频通道的切换控制
天惠微代理山景AP8264A2 适用DSP方案 可烧录 USB声卡USB麦克风
AP8264A2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品,适用于传统音响系统、新兴的蓝牙或WiFi无线音频产品、Sound Bar和调音台等市场。该处理器在总体架构和系统组成上,充分考虑了音频领域的特点,支持MP3、WMA、WAV、FLAC、APE、AAC等多种解码格式和MP3编码。同时,提供回声消除(AEC)、魔术低音(VB)、3D环绕和Parametric EQ等丰富的声学和音效处理功能。并可以灵活选用不同容量的程序Flash芯片,以达到整个系统设计的超高性价比。 内核和存储 ➢ 高性能 32 位 RISC 内核,最高频率 240MHz, 支持 DSP 指令,集
[嵌入式]
天惠微代理山景AP8264A2 适用<font color='red'>DSP</font>方案 可烧录 USB声卡USB麦克风
小广播
最新电源管理文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved