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.

[参考译文] CCS/TMS320F2.8035万:任何DSP2803x_Examples_CLA_ccsv5中的Delay_US()示例具有"illegal _ISR"问题

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/657879/ccs-tms320f28035-delay_us-in-any-dsp2803x_examples_cla_ccsv5-examples-have-illegal_isr-problem

部件号:TMS320F2.8035万

工具/软件:Code Composer Studio

大家好,

我正在尝试在CLA应用程序的CPU端使用DELAY _US()宏。 但是,当您在通用CLA示例的主要位置插入delay_US()时,例如ASIN和atan (D:\ti\device_support\F2803x\V130\DSP2803x_Examples_CLA_ccsv5\atan),2803,它会使用“illegal _ISR”中断使芯片崩溃。  atan示例包括“DSP2803x_usDelay.asm”,默认应用程序运行正常。我在atan示例的test_run()函数中只添加了delay_US(1万)。

作废test_run (void)
{int i;
DELAY _US (1万);//用于测试
对于(i=0;i<缓冲大小;i++)

fVal =(float)((buffer_size/2)- i);
Cla1ForceTask1andWait();
Y[I]= fResult;
}

#IF 0
Cla1ForceTask2andWait();

Cla1ForceTask3andWait();

Cla1ForceTask4andWait();

Cla1ForceTask5andWait();

Cla1ForceTask6andWait();

Cla1ForceTask7andWait();

Cla1ForceTask8andWait();
#endif
}

,我换了另一个使用F2.8035万的开发板,调试相同的过程,总是在“ SCIRXINTA_ISR”中找到它,但在atan示例中有关于SCI的注释。

如有任何帮助,我们将不胜感激。 提前感谢您!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,
    我有两个建议。
    首先,尝试将参数传递给带有"L"的DELAY函数:DELAY _US(1万L)
    其次,查看此函数的定义(可能在"delay_us.asf"或"ASM_functions.asf"中)。 我想这个功能是在“ramfuns”部分。 在这种情况下,在程序的开头也调用了"memcpy()"。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我同意Disona的观点,最常见的行为原因是在RAMFUNC中指定了延迟例程,但没有从闪存复制到该例程。 您可以在链接程序控制文件中使用类似如下的内容使链接程序为您执行此操作:

       /* 最后将作为ramfunc代码的代码存储在flash_gh中。
          它将在RAMFUNCRAM中运行。
          描述如何设置的表位于BINIT中,BINIT具有自己的分配区域。
          BINIT与CINIT值位于同一区域,并且具有类似的内部。
       */
       binit   :>   FLASHA_BINIT,   page =0   //ramfuncs copy info table

       ramfuncs : load =    FLASHA_BINIIT,
               RUN =     ALLTHERAM0,
                load_start  (_RamfuncsLoadStart),
                Load_End   (_RamfuncsLoadEnd),
                run_start   (_RamfuncsRunStart),
                Table      (BIIT),
                页面=     0

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