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.

[参考译文] 编译器/TMS320F2.8377万D:#pragma中断问题

Guru**** 2563930 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/591232/compiler-tms320f28377d-pragma-interrupt-problem

部件号:TMS320F2.8377万D

工具/软件:TI C/C++编译器

我正在使用CCS  版本:7.1 .0.0.0016万  

我收到以下错误:

>>编译失败

subdir_rules.mk:16:目标'Control.obj'的配方失败

内部错误:16.9 C:\ti\ccsv7\tools\compiler\ti-CGT-C2000_C2000_SX.1.LTS\bin\cg2000.exe遇到2000遇到分2000.分段错误
处理函数_User1_ISR时

这是由编译器本身的缺陷引起的。 TI客户
支持人员可能会建议一种解决方法来避免这种情况。

升级到最新版本的编译器可以解决此问题。

在E2E支持论坛中联系TI,网址 为http://e2e.ti.com
“开发工具”,“TI C/C++编译器”。 请参阅标题为的链接
"提交问题"。 包括整个错误消息和
选项--preproc_with注释时创建的.pp文件的副本
(-PPC)。

问题是#pragma interrupt:

#pragma code_section (User1_ISR,".ti.ramfunc");
#pragma interrupt (User1_ISR,HPI);
作废用户1_ISR(void)

//此处有一些代码

}

如果更改为以下内容,则项目编译时不会出错:

#pragma code_section (User1_ISR,".ti.ramfunc");
//#pragma interrupt (User1_ISR,HPI);
中断无效用户1_ISR(void)

//此处有一些代码

}

我尝试添加两个中断关键字:

#pragma code_section (User1_ISR,".ti.ramfunc");
#pragma interrupt (User1_ISR,HPI);
中断无效用户1_ISR(void)

//此处有一些代码

}

它产生了相同的错误。

但是,我确实希望使用没有#pragma无法实现的快速切换。 如何解决此问题?

谢谢你。

Gasha

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

    不幸的是,我不能复制...

    内部错误:C:16.9 \ti\ccsv7\tools\compiler\ti-CGT-C2000_GCAN.1.LTS\bin\cg2000.exe遇到2000.遇到分段故障
    处理函数_User1_ISR

    请按照以下步骤提交测试案例。

    1. 预处理 包含函数_User1_ISR的源文件
    2. 将其附加到您的下一篇文章中
    3. 准确显示编译器看到的所有生成选项

    谢谢,此致,

    -George

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

    我通过其他渠道收到了一个测试案例。  谢谢你。

    我可以重现该问题。  但是,不会在每个版本中都发生故障。  由于当时的60 % 而失败。

    我非常确定此错误与已报告的错误相同,错误ID为 CodeGen-1709。  欢迎您使用我签名中下面的SDOWP链接进行查找。

    我将编译器升级到版本16.9 .3.LTS,这是最新版本的16.9 .x.LTS编译器。  现在,我每次都能成功构建。  有关 获取新版本的详细信息,请参阅Wiki文章编译器发行版。

    谢谢,此致,

    -George

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

    George,  

    它很有效。 Thx。

    我有一个关于网络升级的建议。 在办公室,公司有一个防火墙。 我们必须键入用户名和密码才能访问外部世界。 我也是Matlab/Simulnk建模/仿真工程师。因此,当我安装Mathworks安装程序时,会弹出一个窗口,要求提供代理服务器设置,用户名和密码。 它运行简短测试,然后开始下载。 没有问题。使用TI产品,它每次都失败,因为它访问外部世界的尝试被代理服务器拒绝。 我可以通过每次下载整个映像并从本地驱动器安装来进行升级。 但是,TI不会在每次编译器升级时创建完整的新图像,因此我根本没有得到这些小的升级。

    这是需要考虑的事情。

    Gasha

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

    没关系。 我找到了设置代理服务器的位置。 更新现在有效。