cpuuse, rtmonuse and gcc (was: erc32 wrong compilation flags for initial task with fpu?)

Joel Sherrill joel.sherrill at OARcorp.com
Fri Mar 28 13:22:10 UTC 2008


Aleix Conchillo Flaqué wrote:
> Hi again,
>
> I forced the SPARC_HAS_FPU to 1, so CPU_HARDWARE_FP is set to TRUE.
> Now (compiling RTEMS with -msoft-float), the CPU_usage_Dump and
> Period_usage_Dump print 0.000 for percentage values.
>
> I have disassembled the code and I have seen that the compiler forces
> those functions (by chance, only these two) to use __floatsidf and
> __divdf3 functions, which I think are for software floating point
> emulation. This is fine, the problem is that they use floating point
> registers internally.
>
> So, even RTEMS is compiled with -msoft-float, gcc floating point
> software emulation function use floating point registers, which is
> kind of scary.
>
>   
Which RTEMS version?  This area of the code has been
rewritten and modified many times.  The current implementation
is supposed to use ONLY integer math.
> Luckily, my task had the RTEMS_FLOATING_POINT attribute set, so I
> could see the statistics. Removing the attribute, which I think it
> should, crashed the application because of the gcc problem cited
> above.
>
> The problems I am facing now are:
>
> - gcc uses floating point registers for some floating point software
> emulation routines.
> - cpu_usage_dump and period_usage_dump do not print correct percentage
> values. I am not sure if this is caused by the point above.
>
> Does this makes any sense at all?
>
>
> Aleix
>   


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985





More information about the users mailing list