变量在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