由于代码程序比较大,我把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
Yu Liu:
Depeng Kong,
您好!
不知道是否有初始化DDR控制器。下面的帖子中的测试包中有说明文档可以借鉴。
www.deyisupport.com/…/5340.aspx
depeng kong:
回复 Yu Liu:
ddr控制器已经初始化,
刚才我把bootloader代码作为函数调试,发现是PLL未初始化的问题。现在正在做PLL初始化的asm,做好再试试。