TI中文支持网
TI专业的中文技术问题搜集分享网站

CCS6.1导入导入CCS3.3工程后原工程中汇编变量无法编入Map

    原CCS3.3工程采用的是汇编和C语言混合编程,汇编变量按规划好的地址在一个头文件中进行定义,汇编程序中调用这些变量,对于一些C语言也需要用到的汇编变量,即其中一些在汇编头文件中定义的C语言和汇编共用变量部分,在汇编头文件中采用.global声明为全局变量,并且在C语言头文件中extern+变量加下划线的形式声明为全局变量,以此实现C语言调用。

    目前用CCS6.1导入后,经过通用的导入处理流程后,编译已经通过,C语言对外通信接口部分可正常运行,但是汇编部分运行不正常,经排查发现汇编定义变量中,采用.global声明同时在C语言头文件中external声明的全局变量的部分,在Map文件中可以找到声明的变量及对应的地址;但是仅在汇编头文件中定义,仅在汇编程序文件中调用,未.global声明为全局变量,也未在C语言中调用的变量,在Map文件中无法找到相关变量及地址,也就是说这些变量在编译的时候被丢弃了。

    该工程在原CCS3.3编译环境下,汇编定义变量无论是否声明为C语言可调用变量,均可在Map文件编译进去,可以找到相关变量和对应地址,可以正常运行。

    现在的问题是:

    1)CCS6.1是否支持上述形式原CCS3.3支持的汇编和C混合编译的工程形式。

    2)出现上述CCS6.1中,仅在汇编头文件中声明的变量,未能正常编译进入Map文件内的现象,是CCS6.1环境升级后不支持CCS3.3的部分设定,还是说需要在普通导入流程后,修改相关的设置。

    3)目前出现上述问题,要想让该汇编和C语言混合编译的工程在CCS6.1的环境下正常运行,有什么样的解决方法。

    烦请有经验的大神不吝赐教,谢谢!

Susan Yang:

CCS6是支持混合编程的。若是可以的话,请您私信一下您的工程,我们来具体看一下,谢谢

user5356088:

回复 Susan Yang:

Susan Yang,

您好,混合编程的工程已经私信发送给您。

附件中的例程中,汇编文件中定义了TEST_1~TEST_16共16个变量,实际用到的是TEST1~TEST7,其中TEST1~TEST4,被声明未全局变量,在C语言中调用,并在C语言头文件中声明。

TEST5~TEST17变量,仅在汇编程序中调用执行。

但当前Map文件中,仅TEST1~TEST4编译了相关地址,TEST5~TEST16均未编译相关地址。

问题是:1)为什么这些变量没有被编译进去;2)在没有被编译进去的情况下,TEST5~TEST7涉及的相关函数还能否正常执行。

如何才能够实现汇编模式下的变量和程序的正常编译和执行。

烦请指导,谢谢!

Susan Yang:

回复 user5356088:

我会在测试后给您回复,谢谢

user5356088:

回复 Susan Yang:

Susan Yang:

        您好,我确认了一下,的确仅在汇编中声明和调用的变量不会在Map文件中显示,目前程序已调通,十分感谢您的指导!

        另外,您提到的utility nm2000显示部分:

===============================================================================================

_TEST_1 –_TEST_16   之类的定义是 absolute symbols。Absolute symbols 的话是不是显示在map 文件中。尽管您可以通过utility nm2000(e2e.ti.com/…/519269 table可以看到:

% nm2000 BasicAndCProgramTest.out | findstr _TEST_
00008800 T B_TEST_FUN
00000140 A _TEST_1
00000149 a _TEST_10
00000149 a _TEST_10
0000014a a _TEST_11
...============================================================================================这个不知是不是我这边显示的问题,您推荐的(e2e.ti.com/.../519269 链接部分我打不开,这个网页链接能否方便再发送学习一下。还有对于CCS6.1工程中各子部分参数设置和编译器优化方面的说明,目前网上没有找到太多资料,多为如何新建工程等,深入讲解的资料不多,不知您这边是否有相关的说明指导文档或者链接,可否方便推荐一下,谢谢!

user5356088:

回复 user5356088:

这个不知是不是我这边显示的问题,您推荐的(<a>e2e.ti.com/…/519269 链接部分我打不开,这个网页链接能否方便再发送学习一下。</a>还有对于CCS6.1工程中各子部分参数设置和编译器优化方面的说明,目前网上没有找到太多资料,多为如何新建工程等,深入讲解的资料不多,不知您这边是否有相关的说明指导文档或者链接,可否方便推荐一下,谢谢!

Susan Yang:

回复 user5356088:

很高兴您能解决问题!

1 链接:e2e.ti.com/…/519269

2 您可以看一下下面的Wiki页面:

查看 Pages in category "Code Composer Studio v6"

processors.wiki.ti.com/…/Category:Code_Composer_Studio_v6

Susan Yang:

回复 user5356088:

常见问题解答,请参考: processors.wiki.ti.com/…/FAQ_-_CCSv6

赞(0)
未经允许不得转载:TI中文支持网 » CCS6.1导入导入CCS3.3工程后原工程中汇编变量无法编入Map
分享到: 更多 (0)