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

TMS320F28375S: 求助fpu32除法执行错误,谢谢

Part Number:TMS320F28375S

尊敬的工程师您好:

我再使用fpu32的时候遇到了一个问题,我发现在系统启动之前,也就是在main函数中的BIOS_start函数启动之前,不能进行正常的除法运算,除法运算不执行,得到的结果是0。但是bios启动之后,又可以正常工作。是什么原因呢,配置如下,谢谢

应用的库是cla1_math_library_fpu32.libs   因为CLA需要函数

 

Intmain()

{

    // Step 0. Copy Key Code from Flash into RAM 

   memcpy((uint16_t *)&RamfuncsRunStart, (uint16_t *) &RamfuncsLoadStart, (unsignedlong) &RamfuncsLoadSize);

    // Copy over code from FLASH to RAM        

   memcpy(&Cla1funcsRunStart, &Cla1funcsLoadStart, (Uint32)&Cla1funcsLoadSize);

   memcpy(&Cla1mathTablesRunStart, &Cla1mathTablesLoadStart, (Uint32)&Cla1mathTablesLoadSize);

 

    //例如有些事中就没有使用,那么就应该把他禁止

    //这个函数里面还增添了将SPI SCI McBSP的时钟输入提高到200MHz

    PeripheralsClocksInit();  

    CLA_configClaMemory();   

    CLA_initCpu1Cla1();

 

    GpioInit();

    DELAY_US(100000);

    AllPeripheralsInit();         //把所有的外设初始化

    DELAY_US(100000);

    DYNRegisterInit();            //把寄存器都读取出来这里面有浮点数除法,计算不正确

   

    BIOS_start();    /* does not return */

 

   return(0);

}

 

VoidSystemInitTaskFxn(UArg a0, UArg a1)

{

    DYNRegisterInitCalc();  //这里也有浮点除法,但是可以计算正确

    PlayMusic(0,2);         //播放开机声音

}

Lydia:

您好,已经收到了您的案例,调查需要些时间,感谢您的耐心等待。

,

Alice:

您好,你能否确认在禁用CLA时,fpu32的行为是否仍然存在。这将帮助我们确定问题是出在CLA还是FPU上。

,

yongtao ma59:

谢谢您的回复,我还有个现象,就是有时候除法是正确的,有时候就不正确了,有时候我将fpu的strict改为relaxed就又正确了,有时候编译之后又不正确了,将relaxed改为strict又正确率,如果再编译又有可能不正确了,好神奇啊,谢谢

,

yongtao ma59:

是的,您的定位应该是准确的,因为之前我没有使用CLA里的函数,那时候还是正常的,自从我使用了cla函数,例如claexp等等,就不正常了。那应该怎么弄呢,谢谢

,

yongtao ma59:

我刚才试着不在CLA里面使用CLAMath函数,还是不行,谢谢

赞(0)
未经允许不得转载:TI中文支持网 » TMS320F28375S: 求助fpu32除法执行错误,谢谢
分享到: 更多 (0)