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.
工具/软件:Code Composer Studio
您好!
在使用 CodeComposerStudio 编译代码期间出现以下错误。 请问原因是什么? 我想解决这个问题。 正如编译器所说、我检查了 NassFcm.c 第22850行。 但我相信没有错误的代码。 只有一个用于变量声明的代码。
"c:\ti\ccsv7\tools\compiler\ti-cgt-arm_16.9.1.LTS \bin/armcl"-mv7R4 -code_state=32 --float_support=VFPv3D16 -me -g --diag_warning=225 --ti_wrap=off --ccs_support=vpg=-display_name\cmag_intran\cmage=-display_code.\cmag_intrack=ccs=ccs_name\cmag_display_name\cmccs=-\cmccs=-display_name\cmcusbuld=-\cmccs_name\cmccs=-display_name\cmbr=-code.pr-display_code.pr-\cmag_code. --define=major_VER=0 --define=minor_VER=0 --define=patch_VER=0 --define=firmware_project_ID="('.')" -dTERMFCN=1 -DONESTEPFCN=1 -DMAT_FILE=0 -DMULTI_instance_code=0 -DINTEGER 编码=0 -DMDSR=0 -DCLASSIC_interface=0 -DALLOCATIONFCCN=0 -DTID01EQ=0 -DMODEL=FCM=0 -/Users/ANURAD /Users/ANURAD - 1~/CCESTR=1 - 1~/CCESTR=1 -/Users/ANURAD - 1~/CCESTR=1 - 1 - 1~/CCESTR=1 - ENUCCESTR=1 - 1 - 1~/CCESTR=1 - 1~/CCESTR=1 - ENUCCESTR=1 - 1 - 1~/CCESTR=1~~~~~~~/CCESTR=1 - ENTR=1 - ENUCCESTR=1 - 1 -/ti/ccsv7/tools/compiler/ti-cgt-arm_16.9.1.LTS/include~~~~~~~~~~/Users/ANURAD~
>> NassFCM.c、第22850行:内部错误:常量表错误- CodeGen 已中止
这可能是一个严重的问题。 请使用与客户支持联系
此问题的说明以及导致此问题的源文件示例
出现内部错误消息。
无法继续编译-中止!
>>编译失败
gmake:***[NassFCM.obj]错误1.
遗憾的是、该诊断意味着您在编译器中发现了错误。 对于源文件 NassFCM.c、请按照文章 How to Submit a Compiler Test Case中的说明进行操作。 根据该测试用例、我将针对编译器提交报告。 通常可以找到权变措施。
谢谢、此致、
乔治
[引用 user4127213]I 从 MATLAB 调用编译器。 您能告诉我 在这种情况下如何制作预处理文件吗?
不幸的是、不 我相信 Matlab 编译界面可以添加自定义编译选项、您可以在这里添加选项 -preproc_with_comment -preproc_with_compile。 但我不知道细节。
如果您无法解决... 考虑将这些选项放入系统环境变量 TI_ARM_C_OPTION 中。 然后构建项目。 这会导致每次编译器运行时都使用这些选项。 这超出了您的需求。 但它可能是最佳的可用方法。 有关更多详细信息、请在 TI ARM 编译器手册 中搜索标题为 "设置默认编译器选项"的子章节。
谢谢、此致、
乔治
您是否能够创建请求的测试用例?
谢谢、此致、
乔治
您好、George、
还没有。 我不理解生成文件的方法。
此致、
乔治
George & George、您好!
我快速看了一下。 我不太理解工作流程或错误。
1) 1)删除构建目录、通常称为 filename_ERT_RTW。 下次构建时、它将强制完全全新构建您的代码(并编写一个新目录)-如果某个位置存在导致问题的损坏文件、这可能会解决该问题。
2) 2)联系 MathWorks 技术支持。 我不确定他们能提供多少帮助、但他们可能对数据库中错误的性质有一些看法。 MW TS 可能没有安装 TI 编译器、因此它们可能无法复制错误。
谢谢、
-Brian
此外、您还可以在 Configuration Parameters -> Code Generation -> Build Process -> Toolchain Settings 中配置编译器。 您需要单击"Specify (指定)"以编辑 C Compiler flags。 我的示例是 C2000、您的示例可能有所不同。
我离这些设置的专家还很远-事实上我自己从未编辑过这些字段。 所有设置都有大量文档,因此您可能需要浏览文档。 如果您遇到问题、最好的做法是联系 MW 技术支持部门、如上所述;他们可能会提供比我更好的帮助。
尊敬的 Brian 先生:
感谢您的建议。 我 尝试 添加选项--preproc_with_comment --preproc_with_compile。 但编译器不起作用。 编译器仍然告诉我相同的"内部错误:常量表错误"
此致、
松
尊敬的 Sone:
我没有其他建议-这超出了我的技术深度。 获得帮助的最佳选择可能是联系 MathWorks 技术支持、因为它们不直接监控 TI 论坛。
谢谢、
-Brian
您好、Brian 先生、
感谢您的善意。 我得做一些事。
此致、
松
[引用 user4127213]\n 我 尝试 添加选项--preproc_with_comment --preproc_with_compile。 但编译器不起作用。 编译器仍然告诉我相同的“内部错误:常量表错误”
将这些选项添加到 C 编译器设置不会修复错误。 他们将生成预处理的源文件(扩展名为.pp)。 pp 文件将包含 C 源代码、所有必要的头文件都包含在单个文件中、因此我们可以更轻松地重现和调查内部错误的原因。 检查编译后是否生成了.pp 文件、并将其附加到此处。
尊敬的乔治:
感谢您的建议。 您能告诉我 TI_ARM_C_OPTION 如何工作来解决我的问题吗? 我想知道我应该如何利用这个变量?
此致、
松
e2e.ti.com/.../NassFCM.pp.txt.txtDearTI 团队、
感谢您的建议。 我可以制作预处理文件。 我将其连接在这里。
此致、
松
[引用 user4127213]\n 我 尝试 添加选项--preproc_with_comment --preproc_with_compile。 但编译器不起作用。 编译器仍然告诉我相同的“内部错误:常量表错误”
这些选项不用于解决问题。 这是您在此处提交供我们分析的测试案例创建过程的一个步骤。 这些选项创建一个文件扩展名为.pp 的预处理文件 它与源代码位于同一目录中。 请按照文章 如何提交编译器测试用例中的说明 提交该文件。
谢谢、此致、
乔治
[引用 user4127213]感谢您的建议。 我可以制作预处理文件。 我在此附上。[/引述]
感谢您提供预处理文件。 这样我就能够重现内部错误。 这是编译器中的一个错误、我已经提交了一个错误报告、以便在将来的版本中对其进行分析和修复。 跟踪 ID 为 CodeGen-6603。 请随时使用我签名中的 SDOWP 链接来跟踪它。
向编译器选项添加优化可消除错误、您可以将其用作短期权变措施。 在先前添加了预处理选项的同一编译器标志设置字段中、添加-o0或-o1选项。
尊敬的 Aartis:
感谢您的评论、并告诉我消除错误的方法。 o0和-o1的主要用途是什么?
我在--preproc_with_compile 之后添加了-o0和-o1、如下所示。 这是正确的添加方式吗? 我认为我不理解 添加选项的正确方法。 我仍然发现相同的内部错误。
--preproc_with_compile -o0 -o1
此致、
松
它也可以通过--embedded_constants=off 来解决、这样可以避免整个常量表传递。
感谢您的建议。
-embedded_constans=0ff 的主要任务是什么?
最好的 Regads
松
o 选项打开优化、数字设置优化级别。 您可以在 ARM 编译器用户指南中阅读有关它的更多信息。
您可以将-o0或-o1添加到编译器设置中、命令行上的任何位置都应该可以。 您可以通过检查编译期间输出的编译器命令行来确认是否正确添加了它。