当前位置:首页 > 电源 > 数字电源
[导读]介绍了利用双核DSP芯片TMS320VC5421的片内Bootloader程序实现并行引导的设计方案,给出了其软件及硬件的具体实现方法。

  摘要:介绍了利用双核DSP芯片TMS320VC5421的片内Bootloader程序实现并行引导的设计方案,给出了其软件及硬件的具体实现方法。

    关键词:TMS320VC5421;Bootloader;并行引导;Boot表;FLASH;CPLD

1 引言

TMS320VC5421?1、2?(以下简称VC5421)是TI公司推出的一款双核定点DSP芯片,它拥有两个DSP子系统,每个子系统都有一个DSP核,并且均有独立的数据和程序存储空间,可以进行两核之间的通信,并且两个子系统共享一套片外总线。此外,每个子系统各自拥有2k 16bit字的片内ROM,并存储有Bootloader程序。当DSP芯片上电或复位时,两个DSP核可分别启动自身独立的Bootloader程序,以实现用户程序的上电自举。

双核DSP自启动和单核DSP自启动的实现方法有较大的差别,这一点在DSP系统设计中需要特别注意。本文对双核DSP芯片VC5421的引导模式进行了深入的分析和研究,给出了使用16位并行引导模式进行双核DSP引导的实现方案。

2 TMS320VC5421的Boot模式

VC5421可提供16位并行引导、8位并行引导和串行EEPROM引导等三种Boot模式来实现用户程序的上电自举。

其中16位并行引导模式是通过片外存储器接口(EMIF)以DMA方式将代码从16-bit字宽的片外数据存储器搬移到片内程序存储空间;

8位并行引导模式则是通过片外存储器接口(EMIF)以DMA方式将代码从8-bit字宽的片外数据存储器搬移到片内的程序存储空间;

而串行EEPROM引导模式主要是通过多通道缓冲串口2(McBSP 2)从主设备中搬移代码并实现上电自举。

和54系列中其它芯片不同的是,VC5421片内ROM中的Bootloader程序并不支持HPI、并行I/O和标准串口模式的自启动方式。在其所支持的三种boot模式中,16位并行引导模式是最常用的。本文对这种模式进行了深入分析,给出了使用该模式进行双核DSP程序引导的方案,并通过实验验证了该方案的正确性。

    2.1 并行引导模式的选择

VC5421的两个DSP核在DSP芯片上电或复位时,到底以哪种模式实现上电自举,主要由两个核的公共引脚XIO和各自的GPIO0/ROMEN、GPIO1引脚决定。当XIO为0(低电平)时,将不从ROM引导,也就是说,将不使用VC5421片内ROM中的Bootloader程序实现上电引导,而是用HPI模式实现上电自举;当XIO为1(高电平),GPIO0/ROMEN为0时,将使用片外存储器中用户自己编写的Bootloader程序实现上电自举;当XIO为1? GPIO/ROMEN为1? GPIO1为0或1时,将分别使用并行或者串行引导模式实现上电自举。因此,在实施相应的上电自举前,必须将引脚状态设置正确,以保证Bootloader程序按预定的模式执行。Bootloader模式的选择流程见图1。

当Bootloader程序检测到并行引导模式时,程序将以DMA方式从片外数据存储区的0000h单元取出模式选择字(BSW)来进一步决定是8位还是16位的并行引导模式。10AAh意味着选择了16位并行引导模式,而如果选择8位并行引导模式,取出的两个字节将是08h和AAh。之后,程序将按照Boot表进行加载。图2是并行引导模式的选择流程。

2.2 16位并行引导模式的Boot表

Bootloader程序要搬移的代码必须组织成一定的格式,这就是Boot表。16位并行引导模式的Boot表如表1所列。

表1 16位并行导模式Boot表

DMA外部数据存储地址 数 据 内 容 含    义
0000h 10AAh 16位并行引导标志
0001h 7FFFh SWWSR
0002h F000h BSCR
0003h 0000h 程序入门XPC
0004h 5000h 程序入口地址
0005h 002Ch 代码长度
0006h 0000h 目的XPC
0007h 5000h 目的地址
0008h 7761h 程序代码
…… …… 程序代码
…… …… 程序代码
0034h 0000h Boot表结束

此外,需要注意的是,由于在多数程序中都有跳转指令或循环指令,所以,Boot表中的程序入口地址必须和程序的cmd文件中分配的地址保持一致,也就是说,当在CCS中进行调试时,如果程序Load到5000h,Boot表中的程序入口地址就应该是5000h。

2.3 Boot表的生成

Boot表可由hex500格式转换工具生成,也可以自己编写一个文件格式转换程序来把.out文件转换成所需的文件格式。本设计通过编写一个C++程序来将.out文件转换成.hex文件,然后再在文件的开始处增加相应的标志位和寄存器设置字,从而形成完整的Boot表。

3 VC5421片外总线冲突的解决方案

由于VC5421是双核DSP,每个核有各自的存储空间和Bootloader程序,但两核共享一套片外总线和一个XIO引脚。这样,当两核的复位引脚A_RS和B_RS同时收到复位低电平信号时,将同时申请片外总线的控制权。这就造成了申请片外总线的冲突。而且Bootloader程序总是检查该核有没有片外总线的控制权,如果没有,将循环检查直到取得片外总线的控制权。为了避免这种情况的发生,应该以合理的顺序给两个核上电。

由于VC5421中A核带有用来控制时钟频率的锁相环电路,所以应该先对A核进行复位,再启动A核,然后利用A核的用户程序来控制B核的复位,以实现两个核的启动。

根据系统需要,本设计使用Altera公司的CPLD芯片来产生各种控制信号。其电路连接示意图如图3所示。A核的复位信号A_RS由CPLD芯片直接给出,并在系统上电或复位的同时对A核进行复位。而B核的复位信号B_RS则通过CPLD映射到DSP的I/O空间0000h地址单元的第6位:B核复位控制位(在系统复位后值为0)如图4所示。在A核启动后,通过用户程序写B_RS位可为B核提供复位信号。

4 VC5421的并行引导自启动操作

4.1 用户程序的搬移

两个DSP核要完成各自的功能,执行的用户程序是不尽相同的,而且A核的用户程序还要控制B核的复位,因此两个DSP核的Boot表内容是不同的。由DMA方式内部存储器图可知,程序空间的第0页和第1页属于A核,第2页和第3页属于B核。因此,需要注意的是,当Bootloader程序搬移用户程序时,A核的用户程序要被搬移到内部程序空间的第0页上,而B核的用户程序则要被搬移到第2页上。于是B核Boot表中的程序入口XPC和目的XPC应被设置成0002h。

4.2 Boot表的放置

本系统用4Mbit(256k×16)FLASH器件SST39VF400A作为片外数据存储器。页选信号由DSP通过CPLD给出,并且映射到DSP中I/O空间的0000h地址单元的低5位(系统复位后5位均为0,即第0页)。如图4所示。另外,此地址单元的第5位(CFG位)是控制FLASH映射的配置位。当CFG为0时,FLASH被映射到DMA片外数据空间的0000h,此时,Bootloader程序可以以DMA方式从FLASH中搬移数据并进行自启动;当CFG为1时,FLASH被映射到CPU片外数据空间的8000h,在这种情况下,可以通过程序向FLASH中烧写数据。因此,这一位在系统上电或复位后将被设置成0,以使A核能够顺利启动。

由于两个DSP核的Boot表内容不同,故应视Boot表的大小,将两个Boot表放到FLASH的不同页上,以便对两个核分别实行引导。本设计将A核的Boot表放到第0页,将B核的Boot表放到第1页。

图5

    4.3 外总线控制权的释放

如图5所示,在GPIO控制寄存器(地址3Ch)中,XIO_GRANT位为1代表相应的DSP核取得了片外总线的控制权;而在还没有取得控制权(XIO_GRANT位为0)但在申请片外总线的控制权时,相应的XIO_REQ位应置为1;CORE_SEL位用于表示程序在哪个核上运行,当在CPU A上运行时,读A核的GPIO控制寄存器的CORE_SEL位将返回到“0”,而当同一个程序在CPU B上运行时,读B核的GPIO控制寄存器的CORE_SEL位将返回到“1”。有关GPIO控制寄存器的其它相关位,设计时可查阅有关的参考文献?1?。

4.4 FLASH的烧写

笔者根据SST39VF400A的资料编写了一个DSP程序,该程序可同时将A核的Boot表烧写到FLASH的第0页,而将B核的Boot表烧写到第1页。

在系统上电或复位后,A核首先运行它的Boot-loader程序(此时FLASH的第0页映射到DMA片外数据空间的0000h地址单元),A核启动后执行用户程序。用户程序首先将页选设置成第1页,这样,FLASH的第一页将被映射到DMA片外数据空间的0000h;然后,A核释放片外总线控制权,并给B核发出复位信号,此时由于只有B核复位,且A核已释放片外总线的控制权,因此,B核将申请到片外总线控制权,同时执行Bootloader程序的启动以完成整个DSP引导。完整的启动过程流程图如图6所示,下面是A核的启动测试程序代码:

·mmregs

·titlc ″testLEDA″

·global begin

·text

?.............

begin? stm #0x000,0x0061 ;设置页选信号

portw ox0061,00h

call wait

andm #0xffcf,3ch ;释放片外总线

call wait ; 控制权

stm #0x0041?0x0061 ;给B核复位信号

portw 0x0061,00h

call wait

stm #0x0001,0x0061

portw 0x0061,00h

flash: rsbs 1,xf ;发光二极管亮

call wait

ssbx 1,xf ;发光二极管灭

call wait

b flash

;----Subroutine to wait for some time----

wait: stm #80,ar6

loop0: stm #30000,ar7-

loop1: nop

banz loop1,*ar7-

banz loop0,*ar6-

ret

5 实验验证

本设计中,在DSP的A_XF和B_XF脚上连接两个发光二极管,同时使被加载的用户程序通过循环来设置/清除这两个引脚以使两个发光二极管以不同的频率闪烁,以此来验证用户程序是否成功加载。系统上电后,两个发光二极管先后以不同的频率开始闪烁,说明DSP的A核、B核均成功地实现了上电自举。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

从世界上第一颗DSP诞生至今30年来,国际一线老牌芯片厂商长期占据领先技术和市场地位,国内芯片厂商在DSP上的声量很小。然而经过了6年的沉心打磨之后,湖南进芯电子开始在这一领域崭露头角。凭借着更贴近中国本土特色的差异化产...

关键字: DSP MCU 电机控制 进芯电子

今天,小编将在这篇文章中为大家带来数字信号处理器DSP的有关报道,通过阅读这篇文章,大家可以对它具备清晰的认识,主要内容如下。

关键字: DSP 数字信号处理器

DSP的国产替代不会是一件很容易的事情,但受到当前国际竞争态势的影响,本土开发者亟需拥有降本优势、供应链安全保证,以及能协助打造极高竞争力产品的DSP芯片。也就是说,发展国产DSP是不二选择。

关键字: DSP

将DSP和单片机构成双CPU处理器平台,可以充分利用DSP对大容量数据和复杂算法的处理能力,以及单片机接口的控制能力。而DSP与单片机之间快速正确的通信是构建双CPU处理器的关键问题。

关键字: 单片机 spi通信 DSP

随着科技的不断发展,微控制器(MCU)和数字信号处理器(DSP)已经成为了电子行业中不可或缺的重要组成部分。它们在各种电子设备中发挥着关键作用,如智能手机、平板电脑、家用电器等。然而,尽管它们都是用于处理数字信号的集成电...

关键字: MCU DSP 数字信号处理器 微控制器

随着环境保护和能源可持续性的日益关注,电动汽车作为一种清洁、高效的交通工具逐渐成为全球汽车行业的热点。与传统的内燃机驱动汽车相比,电动汽车具有零排放、低噪音和高能量利用效率等显著优势。

关键字: DSP 芯片 混合动力汽车

常州2023年9月25日 /美通社/ -- 9月23日,由江苏省商务厅指导,世界中餐业联合会、常州市人民政府主办的"第三届中华节气菜大会暨首届江南美食节"在江苏常州开幕。文化和旅游部国际交流与合作局一...

关键字: BSP 可持续发展 大赛 质量控制

北京2023年9月25日 /美通社/ -- 9月21日,由中国质量报刊社·中国质量新闻网主办的第六届食品高质量发展交流会在北京举行,会议主题为"高质量,新生活",旨在推动食品行...

关键字: 自动化 BSP ISO9001 NAS

北京2023年9月23日 /美通社/ -- 近日,主线科技正式获准在北京市智能网联汽车政策先行区道路开启常态化测试与示范,将与物流客户在真实开放的城区道路场景中,率先开启基于L4级别自动驾驶能力的智能卡车运输示范。 随...

关键字: 智能卡 测试 高速公路 BSP
关闭
关闭