TS201S型DSP引导程序加载方法研究 点击:125 | 回复:0



蓝色紫姬

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:15帖 | 6回
  • 年度积分:0
  • 历史总积分:367
  • 注册:2008年5月27日
发表于:2008-06-20 09:25:57
楼主
随着DSP技术的发展,DSP的功能越来越强,类型也越来越多。由于DSP内部结构的特点,DSP的算法程序一般都存储在外部的非易失性存储器中,在系统上电后,要将算法程序从外部存储器加载到DSP中,再进行相应的数据算法处理。

  TS20lS是ADI公司TigerSHARC系列中集成了定点和浮点计算功能的高速DSP。处理器工作在600MHz,单周期能执行4条指令,每秒能进行3.4亿次乘累加和2.8亿次浮点操作,是面向通信和视频领域的高端DSP。TS201S包括24Mbit的片内DRAM;1个14通道的DMA控制器:4个链路口可用于和其他DSP进行无缝联接。以组成一个多DSP处理器系统,每个链路口的数据率可达1GB/s;集成SDRAM控制器最大支持256M x 32bit的内存容量,方便和外部SDRAM连接。TS20lS非常适合对大数据量数据处理实时性要求高的应用领域。

  TigerSHARC系列的DSP接口丰富,其引导程序的加载方法也非常灵活,可根据实际系统设计的需要灵活选用。

  1 TigerSHARC系列DSP的引导模式

  DSP的引导就是在DSP系统复位的情况下从DSP外部存储器装载算法程序代码的过程。TS201S支持二种引导模式:主引导(master boot)模式和从引导(slave boot)模式。

  在主引导模式下,TS201S作为主动方,用外部口输出地址、读、引导方式选择(BMS)等控制信号,从EPROM或Flash中加载代码。在从引导模式下,TS201S作为被动方,不向外部输出控制信号,外部主机或其他设备向TS201S的主机、链路口传送要加载的代码,TS201S仅启动若干DMA通道,并执行第一个DMA所接收的加载核。

  另外,TS201S还可以选择一种“非引导”模式,或利用TS20lS的(仿真器)EZ—ICE加载程序,这种方式可直接将程序加载进TS201S内部的RAM或外部的RAM中,DSP直接从RAM中运行程序,常用于DSP的调试过程。

  通过对TS20lS的BMS引脚的设置,可将DSP的引导过程设置成主引导模式或从引导模式。在DSP复位期间,如果BMS低电平,则选择主引导模式,DSP从外部EPROM或Flash中加载程序;若BMS引脚为高电平,则进入从引导模式,DSP为空闲状态,等待主机或链路口加载程序。2种引导模式都有相同的加载过程。具体步骤如下:

(1)TS201S自动启动一个DMA.自动把256个字(32位)传送到内部存储器的地址0x00-0xFF。

(2)TS201S执行上述256个字的指令(加载核),加载核启动其他DMA,把后续指令和数据加载到内部和/或外部存储器中。

(3)加载核自我覆盖,执行DSP算法程序。

2 单TS201S的程序加载接口设计

TigerSHARC系列中的TS20lS作为单个DSP使用时,主要有3种引导方式。

  2.1外部EPROM引导

  外部EPROM引导为主引导模式,是最常用的引导模式。在该模式下,BMS引脚和RD引脚作为EPROM的片选和输出使能引脚。EPROM的8位数据线接TS201S的DATA0-DATA7。TS20lS最大支持16M的EPROM地址空间,其低位地址引脚与EPROM的地址引脚相连。对于多处理器共享总线的系统,可用一个EPROM对所有TS201S加载。图1所示为ST公司的Flash(DSM2150)与TS201S程序加载接口设计实例。

  复位后,DMA通道0被自动配置好,DMA相应的2个TCB寄存器(Transfer CONTROL Block)被初始化,然后从8位的外部EPROM地址0开始,把一个256字的加载核传送到内部存储器地址0x00-0xFFo。DMA通道0的中断矢量初始化为内部存储器地址0x00。当DMA通道0传送完成时,产生中断,TS20lS开始从0x00执行加载核。然后,加载核通过一串单字DMA传送将后续应用代码和数据加载。最后,加载核启动一个256字的DMA,使其自身被用户应用程序代码覆盖。当该DMA过程完成时,DMA通道0的中断矢量人口地址为内部存储器地址0,用户的应用代码从地址0开始执行。TS20lS的外部接口是32位数据宽度,所以TS201S在通过DMA通道加载程序时,自动使用8到32位的专用打包方式,低位在前,完成从EPR()M的DMA读。只有DMA通道0支持该专用打包方式,所以引导程序必须用DMA0。

  另外,在算法应用程序运行阶段,内核不能用指令使能BMS的方式直接对EPROM进行访问,但可通过DMA通道方式访问。这是因为EPROM是字节寻址空间,它不属于TS201S的存储器空间。外部EPROM所占的最大存储空间为16M字节,由于E-PROM是慢速外设,对EPROM的每一个读访问,TS201S都要等待16个周期。TS201S对外部E-PROM的读时序如图2所示。

  2.2主机引导

  采用主机(HOST)引导模式时,32位或64位主机通过外部的数据和地址总线完成对TS201S的引导。在主机引导方式下TS201S可用任何一个Auto DMA通道进行代码传送。其余过程与外部E-PROM引导相同。主机通过DSM状态寄存器(DSSTAT)监视Auto DMA的状态。在一默认的情况下TS201S的外部总线宽度被设置成32位,所以主机必须使用流水线协议与TS201S进行通信。

2.3链路口引导

TS201S有4个链路口(Link PORT.html">PORT),每个链路口都可用于引导程序的加载。其加载过程和主机引导模式相似。

3 多TS201S的程序加载接口设计

  在实际的系统设计中,在处理高数据流和大数据量的条件下经常用到多个DSP级联。对多个DSP进行程序加载,用EPROM、HOST、LINK PORI、加载模式都可实现。

  在EPROM引导模式下,将各DSP的丽BMS引脚接到一起,连接到EPROM的片选信号上,外部地址、数据也都分别连到EPROM的数据、地址总线上,各DSP按总线优先权依次访问EPROM。EPROM引导多DSP的另一种方法是在主DSP(ID2-0=000)加载完成后,通过多DSF的存储器空间向其他DSP的AutoDMA通道0写入加载码,完成其他DSP的程序加载。这种方法只有主DSP的RD引脚和EPROM片选相连,其他。DSP的RD信号通过外部上拉电阻器上拉。

  在HOST加载模式下,主机按照流水协议,用HBR和HBG信号引导其他DSP。

  在多DSP系统中LINK PORT加载方式是最为灵活的一种程序加载方式,可将前面二种加载模式结合使用,当第一个DSP用EPROM。或HOST加载成功后,可按菊花链形式由第一个依次加载其他的DSP。

  4 引导程序设计

  下面以EPROM引导模式为例说明TS20lS引导程序的设计方法。ADI公司的visual DSP++工具提供的程序加载应用程序(elfloader.exe)可将DSP算法程序和加载核程序合并生成:EPROM的加载输出文件(*.ldr)。该加载输出文件用来定义加载过程中TS201S的内部和外部存储器如何被初始化,其格式如图3所示。其中数据标识块中标签字的格式定义如图4所示。

  DSF程序加载过程中的比较复杂的过程是加载核的自我覆盖。当数据标识块中标签字的高3位的数据为O时(见图4,TYPE=0),加载核执行“结束加载”的过程,用DSt算法代码覆盖加载核的256个字的程序。这是加载过程的最后一个DMA,将DSP从IDLE状态唤醒,完成加载核的自我覆盖,但是,简单的自我覆盖会使DSP算法程序从DMA0中断级开始执行,这是所不希望的。为了解决这一问题,通过以下算法来实现。

  (1)DSP算法代码的第一个4字被存储在xRll:8中。

(2)将以下代码写入Ox00000000一Ox00000003 RETI=0;;NOP;;RTI(NP);;QD31+=0】=xRl 1:8;;

(3)DMA中断矢


热门招聘
相关主题

官方公众号

智造工程师