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/TMS320F28377D:在 CLA1故障中调用自定义 C28功能

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/969135/ccs-tms320f28377d-calling-customized-c28-funtion-in-cla1-failure

器件型号:TMS320F28377D

工具/软件:Code Composer Studio

您好!

我目前正在调试一个项目、其中需要在 CLA 任务中调用自定义函数。

我所做的是:

1.在.c 文件中定义定制的 C28函数、并使用 CODE_SECTION 将其放入'customized Cla1Prog'段中、如下所示:CODE_SECTION ("customized Cla1Prog");

2.在.cmd 文件中、在指定的 CLA 程序 RAM (RAMLS0-2)上分配'customized Cla1Prog'段、如下所示:

Cla1Prog:load = FLASHD,
         运行= RAMLS012、  
         表(_CLA1ProgCopyTable)、
         PAGE = 0

customed_Cla1Prog:load = FLASHD,
                    运行= RAMLS012、  
                    表(_customed_CLA1ProgCopyTable)、
                    PAGE = 0

3.使用 copy_in 函数将程序代码从'load'地址复制到'run'地址,然后再调用它们。

4.在 CLA 任务1内调用自定义的 C28函数,该任务定义为'__interrupt void Cla1Task1 (void )'

结果是:

1. CCS 的编译和链接过程运行顺利,但有一条警告消息指出,“#10461-D 对从 CLA 文件调用'.c'文件中定义的 C28函数'***'无效。

调试 CLA 任务1时、程序似乎在正常运行、直到它执行并卡在该自定义 C28函数中。

3、即使 CLA 正在执行并且卡在自定义的 C28函数中、该函数的某些部分也未正确执行。 例如、在定制的 C28函数内、一些"for"循环只执行一次、而不是执行应该执行的循环。

我已检查自定义 C28函数中使用的所有变量是否处于指定 CLA 数据 LSRAM 的范围内。

我想知道这可能是什么原因、在 CLA 任务中调用 C28函数时、我的方法是正确的。

有人能不能对这个问题说些什么呢? 谢谢。

此致

John

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

    [引用用户="John Zhou ]1. CCS 的编译和链接过程运行顺利、但有一条警告消息指出"#10461-D 对于从 CLA 文件中调用'.c'文件中定义的 C28函数'***'无效。

    John、

    这就是问题所在。  CLA 无法直接调用为 C28x 编译的函数。  由于此函数位于.c 文件中、因此它应在 C28x 上运行。  

    这个函数是否是您可以编译并在 CLA 上运行的函数?  

    该器件的另一个选项- CLA 可以选择通过 CLA1SOFTINTEN 和 CLA1INTFRC 寄存器在任意时刻向 C28x CPU (在同一子系统上)发出软件中断。  C28x 可以通过执行函数进行响应。  

    此致

    Lori

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

    Lori、

    很抱歉耽误你的回答。

    非常感谢您的帮助。

    此致

    John