TMS320C6711的FLASH引导装载系统研究与设计
步器件的直接接口。EMIF接口由一组存储器映射的寄存器进行控制与维护,包括配置各个空间存储器类型和设置读写时序等。和异步器件接口时需配置CE空间控制寄存器,由它来控制存储器的读写周期,本系统用到了CE1空间,故需要设置CE1空间控制寄存器的值。在设置CE1空间控制寄存器时,应满足以下条件:
(1)异步读时:
SETUP+STROBE≥(tacc(m)+tsu+tdmax)/tcyc
SETUP+STROBE+HOLD≥(trc(m))/tcye
HOLD≥(th-tdmin-toh(m)/tcye
HOLD≥(th-tdmin-toh(m)/tcye
(2)异步写时:
STROBE≥(twp(m)/tcye
SETUP+STROBE≥(txw(m))/tcye
HOLD≥(Max(tih(m),twr(m))/tcye
SETUP+STROBE+HOLD≥(twc(m))/tcye
(3)附加参数TA:TA≥(tohz(m))/tc
ye
以上参数可以从芯片手册里查到,并可据此得以满足上述条件的CE1值:CE1=1161C901h。
3软件设计
引导装载系统主要由实现自加载功能的定制代码和用户程序两部分构成,最后都存储在外扩SST39VF040的指定地址中。其中如何写定制代码是设计的重点,它负责将中断向量表和用户代码段从片外FLASH移植到其它高速存储器中,并且将程序指针指向用户代码段的起始地址。
3.1FLASH引导过程
对于许多DSP应用系统,常常需要从FLASH装载程序到DSP以便使它能够脱机运行。设置完芯片装载方式后,FLASH引导装载的具体过程如下:
首先将位于外部CE1空间的FLASH(即图1中的SST39VF040)中的程序通过EDMA自动搬入内部RAM的地址0处(参见图2),实际上,尽管加载过程RAM的地址0处(参见图2),实际上,尽管加载过程是在芯片复位信号被释放后才开始的,但是当芯片开始复位时,就开始准备上述传输了。用EDMA进行的加载过程是一个单帧数据块的传输过程,数据块的大小为1kB,当然这1kB的数据必须包括用于实现自加载功能的定制代码,1kB的数据传输完成后,CPU退出复位状态,开始执行地址0处的自加载功能的定制代码,同时把其它的初始化段从FLASH拷贝到相应的高速存储器处,之后初始化C变量以换行用户程序。
3.2链接
在链接自加载功能的定制代码和其它代码时,需要特别注意该程序COFF(公共目标文件格式)段的放置。因为有时候需要对某些段制定两个不同的地址:一个导入地址,一个运行地址。导入地址用来决定装载器把段的原始数据放在何处,而运行地址就是该段代码运行的地方。任何对段的引用都是指它的运行地址。因此,如果给某个段指定不同的导入地址和运行地址,在程序访问该段之前,都需要把它从导入地址拷贝到运行地址处,当然这个拷贝过程有时是自动进行的,有时需要人工介入,即由自加载功能的定制代码来完成。如前面提到的1kB数据拷贝就是EDMA自动完成的。显然,制定两个不同地址的目的是为了 《TMS320C6711的FLASH引导装载系统研究与设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142407.html
(1)异步读时:
SETUP+STROBE≥(tacc(m)+tsu+tdmax)/tcyc
SETUP+STROBE+HOLD≥(trc(m))/tcye
HOLD≥(th-tdmin-toh(m)/tcye
HOLD≥(th-tdmin-toh(m)/tcye
(2)异步写时:
STROBE≥(twp(m)/tcye
SETUP+STROBE≥(txw(m))/tcye
HOLD≥(Max(tih(m),twr(m))/tcye
SETUP+STROBE+HOLD≥(twc(m))/tcye
(3)附加参数TA:TA≥(tohz(m))/tc
ye
以上参数可以从芯片手册里查到,并可据此得以满足上述条件的CE1值:CE1=1161C901h。
3软件设计
引导装载系统主要由实现自加载功能的定制代码和用户程序两部分构成,最后都存储在外扩SST39VF040的指定地址中。其中如何写定制代码是设计的重点,它负责将中断向量表和用户代码段从片外FLASH移植到其它高速存储器中,并且将程序指针指向用户代码段的起始地址。
3.1FLASH引导过程
对于许多DSP应用系统,常常需要从FLASH装载程序到DSP以便使它能够脱机运行。设置完芯片装载方式后,FLASH引导装载的具体过程如下:
首先将位于外部CE1空间的FLASH(即图1中的SST39VF040)中的程序通过EDMA自动搬入内部RAM的地址0处(参见图2),实际上,尽管加载过程RAM的地址0处(参见图2),实际上,尽管加载过程是在芯片复位信号被释放后才开始的,但是当芯片开始复位时,就开始准备上述传输了。用EDMA进行的加载过程是一个单帧数据块的传输过程,数据块的大小为1kB,当然这1kB的数据必须包括用于实现自加载功能的定制代码,1kB的数据传输完成后,CPU退出复位状态,开始执行地址0处的自加载功能的定制代码,同时把其它的初始化段从FLASH拷贝到相应的高速存储器处,之后初始化C变量以换行用户程序。
3.2链接
在链接自加载功能的定制代码和其它代码时,需要特别注意该程序COFF(公共目标文件格式)段的放置。因为有时候需要对某些段制定两个不同的地址:一个导入地址,一个运行地址。导入地址用来决定装载器把段的原始数据放在何处,而运行地址就是该段代码运行的地方。任何对段的引用都是指它的运行地址。因此,如果给某个段指定不同的导入地址和运行地址,在程序访问该段之前,都需要把它从导入地址拷贝到运行地址处,当然这个拷贝过程有时是自动进行的,有时需要人工介入,即由自加载功能的定制代码来完成。如前面提到的1kB数据拷贝就是EDMA自动完成的。显然,制定两个不同地址的目的是为了 《TMS320C6711的FLASH引导装载系统研究与设计(第2页)》