单位文秘网 2022-03-01 08:11:14 点击: 次
摘 要:数字信号处理器现在已从单核发展到多核,速度得到很大提升,启动方式也越来越多,C66x多核DSP相比于C6000 DSP在启动方面有很大的改变,多核启动加载是一个关键点和难点,其过程也相对复杂,针对于此文章基于评估板C6678EVM对TMS320C6678的8核SPI加载进行了分析和说明,包括ROM上电加载(RBL)、二次启动加载(IBL)、多核映象文件的生成、程序的烧写等。
关键词:数字信号处理器;多核启动;ROM上电加载;二次启动加载
0. 引言
TMS320C6678是基于Keystone架构、采用 8 个DSP 内核构建而成,并在单个器件上完美集成了 320 GMAC 与 160 GFLOP 定点及浮点性能,从而使用户不仅能整合多个 DSP 以缩小板级空间并降低成本,同时还能减少整体的功耗要求,在视频、音频、复杂的并行算法中得到广泛的运用。
以前典型的c6000的加载一般分为两种:其一当代码小于1Kbytes时,可从CE1存贮器映射空间拷贝代码运行;其二当代码大于1Kbytes时,先得写一个二次加载程序在CE1的前1Kbytes,再利用二次加载程序把应用代码搬到DSP的SRAM中运行。而C66x对启动进行了改进,多核启动加载方式有多种,比如SPI boot、EMIF16 boot、SRIO boot、Ethernet boot、PCI boot、Hyperlink boot等,这几种加载方式虽然过程不尽相同,但是目的是一样的,实质上就是将各核的代码按段分别写到各自核的L2 SRAM,再引导运行。
1. 上电加载
所谓上电加载,即是当DSP复位后,正常运行用户程序之前运行的一段小程序,叫做RBL(ROMBoot Loader),是 C6678出厂时固化在Rom中的,从0x20800000到0x20B1FFFF间一块128K地址空间的内部ROM程序,用户不能改变,在DSP复位或上电时实现将DSP代码从外部接口读入到内部高速ram中。
RBL程序运行时会根据DSP硬件管脚状态,判断用户采用的Boot模式以跳转到相应模式的二级加载程序(IBL), IBL是利用MinGW工具编译生成,再烧写到EEPROM的可执行代码。IBL根据C6678的8个核,采用基于KeyStone架构的中断控制器、核间通信寄存器以及合适的通信拓扑结构实现多核间的通信,以core0为主核,再按照核号(即DNUM)进行不同程序的分支。对于core0来说,它主要是读取DEVSTAT寄存器的加载模式(具体是由Bootmode pin[12:0]设置),并根据当前加载模式进行一些接口的初始化和PLL的配置,还要根据加载模式决定是否搬移数据。对于其它的7个核来说,它们主要是挂载IPC中断,然后进入IDLE状态等待core0发过来的中断。中断一到,就跳到入口地址开始执行程序。完整的加载流程见图1。
其中参数表在core0的最后0xd23f个字节长度地址段,RBL会初始化该地址段,用于保存ROM版本号、DDR配置表、启动参数表、Boot Magic地址等。参数表在代码中的定义见RBL源码文件Tiboot.h中boot_params_spi_s结构体。各核的Boot Magic地址被填写在各自L2 RAM 的最后一个word里,地址为0x1x87fffc(x为各核的代码号)。
2. 多核映像文件的产生及组成
2.1 映像文件的产生
映像文件就是用户要烧写到外部FLASH上的全部数据文件,由应用程序最终生成的Out文件,通过一条工具链转换生成。具体操作为:
a)在CCS5上建立各核的工程文件;
b)编译链接各核,得到各核的out文件;
c)建立工具链,形成批处理文件;
d)运行批处理文件,产生映像文件。
工具链是由CCS5自带工具hex6x.exe以及一些外部工具命令,如mergebtbl、AddDdrTable6678、b2i2c_ex等组成,外部工具都是由C语言编程而成。工具链流见图2。
2.2 映像文件的组成
各核的out文件经过工具链的转换变成了带参数的大端的映像文件,其由启动参数表、DDR配置信息、core0~core7编译后的代码段组成。btbl文件格式为:
?誗 32位程序入口地址;
?誗 32位段长度;
?誗 32位段地址;
?誗 段长度对应的有效数据;
?誗 0x00000000结束。
i2c文件被分成了不同的块,每块大小为128个字节,但文件中还没有加入启动参数,每个数据块格式为:
2个字节块长度+2个字节校验+124个字节有效数据
从i2c文件来看映像文件的组成,此文件格式见图3(只是其中开始一段):
图3中数据说明:
0x0080:0x0080为块长度128;
0xc7F6:后124个字节之和,并取反;
0x10800000:core0的入口地址;
0x10800000后到0x008022AA之前:DDR配置表;
0x008022AA:第二数据块开始;
0x0000c140: core0的text段的大小;
0x108000C0: core0的text段的起始地址
后面的数据以此类推。i2c文件和最后的dat文件比较,后者加入了参数表数据,每个字的高低位进行了交换,有效数据值没变化。
3. 程序的烧写
本文是将映像文件烧写到NOR Flash中,开发环境CCS5.2,烧写工具为安装文件writer目录下NOR中evmc6678l的工程,步骤如下:
?誗 把评估板的拨码开关拨到no boot方式,即:
SW6(on, on, on, on), SW5(on, on, on, on), SW4(on, on, on, on), SW3(on, on, on, off)(off:1,on:0)
?誗 拷贝映像dat文件到writer\nor\bin下,并与nor_writer_input.txt中的文件名保持一致;
?誗 打开烧写工程文件,编译链接,把out文件LOAD 到CCS中;
?誗 打开Memory视图,LOAD映像dat文件到0x80000000;
运行工程文件,直到" NOR programming completed successfully "字样出现。
4. 多核启动的实现
实验中编译了5个核的代码(core0~core4),代码中加入了串口调试信息,串口设置为:n,8,1,115200,各核运行时,core0~core3分别对应评估板上的一个led灯且闪烁3次,core4没有对应的led灯,只打印了一下信息。待映像文件烧写成功后,断电并把拨码开关拨到SPI boot方式:
SW6(on, on, on, off), SW5(on, off, on, on), SW4(on, on, on, on), SW3(off, off, on, off)(off:1,on:0)
评估板加电,以SPI启动方式加载程序,打开串口调试助手,打印信息如下:
Booting from core: 0 led_off_0 led_on_0
Booting from core: 0 led_off_0 led_on_0
Booting from core: 0 led_off_0
Booting from core: 1 led_off_1 led_on_0 led_on_1
Booting from core: 1 led_off_1 led_on_1
Booting from core: 1 led_off_1
Booting from core: 2 led_off_2 led_on_1 led_on_2
Booting from core: 2 led_off_2 led_on_2
Booting from core: 2 led_off_2
Booting from core: 3 led_off_3 led_on_2 led_on_3
Booting from core: 3 led_off_3 led_on_3
Booting from core: 3 led_off_3
Booting from core: 4
Booting from core: 4
Booting from core: 4 led_on_3
5. 结束语
本文只对SPI启动进行了探讨,对C66X系列DSP的上电加载及其要烧写的映像文件有了进一步的认识,并成功通过实验验证了SPI多核启动。但对其它启动方式很少涉及,应进一步研究其它启动方式,以便在不同的工程设计中得到应用。
参考文献
[1] SPRUGY5C,Texas Instruments Incorporated, ,keystone Architecture DSP bootloader. Texas Instruments,Dallas,Texas[S].2013.
[2] SPRS691D,Texas Instruments Incorporated, ,TMS320C6678 Data manual. Texas Instruments,Dallas,Texas[S].2013.
[3] 田黎育,何佩琨,朱梦宇.Texas Instruments Incorporated TMS32 0C6000 系列DSP 编程工具盒指南[M].北京:清华大学出版社.2006.
[4] 钟俊.TMS320C672x DSP引导程序设计[D].合肥.中国科技大学.2010
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-224-102291-1.html
上一篇:计算机控制技术要点的探讨
下一篇:电子封装的发展
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用