定义了:
int a =-1000;
unsigned int b=555;
INT32 c;
c = a*b;
为什么得到c的结果不是-555000呢?
只有写成:c=(INT32)a*b; 才能得到正确的结果。
我想请问:在DSP中变量的运算并赋值都可能出现溢出的情况,在DSP中具体硬件是怎么执行运算指令的呢?c = a*b;语句是先赋值给16位数相乘,得到16位数的结果,然后在赋值给32位数的变量?
Seven Han:
看下反汇编。
定义了:
int a =-1000;
unsigned int b=555;
INT32 c;
c = a*b;
为什么得到c的结果不是-555000呢?
只有写成:c=(INT32)a*b; 才能得到正确的结果。
我想请问:在DSP中变量的运算并赋值都可能出现溢出的情况,在DSP中具体硬件是怎么执行运算指令的呢?c = a*b;语句是先赋值给16位数相乘,得到16位数的结果,然后在赋值给32位数的变量?
Seven Han:
看下反汇编。
TMS320F28335: 通过dsp对发生电压跌落的电网电压进行采样,通过graph观察到的电压跌落时间远小于实际电压跌落时间(示波器观察到的时间),应该修改ccs或dsp的哪个设置?
TMS320F28335: BootLoader应用层CMD修改问题
TMS320F28335: 关于28335内存的一个疑惑
TMS570LS3137: CCS单独编译文件。
TMS320F28335: The value is '-233' (0xffffff17). The title is 'SC_ERR_PATH_BROKEN'.复位(XRS为低)时可以连接,但无法烧录程序
TMS320F28335: The value is '-233' (0xffffff17). The title is 'SC_ERR_PATH_BROKEN'.复位(XRS为低)时可以连接,但无法烧录程序