TI中文支持网
TI专业的中文技术问题搜集分享网站

二级bootload的copyTable问题

各位工程师,你们好!DSP6713的二级bootload中有一个copyTable(见下面)。现在的copyTable是将所有的程序(这些是连续烧写到Flash的)都一次性拷贝到IRAM,因此copyTable中其实只有一个Table(只有一个起始地址和运行地址)。 如果程序太大,可能还要用到外部空间的RAM,比如我在CE3空间接了一块SDRAM,这时可能需要将程序拷贝到多个运行地址,可能就要建多个Table,不知道这个怎么实现?

我曾尝试将所有在IRAM运行的程序都改在SDRAM,但是也没有成功,不知道是有什么问题?

copyTable:

; count
; flash start (load) address ; ram start (run) address

;; .text
.word user_size
.word user_ld_start
.word user_rn_start

;; end of table
.word 0
.word 0
.word 0

dong sun:

工程师请回答啊,是不是我的思路错了?大程序怎么办?

Shine:

在搬移前,有没有对SDRAM进行初始化?

dong sun:

回复 Shine:

我用的是例程的二级bootload代码,下面应该就是搬移前的初始化,具体的值我在c6713_emif.s62中进行了更改。在从FLASH搬移完成后,会跳到c_int00,不知道如果我所有的代码都分配到CE3的SDRAM,会不会有长跳转的问题?我对汇编不熟,不太了解这。

;************************************************************************;* CONFIGURE EMIF;************************************************************************

;**************************************************************** ; *EMIF_GCTL = EMIF_GCTL_V; ;****************************************************************

mvkl EMIF_GCTL,A4 || mvkl EMIF_GCTL_V,B4

mvkh EMIF_GCTL,A4 || mvkh EMIF_GCTL_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_CE0 = EMIF_CE0_V ;****************************************************************

mvkl EMIF_CE0,A4 || mvkl EMIF_CE0_V,B4

mvkh EMIF_CE0,A4 || mvkh EMIF_CE0_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_CE1 = EMIF_CE1_V (setup for 8-bit async) ;****************************************************************

mvkl EMIF_CE1,A4 || mvkl EMIF_CE1_V,B4

mvkh EMIF_CE1,A4 || mvkh EMIF_CE1_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_CE2 = EMIF_CE2_V (setup for 32-bit async) ;****************************************************************

mvkl EMIF_CE2,A4 || mvkl EMIF_CE2_V,B4

mvkh EMIF_CE2,A4 || mvkh EMIF_CE2_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_CE3 = EMIF_CE3_V (setup for 32-bit async) ;****************************************************************

|| mvkl EMIF_CE3,A4 || mvkl EMIF_CE3_V,B4 ;

mvkh EMIF_CE3,A4 || mvkh EMIF_CE3_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_SDRAMCTL = EMIF_SDRAMCTL_V ;**************************************************************** || mvkl EMIF_SDRAMCTL,A4 || mvkl EMIF_SDRAMCTL_V,B4 ;

mvkh EMIF_SDRAMCTL,A4 || mvkh EMIF_SDRAMCTL_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_SDRAMTIM = EMIF_SDRAMTIM_V ;**************************************************************** || mvkl EMIF_SDRAMTIM,A4 || mvkl EMIF_SDRAMTIM_V,B4 ;

mvkh EMIF_SDRAMTIM,A4 || mvkh EMIF_SDRAMTIM_V,B4

stw B4,*A4

;**************************************************************** ; *EMIF_SDRAMEXT = EMIF_SDRAMEXT_V ;**************************************************************** || mvkl EMIF_SDRAMEXT,A4 || mvkl EMIF_SDRAMEXT_V,B4 ;

mvkh EMIF_SDRAMEXT,A4 || mvkh EMIF_SDRAMEXT_V,B4

stw B4,*A4

赞(0)
未经允许不得转载:TI中文支持网 » 二级bootload的copyTable问题
分享到: 更多 (0)