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.
工具/软件: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