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

16位乘16位问题

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

shen lee:

追加:

且float32 temp,corr_f_sum,corr_am_sum *p;的话只有p 有效 其他无效

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

shen lee:

回复 Forrest:

您说的这个 我早上已经找到答案了 谢谢,但是有一个问题:

函数中声明好几个float32型的数据,但在CCS 中观察变量 无论是local 还是全局 都只能看到一个, 这是何解啊?谢谢

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

shen lee:

回复 shen lee:

局部变量没法看,何解,求教。。

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

shen lee:

回复 Forrest:

您好,我理解您的意思。这些变量确实用到了,而且是进入函数中观察的变量 。编译器设置 0 级优化。之前还可以看后来可能动了CCS的某些设置导致的。

谢谢

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

Young Hu:

回复 shen lee:

局部变量,只有在进入了局部变量所在的子程序的时候,才会给局部变量分配地址。所以就像Forrest说的。

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

shen lee:

回复 Young Hu:

谢谢你的回答,还是没什么结果。还是谢谢你

处理器是F28335 CCSv4

void foo()

{

    static uint64_t sum_A;

    sum_A = 1326 * 1326;

}

得到的结果不对

而必须对1326 进行强制转换 且 sum_A 必须放到函数外部

处理器核的寄存器是16位的吗? 那sum_A也必须成为全局变量?

Forrest:

回复 shen lee:

再试试下面的办法,楼主如果找到原因,请分享一下。

删除workspace,重新新建一个project导入这些设置,还是不行吗?有能够反映这个问题的project没?传上来我看看。

一般如果在使用CCS的时候碰到莫名问题,删除workspace会是一个很好的办法。

赞(0)
未经允许不得转载:TI中文支持网 » 16位乘16位问题
分享到: 更多 (0)