TI专家,你们好
我们在使用28377芯片时,编译后生成的变量表中有一个变量没有,不知道是什么原因,请帮忙解答。
使用的芯片是TMS320F28377D,连接的指令如下:
LDFLAGS = -z \
–heap_size=0x400 \
–stack_size=0x100 \
–warn_sections\
–rom_model \
–reread_libs\
–display_error_number\
-m"$(DIST_DIR)/$(PROJ_NAME).map" \
–xml_link_info="$(DIST_DIR)/$(PROJ_NAME).xml" \
-o"$(DIST_DIR)/$(PROJ_NAME).out"
"$(CGTOOL_DIR)\bin\cl2000" $(LDFLAGS) $(LD_INC) $(BULID_DIR)\*.obj $(LIBS)
在源代码中,有如下代码。编译到了,因为同文件内其他变量都可以在变量表中找到,唯独_DIS_DiagInit这个变量在变量表中找不到。
#define Q_DIS_DIAG_INIT \
const T_DIS_VAR_INIT __CONST_DATA_MODEL__ _DIS_DiagInit[] = { \
Q_DIS_DIAG_INIT
这个全局变量用于维护,因而没有被其他代码调用,只有如下一处获取数组大小:
const I16 __CONST_DATA_MODEL__ _DIS_NAdrDiag = SIZEOF_ARRAY(_DIS_DiagInit);
类似代码我们在28335中使用过,没有遇到这个问题,请各位帮忙看一些,谢谢。
LDFLAGS = -z \
–heap_size=0x400 \
–stack_size=0x100 \
–warn_sections\
–rom_model \
–reread_libs\
–display_error_number\
-m"$(DIST_DIR)/$(PROJ_NAME).map" \
–xml_link_info="$(DIST_DIR)/$(PROJ_NAME).xml" \
-o"$(DIST_DIR)/$(PROJ_NAME).out"
user5655976:
回复 Green Deng:
多谢,邓工,
增加RETAIN后,问题得以解决。
关于F28335可以,我还需要补充一下原来的芯片我们使用的是CCS5.1,在使用新的处理器才升级CCS到8.0的,问题可能是新版本的编译器造成的。至于为什么会有这个差异,还希望能给一个答复。
谢谢