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.

[参考译文] TMS320F28379D:无法在目标上加载和运行-警告#10014-D 和#17003-D

Guru**** 2484615 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1440599/tms320f28379d-cannot-be-loaded-and-run-on-a-target---warnings-10014-d-and-17003-d

器件型号:TMS320F28379D

工具与软件:

我的项目在 Micrium 实时 RTOS uCOS-III 下运行 我们有两个中断服务例程、一个用于 PWM 以生成 ADC SOC、另一个用于处理 ADC EOC。 PIE 寄存器中标识的 ISR 函数包含在一些小型汇编文件中、每个汇编文件都有一个非常小的程序、用于将 ISR 从 PIE 入口点传输到操作系统将调用的入口点。 除了 PIE 定义的 ISR 和操作系统感知 ISR 的名称外、汇编文件完全相同。  

ADC ISR 文件始终完全生成。 汇编语言 PWM ISR 中继文件会间歇性地生成两条构建警告。 1) 1)#10015-D 输出文件 不能在目标上加载和运行、以及2)#17003-D 没有描述。  附加了生成警告的汇编语言文件的屏幕截图、其中显示指向 OS 中断处理程序函数的分支上的警告三角形。  

您能告诉我警告代码编号的含义以及它们试图告诉我什么吗? 在执行时、中断会进入函数 FAILSAFE_ISR、我认为这肯定意味着 PWM 中断的 ISR 链接未按预期定义。 但是、为什么当配置相同的 ADC ISR 成功时、PWM ISR 会失败呢?

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

    您好、Thomas:

    我对拖延答复表示歉意。 看起来编译器无法加载此文件、因此当出现中断条件时、它没有引用_PWM1INT_ISR、这就是它转到 FAILSAFE_ISR  ()函数的原因。

    您能否检查您是否在另一个文件中正确定义了 OSVectorISR? 此外、为了验证、您在 ADC ISR asm 文件中为 OSVectorISR 使用了不同的符号名称、是否正确? 它们不能具有相同的名称、或者编译器会考虑多次定义该符号。

    此致、

    Delaney

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

    Delaney -感谢您为我查看这篇文章。 我通过更仔细地观察控制面板中的链接器输出来发现了这个问题。

    顺便提一下、Micruim uCOS-III 中的包装函数 OSVectorISR 允许操作系统感知 ISR。 这是 "MOVL_XAR4、#_xxxxINT_handler"代码片段中的语句、其允许 OS 入口点 OSVectorISR 在管理线程调度之后退出不同的中断处理程序。

    警告是由链接器命令文件引起的、这些命令文件没有将这些小的包装程序汇编函数加载到必须是16位可寻址的.assy 空间中。  

    版本现在已清理干净。