TMS320C5410烧写Flash实现并行自举引导
otloader)。Bootloader是固化在DSP芯片内ROM中的一段程序代码,其功能是将用户程序从外部加载至片内RAM或扩展的RAM中,使其高速运行。在搬运程序之前,Bootloader首先完成初始化工作:使中断无效,内部RAM映射到程序/数据区(OVLY=1),对程序和数据区均设置7个等待状态等。C5410有以下几种自举引导方式:主机接口HPI、并行口(8/16位)、标准串行口(MCBSP0是16位引导模式,MCBSP2是8位引导模式)以及I/O口(8/16位)自举引导方式。
(2)并行自举引导
这种方式是比较常用的一种,外部存储器的字宽为8位或16位。在自举引导时,通过外部并行接口总线将这些代码从数据存储空间传送到程序存储空间,而且可以重新设置SWWSR及BSCR寄存器的内容。并行自举引导方式首先从地址为0FFFFH的I/O口读取自举表首地址的内容,如果此内容不符合8位或16位的引导方式,就从地址为0FFFFH的数据存储器读取,进行8位或16位并行自举引导。所以,在烧写Flash数据的同时,也要在0FFFFH烧入自举表的首地址。引导流程如图2所示。
(3)建立自举表
自举表内容不仅包括欲加载的各段代码,而且包括各段代码长度、各代码段存放的目标地址、程序入口地址等信息。若要完成自举引导功能,必须建立正确的自举表。自举表可以由hex500格式转换器自动生成;也可以手动建立自举表,就是把被烧写的程序直接放在烧写程序中,根据被烧写程序的相关信息手动建立自举表。
3C5410烧写Flash和并行自举引导
下面通过一个Flash烧写实例,介绍怎样将用户程序烧写进Flash,以及怎样手动建立自举表,并且脱离仿真器以并行自举引导方式使用户程序独立运行。被烧写和烧写程序如下:
.title"FLASH"
.mmregs
SWCR.set002BH
TEMP.set0060H
.data
.sect".BOOT"
.labelBOOTTABLE;自举表开始
.word10AAH;16位自举标记
.word7FFFH;7个等待周期(SWWSR)
.word0F000H;块转换寄存器(BSCR)
.word0000h;程序入口XPC
.word0200h;程序入口地址(MAIN_START)
.wordLOADEND-LOADSTART
;程序块长度(0116H)
.word0000h;存放目标XPC
.word0100h;存放目标地址
LOADSTART:;中断向量表开始地址
.copy"vector.asm";复位处跳转MAIN_START
MAIN_START:;被烧写的主程序
STM#0F7h,SP
STM#012Ch,PMST
;IPTR=01(中断向量指针为100,指向目标地址),MP/MC=0,OVLY=1,AVIS=0,DROM=1,CLK 《TMS320C5410烧写Flash实现并行自举引导(第4页)》
本文链接地址:http://www.oyaya.net/fanwen/view/174622.html
(2)并行自举引导
这种方式是比较常用的一种,外部存储器的字宽为8位或16位。在自举引导时,通过外部并行接口总线将这些代码从数据存储空间传送到程序存储空间,而且可以重新设置SWWSR及BSCR寄存器的内容。并行自举引导方式首先从地址为0FFFFH的I/O口读取自举表首地址的内容,如果此内容不符合8位或16位的引导方式,就从地址为0FFFFH的数据存储器读取,进行8位或16位并行自举引导。所以,在烧写Flash数据的同时,也要在0FFFFH烧入自举表的首地址。引导流程如图2所示。
(3)建立自举表
自举表内容不仅包括欲加载的各段代码,而且包括各段代码长度、各代码段存放的目标地址、程序入口地址等信息。若要完成自举引导功能,必须建立正确的自举表。自举表可以由hex500格式转换器自动生成;也可以手动建立自举表,就是把被烧写的程序直接放在烧写程序中,根据被烧写程序的相关信息手动建立自举表。
3C5410烧写Flash和并行自举引导
下面通过一个Flash烧写实例,介绍怎样将用户程序烧写进Flash,以及怎样手动建立自举表,并且脱离仿真器以并行自举引导方式使用户程序独立运行。被烧写和烧写程序如下:
.title"FLASH"
.mmregs
SWCR.set002BH
TEMP.set0060H
.data
.sect".BOOT"
.labelBOOTTABLE;自举表开始
.word10AAH;16位自举标记
.word7FFFH;7个等待周期(SWWSR)
.word0F000H;块转换寄存器(BSCR)
.word0000h;程序入口XPC
.word0200h;程序入口地址(MAIN_START)
.wordLOADEND-LOADSTART
;程序块长度(0116H)
.word0000h;存放目标XPC
.word0100h;存放目标地址
LOADSTART:;中断向量表开始地址
.copy"vector.asm";复位处跳转MAIN_START
MAIN_START:;被烧写的主程序
STM#0F7h,SP
STM#012Ch,PMST
;IPTR=01(中断向量指针为100,指向目标地址),MP/MC=0,OVLY=1,AVIS=0,DROM=1,CLK 《TMS320C5410烧写Flash实现并行自举引导(第4页)》