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.

F28335,程序跳转调试问题........诚心请教..........

最近在做F28335串口升级,目标是不改变boot方式来实现升级。在参考了大量的学习资料后,调试程序跳转。

分两个工程,bootloader工程和app工程,通过JTAG口分别烧写入FLASHA,FLASHB~H,从反汇编中观察到两个SECTOR区中已经有数据写入,所以想尝试实现bootloader向app工程的跳转。

由于BEGIN       : origin = 0x33FFF6, length = 0x000002     /* Part of FLASHA.  Used for "boot to Flash" bootloader mode. */,和reset都设置在bootloader的cmd文件中,因而在开机上电时,复位后运行bootloader的codestart。

做了以下的准备:

1.固定两个工程文件的_c_int00,分别为

flashA,bootloader
CINT00      : origin = 0x338000, length = 0x000050      /* define _c_int00 */
boot : > CINT00 		PAGE = 0
{
-l rts2800_fpu32.lib<boot.obj>(.text)
}
flashB~H
CINT00      : origin = 0x300002, length = 0x000050  /*define _c_int00*/
boot : > CINT00 PAGE = 0
{
-l rts2800_fpu32.lib<boot.obj>(.text)
}
2.修改bootloader工程的codestart.asm的汇编文件,如下所示,
***********************************************************************

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 codex
   	.else
        ;LB _c_int00         ;Branch to start of boot.asm in RTS library
        LB check
    .endif

;end codestart section


***********************************************************************
* Function: wd_disable
*
* Description: Disables the watchdog timer
***********************************************************************
    .if WD_DISABLE == 1

    .text
wd_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 check        							;Branch to start of boot.asm in RTS library

check:
	MOVL	XAR0, #0x338000   	;
	CMP  *XAR0, #0x28AD        	;never update before;
	B app, EQ
	LB search

addPTR:
	ADDB XAR0, #0x4

search:
	CMP *XAR0, #0xFFFF
	B addPTR, NEQ
	SUBB XAR0, #0x4
	CMP *XAR0, #0xFFF0
	B app, EQ
	LB _c_int00

app:
	MOVL XAR7, #0x300000
	LB *XAR7

    .endif

;end wd_disable



	.end
问题是:
在JTAG进行在线仿真调试的时候,发现程序无法正常启动,也无法跳转到app main函数的入口地址处运行??
因为第一次尝试做相关的升级项目,定位问题可能不够清晰,如果有任何说得不清楚的地方,望能及时指出,我及时补充。
很困惑,诚心请教有相关调试经验的DSP高手或者TI的FAE帮忙解答,在线等,谢谢!!!