I programm an DSP (TMS320C6713) in 'C'. Therefor I use CCS V.2.21. The programming-form is: Component-based Software Development of Automation Systems The problem is: The application runs on RAM and is linked with the parameters: Reloctabel Executable (-ar); Load-Time-Initialization (-cr); MemoryModels Far Calls & Data (-ml3); SECTIONS { .text: {} > SDRAM The component is placed in FLASH. It is linked with the parameters: Reloctabel Executable (-ar); Load-Time-Initialization (-cr); MemoryModels Far Calls & Data (-ml3); SECTIONS { .text: {} > FLASH The apllication calls the componente ___________________________________________________________ APPLIKATION (RAM): ___________________________________________________________ ___________________________________________________________ KOMPONENTE (FLASH) ___________________________________________________________ The result is: a=0.0 erg.= 1.0 a=1.0 erg.= 1.0 a=2.0 erg.= 4.0 a=3.0 erg.= 0.0 a=4.0 erg.= 256.0 a=5.0 erg.= 0.0 a=6.0 erg.= 0.0 a=7.0 erg.= 0.0 a=8.0 erg.= 16777216.0 a=9.0 erg.= 0.0 a.0 erg.= 179769313486231684688475341796875000000....0000 etc. Only the float-values a=0,1,2,4,8,16,...... and a=-1,-2,-4,-8,-16...... deliver a correkte result. All the other values deliver result=0.00000 or an Overflow !!!!!!! But when I have the function powf(a,a) in the application it delivers all results correct. Do you know why???? Thx marco719@marc...
float powf wrong results????
Started by ●March 21, 2006
Reply by ●March 22, 20062006-03-22
marco719, --- marco719@marc... wrote: > I programm an DSP (TMS320C6713) in 'C'. Therefor I > use CCS V.2.21. > > The programming-form is: Component-based Software > Development of Automation Systems > > The problem is: > > The application runs on RAM and is linked with the > parameters: Reloctabel Executable (-ar); > Load-Time-Initialization (-cr); MemoryModels Far > Calls & Data (-ml3); SECTIONS { .text: {} > SDRAM > > The component is placed in FLASH. It is linked with > the parameters: Reloctabel Executable (-ar); > Load-Time-Initialization (-cr); MemoryModels Far > Calls & Data (-ml3); SECTIONS { .text: {} > FLASH > > The apllication calls the componente > ___________________________________________________________ > > APPLIKATION (RAM): > ___________________________________________________________ > ___________________________________________________________ > > KOMPONENTE (FLASH) > ___________________________________________________________ > > > > The result is: > a=0.0 erg.= 1.0 > a=1.0 erg.= 1.0 > a=2.0 erg.= 4.0 > a=3.0 erg.= 0.0 > a=4.0 erg.= 256.0 > a=5.0 erg.= 0.0 > a=6.0 erg.= 0.0 > a=7.0 erg.= 0.0 > a=8.0 erg.= 16777216.0 > a=9.0 erg.= 0.0 > a.0 erg.> 179769313486231684688475341796875000000....0000 > > etc. Only the float-values a=0,1,2,4,8,16,...... and > a=-1,-2,-4,-8,-16...... deliver a correkte result. > All the other values deliver result=0.00000 or an > Overflow !!!!!!! > > But when I have the function powf(a,a) in the > application it delivers all results correct. > > Do you know why???? I don't know for sure. Are you saying that when you build your code to run from RAM, it runs ok?? But, when you put it into Flash, it does not run correctly?? If so, I would examine the linker command file that you are using. You may be storing a memory section into Flash that should be stored in RAM. mikedunn > > Thx marco719@marc... > > > > > > > > > c6x-unsubscribe@c6x-... > > > > > >