多核DSP Boot load 代码加载方法研究
基于TMS320C6678的多核DSP上电加载技术
基于TMS320C6678的多核DSP上电加载技术刘章文;刘七华;谢川林;袁学文【期刊名称】《现代电子技术》【年(卷),期】2013(000)018【摘要】The BootLoad technology is a key of multi-core DSP application technology,and one of the difficulties for the ap-plication as well. The root configure of 8-core high performance DSP(TMS320C6678)is searched in this paper,including the power-on load process,creation of image files of emif-nor-flash memory for single- and multi-core DSP,compiling of secondary loader and compositions of Fesh programmer. The key point is that the entry address of auxiliary kernel are treated as the special data in multi-core image files to make other slave cores easy to be triggered. It isn’t mentioned in other refences. The technology has been successfully used in an image processing system.%对于多核DSP应用技术来说,BootLoad技术是一个关键点,也是应用难点之一。
针对8核高性能DSP--TMS320C6678的根配置问题进行了研究,包括上电加载过程,单核和多核的emif NOR-FLASH存储器的映像文件的产生,二级加载器的编写和FLASH编程器的构成等。
TMS320C6678多核DSP的加载配置和实现方法
TMS320C6678多核DSP的加载配置和实现方法邓豹【期刊名称】《航空计算技术》【年(卷),期】2017(047)001【摘要】The software code correct programming ,loading and operating is the foundation of multicore dsp application.The paper gives analysis to the DSP′s BootLoader and the code loading process.Taking the multicore DSP TMS320C6678 as an example,the article introduces the configuration management mode and processing flow of the multicore dsp,and detailed describes the EMIF16 boot implement ways used Nor FLASH.With these ways can be achieved correct and reliably software operating.%程序代码正确的固化加载运行是多核DSP应用的前提和基础.简要介绍了DSP的加载器和加载过程,阐述了多核处理器件的加载配置管理方法.以TI公司的多核DSPTMS320C6678为例,介绍了多核DSP的加载模式和流程,详细阐述了EMIF16的Nor FLASH加载实现方法,可以实现多核DSP软件的正确、可靠加载运行.【总页数】5页(P107-111)【作者】邓豹【作者单位】中航工业西安航空计算技术研究所,陕西西安 710068【正文语种】中文【中图分类】TP368.1【相关文献】1.基于TMS320C6678的多核程序加载研究与实现 [J], 李飞平;卿粼波;滕奇志;舒君;何小海2.TMS320C6678多核DSP的核间通信方法 [J], 吴灏;肖吉阳;范红旗;付强3.基于TMS320C6678的多核DSP加载模式研究 [J], 张乐年;关榆君4.基于TMS320C6678的多核DSP上电加载技术 [J], 刘章文;刘七华;谢川林;袁学文5.TMS320C6678多级程序加载模式的实现 [J], 杨舟;吉沛琦因版权原因,仅展示原文概要,查看原文内容请购买。
个人对DSP BOOT启动流程的一点观点
1、系统复位2、复位完成,跳转复位中断,开始执行复位中断指向的地址,该地址是DSP内部原厂固化初始BOOT 代码,无法修改。
3、初始BOOT代码检查BOOTMODE相关的I/O输入电平,从而得知DSP BOOTLOAD方式,比如SPI,I2C,EMIF,UHPI等。
并初始化相应的接口,并从该接口读取BOOTLOAD程序代码到DSP 的程序空间,完成读取后,程序指针跳转到BOOTLOAD程序代码起始位置。
DSP内部是没有ROM 来存放代码的,所以必须使用外部扩展的ROM,现在常用的是NOR FLASH(EEPROM也有用,但因为EEPROM容量太小,无法存放所有的程序代码,所以现在已经很少在嵌入式平台使用)4、开始执行BOOTLOAD程序,因为初始BOOT并不会初始化和BOOTMODE无关的设备,所以读取的BOOTLOAD程序代码一般都很小,这个取决于DSP的内部SRAM空间大小。
而用户程序一般都很少有这么小的。
当然小规模的代码如果够小,DSP本身的SARM就足够的话,完全可以不用另外编写BOOTLOAD程序,直接让初始BOOT程序读入SRAM中执行即可。
如果用户程序代码规模超过SARM的程序空间大小,就必须使用BOOTLOAD程序进行二次BOOT。
在BOOTLOAD程序里要做的事情有2点,1是初始化外部扩展RAM空间的接口,比如SDRAM,DDR控制器EMIF等,然后从外部FLASH空间读取程序代码到外部扩展RAM空间。
2是初始化各种外设。
现在也有很多二次BOOT是通过以太网接口来获取用户程序代码,嵌入式领域的无盘工作站就是这类应用。
现在的BOOTLOAD功能已经越来越丰富。
5、完成二次BOOT后,程序指针跳转到用户程序代码的起始地址,开始执行。
以上就是我理解的DSP 启动流程,因为各种DSP千变万化,所以在这里就抽象的说下DSP的启动过程,不涉及跳转地址等具体参数了。
另外再说下,其实DSP的BOOT启动过程也是大多数ARM的BOOT启动过程,原理上都是差不多的。
DSP的BootLoader程序的实现
多核DSP的BootLoader程序的实现DSP芯片的BootLoader程序用于实现用户程序上电自举,它有多种工作方式。
上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在DSP核内的高速运行。
多核DSP是指由多个独立的DSP子核集成的DSP芯片,且所有DSP子核共享一套片外总线。
由于每个DSP子核内部都有其自身独立的掩模BootLoader程序,当DSP芯片上电或复位时 所有DSP子核都将自行启动自身独立的BootLoader 程序,实现用户程序的上电自举。
所以,多核DSP的BootLoader程序的实现方法与单核DSP的BootLoader程序的实现方法有较大的差异。
为此,本文立足于实践,以双核DSP-TMS320VC5421的16位并行EPROM的BootLoader程序的工作方式为例,详细阐述了多核DSP的BootLoader程序的实现方法。
BootLoader程序简介BootLoader程序的四种工作方式一般的DSP都采用常见的BootLoader程序工作方式来实现用户程序的上电自举:1.处理器通信口(主端口)HPI方式--通过DSP芯片与PC机或DSP芯片与其它DSP芯片之间的主机通信端口实现上电自举;2.8位或16位并行EPROM方式--通过DSP内核的DMA通道实现上电自举;3.8位或16位并行I/O方式--通过DSP芯片的片外并行I/O接口实现上电自举;4.8位或16位串行口方式--通过DSP芯片的串行端口实现上电自举。
在以上四种工作方式中,最常用的是16位并行EPROM方式。
即在DSP芯片上电或复位时,通过DMA通道将存储在核外EPROM中的程序以16位形式存储到核内的程序空间中。
16位并行EPROM方式的Boot表各种方式的BootLoader程序都有其固定格式的Boot表,用来实现用户程序的上电自举。
16位并行EPROM方式的Boot表如表1所示:表项1:存放BootLoader程序工作方式控制字,用于DSP芯片上电或复位时确认该Boot表是否为16位并行EPROM工作方式的Boot表。
基于TI多核DSP TMS320C6678的BOOT方式研究
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 中断通知从核工作。
BOOTLOAD
在 CCS开发环境下 , PC机通过不同类型的JTAG电缆与用户目标系统中的DSP通信 , 帮助用户完成调试工作。
当用户在 CCS环境下完成开发任务 , 编写完成用户软件之后 , 需要脱离依赖 PC机的 CCS环境 , 并要求目标系统上电后可自行启动并执行用户软件代码 , 这就需要用到 Boot Loader技术。
DSP系统的 Boot Loader是指在系统上电时 ,DSP将一段存储在外部的非易失性存储器中的代码搬移到内部的高速存储单元中去执行。
这样既利用了外部存储单元扩展 DSP本身有限的ROM资源 ,又充分发挥了DSP内部资源效能。
同时 , BootLoader也指由 TI在生产芯片时预先烧制在DSP片上ROM中,完成该功能的一段代码名称。
C54X系列的DSP芯片内没有可编辑的程序存储器,片上的程序存储器是ROM 存储器。
如果要把系统应用程序固化在片内的ROM存储器内,就需要将程序代码交给TI公司,由TI公司写入DSP芯片的ROM区内。
这对于样试阶段或小批量生产是无法做到的。
此外,大部分C54X系列的DSP芯片片内ROM区都很小,很多系统的应用程序无法全部写入片内的ROM区。
因此在设计嵌入式系统时,通常会考虑使用片外程序存储器。
DSP芯片的 Bootloader 程序用于上电时将用户程序从外部非易失性、慢速存储器或外部控制器中装载到片内高速 RAM 中,保证用户程序在 DSP 内部高速运行,这个过程就是自举加载(Bootloader)或者叫做二次引导。
C5402芯片配置有4K×16bit片内屏蔽式的ROM(F000h-FFFFh)。
在4K ROM 资源里,包含了Bootloader程序。
这个Bootloader程序在系统通电后能自动将存放在外部载体的用户代码引导到程序存储器的任何空间或片内RAM。
如果芯片的MP/MC脚在复位时为低电位,指令从片内ROM的FF80h地址开始执行,在FF80h 地址后有一个跳转指令自动转入到Bootloader程序,由Bootloader程序进行引导装载用户程序。
基于TMS320C6678的多核DSP加载模式研究
( 1 . G r a d u a t e S c h o o l , He b e i U n i t e d U n i v e r s i t y , T a n g s h a n 0 6 3 0 0 0 , C h i n a ; 2 . I 伽 m C o l l e g e , T a n g s h a n 0 6 3 0 0 9 , C h i n a )
Ab s t r a c t :T e x a s I n s t r u me n t s ( TI )l a u n c h e d e i g h t n u c l e a r TM¥ 3 2 0 C 6 6 7 8 DS P c h i p w h i c h i S b a s e d o n t h e K e y s t o n e
a r c h i t e c t u r e o f h i g h p e fo r r ma n c e DS P d e v i c e s ,a r e w i d e l y u s e d o n t h e ma r k e t o f t h e C 6 4 5 5 h i g h - e n d p r o c e s s i n g p l a t f o m r t o
4期 第2 1卷 第 2
V0 1 . 21 No . 2 4
电 子 设 计 工 程
El e c t r o n i c De s i g n En g i n e e r i n g
2 0 1 3年 l 2月
De e .2 01 3
基 T MS 3 2 0 C 6 6 7 8呐 多 核D S P加载模 式研 究
多核DSP芯片C6678引导过程的研究与实现
第38卷第11期现代雷达V d.38N o.l l 2016 年11 月M odem R adar N ov. 2016.信考处理.D O I:10.16592/ j.c n k i.1004-7859.2016.11.008多核DSP芯片C6678引导过程的研究与实现吴於文(南京电子技术研究所,南京210039)摘要:多核数字信号处理(D S P)芯片给信号处理能力带来了质的提升,T I公司推出的T M S320C6678是一款具有代表性的 高性能多核D S P芯片。
引导技术是D S P应用的关键技术之一。
C6678有着丰富的外设接口,可选择多种引导设备,同时 由于多核的存在,引导过程变得更为复杂。
文中对C6678的引导方式进行了透彻的研究,介绍了C6678多核引导过程的 具体实现步骤,对C6678引导程序的开发提供了实际的方法和经验。
关键词:多核D S P芯片;T M S320C6678芯片;多核引导中图分类号:T N911.7文献标志码:A文章编号= 1004-7859(2016)11-0035-05Study and Realization of Boot Procedure of Multi-core DSP C6678WU Qinwen(Nanjing Research Institute of Electronics Technology, Nanjing 210039 ,China) Abstract:M u lti-c o re d rg ita l signal processing (D S P) brought a q u a lity im provem ent to the signal processing ca p a b ilitie s. The TM S320C6678 DSP presented b y Texas Instrum ents (T I)is a representative high-perform ance m u lti-c o re DSP. Boot tech nique is one o f the key techniques o f the D S P^a p p lica tio n. C6678 has various p e rip h e ra l interfaces and can select d iffe re n t boot devices.Owing to th is and the existence o f m u ltip le co re s, it^s boot procedure is considerable com plex. T h is paper gave a deep research on boot modes o f C6678, discussed the spe cific boot steps o f C6678^s eigh t cores, p ro vid in g p ra ctica l methods and experience to the developing o f C6678 boot programs.Key words:M u lti-c o re D SP; TM S320C6678 ; m u lti-c o re boot〇引言多核数字信号处理(DSP)芯片把多个处理内核集 成在一个芯片上,相比之前的单核DSP在处理能力上有 着质的飞跃[1],因此,在通信、航空航天、雷达、工业探测 等各种信号处理领域[M],越来越多地使用多核DSP作 为主要处理部件[4_6]。
基于TMS320C6678的多核DSP上电加载技术
基于TMS320C6678的多核DSP上电加载技术作者:刘章文刘七华谢川林袁学文来源:《现代电子技术》2013年第18期摘要:对于多核DSP应用技术来说,BootLoad技术是一个关键点,也是应用难点之一。
针对8核高性能DSP——TMS320C6678的根配置问题进行了研究,包括上电加载过程,单核和多核的emif NOR⁃FLASH存储器的映像文件的产生,二级加载器的编写和FLASH编程器的构成等。
其中,关键是在多核映像文件中,将辅助核的入口地址作为特殊数据来处理,使其他核触发更容易,这也是其他文献未涉及的。
该项技术已经用在某图像处理系统中。
关键词:多核DSP; TMS320C6678; BootLoad;映像文件中图分类号: TN964⁃34 文献标识码: A 文章编号: 1004⁃373X(2013)18⁃0111⁃040 引言在视频检测、医疗影像及红外图像快速跟瞄系统应用中,越来越复杂的二维、三维甚至四维的图像处理,需要并行化的处理系统,并能够运行复杂的算法[1⁃8]。
要实现这些复杂的系统,高端FPGA+高性能DSP是目前普遍采用的方案[5⁃6,8],而单个DSP的性能已发展至极限,所以解决复杂的并行算法,多核DSP是现在发展的全新方向,其中多核DSP的根加载技术是其难点之一[7,9⁃10]。
TI公司推出的DSP芯片TMS320C6678(C6678)具有8个内核的高性能DSP,每个内核工作频率均达1 GHz。
其支持的Boot模式有SPI、I2C、EMAC、SRIO和并口Emif16NOR⁃FLASH。
其中Emif16 NOR⁃FLASH模式是不用上位机参与、比较简单、独立成系统的一种,大多独立DSP系统采用该方式。
关于多核的加载,也有相关的文献报道[9],而文献[9]是DSP+ARM的双核。
网上也能搜索到关于C6472和C6678零星一些加载资料,都是借助于第三方转换工具,太过于笼统。
下面是针对C6678的并口Emif16 NOR⁃FLASH的上电加载作详细的探讨。
芯片中的bootload作用
主题:芯片中的bootload作用内容:1. 什么是bootloadBootload是指启动加载程序,是芯片启动时自动执行的一段程序,用于初始化系统环境,加载操作系统,确保系统正常启动。
在芯片中,bootload通常存储在非易失性存储器中,如闪存或EEPROM中,并由芯片内部的引导加载器调用执行。
2. bootload的功能- 初始化系统环境:在系统上电后,bootload会先对系统进行初始化,包括初始化系统时钟、外设接口、存储器等,以确保系统能够正常工作。
- 加载操作系统:在系统初始化完成后,bootload会加载操作系统的核心代码,将控制权转交给操作系统,并使其开始执行。
- 硬件自检:一些bootload还会进行硬件自检,检测系统中的硬件设备是否正常,确保系统的稳定性和可靠性。
- 更新固件:一些芯片的bootload还支持固件更新功能,可以通过bootload加载新的固件,实现对芯片功能和性能的升级。
3. bootload在嵌入式系统中的重要性在嵌入式系统中,bootload起着至关重要的作用。
由于嵌入式系统通常需要长时间稳定运行,对系统的启动时间、可靠性和稳定性要求较高,而bootload的功能正好能够满足这些要求。
另外,嵌入式设备通常需要远程更新固件,而bootload的固件更新功能可以方便、快捷地实现这一需求。
4. bootload的设计原则- 简洁高效:bootload的程序体积要尽量小,执行效率要尽可能高,以确保系统启动时间短,提高系统响应速度。
- 可靠性:bootload必须要具有很高的可靠性和稳定性,能够在各种环境条件下正常启动系统,不受外部干扰影响。
- 安全性:bootload的固件更新功能要能够确保固件的安全性和一致性,防止因固件更新导致系统出现故障或安全漏洞。
5. bootload的发展趋势随着物联网、人工智能等技术的发展,对嵌入式系统的要求也越来越高,bootload也面临着新的挑战。
用DSP软件编程实现的引导装载系统分析
用DSP软件编程实现的引导装载系统分析引导装载系统是计算机操作系统的一个重要组成部分,主要用于在计算机启动时将操作系统加载到内存中,并将控制权转交给操作系统。
在计算机系统的启动过程中,引导装载系统扮演着重要的角色,它需要能够准确地识别硬件环境,并完成操作系统的加载和初始化工作。
近年来,随着数字信号处理(DSP)技术的发展,越来越多的引导装载系统开始采用DSP软件进行编程,以实现更高效、更灵活的启动过程。
本文将对用DSP软件编程实现的引导装载系统进行分析和探讨,以期为相关研究和应用提供参考。
一、引导装载系统的功能和原理引导装载系统的主要功能包括识别硬件环境、加载操作系统、初始化系统环境和传递控制权等。
在计算机启动时,引导装载程序会首先执行,它需要能够准确地识别并初始化计算机硬件环境,包括内存、外设和系统总线等。
接着,引导装载系统将会从预定义的位置加载操作系统的核心部分到内存中,并执行必要的初始化过程。
引导装载系统会将控制权转交给操作系统,使其能够接管计算机系统的运行。
在实现上,引导装载系统通常由两部分组成:引导记录(bootloader)和操作系统内核。
引导记录位于硬盘或其他存储介质的特定位置,它是计算机启动过程中的第一个可执行代码,主要负责硬件环境的初始化和操作系统的加载。
而操作系统内核则是操作系统的核心部分,它负责管理计算机系统的资源、调度进程和提供系统调用等功能。
二、DSP软件编程在引导装载系统中的应用传统的引导装载系统通常由汇编语言或C语言编写,并直接运行于计算机的CPU上。
而随着DSP软件编程技术的发展,越来越多的引导装载系统开始采用DSP软件进行编程,以实现更高效、更灵活的启动过程。
DSP软件编程主要基于DSP处理器的指令集和硬件资源,可以更好地适应计算机系统的硬件环境和特性,提高引导装载系统的性能和可靠性。
在使用DSP软件编程实现的引导装载系统中,通常会涉及到以下几个方面的技术:首先是DSP编程技术,包括DSP处理器的指令集、内存管理、中断处理和外设控制等;其次是系统初始化和引导过程的设计,需要能够准确地识别和初始化计算机硬件环境,并完成操作系统的加载和初始化工作;最后是系统调度和控制,引导装载系统需要能够准确地传递控制权给操作系统,并保证系统能够正常运行。
用DSP软件编程实现的引导装载系统分析
用DSP软件编程实现的引导装载系统分析引导装载系统(Bootloader)是计算机系统启动过程中的一个重要组成部分,负责加载操作系统或其他应用程序到内存,并进行初始化和启动。
DSP(Digital Signal Processor,数字信号处理器)是专门用于高速数值计算和信号处理的微处理器。
本文将介绍使用DSP软件编程实现的引导装载系统分析。
引导装载系统主要由两个部分组成:引导程序和加载程序。
引导程序是计算机系统启动时最先执行的程序,其大小通常较小,位于系统的ROM或Flash存储器中,并负责初始化硬件设备和加载加载程序。
加载程序的主要功能是将操作系统或其他应用程序从外部存储器(如硬盘、光盘或网络)加载到内存中,并跳转到相应程序的入口点。
1. 硬件初始化:引导程序需要初始化DSP芯片及其外设,包括中断控制器、时钟控制器、UART通信接口等。
这些初始化操作通常通过特定的寄存器操作完成。
2. 外部存储器访问:加载程序需要能够从外部存储器读取数据。
在DSP上,可以通过SPI(Serial Peripheral Interface)或其他通信接口与外部存储器进行数据交互。
通过编程实现这些接口的读取和写入操作,就可以实现外部存储器的访问。
3. 文件系统支持:加载程序需要支持特定的文件系统格式,如FAT32或NTFS等。
通过解析文件系统的目录结构和文件分配表,加载程序可以找到操作系统或应用程序的存储位置,并读取相应数据。
4. 加载和运行应用程序:加载程序需要将操作系统或应用程序的可执行文件从外部存储器加载到内存中。
具体操作包括读取文件数据、解析文件头信息、分配内存空间,并将文件数据拷贝到相应内存地址。
5. 跳转至应用程序入口点:加载程序将应用程序加载到内存后,需要跳转到应用程序的入口点,使其开始执行。
通过以上步骤,可以实现DSP软件编程中的引导装载系统。
在实际应用中,还需要考虑异常处理、错误检测和恢复等方面的设计。
DSP的Bootloader装载研究
普通 的 DS P程序 是用户 根据需 要 开发 的 , 涉及 操 作 系统 , 当设计 复 杂 程序 , 要 多个 任 务进 程 时 , 不 但 需
操作 系统 的支 持就显 得非 常必 要. c os I是 一款嵌 入 式 多任 务 实 时操 作 系统 , 源 码公 开 、 移植 、 固 u / —I 它 可 可 化、 可裁剪 , 为嵌入 式 系统 应用 设计 , 专 其代 码量 小 , 植方 便 , 常适 于 中小 型 系统 的开发[ . 移 非 1 ] 本文 以 T 3 0 5 0 S MS 2 VC 4 2D P芯 片为核 心 , S T 9 4 0Fa h芯 片为 BOo 以 S 3 VF 0 ls T存 储器 的硬 件平 台 , 用 二次 下载法 设计 实现 了普通 用 户程 序 及 u / —I c os I内核 的 B ola e 装 载. 验证 明 , 方 法 简单 实 用 , o t dr o 实 该 可
内核 装 载 的 方法 . 方 法 简 单 灵 活 , 靠 性 强 , TMS 2 C 4 系列 的其 他 芯 片 同样 适 用. 该 可 对 30 5X
关 键 词 :D P B o l d r S ; o t a e ;二 次 下 载 ; C O - o u / S Ⅱ内核 装 载
中 图 分 类 号 :TN u . 5 9 7 文 献 标 志 码 :A 文 章 编 号 :1 0 - 7 5 2 1 ) 2 0 7 -0 0 1 8 3 (0 1 0 - 1 7 5
一
Ⅱ7 D8 2 T )3 3 O SH 1 U
I
DD 室 V D
fJ ̄ r-仿 I /B T { — Nhomakorabea真 -  ̄ A: — 测 } S丹 G1 - 试 T 1 / R D s
多核DSP Boot load代码加载方法研究
多核DSP Boot load代码加载方法研究TCl6488支持的SRIO协议1.2版本link rate速率为1x, 2x,4x。
即1.25G,2.5G,3.125G bit/s.支持的拓扑结构有星型、环型等。
SRIO协议规定有两种传输方式:Direct IO与Message方式.当DSP 处于SRIO boot load模式时,利用外部引脚举行配置其NODE ID,按照配置的不同,采纳Direct IO方式对不同NODE ID的DSP内存挺直举行读写,将代码挺直写入到DSP内存.类似于外部主设备将DSP内存视为自身内存举行写操作,以此完成boot load.当代码加载完毕时发送Doorbell中断到不同NODE ID的DSP主核(即核0).DSP立刻从boot 模式跳转到正常模式。
执行加载的代码。
2 现有计划分析代码加载主要依赖DSP芯片的各个接口实现.TI公司C64x系列主要接口有12C、HPI、EMIF等接口,C64x+系列主要接口有12C、EMAC、SRIO 等。
I2C传输速率为lOkbps到400kbps,外接EEPROM,常用于固化代码的boot load,不利于升级.HPI接口有效带宽往往最多只能达到20~30Mbps.操作较复杂,且不易组网.在多核DSP系列里已经去掉HPI接口.EMAC接口支持10M/100M/1000Mbps三种速率,支持总线形、星形拓扑组网结构.SRIO接口支持1.25G12.5G/3.125G bps三种速率,支持星形、环形、U形菊花链等拓扑结构.利用EMAC与SRIO结合的方式可以实现基于IP、可远程控制的局部传输网络,组网灵便可控.3 原理框图利用DSP EMAC接口支持IPV4的网络特性,以及SRIO接口使DSP间可以形成的U形菊花链或星形拓扑结构,可以灵便组网。
原理框图I所示。
其中基带处理板与主控板之间由背板衔接,主控板通过网线与交第1页共2页。
多核DSPBootload代码加载方法研究
多核DSP Boot load代码加载方法研究刘玉刚, 雷勇(四川大学 电气信息学院 成都 610065)摘要:通过分析目前第三代移动通信WCDMA协议不断更新升级的现状,提出了一种基于IP的软升级多内核DSP代码的方法,以在硬件平台相同的情况下快速、方便的实现WCDMA协议版本软升级.并以德州仪器公司三内核DSP TCI6488为例,实现了EMAC(以太网口)及SRIO(串行快速输入输出口)混合加载方式.该方法为自动、远程可控的网络式代码加载方法.关键词: 多核数字信号处理器 ; 自举加载; 第三代移动通信;以太网接口;串行快速输入输出口中图分类号:TN911 文献标识码:AMethods of Boot load research on Multi-core DSPLIU Yugang , LEI Yong(Department of Electrical Engineering and Information, Sichuan University, Chengdu 610065, China) Abstract: Through analyzing the situation of the constantly updating 3G WCDMA protocol, this paper provides a method based on IP protocol which can update DSP software flexibly, in which way the WCDMA protocol can be updated without altering hardware. And taking TI Company’s 3-core DSP chip named TCI6488 for an example; we carried out EMAC mixed with SRIO boot load method on the WCDMA base band processing board. This method based on network is completely controllable and automatic.Key words: Multi-core DSP, Boot load, 3G, EMAC,SRIO0 引言无线通信产业不断推进创新,像WCDMA、WiMAX、MIMO和4G都需要增强的性能.性能增强,提供更大通信带宽的同时意味着越来越大的数据流量.多内核DSP强大的处理能力,兼具FPGA的扩展特性和阵列优点以及DSP的相似性和效率[1],提供了一种高效、易于开发的解决方案,倍受设备商的青睐.而无线协议标准从2G的GSM到3G的WCDMA,再到4G的LTE,其协议标准的不断更新,以及运营商、设备商对低硬件成本的要求,需要实现一种平滑的协议标准软升级方案,即不改变硬件平台就可实现协议标准的升级.TI公司推出的3内核DSP 芯片TCI6488以其强大的数据处理能力,同时支持多种代码加载方式,在满足数据处理要求的同时,支持网络式代码加载,正迎合了这种软升级需求.1 协议介绍TI公司推出的DSP芯片TCI6487/8(Faraday)具有3个内核,每个内核工作频率均为1GHz.其支持的boot load模式有I2C EEPROM、EMAC(以太网口)、SRIO(Serial Rapid IO,即串行快速IO)三种模式[3].其中EMAC支持10M/100M/1000M bit/s传输速率,SRIO支持1.25G/2.5G/3.125G bit/s传输速率.以太网口EMAC支持IPV4,因此可以实现远程、快速的加载代码.SRIO支持内存代码的直接读写,外部主机可以将DSP内存视为本地内存进行直接的读写.SRIO boot load模式时,外部主机直接写DSP本地内存.其3.125G bit/s的线上速率,可以达到2.5G bit/s的传输带宽,效率高达80%,加载代码速度极快.采用EMAC和SRIO相结合的方式可以实现一点到多点的快速代码加载.1.1 EMAC boot load 传输协议以太网口EMAC支持的拓扑结构有星型、总线型、树型、混合型.其boot load帧格式分为以下几个部分分别讨论:DIX Ethernet、IPV4、Boot Table Frame Header、Boot Table Frame Payload,如表1所示.(1) DIX Ethernet:14 bytes该部分占用14 bytes,分别为6 bytes的DMAC,目的MAC地址、6 bytes的SMAC,源MAC地址和2 bytes的类型参数Type,该部分固定为0x0080.目的MAC地址(DMAC)为DSP芯片自身的MAC地址.源MAC地址(SMAC)为主机MAC地址.(2) IPV4支持的IP协议类型为IPV4,可选长度为20 bytes或84 bytes.本文中采用20 bytes.0x45 --- Version 4 + header Length0x00 --- TOS0x0000 --- All Length, 要计算填入.0x0000 --- ID0x0000 --- flag + segment offset0x10 --- TTL0x11 --- UDP Protocol0x0000 --- header checksum(0不作校验)0x00000000 --- IP source address(任意值)0x00000000 --- IP destination address (任意值)(3)UDP:8 bytes0x0000 --- source port No.0x0009 --- destination port No.0x0000 --- Udp Length, 要计算填入.0x0000 --- Udp checksum(0不作校验)Ethernet Header,one of the following types :DIX Ethernet(DMAC,SMAC,type:14 bytes)802.3w/SNAP/LLC(DMAC,SMAC,len,LLC,SNAP ::22 bytes)DIX Ethernet w/VLAN(18 bytes)802.3 w/VLAN and SNAP/LLC(26 bytes)IPV4(20 to 84 bytes)UDP(8 bytes)Boot Table Frame Header(4 bytes)Boot Table Frame Payload(min 4 bytes,max limited by max Ethernet frame – previous headers)表1、以太网口EMAC boot load 帧格式1.2 SRIO协议TCI6488支持的SRIO协议1.2版本link rate速率为1x,2x,4x,即1.25G,2.5G,3.125G bit/s.支持的拓扑结构有星型、环型等.SRIO协议规定有两种传输方式:Direct IO与Message方式.当DSP处于SRIO boot load 模式时,利用外部引脚进行配置其NODE ID,根据配置的不同,采用Direct IO方式对不同NODE ID 的DSP内存直接进行读写,将代码直接写入到DSP内存.类似于外部主设备将DSP 内存视为自身内存进行写操作,以此完成boot load.当代码加载完毕时发送Doorbell中断到不同NODE ID的DSP主核(即核0).DSP立即从boot模式跳转到正常模式,执行加载的代码.2 现有方案分析代码加载主要依靠DSP 芯片的各个接口实现.TI 公司C64x 系列主要接口有I2C 、HPI 、EMIF 等接口,C64x+系列主要接口有I2C 、EMAC 、SRIO 等.I2C 传输速率为10kbps 到400kbps ,外接EEPROM ,常用于固化代码的boot load ,不利于升级.HPI 接口有效带宽往往最多只能达到20—30Mbps ,操作较复杂,且不易组网.在多核DSP 系列里已经去掉HPI 接口.EMAC 接口支持10M/100M/1000Mbps 三种速率,支持总线形、星形拓扑组网结构. SRIO 接口支持1.25G/2.5G/3.125G bps 三种速率,支持星形、环形、U 形菊花链等拓扑结构.利用EMAC 与SRIO 结合的方式可以实现基于IP 、可远程控制的局部传输网络,组网灵活可控.3 原理框图利用DSP EMAC 接口支持IPV4 的网络特性,以及SRIO 接口使DSP 间可以形成的U 形菊花链或星形拓扑结构,可以灵活组网。
多核DSP Boot load代码加载方法研究
多核DSP Boot load代码加载方法研究
刘玉刚;雷勇
【期刊名称】《微计算机信息》
【年(卷),期】2009(025)023
【摘要】通过分析目前第三代移动通信WCDMA协议不断更新升级的现状,提出
了一种基于IP的软升级多内核DSP代码的方法,以在硬件平台相同的情况下快速、方便的实现WCDMA协议版本软升级.并以德州仪器公司三内核DSP TCt6488为例,实现了EMAC(以太网口)及SRIO(串行快速输入输出口)混合加栽方式.该方法为自动、远程可控的网络式代码加栽方法.
【总页数】3页(P110-111,109)
【作者】刘玉刚;雷勇
【作者单位】610065,成都,四川大学,电气信息学院;610065,成都,四川大学,电气信息学院
【正文语种】中文
【中图分类】TN911
【相关文献】
1.多核DSP的BootLoader程序的实现 [J], 刘慧;林海虹;刘智
2.基于TI多核DSP TMS320C6678的BOOT方式研究 [J], 杨磊;张莹
3.TMS320C6701代码的片内片外混合加载方法研究 [J], 凌晓华;王超;刘向;刘俊
杰
4.基于TI多核DSP TMS320C6678的BOOT方式研究 [J], 杨磊[1];张莹[1]
5.面向多核DSP的可靠二级Boot方法研究 [J], 李浩;赵晨希;关冰
因版权原因,仅展示原文概要,查看原文内容请购买。
多核DSP的BootLoader程序的实现
多核DSP的BootLoader程序的实现
刘慧;林海虹;刘智
【期刊名称】《电子技术应用》
【年(卷),期】2003(29)6
【摘要】TI的大多数DSP芯片.内部都有片内掩模的BootLoader程序,用于将用户程序通过片外EPROM、串口或I/O口装载到片内高速RAM中,以保证用户程序能够高速运行.介绍了BootLoader程序的多种工作方式,并以双核DSP
TMS320VC5421为例详细阐述了多核DSP的16位并行E-PROM的BootLoader程序的实现.
【总页数】4页(P72-75)
【作者】刘慧;林海虹;刘智
【作者单位】湖北省武汉大学-美国德州仪器联合实验室,430079;湖北省武汉大学-美国德州仪器联合实验室,430079;湖北省武汉大学-美国德州仪器联合实验
室,430079
【正文语种】中文
【中图分类】TP3
【相关文献】
1.视频目标检测跟踪程序在多核DSP上的并行实现 [J], 陈钰;卿粼波;杨龙;何小海;
2.视频目标检测跟踪程序在多核DSP上的并行实现 [J], 陈钰;卿粼波;杨龙;何小海
3.Volcano ISO Bootloader助力BCM控制器安全高效实现程序刷新 [J], 陆叶
4.BootLoader程序在MCF51AC系列单片机上的实现 [J], 刘林;张晓丹;张作峰
2530芯片中BootLoader程序的设计与实现 [J], 樊星男;
因版权原因,仅展示原文概要,查看原文内容请购买。
多核DSP的BootLoader程序的实现
多核DSP的BootLoader程序的实现DSP 芯片的BootLoader 程序用于实现用户程序上电自举,它有多种工作方式。
上电自举就是将用户存放在片外的非易失性、慢速的存储器中的程序装载到片内易失的、高速的存储空间中,以保证用户程序在DSP 核内的高速运行。
多核DSP 是指由多个独立的DSP 子核集成的DSP 芯片,且所有DSP 子核共享一套片外总线。
由于每个DSP 子核内部都有其自身独立的掩模BootLoader 程序,当DSP 芯片上电或复位时,所有DSP 子核都将自行启动自身独立的BootLoader 程序,实现用户程序的上电自举。
所以,多核DSP 的BootLoader 程序的实现方法与单核DSP 的BootLoader 程序的实现方法有较大的差异。
为此,本文立足于实践,以双核DSP—TMS320VC5421 的16 位并行EPROM 的BootLoader 程序的工作方式为例,详细阐述了多核DSP 的BootLoader 程序的实现方法。
1 BootLoader 程序简介1.1 BootLoader 程序的四种工作方式一般的DSP 都采用常见的BootLoader 程序工作方式来实现用户程序的上电自举:·处理器通信口(主端口)HPI 方式——通过DSP 芯片与PC 机或DSP 芯片与其它DSP 芯片之间的主机通信端口实现上电自举;·8位或16 位并行EPROM 方式——通过DSP 内核的DMA 通道实现上电自举;·8位或16 位并行I/O 方式——通过DSP 芯片的片外并行I/O 接口实现上电自举;·8位或16 位串行口方式——通过DSP 芯片的串行端口实现上电自举。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
多核DSP Boot load代码加载方法研究
摘要:通过分析目前第三代移动通信WCDMA协议不断更新升级的现状,提出了一种基于IP 的软升级多内核DSP代码的方法,以在硬件平台相同的情况下快速、方便的实现W CDMA协议版本软升级.并以德州仪器公司三内核DSP TCI6488 为例,实现了EMAC(以太网口)及SRIO(串行快速输入输出口)混合加载方式.该方法为自动、远程可控的网络式代码加载方法.
引言
无线通信产业不断推进创新,像WCDMA、WiMAX、MIMO和4G都需要增强的性能.性能增强,提供更大通信带宽的同时意味着越来越大的数据流量.多内核DSP强大的处理能力,兼具FPGA的扩展特性和阵列优点以及DSP的相似性和效率。
提供了一种高效、易于开发的解决方案,倍受设备商的青睐.而无线协议标准从2G的GSM到3G的WCDMA,冉到4G的LTE,其协议标准的不断更新,以及运营商、设备商对低硬件成本的要求,需要实现一种平滑的协议标准软升级方案,即不改变硬件平台就可实现协议标准的升级.TI公司推出的3内核DSP芯片TCl6488以其强大的数据处理能力,同时支持多种代码加载方式,在满足数据处理要求的同时,支持网络式代码加载,正迎合了这种软升级需求。
1 协议介绍
TI公司推出的DSP芯片TCl648718 (Faraday)具有3个内核,每个内核工作频率均为1GHz.其支持的boot load模式有12C EEPROM、EMAC(以太网口)、SRIO(Serial Rapid IO.即串行快速10)i种模式[3].其中EMAC支持IOM/IOOM/I 000M bit/s传输速率,SRIO支持1.25G/2.5G/3.125G bit/s传输速率.以太网口EMAC支持IPV4,因此可以实现远程、快速的加载代码.SRIO支持内存代码的直接读写,外部主机可以将DSP内存视为本地内存进行直接的读写.SRIO boot load模式时,外部主机直接写DSP本地内存.其3.125G biffs的线上速率,可以达到2.5G bit/s的传输带宽,效率高达80%,加载代码速度极快.采用EMAC和SRIO相结合的方式可以实现一点到多点的快速代码加载。
1.1 EMAC boot load传输协议
以太网口EMAC支持的拓扑结构有星型、总线型、树型、混合型.其boot load帧格式分为以下几个部分分别讨论:DIX Ethernet、IPV4、Boot Table Frame. Header、Boot Table Frame. Payload。
如表1所示。
(1)DIX Ethenet:14 bytes
该部分占用14 bytes,分别为6 byte8的DMAC。
目的MAC地址、6 bytes的SMAC.源MAC地址和2 bytes 的类型参数Type.该部分固定为Ox0080.目的MAC地址(DMAC)为DSP芯片自身的MAC地址.源MAC地址(SMAC)为主机MAC地址。
(2)IPV4
支持的IP协议类型为IPV4,可选长度为20 bytes或84bytes.本文中采用20 bytes。
1.2 SRIO协议
TCl6488支持的SRIO协议1.2版本link rate速率为1x, 2x,4x。
即1.25G,2.5G,3.125G bit/s.支持的拓扑结构有星型、环型等。
SRIO协议规定有两种传输方式:Direct IO与Message方式.当DSP处于SRIO boot load模式时,利用外部引脚进行配置其NODE ID,根据配置的不同,采用Direct IO方式对不同NODE ID的DSP内存直接进行读写,将代码直接写入到DSP内存.类似于外部主设备将DSP内存视为自身内存进行写操作,以此完成boot load.当代码加载完毕时发送Doorbell中断到不同NODE ID的DSP主核(即核0).DSP立即从boot 模式跳转到正常模式。
执行加载的代码。
2 现有方案分析
代码加载主要依靠DSP芯片的各个接口实现.TI公司C64x系列主要接口有12C、HPI、EMIF等接口,C64x+系列主要接口有12C、EMAC、SRIO等。
I2C传输速率为lOkbps到400kbps,外接EEPROM,常用于固化代码的boot load,不利于升级.
HPI接口有效带宽往往最多只能达到20~30Mbps.操作较复杂,且不易组网.在多核DSP系列里已经去掉HPI接口.
EMAC接口支持10M/100M/1000Mbps三种速率,支持总线形、星形拓扑组网结构.
SRIO接口支持1.25G12.5G/3.125G bps三种速率,支持星形、环形、U形菊花链等拓扑结构.
利用EMAC与SRIO结合的方式可以实现基于IP、可远程控制的局部传输网络,组网灵活可控.
3 原理框图
利用DSP EMAC接口支持IPV4的网络特性,以及SRIO接口使DSP间可以形成的U形菊花链或星形拓扑结构,可以灵活组网。
原理框图如图I所示。
其中基带处理板与主控板之间由背板连接,主控板通过网线与交换机或路由器连接。
主控板与基带板之间组建局域网,由主控板分配IP。
远程PC可以通过主控板IP 访问到任何一块基带板的CPU。
对CPU进行操作,可以对任意一块基带板上的DSP进行代码加载。
4 加载流程
流程图如图2所示。
CPU加载DSPl的详细过程说明如下:基带板上电后主控板为背板上各槽位上的基带板的CPU分配IP地址.CPU通过EPLD加载自身程序,与主控板通过SGMII接口获取自身IP地址。
远程PC机telnet登录到CPU,下发命令加载CPU底层驱动程序;CPU底层驱动加载成功后,远程Pc下发加载DSP程序命令.以加载DSP1为例,详细说明加载DSP1的过程.CPU加载DSP1时首先给该DSP1复位获取DSP1的MAC地址,成功获取到DSP1的MAC地址后,利用ftp协议从远程PC上获取DSP1的代码,将DSP1的代码存到CPU的内存.此时DSP1一直处于boot load的EMAC加载模式.CPU将DSP1的代码根据EMAC 加载协议往DSP1发送代码.当发送完毕代码后,向DSP1发送一包长度为0的加载代码,作为结束包.DSP1根据EMAC加载协议,当收到该包后则从加载模式跳转为正常模式,PC指针从OxOOS00000开始运行.因此对于DSP而言,Ox00800000地址开始的一段空间,必须存放中断向量表.
否则程序将不会正确运行.此时DSP的3个内核同时从Ox00800000开始运行。
加载DSP2至加载DSPn时,首先由CPU根据ftp协议从PC端获取DSPk(k=2?3.n)的代码.根据EMAC 发送协议,将DSPk代码发送到DSP1.DSP1收到DSPk的代码后,根据SRIO加载协议加载DSPk的代码.DSPk 代码加载完毕后,DSP1向DSPk发送一个SRIO中断。
标志加载结束.DSPk响应该SRIO中断。
从SRIO加载模式跳转到正常模式,开始从Ox00800000地址开始运行.整个加载过程结束。
5 结束语
通过方案的比较,选择了易于组网,且可控、方便,利于软升级的方案.很方便的设计了TI TCI6488 3内核DSP的bootload程序.完成了DSP系统自举加载.按照该设计思路编制的boot load程序已在WCDMA 基站的基带处理板中得到应用,DSP系统能很好的复位及快速、方便的自举加载,更换版本容易,系统运行稳定可靠。