TI中文支持网
TI专业的中文技术问题搜集分享网站

CLA to CPU MSGRAM中的变量数量会影响CLA的正确执行

变量在main.C里面定义 ,格式如下

#pragma SET_DATA_SECTION("Cla1ToCpuMsgRAM")

变量定义

变量定义

…….

int16_t 变量n,变量n+1,变量n+2;

…….

变量定义

变量定义

#pragma SET_DATA_SECTION()

如果在中间多定义2个(或偶数个)16位整数 变成 “int16_t 变量n,变量n+1,变量n+2,变量n+3;

变量n+3只是定义,未使用

CLA运行就会出现异常(无PWM波形)。

如果在中间多定义2个(或偶数个)16位整数 变成“int16_t 变量n,变量n+1,变量n+2,变量n+3,变量n+4;"

依然是只定义不使用。

CLA运行依然会正常(正常PWM波形)。

问题:

1.CLA读写的内存需要4字节对齐吗?

2.相比于16位数据,CLA对32位数据处理更快或者更适合处理32位数据?

shu hai feng:

如果在中间多定义2个(或偶数个)16位整数 变成 “int16_t 变量n,变量n+1,变量n+2,变量n+3;

更正:
如果在中间多定义1个(或奇数个)16位整数 变成 “int16_t 变量n,变量n+1,变量n+2,变量n+3;

,

Green Deng:

shu hai feng 说:1.CLA读写的内存需要4字节对齐吗?

没看到有这方面的要求,这点我会和你的问题一起咨询一下其他工程师。

shu hai feng 说:2.相比于16位数据,CLA对32位数据处理更快或者更适合处理32位数据?

是的,CLA本身是一个32位的处理器

,

shu hai feng:

感谢您的回复

后续测试:

仅仅是把中间这一行变量定义移动几行(依然在同一段CLA2CPU MSGRAM里面),程序也不能正常工作。

是否有可能是编译器没有得到变量在内存里面的正确地址?

,

shu hai feng:

已经对比过CLA的asm源文件,似乎没有差别。map文件里面变量的位置会变化,但是还是在制定点的内存段里面。

,

Green Deng:

抱歉目前没有遇到过类似的情况,咨询了一下其他同事也没有这方面的经验,建议你就这个问题直接前往英文E2E论坛咨询一下,英文E2E上会有这方面的专家为你解答:e2e.ti.com/…/c2000-microcontrollers-forum

赞(0)
未经允许不得转载:TI中文支持网 » CLA to CPU MSGRAM中的变量数量会影响CLA的正确执行
分享到: 更多 (0)