最近在调试自己做的C28346的板子,我是通过XINTF从外部Flash在DSP上电的时候boot程序。我的bootmode选用的是1001 jump from XINTF16模式,外部Flash用的是SST39VF800,我将外部Flash映射到zone6。
现在的问题是这样的:
在程序进行烧写的时候我通过CCS的view->memory查看Flash里面的数据(从0x100000开始查看),可以看到写到里面的数据时正确的。但是,在对Flash写完之后重新上电程序不能boot到内部ram中?急求各位支招解决啊!
PS:我之前用的是SSD(索思达)的开发板做的,我的外部Flash的连接跟SSD的是一样的,我的程序在SSD的开发板上没有任何问题。我自己的板子在线仿真没有问题,现在就是不能从外部Flash boot程序这一个问题了。跪求大神指点思路啊!
10#:
与XINTF复用的GPIO引脚上电默认是GPIO而不是XINTF,请确保在芯片复位后的codestartbranch.asm文件里已经将对应的GPIO初始化为XINTF.
最近在调试自己做的C28346的板子,我是通过XINTF从外部Flash在DSP上电的时候boot程序。我的bootmode选用的是1001 jump from XINTF16模式,外部Flash用的是SST39VF800,我将外部Flash映射到zone6。
现在的问题是这样的:
在程序进行烧写的时候我通过CCS的view->memory查看Flash里面的数据(从0x100000开始查看),可以看到写到里面的数据时正确的。但是,在对Flash写完之后重新上电程序不能boot到内部ram中?急求各位支招解决啊!
PS:我之前用的是SSD(索思达)的开发板做的,我的外部Flash的连接跟SSD的是一样的,我的程序在SSD的开发板上没有任何问题。我自己的板子在线仿真没有问题,现在就是不能从外部Flash boot程序这一个问题了。跪求大神指点思路啊!
guofei xiang:
回复 10#:
我codestartbranch.asm文件里面的程序是这样子的,将对应的GPIO初始化为XINTF应该是该那句呢?之前没有看过汇编的,一直用的C,谢谢!
我现在的程序在之前SSD的开发板上是可以在线仿真,也可以boot!
***********************************************************************
WD_DISABLE .set 1 ;set to 1 to disable WD, else set to 0
.ref _c_int00 .global code_start
************************************************************************ Function: codestart section** Description: Branch to code starting point***********************************************************************
.sect "codestart"
code_start: .if WD_DISABLE == 1 LB wd_disable ;Branch to watchdog disable code .else LB _c_int00 ;Branch to start of boot.asm in RTS library .endif
;end codestart section
************************************************************************ Function: wd_disable** Description: Disables the watchdog timer*********************************************************************** .if WD_DISABLE == 1
.textwd_disable: SETC OBJMODE ;Set OBJMODE for 28x object code EALLOW ;Enable EALLOW protected register access MOVZ DP, #7029h>>6 ;Set data page for WDCR register MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD EDIS ;Disable EALLOW protected register access LB _c_int00 ;Branch to start of boot.asm in RTS library
.endif
;end wd_disable
.end ;//===========================================================================;// End of file.;//===========================================================================
最近在调试自己做的C28346的板子,我是通过XINTF从外部Flash在DSP上电的时候boot程序。我的bootmode选用的是1001 jump from XINTF16模式,外部Flash用的是SST39VF800,我将外部Flash映射到zone6。
现在的问题是这样的:
在程序进行烧写的时候我通过CCS的view->memory查看Flash里面的数据(从0x100000开始查看),可以看到写到里面的数据时正确的。但是,在对Flash写完之后重新上电程序不能boot到内部ram中?急求各位支招解决啊!
PS:我之前用的是SSD(索思达)的开发板做的,我的外部Flash的连接跟SSD的是一样的,我的程序在SSD的开发板上没有任何问题。我自己的板子在线仿真没有问题,现在就是不能从外部Flash boot程序这一个问题了。跪求大神指点思路啊!
10#:
回复 guofei xiang:
MOVZ DP, #7029h>>6 ;Set data page for WDCR register
MOV @7029h, #0068h ;Set WDDIS bit in WDCR to disable WD
这两句话是对0x0729地址的寄存器WDCR进行初始化的语句,你可以参考这个方式对XINTF所在的GPIO口进行对应的初始化。