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.

[参考译文] RTOS:将中断 ISR 加载到 RAM 将会由于而导致 BIOS 崩溃

Guru**** 2589245 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/661249/rtos-load-interrupt-isr-to-ram-will-occur-the-crash-of-the-bios-due-to-the

工具/软件:TI-RTOS

如标题所述、 当我将 ISR 加载到 RAM 时、BISO 会崩溃、错误为 Unplugged interrupt intr#19。 我检查了 PIE 表、ISR 已成功插入表中。 我不知道为什么 BIOS 找不到 ISR。 检查此错误的机制是什么? 随附的图片显示了 EPWM1_ISR 的地址和 PIE 表的内容。

如果 ISR 在闪存中运行、则没有问题。

BIOS 版本:6.46.5.55

CCS 版本:6.2.0.00050

谢谢!

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

    您能在 ROV->Hwi 中查看存在哪些中断吗? 您使用的是什么 C2000器件?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    更新:一旦在 ISR 中执行的函数之一加载到 RAM 中、BISO 也会折叠。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您如何创建 ISR? 您还可以在 ROV->Hwi 中查看存在哪些中断吗? 您使用的是什么 C2000器件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

     我使用 Hwi_plug (48、EPWM1_ISR)在 F28379D 上创建 OSR。 如图所示、ROV->Hwi 中似乎只有节拍中断。

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

    实际上,每次在运行程序之前加载程序时,ROV 都会报告一个错误:'Target memory read failed at address 0x4, length 18...' 但不同之处在于、当中断在 RAM 中加载时、BIOS 将在运行后崩溃、当中断未在 RAM 中加载时、然后在运行程序后、错误将消失。 我认为这可能是根本原因?

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

    我还附加了我的 cmd 文件以进行检查。 谢谢!

    e2e.ti.com/.../cmd-file.rar

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

    由于应用程序尚未启动、因此开始时的 ROV 警告正常。

    您是否在 ISR 中进行任何内核调用? 当你使用 Hwi_plug 时、这意味着你不希望内核与中断交互。 因此、ISR 无法调用内核。

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

    否函数 StartADCovert()也为空。 我知道使用 Hwi_plug 的含义、我确实不想使用 BIOS 的中断调度。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我想我找到了原因。 这很愚蠢、我使用了错误的 memcpy 函数、因此该函数不会复制到 ram... 现在、问题已经解决。 谢谢 Tod。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    哦! 每个人都会遇到这种情况:)很高兴您解决了这一问题。