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.

CCSTUDIO-C2000: CCSTUDIO-C2000(Version CCS7.4)

Part Number: CCSTUDIO-C2000

我将CCSv5.5的Simulation环境移植到CCS7.4为了实现软件仿真功能(CCS5版本以上不带Simulation 功能),然后我创建了一个helloworld 工程,但是编译遇到了错误,在28335_RAM_Ink.cmd出现如下错误(我理解的是flash不够用,不知道对不对),这个该如何解决呢?希望能得到TI官方的帮助。

  • 确实CCS V5.5以上版本就不支持simulation了。

    你是要实现程序在flash中运行吗?我看你的截图是.stack堆栈大小这块有问题

  • 这一块我不是很清楚,图片右侧显示的是内存不够,显示了个Flash,我就顺着这个猜了,可能是一个很愚蠢的猜测。问题就是.stack的问题,但我不知道出现这个问题的问题在哪,这只是个简单的helloworld程序,为什么会运行不起来,该如何解决呢?

  • 理论上只是个helloworld程序不可能出现stack不够用的问题,如果只是stack不足的话在cmd文件和CCS中设置一下应该也就可以了。

    但是我认为这个应该不是简单的stack不足问题,可能跟simulation工程有关,不过很抱歉我也没怎么使用过simulation,我建议你将这个问题发布到英文版E2E的CCS板块问一下,会不会需要修改其他设置:

    e2e.ti.com/.../code-composer-studio-forum

  • 好的,感谢你的回复;

    我还有两个问题,我如果把28335_RAM_Ink.cmd文件不包含在编译内容里(Exclude),然后我再去编译,然后有很多的unresolve 的变量等。

    一:28335_RAM_Ink.cmd文件和flash.cmd 文件在程序中起的作用是什么,我排除他们编译有影响吗?

    二:我现在的问题是我将单元测试框架CppUTest,这个单元测试框架集成好了,相当于一个.lib的库,链接到CCS中进行单元测试,但是会有类似前面向你提问的错误,因为CCS是基于Eclipse的框架的,我在eclipse中运行需要加上编译器cygwin 或者Mingw,才可以运行相应的结果,那么CCS中需要这个的添加Cygwin或者Mingw嘛,还是说自带这个功能,不需要添加,需要的话如何添加。

    可能问的问题多且幼稚,但希望能得到你的帮助。

  • 1、.cmd文件主要是分配内存空间,ram.cmd主要用于仿真运行,程序会加载在ram中,掉电丢失。flash.cmd用于离线脱机运行,程序会固化在芯片自带的flash中,掉电不丢失。这两个文件是必须的,而且同一个工程只能有两者其中一个.cmd文件参与编译。

    2、抱歉没用过Eclipse,不过CCS中我没有加入过编译器cygwin 或者Mingw,可以认为不需要添加。

  • 好的,谢谢你的回复。

    再请教一个问题,我的运行在28335平台上的的仿真程序(版本用的CCS5.5,连接了测试框架库)很容易就会出现内存不够用的问题,RAM.cmd一直报错,我看了下即使修改了page0 的所有内存也不够去加载.text段等的大小,TI有没有可以自己定义.cmd文件的教程,这样我就可以配置我足够的大小.cmd文件了,但不确定这样做会不会有什么风险。如果有的话请分享一下。

    谢谢

  • TI官方应该是没有配置.cmd文件的教程,不过据我所知,在第三方网站上有很多分享/分析cmd文件如何配置的帖子,你可以找一下。再配合报错的内容对cmd文件做相应的修改。

  • 感谢你的回复,修改.cmd文件后编译生成的文件可以运行了,我把对应报错的RAM空间地址进行了扩充,程序生成的.text .bss等段可以放进去了,(在属性里选择程序优化选项也会使程序占用空间减小),但不确定随意修改.cmd会不会产生其他问题,比如·我将程序烧录进开发板运行时会不会产生问题。

  • cmd文件的主要作用是定义芯片内部ram和flash空间的使用,如果你的修改没有涉及诸如芯片boot部分、代码安全模块已经分配过的程序空间等等的空间的话应该是不会有什么问题。一些固定的内存空间可以在芯片手册上查找到地址和占用空间大小。

  • 好的,谢谢Green的回复。我出现了新的问题。我使用CCSV5.5(TMS320F28335)进行软件测试仿真,前面我已经通过修改cmd文件实现了对于简单测试用例的仿真。再次感谢Green的帮助,现在我将一个很大的工程(通讯、数据传输、控制电机等功能)新建一个副本,工程设为static library, 然后我在测试代码去引用他,然后测试一些代码(源代码生成的程序数据等字段都放在了flash中,我觉得这个应该不影响被链接时调用吧?),但此时出现如下图的问题,导致这种问题出现的状况是啥,该从哪里入手去解决问题。

  • 你好,你是指最后制作成一个.lib文件马?具体是如何生成库的?

    我们一般要制作库文件的话最好是在新建工程的时候就设置为库文件格式的,也就是新建工程时选择输出类型为.lib而不是默认的.out格式即可

  • 感谢你的回复,不是制作.lib文件。现在的情况是.lib文件我已经制作好了,将一个大的工程声明为静态库然后我在测试工程中去引用他,编译没有错误,调试后console上遇到了这样的错误,不明白图片错误的原因是啥。

  • 问题似乎都是与GEL文件有关,不知道你的工程是不是用旧版的CCS编程的?

    关于GEL文件我这边不太了解,你可能需要去英文E2E论坛咨询一下:https://e2e.ti.com/support/microcontrollers/c2000/f/c2000-microcontrollers-forum 

  • 你好,Green. 再向你请教个问题,CCS中的run configtation 里面的选项如何增加,我想增加一个C/C++ Application(现在是有一个C/C++ Remote Application),如下图一所示,和CSS一个框架的eclipse就有(如图二)。我需要安装什么插件,才可以增加C/C++ Application这个选项。