TMS320F2800157: 报错unresolved symbol _boot_main, first referenced in ./boot/src/Boot_Entry.obj

Part Number: TMS320F2800157

下面是app和bootloader合并一个工程里的用于booloader和app跳转的汇编代码(Boot_Entry.asm):

在28035工程上编译通过且正常运行,移植到00157工程上编译报错

unresolved symbol _boot_main, first referenced in ./boot/src/Boot_Entry.obj

void boot_main(void)为bootloader的main函数在外部c文件定义,且在.h文件extern了;main(void)为app的main函数

实测把LCR _boot_main位置放到LCR _main 上一行,则编译通过,但这样会改变运行逻辑。

下面为Boot_Entry.asm代码,麻烦分析下,感谢!

	.global	_AppEntPoint,		_App_Entry
	.global	_RstEntPoint,		_Rst_Entry
           			
_AppEntPoint		LB	_App_Entry  		
_RstEntPoint		LB	_Rst_Entry 		

	.ref _c_int00
	.global  _boot_main 
	.bss _MdlAddr,0 
	.bss _uiFromApp,0 
	.global  _uiFromApp,_MdlAddr
__stack:	.usect	".stack",0

	.sect	"FlashBoot"
_Rst_Entry:
;	INITIALIZE STACK POINTER.
	MOV 	AL,#__stack		; set to beginning of stack space
	MOV     @SP,AL
	SPM     0			; set product shift to 0
;	SET C28x MODES
	SETC    OBJMODE			; select C28x object mode
	CLRC    AMODE			; clear the addressing mode
	.c28_amode			; 28x mode
	SETC    M0M1MAP			; set block M0 and M1 mode
;	SETTING THESE STATUS BITS/REGISTER TO RESET VALUES
	CLRC    PAGE0    		; use stack addressing mode
	MOVW    DP,#0x0000		
	CLRC    OVM			; turn off overflow mode
	ASP				; ensure SP is aligned

	SETC	INTM
	MOV  	AL,#0
	MOVW	DP,#_MdlAddr 	
	MOV 	@_MdlAddr,AL
	LB 	ContinueB
_App_Entry:
	SETC 	INTM
	MOV 	AL,#0FFH

ContinueB:
	MOVW	DP,#_uiFromApp
	MOV 	@_uiFromApp,AL

	LCR	_boot_main
	SETC	INTM			
justdie:
	LB    	justdie


	.global  _main,_exit
	.sect	".appvec"
_App_Entry_Point: 
	MOV 	AL,#__stack
	MOV     @SP,AL

    LCR 	_main  

_exit_entry	LCR 	_exit

	.end