This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

c6455 bootloader 问题



由于代码程序比较大,我把DSP/BIOS代码放在ram中,而程序代码放在ddr中,

烧写时,采用在线烧写的方式,将烧写程序放在ram的后半段,运行程序后,已经将两段代码烧入flash,

bootloader程序将flash的代码拷贝到ram和ddr中,运行,

现在上电加载程序不成功,不知道是那里有问题。bootloader有没有比较好的调试方法?

我把部分贴出来,大家看看有没用问题

 

;***************************************************

;将程序代码拷贝到ddr

;***************************************************

    mvkl  FLASH_CODE_START,B4 ;

    mvkh  FLASH_CODE_START,B4   

      

mvkl  CODE_START,A4 ;

mvkh  CODE_START,A4

zero  A1

 

_boot_loop1:

ldb   *B4++,B5       ; 

mvkl  CODE_SIZE,B6

add   1,A1,A1          ;A1+=1,inc outer counter

||    mvkh  CODE_SIZE,B6

cmplt  A1,B6,B0

nop    

stb   B5,*A4++

[B0]  b     _boot_loop1

nop   5

 

;***************************************************

;copy dsp/bios 到ram

;***************************************************

    mvkl  FLASH_DSPBIOS_START,B4 ;

    mvkh  FLASH_DSPBIOS_START,B4   

      

mvkl  DSPBIOS_START,A4 ;

mvkh  DSPBIOS_START,A4

zero  A1

 

_boot_loop2:

ldb   *B4++,B5       ; flash read

mvkl  DSPBIOS_SIZE,B6 ; B6 = CODE_SIZE -1024 0x00070000

add   1,A1,A1          ;A1+=1,inc outer counter

||    mvkh  DSPBIOS_SIZE,B6

cmplt  A1,B6,B0

nop    

stb   B5,*A4++

[B0]  b     _boot_loop2

nop   5

 

mvkl .S2 _c_int00, B0   ;入口地址

mvkh .S2 _c_int00, B0

B    .S2 B0             ;跳转到此地址运行

nop   5