我们为C2000应用开发了几个静态库,这些静态库是在较早版本的CCS (v 8.0 )中创建和编译的,没有任何问题。 当我们尝试在v10.x甚至是最新的11.2 vv.0中编译这些项目时,我们不断收到上述错误。 我认为这可能与将项目设置从v 8.0 项目移植到新版本的CCS有关,所以我尝试在最新版本的CCS中从头开始创建项目。 当我这样做时,项目第一次编译就会成功,但所有后续尝试都将导致上述错误。 我在两台不同的计算机(Windows 7 64位和Windows 10 Pro)上尝试过此操作,结果相同。 我还尝试了几个不同的库,它们都具有不同的源文件,它们都导致相同的行为。 下面是创建新项目所需步骤的快速摘要:
1)创建新的工作空间文件夹并在CCS v 11.2 中打开.........0
2)选择Project (项目)-> New CCS Project (新建CCS项目)
3)将目标设置为"Generic C28xx Device"(通用C28xx设备),输出类型设置为"Static Library"(静态库),输出格式设置为"Legacy COFF"(传统COFF)
4)从默认设置更改的项目属性只有:
a) C2000编译器->处理器选项->指定浮点支持= fpu32
b)在C2000编译器->包含选项下增加了两个路径
c)在C2000存档器->基本选项下为生成的.lib文件指定了名称/位置
5)将两个源代码为.h和.c的新文件夹复制到新项目文件夹中
第一次在新项目上运行“生成项目”时,它将成功编译而不会出错。 如果再次尝试“生成项目”,我会看到“内部错误”消息框,其中显示消息“发生了堆栈溢出错误。 建议您退出工作台。 可能会发生后续错误,并且可能会在不发出警告的情况下终止工作台。 有关详情,请参阅.log文件。" 如果我进行任何代码更改并再次尝试“生成项目”,我会不断收到此消息。 但是,如果我运行“重建项目”或“清理项目”,然后运行“生成项目”,它将成功编译而不会出错。
我已经浏览了生成的.log文件,但我自己无法理解它。 以下是文件的片段:
!消息“生成项目”期间发生内部错误。
!堆栈0
java.lang.StackOverflowError
at java.base/java.util.HashMap.putVal (未知来源)
at java.base/java.util.HashMap.put (未知源)
at java.base/java.util.HashSet.add(未知来源)
com.ti.ccstudio.project.core.internal.build.temp.BuildDescriptionManager.getSteps(BuildDescriptionManager.java:172)
com.ti.ccstudio.project.core.internal.build.temp.BuildDescriptionManager.doAccept(BuildDescriptionManager.java:127)
com.ti.ccstudio.project.core.internal.build.temp.BuildDescriptionManager.doAccept(BuildDescriptionManager.java:132)
com.ti.ccstudio.project.core.internal.build.temp.BuildDescriptionManager.doAccept(BuildDescriptionManager.java:132)
com.ti.ccstudio.project.core.internal.build.temp.BuildDescriptionManager.doAccept(BuildDescriptionManager.java:132)
我可以提供完整的.log文件(如果有用)。
我有两个主要的问题是:1)有什么想法为什么会发生这种情况,以及如何避免发生这种情况? 2)如果我使用"重建项目",我应该完全关注生成的.lib文件的完整性吗?
谢谢
