用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心解决方案电子通信

利用Flash实现DSP对多个程序有选择的加载

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-01-10 22:30:12
责上电时初始化存储器。换句话说,它将程序从非易失性存储器(如Flash存储器)中调入系统的存储器中。其提供的片内引导模式有: HPI(主机接口)引导、并行EPROM引导、并行I/O引导和串行口引导等。下面先介绍这两块芯片的上电引导过程。

DSP上电复位后,先检测其MP/MC引脚,如果MP/MC=“0”,表示使用片内ROM引导。此时,DSP从0xFF80处开始执行TI的片内引导程序。进入引导程序后,HINT引脚变为低电平,然后开始检测INT2是否为低电平(有效)。如有效,则进入HPI引导方式;否则,检测INT3引脚。如有INT3请求中断,则进入串行引导方式;否则,就进入并行引导方式。在本系统中,我们采用TI公司提供的Bootlooder程序进行引导装载,为此,应将MP/MC引脚接低电平。引导程序流程如图2所示。javascript:window.open(this.src);" style="cursor:pointer;"/>

    3.1 HPI模式实现TMS320VC5416的程序加载

按以上设计,5416DSP的程序加载采用HPI(主机接口)模式。对于HPI引导模式,必须将HINT和INT2引脚连接在一起,以保证Bootloader程序能检测到INT2有效。当检测其为低电平时,进入HPI引导方式。主处理器5410启动运行后,5410程序从Flash中下载5416程序,通过5410与5416之间的HPI写入5416 RAM。在将程序写入5416时,要按照5416程序的cmd文件配置,将从Flash中读出的代码写入5416程序空间的代码段。写完代码后,还应将5416代码的起始地址写入5416的0x7f单元,将0写入0x7e单元,起始地址可在CCS仿真环境中编译5416代码后看出,此时PC所指向的位置就是代码的起始地址。这是因为,当5416进入HPI引导方式后,Boodloader程序开始检测0x7f单元的内容(0x7e和0x7f两单元内容在Boodloader程序开始执行时就清零)。当检测到其内容不为零时,即将0x7e的内容赋给XPC,将0x7f的内容赋给PC,程序跳转到PC所指向位置执行用户代码。这样就实现了从片5416的程序加载启动。图3是HPI模式加载用户代码的流程。

    3.2 并行加载模式实现TMS320VC5410的程序加载

5410主处理器的用户代码加载采用并行模式加载。在本系统中,有多份5410用户代码存储于Flash中。系统上电后,先要从Flash中下载FPGA配置代码,然后读出拨码开关的值,再选择相应的用户代码下载,完成后,跳转到用户代码的入口地址开始执行用户代码。为此,需要设计一启动程序以实现以上功能。启动程序的内容包括下载FPGA配置代码,读拔码开关值,并根据此值选择下载相应的5410用户代码到其cmd文件配置的相应程序空间。完成后,跳转到用户代码起始地址。代码的起始地址通过CCS仿真环境编译后获得,启动程序的下载运行,则要依靠TI的片内引导程序,采用16位并行模式引导加载,需要构建引导表。所谓引导表就是引导程序要调入的代码。引导表中除了包括源代码之外,还包含一些附加信息。这些信息指导引导程序的具体执行过程。因此,可以说引导表是由程序代码和一些附加信息组成的一种数据结构。在这里,我们需要用启动程序构建引导表,并将引导表也写入Flash中。

在此系统中,Flash存储器映射为DSP的0x8000~0xffff数据空间。对Flash操作时,首先要选择页,每一页都对应为DSP的0x8000~0xffff地址的数据空间。需要注意:除了将引导表写入Flash外,还应将引导表的起始地址(对于DSP处理器而言的地址,如果在Flash中为0,则对DSP即为0x8000)写入Flash第一页的最后一个单元(0x7fff单元),即DSP存储空间的0xFFFFh单元。

引导程序进入并行加载模式后,将查询数据空间的0xFFFFh单元,直到读入一个有效的地址数据。此数据为用户引导表的入口地址。这时,引导程序就跳转到Flash中的用户引导表开始执行。需要注意的是,对于不同型号和厂家的Flash,其引导表的格式和内容是不同的。下面就M29W800AB Flash引导表的格式及我们所配置的内容说明如下:

10AAh(16位模式)
7fff(SWWSR寄存器值)
8000h(BSCR寄存器值)
0h(启动程序运行的XPC值)
d08h(启动程序运行起始的PC值)
22f8h(启动程序的长度)
0h(启动程序装载的起始地址XPC)
d08h(启动程序装载起始地址PC)
启动程序代码…
连接8个单元的0h(表示引导表结束)

程序根据引导表的内容将用户代码下载到指定的程序空间中,并将指定的程序入口地址值赋给PC,使程序从此处开始执行,从而完成5410 DSP的引导启动。并行引导流程如图4所示。

在系统的实际调试过程中,通过HPI加载5416代码时,要注意5410和5416的时钟要匹配。一般来说,要求从片时钟为主片时钟的1.25倍以上。在此系统中,系统基准时钟为8MHz,5410启动时钟设为8MHz,5416设为10倍频80MHz。

本系统最大的优点是实现了一机多用,扩展了系统的功能,增强了系统的灵活性和通用性,在实际应用中已取得了良好的效果。



上一页  [1] [2] 

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:27,843.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号