位置:51电子网 » 技术资料 » D S P

TMS320C54xDSP在线烧写FLASH存储器并实现自举引导的方法

发布时间:2007/4/23 0:00:00 访问次数:2640

    摘要:通过一个完整的实例,详细阐述了TMS320C54x系列DSP芯片在线烧写FLASH存储器。并实现自举引导的方法。给出了硬件连接方案和完整的C语言烧写程序。

     关键词:TMS320C54x FLASH 烧写 自举引导

在DSP系统中通常贴片式FLASH存储器保存程序,并且在上电或复位时再将存储在FLASH中的程序搬移到DSP片内或者片外的RAM中全速运行。这个“程序搬移”的过程叫做自举加载。

本文以TMS320C5416 DSP对MBM29LV400BC存储器的操作为例,详细阐述了在线烧写FLASH并实现自举加载的方法。该方法适合于大多数C54x系列DSP对符合JEDEC标准的FLASH的操作。为便于读者使用,本文的程序全部采用C语言编写。

1 TMS320C5416与MBM29LV400BC的硬件接口

MBM29LV400BC与TMS320C5416的接口很方便,前者只需作为后者的外部数据存储器与其进行连接,而中间的逻辑电路采用CPLD实现即可。这里使用16位数据宽度,所以BYTE引脚通过一个上拉电阻接到3.3V电源。连接电路原理如图1所示。相应的VHDL语言程序为:

FLASH_CE<=DSP_DS;

FLASH_OE<=(NOT DSP_R_W)OR DSP_MSTRB;

FLASH_WE<=DSP_R_W OR DSP_MSTRB;

2 TMS320C5416自举引导过程

当MP/MC=0时,TMS320C5416被置于微计算机模式。上电或复位时,程序指针指向片内ROM区的FF80H单元,该单元放置了一条跳转指令,使程序跳转到F800H单元。而F800H就是自举加载器(Bootloader)引导程序的起始单元。

Bootloader的任务就是将存放在外部FLASH中的程序“搬运”到DSP内部或外部的RAM区,“搬运”完后跳转到程序入口处执行。存放在外部FLASH中的用户程序与一些必要的引导信息组合在一起,称为Boot表示(自举表)。16位模式下通用的Boot表结构如表1所示。

表1 16位模式下通用Boot表结构

序    号内容及意义
110AA(16位存储格式)
2SWWSR值
3BSCR值
4Boot之后程序执行入口偏移地址XPC
5Boot之后程序执行入口地址PC
6第一个程序段的长度
7第一个程序段要装入的内部RAM区域移地址
8第一个程序段要装入的内部RAM区地址
9第一个程序段代码…
10第二个程序段的长度
11第二个程序段要装入的内部RAM区偏移地址
12第二个程序段要装入的内部RAM区地址
13第二个程序段代码…
14Boot表结构标志:0x0000

TMS320C5416提供了多种自举加载的方法。在此使用并行加载模式,因此令INT2=1和INT3=1。在并行模式下,自举表放在外部数据存储器的32K高端地址区间:8000H~0FFFH。自举表首地址放在数据空间的0FFFFH单元。加载时,Bootloader读取数据空间的0FFFFH单元中的内容,将其作为首地址,从该地址开始复制数据到内部的程序空间。复制完毕后,Bootloader便跳转到指定的程序入口地址,开始执行用户程序。

3 MBM29LV400BC的操作命

    摘要:通过一个完整的实例,详细阐述了TMS320C54x系列DSP芯片在线烧写FLASH存储器。并实现自举引导的方法。给出了硬件连接方案和完整的C语言烧写程序。

     关键词:TMS320C54x FLASH 烧写 自举引导

在DSP系统中通常贴片式FLASH存储器保存程序,并且在上电或复位时再将存储在FLASH中的程序搬移到DSP片内或者片外的RAM中全速运行。这个“程序搬移”的过程叫做自举加载。

本文以TMS320C5416 DSP对MBM29LV400BC存储器的操作为例,详细阐述了在线烧写FLASH并实现自举加载的方法。该方法适合于大多数C54x系列DSP对符合JEDEC标准的FLASH的操作。为便于读者使用,本文的程序全部采用C语言编写。

1 TMS320C5416与MBM29LV400BC的硬件接口

MBM29LV400BC与TMS320C5416的接口很方便,前者只需作为后者的外部数据存储器与其进行连接,而中间的逻辑电路采用CPLD实现即可。这里使用16位数据宽度,所以BYTE引脚通过一个上拉电阻接到3.3V电源。连接电路原理如图1所示。相应的VHDL语言程序为:

FLASH_CE<=DSP_DS;

FLASH_OE<=(NOT DSP_R_W)OR DSP_MSTRB;

FLASH_WE<=DSP_R_W OR DSP_MSTRB;

2 TMS320C5416自举引导过程

当MP/MC=0时,TMS320C5416被置于微计算机模式。上电或复位时,程序指针指向片内ROM区的FF80H单元,该单元放置了一条跳转指令,使程序跳转到F800H单元。而F800H就是自举加载器(Bootloader)引导程序的起始单元。

Bootloader的任务就是将存放在外部FLASH中的程序“搬运”到DSP内部或外部的RAM区,“搬运”完后跳转到程序入口处执行。存放在外部FLASH中的用户程序与一些必要的引导信息组合在一起,称为Boot表示(自举表)。16位模式下通用的Boot表结构如表1所示。

表1 16位模式下通用Boot表结构

序    号内容及意义
110AA(16位存储格式)
2SWWSR值
3BSCR值
4Boot之后程序执行入口偏移地址XPC
5Boot之后程序执行入口地址PC
6第一个程序段的长度
7第一个程序段要装入的内部RAM区域移地址
8第一个程序段要装入的内部RAM区地址
9第一个程序段代码…
10第二个程序段的长度
11第二个程序段要装入的内部RAM区偏移地址
12第二个程序段要装入的内部RAM区地址
13第二个程序段代码…
14Boot表结构标志:0x0000

TMS320C5416提供了多种自举加载的方法。在此使用并行加载模式,因此令INT2=1和INT3=1。在并行模式下,自举表放在外部数据存储器的32K高端地址区间:8000H~0FFFH。自举表首地址放在数据空间的0FFFFH单元。加载时,Bootloader读取数据空间的0FFFFH单元中的内容,将其作为首地址,从该地址开始复制数据到内部的程序空间。复制完毕后,Bootloader便跳转到指定的程序入口地址,开始执行用户程序。

3 MBM29LV400BC的操作命

相关IC型号

Warning: Undefined variable $stockkeys in G:\website_51dzw\www.51dzw.com\code\tech\view.php on line 152
版权所有:51dzw.COM
深圳服务热线:13751165337  13692101218
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式