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.

[参考译文] CCS:静态成员变量不工作

Guru**** 2589300 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/615481/ccs-static-member-variables-are-not-working

工具/软件:Code Composer Studio

我遇到了一个固定成员的问题。我的代码通常运行良好。 当我在一个类中添加静态成员变量时:

类CEcatObject
{

PUAR:/**
所有对象的地图
*/
	静态std:map<int,com::CEcatObject*>sm_objectFromIndex; 	

然后,当我尝试向成员写入请求时,它崩溃。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    静态成员变量的创建方式与任何其他全局变量相同。  首先,如果您可以找到分配给此静态变量的地址(从链接映射文件), 请确保您正在使用的设备具有有效的内存范围,并且内存配置正确,可以进行读/写访问。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    然后,当我尝试向成员发送写入请求时,它会崩溃。[/QUOT]静态标准::MAP成员需要支持:

    a)动态内存分配,用于在映射中插入条目,并为所有必需的分配设置合适的堆大小。

    b)要为std::map调用的全局构造函数

    您使用的是哪种器件和编译器(TI或GCC)?

    询问的原因是,CCS附带的某些GCC链接程序脚本/启动文件示例在支持动态内存分配和/或全局构造函数方面不完整。