文档上都说 共享变量要定义在.c文件里
如
/********************************************************************shared.hC28x and CLA Shared Header File********************************************************************/typedef struct{float a;float b;float c;}foo;/********************************************************************main.cMain C28x C-code Source File********************************************************************/#pragma(X,"CpuToCla1MsgRam")// Assign X to section CpuToCla1MsgRamfoo X;
/********************************************************************test.claCLA C-code Source File********************************************************************/
__interrupt void Cla1Task1 ( void ){float f1,f2;f1 = X.a;}
但这样就得把这个X 用extern 修饰成全局变量,但我们的工程不允许有extern, 请问有没有其他方式,不用extern,来实现cpu 与 cla的交互
Susan Yang:
一般是这样的,您可以看一下FAQ:
software-dl.ti.com/…/faq.html
以及e2echina.ti.com/…/c2000-cla-cla
一般是创建一个 cla_shared.h文件,而后定义变量,基本都是使用extern
C28x和CLA之间共享的变量必须使用以下定义的过程在C28x代码中定义:
如果您希望变量是静态的,这意味着它在CLA任务之间保留其值,那么您需要在内存中为此变量分配一个特定的位置并将其保留在该位置,而不是在CLA暂存器上。您可以参考下E2E上的帖子
e2e.ti.com/…/334185