基于tms320c6678多核dsp上电加载技术

基于tms320c6678多核dsp上电加载技术

ID:6216063

大小:26.50 KB

页数:4页

时间:2018-01-07

基于tms320c6678多核dsp上电加载技术_第1页
基于tms320c6678多核dsp上电加载技术_第2页
基于tms320c6678多核dsp上电加载技术_第3页
基于tms320c6678多核dsp上电加载技术_第4页
资源描述:

《基于tms320c6678多核dsp上电加载技术》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于TMS320C6678多核DSP上电加载技术  摘要:对于多核DSP应用技术来说,BootLoad技术是一个关键点,也是应用难点之一。针对8核高性能DSP——TMS320C6678的根配置问题进行了研究,包括上电加载过程,单核和多核的emifNOR?FLASH存储器的映像文件的产生,二级加载器的编写和FLASH编程器的构成等。其中,关键是在多核映像文件中,将辅助核的入口地址作为特殊数据来处理,使其他核触发更容易,这也是其他文献未涉及的。该项技术已经用在某图像处理系统中。关键词:多核DSP;TMS320C6678;BootLoad;映像文件中图分类号:TN964?3

2、4文献标识码:A文章编号:1004?373X(2013)18?0111?040引言在视频检测、医疗影像及红外图像快速跟瞄系统应用中,越来越复杂的二维、三维甚至四维的图像处理,需要并行化的处理系统,并能够运行复杂的算法[1?8]。要实现这些复杂的系统,高端FPGA+高性能DSP是目前普遍采用的方案[5?6,8],而单个DSP的性能已发展至极限,所以解决复杂的并行算法,多核DSP是现在发展的全新方向,其中多核DSP的根加载技术是其难点之一[7,9?10]。4TI公司推出的DSP芯片TMS320C6678(C6678)具有8个内核的高性能DSP,每个内核工作频率均达1GHz

3、。其支持的Boot模式有SPI、I2C、EMAC、SRIO和并口Emif16NOR?FLASH。其中Emif16NOR?FLASH模式是不用上位机参与、比较简单、独立成系统的一种,大多独立DSP系统采用该方式。关于多核的加载,也有相关的文献报道[9],而文献[9]是DSP+ARM的双核。网上也能搜索到关于C6472和C6678零星一些加载资料,都是借助于第三方转换工具,太过于笼统。下面是针对C6678的并口Emif16NOR?FLASH的上电加载作详细的探讨。1C6678的上电加载过程所谓上电加载(上电自举),即是当DSP复位后,正常运行用户程序之前运行的一段小程序,

4、就像PC机的BIOS一样。多核加载同单核加载区别很大,不但要负责主核的加载而且还有其他核的加载与激活。C6678的Emif16NOR?FLASH可以直接执行程序(XIP)(这与C641x系列DSP不同),其上电加载过程示于图1。上电复位后,DSP首先运行固化在片上ROM位于地址0x20b00000的程序,称为片上Loader,片上Loader根据DSP硬件管脚状态,判断用户采用的Boot模式以跳转到相应模式的二级加载程序。如图1的Emif164NOR?FLASH模式中,运行片上Loader后,PC指针直接指向NOR?FLASH首地址0x70000000并开始执行FLA

5、SH上的二级Loader程序,二级Loader存储在FLASH开始地址0x70000000~0x70000400的范围内。从0x70000400开始保存应用程序的根表数据(即被烧烧写到FLASH中的应用程序的数据)。二级Loader的功能是将保存在FLASH中的Core0~Core7的根表数据搬移到DSP相应的地址段内,搬移完后,二级Loader程序PC指针跳到Core0的主程序入口地址_c_int00处,开始执行Core0的应用程序。在Core0的应用程序开始加有使其他核激活运行的代码(这也是有别于单核的特殊之处),至此整个多核加载就此完成。事实上,如果你的应用程序

6、很小,且运行速度要求不高,图1中的2、3和4过程都可以不要,只要把应用程序的原始代码数据烧写到FLASH从0x70000000开始的位置,上电正常运行即可(这在C641x上是不行的),如此DSP的许多高性能就体现不出来,且多核工程大多采用嵌入式sysbios工程,占用存储器比较大,所以正常的Boot过程必须采用图1所示的二级加载过程。从图1中看出,一个完整多核加载过程,开发者需要做的是二级加载器Loader的编写、FLASH中映像文件的产生、FLASH烧写器的编写,主核对各辅助核的触发代码的编写(被加载的应用程序不在本范围内)。2多核映像文件的组成与产生4映像文件就是

7、用户要烧写到外部FLASH上的全部数据文件,它是由二级加载器Loader的代码数据(在文件前部)和应用程序的根表(BootTable)数据(文件后部)的合成数据文件。单核和多核的二级Loader都一样,区别就是后部的根表数据。根表是应用程序的所有代码和数据以在片上占用的地址来分段存储的数据包,包的第一个4B是main()函数的入口地址_C_int00,后面由若干数据段组成,每个段前4B为该段数据的字节长度Byte_count_x(x为段序号),接着4BAddress_x为该段在片上的存储地址,后面是Byte_count_x个字节的具体数据Data_x

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。