On 06/10/2012 08:44 PM, Marc Le Douarain wrote:
> Le 04/06/2012 21:28, Gilles Chanteperdrix a écrit :
>> On 06/04/2012 09:26 PM, Marc Le Douarain wrote:
>>> Hello,
>>>
>>> I've some difficulties to run Xenomai with a little 'hello' example
>>> (that create/start a task)
>>> on a target 486 processor (without fpu).
>>>
>>> I successfully compiled the Linux kernel 2.6.38.8 with
>>> adeos-ipipe-2.6.38.8-x86-2.11-02.patch (Xenomai version is 2.5.6)
>>> (modify file xenomai-2.5.6/include/asm-x86/calibration.h
>>> "current_cpu_data"->"cpu_info" were required)
>>>
>>> dmesg extract:
>>> [    0.000000] I-pipe 2.11-02: pipeline enabled.
>>> ...
>>> [    0.140008] CPU: Cyrix Cx486SLC
>>> ...
>>> [    1.440804] Xenomai: hal/i386 started.
>>> [    1.448804] Xenomai: scheduling class idle registered.
>>> [    1.452804] Xenomai: scheduling class rt registered.
>>> [    1.488806] Xenomai: real-time nucleus v2.5.6 (Wormhole Wizards) loaded.
>>> [    1.496807] Xenomai: starting native API services.
>>> [    1.500807] Xenomai: starting POSIX services.
>>> [    1.504807] Xenomai: starting RTDM services.
>> It may be due to the omit-frame-pointer option, please try adding
>> -fno-omit-frame-pointer to the CFLAGS
> Thanks for the tip,
> now it seems to work correctly !
> I've used the following command line to configure Xenomai user-part :
> "./configure CFLAGS="-march=i486 -fno-omit-frame-pointer" 
> LDFLAGS="-march=i486" --disable-x86-sep --disable-x86-tsc"
> 
> I've savagely modified latency.c, to avoid libm and double variables in 
> the code,

You probably can use double variable, but you have to compile with
-msoft-float.

> and now when launching a 10millisecs period,
> without load I've at worst about 170 microsecs, and best 90 microsecs.
> and with load (dd if=/dev/zero of=/dev/null & telnet session while ls;do 
> ls;done & ping -f) :
> worst 200 microsecs, and best 110 microsecs.
> For you, seems to be correct for an embedded equivalent 486 at 300 mhz ?
> (Linux bogomips gives : 96.51)
> 
> Again, many thanks for the gcc optimize flag to avoid on it ! ;-)

When using the 8254 as clocksource, and PIT as timer, the atom I have
gets crappy latencies (the 8254 tsc can not be used in user-space, so,
for instance the call to rt_timer_tsc in latency leads to a syscall, and
the 8254 itself is read through the ISA bus, which is pretty slow). So,
I am not surprised that you get poor latencies on this processor. And
according to what I read, a cyrix 486SLC runs at frequencies under
60MHz, not 300 MHz, which the 96.51 bogomips confirms.

> 
> Bye.
> 
> 
> _______________________________________________
> Xenomai mailing list
> [email protected]
> http://www.xenomai.org/mailman/listinfo/xenomai


-- 
                                                                Gilles.


_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai

Reply via email to