各路大神,我用BIOS写代码遇到一些问题:
由于使用CLA ,BIOS有一部分代码放到flash中。
编译能够通过,但调用BIOS的头文件的c文件都在第70行和71行出现了相同的警告:
Description Resource Path Location Type
#303-D typedef name has already been declared (with same type) 15KW_VIENNA_EVCHARGER_DataAcquisition.c /15KW_VIENNA_EVCHARGER_BIOS/Source line 70, external location: C:\TI\bios_5_42_01_09\packages\ti\bios\include\tistdtypes.h C/C++ Problem
Description Resource Path Location Type
#303-D typedef name has already been declared (with same type) 15KW_VIENNA_EVCHARGER_DataAcquisition.c /15KW_VIENNA_EVCHARGER_BIOS/Source line 71, external location: C:\TI\bios_5_42_01_09\packages\ti\bios\include\tistdtypes.h C/C++ Problem
编译的程序下载到FLash后,无法运行,反汇编语句一致停在BOOTROM中的0X3FF599行:
3ff594: 0642 MOVL ACC, *-SP[2]
3ff595: FE84 SUBB SP, #4
3ff596: 0006 LRETR3ff597: 767FF895 LCR 0x3ff895
3ff599: 7625 ESTOP03ff59a: 6FFF SB -1, UNC
3ff59b: FE02 ADDB SP, #2
3ff59c: 9641 MOV *-SP[1], AL
3ff59d: 761F01C1 MOVW DP, #0x1c1
不知道这是什么原因引起的,有没有哪个大神遇到过
Xinxi Tang:
即使70行71行空着,都会有警告
,
Victor Zheng:
您好
您确认BIOS可以支持CLA?我比较怀疑。
,
Xinxi Tang:
BIOS是用定点CPU执行的,CPU只执行控制代码,这个从理论上来说应该没有问题
,
Young Hu:
您好!
能不能单步执行看一下是从哪儿进入0X3FF599的。
,
Shuangle Zhao:
sprintf((char *)OutputString, AD_VERSION_STRING);// sprintf((char *)OutputString, "SM73201-ARC-EV HW Ver: 3, FW Ver: %02X.%02X.%02X.%02X\r\n", (Uint16)(AD_FW_VERSION >> 24) & 0xFF, (Uint16)(AD_FW_VERSION >> 16) & 0xFF, (Uint16)(AD_FW_VERSION >> 8) & 0xFF, (Uint16)AD_FW_VERSION & 0xFF) ; SciATxString ( OutputString) ;
我也遇到同样的问题,用CLA时,程序到第一行时进入了3ff599,ESTOP0
,
cai danse:
我前几天也遇到这个问明,但没有找到答案;
我只说我的情况,我的程序是高频进入,反复执行一段程序,没有喂狗引起的。
原因找到。